Unreviewed, rolling out r158526.
http://trac.webkit.org/changeset/158526
https://bugs.webkit.org/show_bug.cgi?id=123744

it broke the build (Requested by jessieberlin on #webkit).

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createAesCbcParams):
(WebCore::createHmacParams):
(WebCore::createHmacKeyParams):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
* bindings/js/JSSubtleCryptoCustom.cpp:
* crypto/CryptoAlgorithmAesKeyGenParams.h: Removed.
* crypto/CryptoKey.cpp:
* crypto/CryptoKey.h:
* crypto/CryptoKeyAES.cpp:
* crypto/CryptoKeyAES.h:
* crypto/CryptoKeyMac.cpp: Removed.
* crypto/SubtleCrypto.idl:
* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
* crypto/keys/CryptoKeyHMAC.cpp:
* crypto/keys/CryptoKeyHMAC.h:
* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
(WebCore::CryptoAlgorithmAES_CBC::generateKey):
* crypto/mac/CryptoAlgorithmHMACMac.cpp:
(WebCore::CryptoAlgorithmHMAC::generateKey):

LayoutTests:

* crypto/subtle/aes-cbc-generate-key-expected.txt: Removed.
* crypto/subtle/aes-cbc-generate-key.html: Removed.
* crypto/subtle/hmac-generate-key-expected.txt: Removed.
* crypto/subtle/hmac-generate-key.html: Removed.
* crypto/subtle/sha-1-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158578 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK][WK1] Enable CSS Regions if feature flag is set to TRUE
https://bugs.webkit.org/show_bug.cgi?id=123739

Reviewed by Martin Robinson.

In WK1 CSS Regions were always disabled even if you set the feature flag
ENABLE_CSS_REGIONS to TRUE. Enabling CSS Regions support in that case.

* webkit/webkitwebview.cpp:
(webkit_web_view_update_settings): Enable CSS Regions if feautre flag is
set to TRUE.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158579 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[sh4] Refactor jumps in baseline JIT to return label after the jump.
https://bugs.webkit.org/show_bug.cgi?id=123734

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-11-04
Reviewed by Michael Saboff.

