Send out the right KVO callbacks when the page title changes
https://bugs.webkit.org/show_bug.cgi?id=124753

Reviewed by Simon Fraser.

* UIProcess/API/mac/WKBrowsingContextController.mm:
(PageLoadStateObserver::PageLoadStateObserver):
New class that sends the right KVO notifications when the load state changes.

(-[WKBrowsingContextController dealloc]):
Remove the observer.

(-[WKBrowsingContextController _initWithPageRef:]):
Allocate the observer and add it.

* UIProcess/PageLoadState.cpp:
(WebKit::PageLoadState::~PageLoadState):
Assert that we don't have any observers left.

(WebKit::PageLoadState::addObserver):
Add the observer to the list.

(WebKit::PageLoadState::removeObserver):
Remove the observer from the list.

(WebKit::PageLoadState::reset):
Call title change callbacks.

(WebKit::PageLoadState::setTitle):
Ditto.

(WebKit::PageLoadState::callObserverCallback):
Helper function to dispatch callbacks to observers.

* UIProcess/PageLoadState.h:
Add new members.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159701 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Shapes] When the <box> value is set, derive radii from border-radius
https://bugs.webkit.org/show_bug.cgi?id=124228

Reviewed by Dean Jackson.

Source/WebCore:

Add support for BoxShape elliptical corners.

Tests: fast/shapes/shape-outside-floats/shape-outside-rounded-boxes-001.html
       fast/shapes/shape-outside-floats/shape-outside-rounded-boxes-002.html

* platform/graphics/FloatRoundedRect.h:
(WebCore::FloatRoundedRect::bottomLeftCorner): Corrected a copy-and-pasteO.
* rendering/shapes/BoxShape.cpp:
(WebCore::BoxShape::getExcludedIntervals): Returned interval now depends on the top and bottom of the line.
* rendering/shapes/Shape.cpp:
(WebCore::Shape::createShape): Rounded rect parameters are now specified with a RoundedRect parameter.
* rendering/shapes/Shape.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::::computedShape): Pass style's rounded border to createShape().

LayoutTests:

* fast/shapes/shape-outside-floats/shape-outside-rounded-boxes-001-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-rounded-boxes-001.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-rounded-boxes-002-expected.txt: Added.
* fast/shapes/shape-outside-floats/shape-outside-rounded-boxes-002.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159702 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Debug builds unconditionally dump remote layer tree transactions to stderr.

Reviewed by Sam Weinig.

* Platform/Logging.h: Declared RemoteLayerTree logging channel.
* Shared/mac/RemoteLayerTreeTransaction.h: Declared description().
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::dump): Changed to use description().
(WebKit::RemoteLayerTreeTransaction::description): Returns a CString with the description.
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::commit): Changed to use logging instead of calling dump().



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159703 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix 32-bit build.

