[GTK] Review enabled/disabled CSS features for release builds
https://bugs.webkit.org/show_bug.cgi?id=124791

Reviewed by Martin Robinson.

Enable and disable some CSS features according to what last versions of
Safari ship or not.

* Source/autotools/SetupWebKitFeatures.m4: Enable ENABLE_CSS_REGIONS and
ENABLE_CSS_STICKY_POSITION. Disable ENABLE_CSS_EXCLUSIONS and
ENABLE_CSS_SHAPES.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159716 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebCrypto algorithms should check that key algorithm matches
https://bugs.webkit.org/show_bug.cgi?id=123628

Reviewed by Anders Carlsson.

No change in behavior yet, because we have one algorithm per key class.
Will be tested once more algorithms are added.

* WebCore.xcodeproj/project.pbxproj: Updated for file renames.

* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createRsaKeyParamsWithHash):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
* bindings/js/JSCryptoKeySerializationJWK.cpp:
(WebCore::createRSAKeyParametersWithHash):
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
* crypto/CryptoAlgorithmParameters.h:
(WebCore::CryptoAlgorithmParameters::ENUM_CLASS):
* crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHash.h: Copied from Source/WebCore/crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h.
* crypto/parameters/CryptoAlgorithmRsaSsaKeyParams.h: Removed.
Renamed RsaSsaKeyParams to RsaKeyParamsWithHash, because other algorithms (like RSA-OAEP)
are in the same boat. Depending on where the spec goes, we might need to introduce
algorithm specific RSA parameter classes later, but let's reduce copy/pasted code at
least for now.

* crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: Moved to the correct directory.
* crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp: Copied from Source/WebCore/crypto/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign): Factored out Mac specific
code, leaving type casting to cross-platform files.
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): Ditto.

* crypto/CryptoAlgorithmRegistry.h:
(WebCore::CryptoAlgorithmRegistry::registerAlgorithm):
* crypto/mac/CryptoAlgorithmRegistryMac.cpp:
(WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
Reduce copy/pasting in registration code.

* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::keyAlgorithmMatches): Check key type and algorithm.
(WebCore::CryptoAlgorithmAES_CBC::encrypt): Cross platform type casting code.
Maybe we'll find a way to autogenerate or eliminate it one day.
(WebCore::CryptoAlgorithmAES_CBC::decrypt): Ditto.

* crypto/algorithms/CryptoAlgorithmAES_CBC.h:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::keyAlgorithmMatches):
(WebCore::CryptoAlgorithmHMAC::sign):
(WebCore::CryptoAlgorithmHMAC::verify):
* crypto/algorithms/CryptoAlgorithmHMAC.h:
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::keyAlgorithmMatches):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
* crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::CryptoAlgorithmHMAC::platformSign):
(WebCore::CryptoAlgorithmHMAC::platformVerify):
Same changes for all algorithms that have keys.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159717 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2] Fix the build of the NetworkProcess on iOS
https://bugs.webkit.org/show_bug.cgi?id=124794

Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-11-22
Reviewed by Alexey Proskuryakov.

* NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
(WebKit::AsynchronousNetworkLoaderClient::didReceiveBuffer):
* NetworkProcess/NetworkResourceLoader.h:
* NetworkProcess/SynchronousNetworkLoaderClient.cpp:
(WebKit::SynchronousNetworkLoaderClient::willSendRequest):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159718 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2] Another build fix for NetworkProcess on iOS
https://bugs.webkit.org/show_bug.cgi?id=124797

Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-11-22
Reviewed by Alexey Proskuryakov.

* NetworkProcess/NetworkResourceLoader.h:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159719 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Win] Clean up ColorSpace handling in Windows code
https://bugs.webkit.org/show_bug.cgi?id=124795

Reviewed by Tim Horton.

Functionality covered by existing fast/css/color test suite.

* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::safeRGBColorSpaceRef): Handle case of Windows CG implementation not
handling sRGB correctly.
(WebCore::sRGBColorSpaceRef): Use new helper function.
* platform/graphics/win/FontCGWin.cpp:
(WebCore::Font::drawGlyphs): Pass correct color space to fill functions.
* platform/graphics/win/GraphicsContextCGWin.cpp:
(WebCore::GraphicsContext::platformInit): Initialize color space to value passed
via the style to the constructor.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159720 268f45cc-cd09-0410-ab3c-d52691b4dbfc
CodeBlock::m_numCalleeRegisters shouldn't also mean frame size, frame size needed for exit, or any other unrelated things
https://bugs.webkit.org/show_bug.cgi?id=124793

Reviewed by Mark Hahnenberg.
        
Now m_numCalleeRegisters always refers to the number of locals that the attached
bytecode uses. It never means anything else.
        
For frame size, we now have it lazily computed from m_numCalleeRegisters for the
baseline engines and we have it stored in DFG::CommonData for the optimizing JITs.
        
For frame-size-needed-at-exit, we store that in DFG::CommonData, too.
        
The code no longer implies that there is any arithmetic relationship between
m_numCalleeRegisters and frameSize. Previously it implied that the latter is greater
than the former.
        
The code no longer implies that there is any arithmetic relationship between the
frame Size and the frame-size-needed-at-exit. Previously it implied that the latter
is greater that the former.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::frameRegisterCount):
* bytecode/CodeBlock.h:
* dfg/DFGCommonData.h:
(JSC::DFG::CommonData::CommonData):
(JSC::DFG::CommonData::requiredRegisterCountForExecutionAndExit):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::frameRegisterCount):
(JSC::DFG::Graph::requiredRegisterCountForExit):
(JSC::DFG::Graph::requiredRegisterCountForExecutionAndExit):
* dfg/DFGGraph.h:
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
(JSC::DFG::JITCompiler::compileFunction):
* dfg/DFGOSREntry.cpp:
(JSC::DFG::prepareOSREntry):
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::SpeculativeJIT):
* dfg/DFGVirtualRegisterAllocationPhase.cpp:
(JSC::DFG::VirtualRegisterAllocationPhase::run):
* ftl/FTLLink.cpp:
(JSC::FTL::link):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileCallOrConstruct):
* ftl/FTLOSREntry.cpp:
(JSC::FTL::prepareOSREntry):
* interpreter/CallFrame.cpp:
(JSC::CallFrame::frameExtentInternal):
* interpreter/JSStackInlines.h:
(JSC::JSStack::pushFrame):
* jit/JIT.h:
(JSC::JIT::frameRegisterCountFor):
* jit/JITOperations.cpp:
* llint/LLIntEntrypoint.cpp:
(JSC::LLInt::frameRegisterCountFor):
* llint/LLIntEntrypoint.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159721 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Mac] Can't drag full-screen video to another monitor
https://bugs.webkit.org/show_bug.cgi?id=124798

Reviewed by Geoffrey Garen.

Source/WebCore:

Make full screen windows movable by default. Previously, we wanted non-movable full screen
windows since they were in the same space and were just placed atop non-full screen windows.
Now that all our supported Mac platforms have explicit full screen support, we can remove this
non-movable restriction.

* platform/mac/WebCoreFullScreenWindow.mm:
(-[WebCoreFullScreenWindow initWithContentRect:styleMask:backing:defer:]):

Source/WebKit2:

Make full screen windows resizable by default. This allows the window to be resized when
moved between monitors with different resolutions.

* UIProcess/API/mac/WKView.mm:
(-[WKView createFullScreenWindow]):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159722 268f45cc-cd09-0410-ab3c-d52691b4dbfc