Current implementation of jumps in sh4 baseline JIT returns a label on the jump itself
and not after it. This is not correct and leads to issues like infinite loop the DFG
(https://bugs.webkit.org/show_bug.cgi?id=122597 for instance). This refactor fixes this
and also simplifies the link and relink procedures for sh4 jumps.

* assembler/MacroAssemblerSH4.h:
(JSC::MacroAssemblerSH4::branchDouble):
(JSC::MacroAssemblerSH4::branchTrue):
(JSC::MacroAssemblerSH4::branchFalse):
* assembler/SH4Assembler.h:
(JSC::SH4Assembler::jmp):
(JSC::SH4Assembler::extraInstrForBranch):
(JSC::SH4Assembler::jne):
(JSC::SH4Assembler::je):
(JSC::SH4Assembler::bra):
(JSC::SH4Assembler::linkJump):
(JSC::SH4Assembler::relinkJump):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158580 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Revert SetCGFontRenderingMode() build fix for Chromium Mac
https://bugs.webkit.org/show_bug.cgi?id=123633

Reviewed by Darin Adler.

Reverts <http://trac.webkit.org/changeset/134380>, which
was a Chromium Mac build fix for <http://trac.webkit.org/changeset/134348>
(https://bugs.webkit.org/show_bug.cgi?id=101787). Chromium doesn't
build against top-of-tree WebKit.

* platform/graphics/mac/FontMac.mm:
(WebCore::Font::drawGlyphs):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158581 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Implement generateKey for HMAC and AES-CBC
https://bugs.webkit.org/show_bug.cgi?id=123669

Reviewed by Dan Bernstein.

Source/WebCore: 

Tests: crypto/subtle/aes-cbc-generate-key.html
       crypto/subtle/hmac-generate-key.html

* WebCore.xcodeproj/project.pbxproj: Added new files.

* bindings/js/JSCryptoAlgorithmDictionary.cpp:
(WebCore::createAesKeyGenParams): Added bindings for AesKeyGenParams.
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey): Handle
algorithms that generate AES and HMAC keys.

* bindings/js/JSSubtleCryptoCustom.cpp: (WebCore::JSSubtleCrypto::generateKey): Added.

* crypto/CryptoAlgorithmAesKeyGenParams.h: Added.

* crypto/CryptoKey.cpp: (WebCore::CryptoKey::randomData):
* crypto/CryptoKey.h:
* crypto/CryptoKeyMac.cpp: Added
Expose a function that produces random data for symmetric crypto keys. Cross-platform
implementation uses ARC4 code from WTF, while Mac uses a system function that
provides a FIPS validated random number generator.

* crypto/CryptoKeyAES.cpp: (WebCore::CryptoKeyAES::generate):
* crypto/CryptoKeyAES.h:
Added a function that creates AES keys.

* crypto/SubtleCrypto.idl: Added generateKey.

* crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
(WebCore::CryptoAlgorithmAES_CBC::generateKey): Added.

* crypto/algorithms/CryptoAlgorithmHMAC.cpp:
(WebCore::CryptoAlgorithmHMAC::generateKey): Added.

* crypto/keys/CryptoKeyHMAC.cpp: (WebCore::CryptoKeyHMAC::generate):
* crypto/keys/CryptoKeyHMAC.h:
Added a function that creates HMAC keys.

* crypto/mac/CryptoAlgorithmAES_CBCMac.cpp: Removed generateKey stub, the implementation
ended up in cross-platform file.

* crypto/mac/CryptoAlgorithmHMACMac.cpp: Ditto.

LayoutTests: 

* crypto/subtle/aes-cbc-generate-key-expected.txt: Added.
* crypto/subtle/aes-cbc-generate-key.html: Added.
* crypto/subtle/hmac-generate-key-expected.txt: Added.
* crypto/subtle/hmac-generate-key.html: Added.

* crypto/subtle/sha-1-expected.txt: Now that crypto.webkitSubtle.generateKey exists,
a different exception is raised.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158582 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JSArrayBufferViews of length 0 allocate 0 CopiedSpace bytes, which is invalid
https://bugs.webkit.org/show_bug.cgi?id=123746

Reviewed by Geoffrey Garen.

Source/JavaScriptCore: 

This patch disallows clients from allocating 0 bytes in CopiedSpace. We enforce this invariant 
with an ASSERT in C++ code and a breakpoint in JIT code. Clients who care about 0-byte 
allocations (like JSArrayBufferViews) must handle that case themselves, but we don't punish 
anybody else for the rare case that somebody decides to allocate a 0-length typed array. 
It also makes the allocation and copying cases consistent for CopiedSpace: no 0-byte allocations, 
no 0-byte copying.
 
Also added a check so that JSArrayBufferViews don't try to copy their m_vector backing store when 
their length is 0. Also sprinkled several ASSERTs throughout the JSArrayBufferView code to make sure that 
when length is 0 m_vector is null.

* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileNewTypedArray):
* dfg/DFGSpeculativeJIT.h:
(JSC::DFG::SpeculativeJIT::emitAllocateBasicStorage):
* heap/CopiedSpaceInlines.h:
(JSC::CopiedSpace::tryAllocate):
* runtime/ArrayBuffer.h:
(JSC::ArrayBuffer::create):
* runtime/JSArrayBufferView.cpp:
(JSC::JSArrayBufferView::ConstructionContext::ConstructionContext):
* runtime/JSGenericTypedArrayViewInlines.h:
(JSC::::visitChildren):
(JSC::::copyBackingStore):
(JSC::::slowDownAndWasteMemory):

LayoutTests: 

Added a test to make sure that we don't crash when allocating a typed array with 0 length.

* js/script-tests/typedarray-zero-size.js: Added.
(foo):
* js/typedarray-zero-size-expected.txt: Added.
* js/typedarray-zero-size.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158583 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[css shapes] Fix support for shape-outside on a float with padding
https://bugs.webkit.org/show_bug.cgi?id=123590

Reviewed by Alexandru Chiculita.

Source/WebCore:

The line top was being improperly converted to the coordinates of the
shape, causing the shape to be positioned incorrectly when the float
had padding. This fixes that problem.

No new tests, covered by updates to existing ones.

* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine):

LayoutTests:

Fix existing tests that depended on the incorrect behavior so that
they are now testing the proper thing. Also fix up the tests to make
them clearer and more robust.