* UIProcess/API/mac/WKBrowsingContextController.mm:
(-[WKBrowsingContextController dealloc]):
(-[WKBrowsingContextController _initWithPageRef:]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159704 268f45cc-cd09-0410-ab3c-d52691b4dbfc
BytecodeGenerator should align the stack according to native conventions
https://bugs.webkit.org/show_bug.cgi?id=124735

Source/JavaScriptCore: 

Reviewed by Mark Lam.
        
Rolling this back in because it actually fixed fast/dom/gc-attribute-node.html, but
our infrastructure misleads peole into thinking that fixing a test constitutes
breaking it.

* bytecompiler/BytecodeGenerator.h:
(JSC::CallArguments::registerOffset):
(JSC::CallArguments::argumentCountIncludingThis):
* bytecompiler/NodesCodegen.cpp:
(JSC::CallArguments::CallArguments):

LayoutTests: 

Reviewed by Mark Lam.

* platform/mac/fast/dom/gc-attribute-node-expected.txt: Removed.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159705 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Ensure that arity fixups honor stack alignment requirements.
https://bugs.webkit.org/show_bug.cgi?id=124756.

Reviewed by Geoffrey Garen.

The LLINT and all the JITs rely on CommonSlowPaths::arityCheckFor() to
compute the arg count adjustment for the arity fixup. We take advantage
of this choke point and introduce the stack alignment padding there in
the guise of additional args.

The only cost of this approach is that the padding will also be
initialized to undefined values as if they were args. Since arity fixups
are considered a slow path that is rarely taken, this cost is not a
concern.

* runtime/CommonSlowPaths.h:
(JSC::CommonSlowPaths::arityCheckFor):
* runtime/VM.h:
(JSC::VM::isSafeToRecurse):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159706 268f45cc-cd09-0410-ab3c-d52691b4dbfc
MiniBrowser should use the blocks-based NSOpenPanel API
https://bugs.webkit.org/show_bug.cgi?id=124786

Reviewed by Simon Fraser.

* MiniBrowser/mac/AppDelegate.m:
(-[BrowserAppDelegate frontmostBrowserWindowController]):
Account for windows that don't have a BrowserWindowController.

(-[BrowserAppDelegate openDocument:]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159707 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix Mountain Lion bug.

* MiniBrowser/mac/AppDelegate.m:
(-[BrowserAppDelegate openDocument:]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159708 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove residual references to "dynamicGlobalObject".
https://bugs.webkit.org/show_bug.cgi?id=124787.

Reviewed by Filip Pizlo.

* JavaScriptCore.order:
* interpreter/CallFrame.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159709 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Speculative Mountain Lion build fix.

* MiniBrowser/mac/AppDelegate.m:
(-[BrowserAppDelegate openDocument:]):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159710 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add TextTrackList::getTrackById().
https://bugs.webkit.org/show_bug.cgi?id=124785

Patch by Brendan Long <b.long@cablelabs.com> on 2013-11-22
Reviewed by Eric Carlson.

Source/WebCore:

Test: media/track/track-id.html

* html/track/TextTrackList.cpp: Add getTrackById()
(TextTrackList::getTrackById):
* html/track/TextTrackList.h: Same.
* html/track/TextTrackList.idl: Same.

LayoutTests:

Update this test to make it more interesting. It now checks that the "id"
changes when the <track> id changes, makes sure TextTrack::id is readonly,
and looks the track up by id with getTrackById().

* media/track/track-id-expected.txt:
* media/track/track-id.html:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159711 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move WKPageLoaderClient out into a separate header
https://bugs.webkit.org/show_bug.cgi?id=124790

Reviewed by Dan Bernstein.

* UIProcess/API/C/WKPage.h:
* UIProcess/API/C/WKPageLoaderClient.h: Added.
* WebKit2.xcodeproj/project.pbxproj:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159712 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Combine SymbolTable and SharedSymbolTable
https://bugs.webkit.org/show_bug.cgi?id=124761

Reviewed by Geoffrey Garen.
        
SymbolTable was never used directly; we now always used SharedSymbolTable. So, this
gets rid of SymbolTable and renames SharedSymbolTable to SymbolTable.

* bytecode/CodeBlock.h:
(JSC::CodeBlock::symbolTable):
* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedFunctionExecutable::symbolTable):
(JSC::UnlinkedCodeBlock::symbolTable):
(JSC::UnlinkedCodeBlock::finishCreation):
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::symbolTable):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGStackLayoutPhase.cpp:
(JSC::DFG::StackLayoutPhase::run):
* jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::symbolTableFor):
* runtime/Arguments.h:
(JSC::Arguments::finishCreation):
* runtime/Executable.h:
(JSC::FunctionExecutable::symbolTable):
* runtime/JSActivation.h:
(JSC::JSActivation::create):
(JSC::JSActivation::JSActivation):
(JSC::JSActivation::registersOffset):
(JSC::JSActivation::allocationSize):
* runtime/JSSymbolTableObject.h:
(JSC::JSSymbolTableObject::symbolTable):
(JSC::JSSymbolTableObject::JSSymbolTableObject):
(JSC::JSSymbolTableObject::finishCreation):
* runtime/JSVariableObject.h:
(JSC::JSVariableObject::JSVariableObject):
* runtime/SymbolTable.cpp:
(JSC::SymbolTable::destroy):
(JSC::SymbolTable::SymbolTable):
* runtime/SymbolTable.h:
(JSC::SymbolTable::create):
(JSC::SymbolTable::createStructure):
* runtime/VM.cpp:
(JSC::VM::VM):
* runtime/VM.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159713 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fire "change" event on TextTrackList when a TextTrack's mode changes
https://bugs.webkit.org/show_bug.cgi?id=124789

Patch by Brendan Long <b.long@cablelabs.com> on 2013-11-22
Reviewed by Eric Carlson.

Source/WebCore:

Since AudioTrackList and VideoTrackList already have this event, the
interesting bits are in TrackListBase::scheduleChangeEvent(), and we
just need to call it for TextTrackList changes.

Test: media/track/track-change-event.html

* html/HTMLMediaElement.cpp:
(HTMLMediaElement::textTrackModeChanged): Call TrackListBase::scheduleChangeEvent().
* html/track/TextTrackList.idl: Add onchange event listener.

LayoutTests:

* media/track/track-change-event-expected.txt: Added.
* media/track/track-change-event.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159714 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move the remaining page loader clients out into separate files
https://bugs.webkit.org/show_bug.cgi?id=124792

Reviewed by Dan Bernstein.

* UIProcess/API/C/WKPage.h:
* UIProcess/API/C/WKPageContextMenuClient.h: Added.
* UIProcess/API/C/WKPageFindClient.h: Added.
* UIProcess/API/C/WKPageFindMatchesClient.h: Added.
* UIProcess/API/C/WKPageFormClient.h: Added.
* UIProcess/API/C/WKPageLoaderClient.h:
* UIProcess/API/C/WKPagePolicyClient.h: Added.
* UIProcess/API/C/WKPageUIClient.h: Added.
* WebKit2.xcodeproj/project.pbxproj:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159715 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[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