* csswg/contributors/adobe/submitted/shapes/shape-outside/resources/w3c-import.log:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-circle-000-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-circle-000.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-ellipse-000-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-ellipse-000.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-inset-rectangle-001-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-inset-rectangle-001.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-000-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-000.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-001-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-001.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-002-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-002.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-003-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-003.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-004-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-004.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-005-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-005.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-006-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-006.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-007-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-007.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-008-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-008.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-009-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-009.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-rounded-rectangle-001-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-rounded-rectangle-001.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-rounded-rectangle-002-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-rounded-rectangle-002.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-rounded-rectangle-003-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-rounded-rectangle-003.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-rounded-rectangle-004-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-rounded-rectangle-004.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-square-border-000-expected.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-square-border-000.html:
* csswg/contributors/adobe/submitted/shapes/shape-outside/w3c-import.log:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158584 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Build fixes. In particular, we were missing the code to generate JSONs in report.php :(

* public/api/report.php:
* public/include/test-results.php:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158585 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Eliminate HostCall bit from JSC Stack CallerFrame
https://bugs.webkit.org/show_bug.cgi?id=123642

Reviewed by Geoffrey Garen.

Source/JavaScriptCore: 

Replace the HostCallFrame bit or'ed to the CallerFrame value in a CallFrame with
a VM entry sentinel CallFrame.  Logically, the VM entry sentinel call frame is
pushed on the stack before the callee frame when calling from native to JavaScript
code.  The callee frame's CallerFrame points at the VM entry sentinel call frame
and the VM entry sentinel call frame's CallerFrame points to the real caller.
The VM entry sentinel call frame has a sentinel (1) in the CodeBlock to indicate
its a VM entry sentinel call frame.  It's ScopeChain has vm.topCallFrame at the
time of the call.  This allows for a complete stack walk as well as walking just
the contiguous JS frames.

The VM entry sentinel call frame and callee frame are currently allocated and
initialized in ExecState::init(), but this initialization will be moved to
ctiTrampoline when we actually move onto the native stack.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::noticeIncomingCall):
* debugger/DebuggerCallFrame.cpp:
(JSC::DebuggerCallFrame::callerFrame):
* dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::compileExceptionHandlers):
* interpreter/CallFrame.h:
(JSC::ExecState::frameExtent):
(JSC::ExecState::currentVPC):
(JSC::ExecState::setCurrentVPC):
(JSC::ExecState::init):
(JSC::ExecState::noCaller):
(JSC::ExecState::isVMEntrySentinel):
(JSC::ExecState::vmEntrySentinelCallerFrame):
(JSC::ExecState::initializeVMEntrySentinelFrame):
(JSC::ExecState::callerFrameSkippingVMEntrySentinel):
(JSC::ExecState::vmEntrySentinelCodeBlock):
* interpreter/Interpreter.cpp:
(JSC::unwindCallFrame):
(JSC::Interpreter::getStackTrace):
* interpreter/Interpreter.h:
(JSC::TopCallFrameSetter::TopCallFrameSetter):
(JSC::TopCallFrameSetter::~TopCallFrameSetter):
(JSC::NativeCallFrameTracer::NativeCallFrameTracer):
* interpreter/JSStack.cpp:
(JSC::JSStack::~JSStack):
* interpreter/JSStackInlines.h:
(JSC::JSStack::getStartOfFrame):
(JSC::JSStack::pushFrame):
(JSC::JSStack::popFrame):
* interpreter/Register.h:
(JSC::Register::operator=):
(JSC::Register::callFrame):
* interpreter/StackVisitor.cpp:
(JSC::StackVisitor::readFrame):
(JSC::StackVisitor::readNonInlinedFrame):
(JSC::StackVisitor::readInlinedFrame):
(JSC::StackVisitor::Frame::print):
* interpreter/VMInspector.cpp:
(JSC::VMInspector::countFrames):
* jit/JIT.cpp:
(JSC::JIT::privateCompileExceptionHandlers):
* jit/JITOperations.cpp:
* jit/JITStubsARM.h:
(JSC::ctiTrampoline):
* jit/JITStubsARM64.h:
* jit/JITStubsARMv7.h:
(JSC::ctiTrampoline):
* jit/JITStubsMIPS.h:
* jit/JITStubsMSVC64.asm:
* jit/JITStubsSH4.h:
* jit/JITStubsX86.h:
* jit/JITStubsX86_64.h:
* jsc.cpp:
(functionDumpCallFrame):
* llint/LowLevelInterpreter.cpp:
(JSC::CLoop::execute):
* runtime/VM.cpp:
(JSC::VM::VM):
(JSC::VM::throwException):

Source/WebCore: 

Updated JavaScript stack walking as a result of the corresponding changes made in
JavaScriptCore.

* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::shouldBypassMainWorldContentSecurityPolicy):
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::stepOutOfFunction):
(WebCore::ScriptDebugServer::returnEvent):
(WebCore::ScriptDebugServer::didExecuteProgram):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158586 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make LiveNodeListBase use Elements instead of Nodes
https://bugs.webkit.org/show_bug.cgi?id=123745

Reviewed by Anders Carlsson.

* WebCore.exp.in:
* dom/Element.cpp:
(WebCore::Element::firstElementChild):
(WebCore::Element::lastElementChild):
        
    Switch to correct calls. ElementTraversal::previous and previousChild are no longer equivalent.

* dom/ElementTraversal.h:
(WebCore::::lastWithinTemplate):
(WebCore::::previousTemplate):
        
    Fix ElementTraversal::lastWithin and previous. They had no real clients and didn't work correctly.
    With LiveNodeListBase starting to use these they get excellent test coverage.

* dom/LiveNodeList.cpp:
(WebCore::LiveNodeListBase::invalidateCache):
* dom/LiveNodeList.h:
(WebCore::LiveNodeListBase::LiveNodeListBase):
(WebCore::LiveNodeListBase::isElementCacheValid):
(WebCore::LiveNodeListBase::cachedElement):
(WebCore::LiveNodeListBase::cachedElementOffset):
(WebCore::LiveNodeListBase::setCachedElement):
        
    Make the cache Element based.
    Switch to Elements in all helpers.
    Rename item -> element for clarity.

* dom/NodeIterator.cpp:
(WebCore::NodeIterator::NodePointer::moveToPrevious):
(WebCore::NodeIterator::updateForNodeRemoval):
        
    This code expected the old inconsistent NodeTraversal::previous behavior where the traversal includes
    the root as the last item. Drop the stayWithin parameter and handle the one case where it is needed here.

* dom/NodeTraversal.cpp:
(WebCore::NodeTraversal::last):
(WebCore::NodeTraversal::deepLastChild):
* dom/NodeTraversal.h:
        
    Support ElementTraversal::previous/lastWithin.

(WebCore::NodeTraversal::previous):
        
    This was slightly wrong too.

* html/HTMLCollection.cpp:
(WebCore::previousElement):
(WebCore::lastElement):
(WebCore::LiveNodeListBase::iterateForPreviousElement):
(WebCore::LiveNodeListBase::itemBefore):
(WebCore::LiveNodeListBase::isLastItemCloserThanLastOrCachedItem):
(WebCore::LiveNodeListBase::isFirstItemCloserThanCachedItem):
(WebCore::LiveNodeListBase::setCachedElement):
(WebCore::LiveNodeListBase::item):
(WebCore::LiveNodeListBase::elementBeforeOrAfterCachedElement):
* html/HTMLCollection.h:
(WebCore::HTMLCollection::isEmpty):
(WebCore::HTMLCollection::hasExactlyOneItem):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158587 268f45cc-cd09-0410-ab3c-d52691b4dbfc
More WKRemoteObjectRegistry work
https://bugs.webkit.org/show_bug.cgi?id=123754

Reviewed by Dan Bernstein.

Source/WebKit2:

* Shared/API/Cocoa/WKRemoteObjectCoder.h:
* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(-[WKRemoteObjectEncoder rootObjectDictionary]):
Add a getter for the root object dictionary.

* Shared/API/Cocoa/WKRemoteObjectRegistry.mm:
(-[WKRemoteObjectRegistry _sendInvocation:interface:]):
Call _sendMessageWithBody:.
(-[WKRemoteObjectRegistry _sendMessageWithBody:]):
Call WebConnection::postMessage.

Tools:

* TestWebKitAPI/Tests/WebKit2ObjC/WKRemoteObjectRegistry.mm:
(TestWebKitAPI::TEST):
Use the correct bundle test name. Call Util::run.

* TestWebKitAPI/Tests/mac/WKRemoteObjectRegistry_Bundle.mm:
(-[BundleObject sayHello]):
(-[BundleObject testMethodWithString:double:integer:]):
Add BundleObject implementation. Register the bundle object with
the remote object registry. Call _handleMessageWithName:body: on the incoming message.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158595 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Shapes] image valued shape element margin can cause an ASSERT fail
https://bugs.webkit.org/show_bug.cgi?id=123743

Reviewed by Andreas Kling.

Source/WebCore:

When margin-top is specified for a shape's element, the Y coordinates passed
to RasterShapeIntervals::getExcludedIntervals() may be negative. This is
because the incoming logical coordinates are relative to the content or
padding box, depending on the box-sizing property. The RasterShape::getExcludedIntervals()
method now clips the incoming Y coordinates to the shape's bounds before
accessing the shape's intervals.

Test: fast/shapes/shape-outside-floats/shape-outside-floats-margin-crash.html

* rendering/shapes/RasterShape.cpp:
(WebCore::RasterShapeIntervals::getExcludedIntervals):

LayoutTests:

Verify that an element with an image valued shape and a non-negative margin
does not cause an assertion failure.

* fast/shapes/shape-outside-floats/shape-outside-floats-margin-crash-expected.html: Added.
* fast/shapes/shape-outside-floats/shape-outside-floats-margin-crash.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158596 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[MSE] [Mac] Disclaim support for MSE in AVFoundation and QTKit engines
https://bugs.webkit.org/show_bug.cgi?id=123593

Reviewed by Eric Carlson.

Immediately fail if asked to load a Media Source in engines which do not support
them.

* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::load):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::load):
(WebCore::MediaPlayerPrivateQTKit::supportsType):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158597 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION(r158561): fast/block/float/float-append-child-crash.html asserting.

The non-const ancestor iterator was walking siblings, not ancestors.

Rubber-stamped by Antti Koivisto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158598 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[PluginProxy] Add a setting to disable video plugin proxy support in HTMLMediaElement.
https://bugs.webkit.org/show_bug.cgi?id=123621

Reviewed by Eric Carlson.

Source/WebCore:

Add a new Setting which will disable the video plugin proxy. Enable support for AVFoundation
in iOS (which requries fixing a few compile errors resulting from classes and methods which
are not available on iOS.

* WebCore.exp.in: Export wkAVAssetResolvedURL.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::canShareStyleWithElement): Make conditional upon
    new isVideoPluginProxyEnabled() setting.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::parseAttribute): Ditto.
* html/HTMLMediaElement.h:
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::createRenderer): Ditto.
(WebCore::HTMLVideoElement::attach): Ditto.
(WebCore::HTMLVideoElement::parseAttribute): Ditto.
(HTMLVideoElement::setDisplayMode): Ditto.
* html/HTMLVideoElement.h:
* page/Settings.cpp:
(WebCore::Settings::setVideoPluginProxyEnabled): Simple setter.
* page/Settings.h:
(WebCore::Settings::isVideoPluginProxyEnabled): Simple getter.
* platform/graphics/MediaPlayer.cpp:
(WebCore::installedMediaEngines): Conditionally add MediaPlayerPrivateIOS and always add
    MediaPlayerPriateAVFoundationObjC.
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::deliverNotification): Add default implementation.
(WebCore::MediaPlayerPrivateInterface::setMediaPlayerProxy): Ditto.
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Use new
    HAS_ and USE_ macros instead of __MAC_OS_MIN_VERNSION_REQUIRED.
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasContextRenderer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createContextVideoRenderer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyContextVideoRenderer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::paint): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Use cachedCGColor instead
    of CGColorGetConstantColor.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): Use CVPixelBuffer pixel
    format constant instead of QuickDraw constant.
(WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput): Draw to intermediary
    CGImage on iOS.
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
* platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.h:

Source/WebKit/mac:

Add a new isVideoPluginProxyEnabled setting.

* WebView/WebPreferenceKeysPrivate.h:
* WebView/WebPreferences.mm:
(+[WebPreferences initialize]): Set isVideoPluginProxyEnabled preference.
(-[WebPreferences isVideoPluginProxyEnabled]): Pass through to Settings.
* WebView/WebPreferencesPrivate.h:
* WebView/WebView.mm:
(-[WebView _preferencesChanged:]): Set isVideoPluginProxyEnabled preference.

Source/WebKit2:

Add WebKit2 functions for setting then new isVideoPluginProxyEnabled preference.

* Shared/WebPreferencesStore.h:
* UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetVideoPluginProxyEnabled):
(WKPreferencesGetVideoPluginProxyEnabled):
* UIProcess/API/C/WKPreferences.h:
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::updatePreferences):

Source/WTF:

Enable WTF_USE_AVFOUNDATION and add some HAVE_AVFOUNDATION_* defines
to replace the existing __MAC_OS_X_VERSION_MIN_REQUIRED macros in
MediaPlayerPrivateAVFoundationObjC.mm.

* wtf/Platform.h:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158599 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2] Update WebGeolocationManager to support multiple WebContent processes
https://bugs.webkit.org/show_bug.cgi?id=123658

Patch by Benjamin Poulain <bpoulain@apple.com> on 2013-11-04
Reviewed by Anders Carlsson.

Change WebGeolocationManagerProxy to track which WebProcessProxy needs geolocation.

* UIProcess/WebContext.cpp:
(WebKit::WebContext::disconnectProcess):
WebContext::disconnectProcess does not handle ContextSupplement yet when using multiple
WebContent processes. Add an explicit call for WebGeolocationManagerProxy as a temporary
solution.

* UIProcess/WebGeolocationManagerProxy.cpp:
(WebKit::WebGeolocationManagerProxy::WebGeolocationManagerProxy):
(WebKit::WebGeolocationManagerProxy::contextDestroyed):
(WebKit::WebGeolocationManagerProxy::processDidClose):
(WebKit::WebGeolocationManagerProxy::startUpdating):
(WebKit::WebGeolocationManagerProxy::stopUpdating):
(WebKit::WebGeolocationManagerProxy::removeRequester):
* UIProcess/WebGeolocationManagerProxy.h:
* UIProcess/WebGeolocationManagerProxy.messages.in:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158600 268f45cc-cd09-0410-ab3c-d52691b4dbfc
../WebKit: [Win] Use VersionStamper for official builds
https://bugs.webkit.org/show_bug.cgi?id=123758

Reviewed by Tim Horton.

* WebKit.vcxproj/WebKit/WebKitPostBuild.cmd: Restore command to
call VersionStamper on final stage of build.

../WTF: [Win] User VersionStamper for official builds
https://bugs.webkit.org/show_bug.cgi?id=123758

Reviewed by Tim Horton.

* WTF.vcxproj/WTFPostBuild.cmd: Add missing command to run VersionStamper.exe.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158602 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[MSE] Add a SourceBufferPrivateClient interface for platform -> html communication.
https://bugs.webkit.org/show_bug.cgi?id=123373

Reviewed by Eric Carlson.

To enable communication between SourceBuffer and SourceBufferPrivate without introducing
layering violations, add a new interface class SourceBufferPrivateInterface from which
SourceBuffer will inherit.

* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::SourceBuffer): Set the private's client.
(WebCore::SourceBuffer::~SourceBuffer): Clear the private's client.
(WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Added stub.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment): Hinno.
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateHasAudio): Ditto.
(WebCore::SourceBuffer::sourceBufferPrivateHasVideo): Ditto.
* Modules/mediasource/SourceBuffer.h:
* WebCore.xcodeproj/project.pbxproj: Add new files to project.
* platform/graphics/SourceBufferPrivate.h:
* platform/graphics/SourceBufferPrivateClient.h: Added.
(WebCore::SourceBufferPrivateClient::~SourceBufferPrivateClient): Empty destructor.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158606 268f45cc-cd09-0410-ab3c-d52691b4dbfc
DFG NewArray/NewArrayBuffer shouldn't be constructing with negative indexing
https://bugs.webkit.org/show_bug.cgi?id=123760
<rdar://problem/15356705>

Reviewed by Mark Hahnenberg and Oliver Hunt.

Source/JavaScriptCore: 

* dfg/DFGOperations.cpp:

LayoutTests: 

* js/dfg-new-array-buffer-while-having-a-bad-time-expected.txt: Added.
* js/dfg-new-array-buffer-while-having-a-bad-time.html: Added.
* js/dfg-new-array-while-having-a-bad-time-expected.txt: Added.
* js/dfg-new-array-while-having-a-bad-time.html: Added.
* js/script-tests/dfg-new-array-buffer-while-having-a-bad-time.js: Added.
(foo):
* js/script-tests/dfg-new-array-while-having-a-bad-time.js: Added.
(foo):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@158608 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WKRemoteObjectEncoder should escape keys
https://bugs.webkit.org/show_bug.cgi?id=123761

Reviewed by Tim Horton.

Keys that start with $ will be reserved for use by the coder, so prepend an extra
$ to keys that already start with $ to avoid clashes.

* Shared/API/Cocoa/WKRemoteObjectCoder.mm:
(escapeKey):
(-[WKRemoteObjectEncoder encodeBytes:length:forKey:]):
(-[WKRemoteObjectEncoder _encodeObjectForKey:usingBlock:]):

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