[CSS Shapes] shape-inside rectangle layout can fail
https://bugs.webkit.org/show_bug.cgi?id=124784

Reviewed by Andreas Kling.

Source/WebCore:

Apply LayoutUnit::fromFloatCeil() consistently in RectangleShape::firstIncludedIntervalLogicalTop().

Test: fast/shapes/shape-inside/shape-inside-subpixel-rectangle-top.html

* rendering/shapes/RectangleShape.cpp:
(WebCore::RectangleShape::firstIncludedIntervalLogicalTop):

LayoutTests:

Regression test.

* fast/shapes/shape-inside/shape-inside-subpixel-rectangle-top-expected.html: Added.
* fast/shapes/shape-inside/shape-inside-subpixel-rectangle-top.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159821 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Shapes] Shape-Inside Should Default to 'auto'
https://bugs.webkit.org/show_bug.cgi?id=124851

Reviewed by Alexandru Chiculita.

Source/WebCore:

The current shape-inside specification has the property default to the 'auto'
value, not 'outside-shape'.

Updated tests are under fast/shapes.

* rendering/style/RenderStyle.cpp:
* rendering/style/RenderStyle.h:

LayoutTests:

Update tests to reflect a default shape-inside value of 'auto'.

* fast/shapes/css-shapes-disabled-expected.txt:
* fast/shapes/css-shapes-disabled.html:
* fast/shapes/parsing/parsing-shape-inside-expected.txt:
* fast/shapes/parsing/parsing-shape-inside.html:
* fast/shapes/parsing/parsing-shape-lengths-expected.txt:
* fast/shapes/parsing/parsing-shape-lengths.html:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159822 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Adding MediaConstraintsMock class
https://bugs.webkit.org/show_bug.cgi?id=124902

Patch by Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> on 2013-11-27
Reviewed by Eric Carlson.

Validate constraints used in RTCPeerConnection LayoutTests

Source/WebCore:

Existing test was updated.

* CMakeLists.txt:
* GNUmakefile.list.am:
* platform/mock/MediaConstraintsMock.cpp: Added.
* platform/mock/MediaConstraintsMock.h: Added.
* platform/mock/MockMediaStreamCenter.cpp:
(WebCore::MockMediaStreamCenter::validateRequestConstraints): Now using MediaConstraintsMock
(WebCore::MockMediaStreamCenter::createMediaStream): Ditto.
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::initialize): Ditto.

LayoutTests:

* fast/mediastream/RTCPeerConnection-expected.txt:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make WKBrowsingContextGroup work with WKObject wrapping
https://bugs.webkit.org/show_bug.cgi?id=124948

Reviewed by Dan Bernstein.

- Adds mechanism to use the inline data wrapping mechanism when the Objective-C wrapper is created
  by the caller (rather than by Object::newObject).
- Adopts the mechanism for WKBrowsingContextGroup.

* Shared/APIObject.h:
(API::Object::constructInWrapper):
Add a helper which does a forwarding placement-new into the API::Object of the passed in wrapper, after which it sets up m_wrapper.

(API::TypedObject::operator new):
Add a operator new to for placement-new. Also make TypedObject friends with Object so that constructInWrapper can call this.

* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Add support for WKBrowsingContextGroup.

* UIProcess/API/mac/WKBrowsingContextGroup.mm:
(-[WKBrowsingContextGroup API::]):
(-[WKBrowsingContextGroup dealloc]):
(-[WKBrowsingContextGroup initWithIdentifier:]):
(-[WKBrowsingContextGroup allowsJavaScript]):
(-[WKBrowsingContextGroup setAllowsJavaScript:]):
(-[WKBrowsingContextGroup allowsJavaScriptMarkup]):
(-[WKBrowsingContextGroup setAllowsJavaScriptMarkup:]):
(-[WKBrowsingContextGroup allowsPlugIns]):
(-[WKBrowsingContextGroup setAllowsPlugIns:]):
(-[WKBrowsingContextGroup addUserStyleSheet:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:mainFrameOnly:]):
(-[WKBrowsingContextGroup removeAllUserStyleSheets]):
(-[WKBrowsingContextGroup addUserScript:baseURL:whitelistedURLPatterns:blacklistedURLPatterns:injectionTime:mainFrameOnly:]):
(-[WKBrowsingContextGroup removeAllUserScripts]):
(-[WKBrowsingContextGroup _pageGroupRef]):
Convert from wrapping the C-SPI type to storing the bits of the wrapped object inline (modeled on WKBackForwardList).

* UIProcess/API/mac/WKBrowsingContextGroupInternal.h: Added.
(WebKit::wrapper):
Add wrapper() helper and declare conformance to the WKObject protocol.

* UIProcess/WebPageGroup.cpp:
(WebKit::WebPageGroup::create):
(WebKit::WebPageGroup::WebPageGroup):
* UIProcess/WebPageGroup.h:
Make the WebPageGroup constructor public (for use with Object::constructInWrapper) and move being set in the webPageGroupMap()
to the constructor.

* WebKit2.xcodeproj/project.pbxproj:
Add new file.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159824 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Do bytecode validation as part of testing
https://bugs.webkit.org/show_bug.cgi?id=124913

Source/JavaScriptCore: 

Reviewed by Oliver Hunt.
        
Also fix some small bugs in the bytecode liveness analysis that I found by doing
this validation thingy.

* bytecode/BytecodeLivenessAnalysis.cpp:
(JSC::isValidRegisterForLiveness):
(JSC::BytecodeLivenessAnalysis::runLivenessFixpoint):
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::validate):
(JSC::CodeBlock::beginValidationDidFail):
(JSC::CodeBlock::endValidationDidFail):
* bytecode/CodeBlock.h:
* runtime/Executable.cpp:
(JSC::ScriptExecutable::prepareForExecutionImpl):
* runtime/Options.h:

Source/WTF: 

Reviewed by Oliver Hunt.

* GNUmakefile.list.am:
* WTF.vcxproj/WTF.vcxproj:
* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/FastBitVector.cpp: Added.
(WTF::FastBitVector::dump):
* wtf/FastBitVector.h:
(WTF::FastBitVector::resize):
(WTF::FastBitVector::bitCount):
(WTF::FastBitVector::arrayLength):

Tools: 

Reviewed by Oliver Hunt.

* Scripts/run-jsc-stress-tests:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159825 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Finally fix some obvious Bartlett bugs
https://bugs.webkit.org/show_bug.cgi?id=124951

Reviewed by Mark Hahnenberg.
        
Sanitize the stack (i.e. zero parts of it known to be dead) at three key points:
        
- GC.
        
- At beginning of OSR entry.
        
- Just as we finish preparing OSR entry. This clears those slots on the stack that
  could have been live in baseline but that are known to be dead in DFG.
        
This is as much as a 2x speed-up on splay if you run it in certain modes, and run it
for a long enough interval. It appears to fix all instances of the dreaded exponential
heap growth that splay gets into when some stale pointer stays around.
        
This doesn't have much of an effect on real-world programs. This bug has only ever
manifested in splay and for that reason we thus far opted against fixing it. But splay
is, for what it's worth, the premiere GC stress test in JavaScript - so making sure we
can run it without pathologies - even when you tweak its configuration - is probably
fairly important.

* dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::noticeOSREntry):
* dfg/DFGOSREntry.cpp:
(JSC::DFG::prepareOSREntry):
* dfg/DFGOSREntry.h:
* heap/Heap.cpp:
(JSC::Heap::markRoots):
* interpreter/JSStack.cpp:
(JSC::JSStack::JSStack):
(JSC::JSStack::sanitizeStack):
* interpreter/JSStack.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159826 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Allow the QuickTime plug-in to be replaced by script in an isolated word
https://bugs.webkit.org/show_bug.cgi?id=124900

Reviewed by Dean Jackson.

Source/WebCore: 

Test: plugins/quicktime-plugin-replacement.html

* CMakeLists.txt: Add new Modules path.
* DerivedSources.make: Add new files.
* GNUmakefile.am: Add new Modules path.
* GNUmakefile.list.am: Add new header.
* WebCore.vcxproj/WebCore.vcxproj: Add new header.
* WebCore.vcxproj/WebCoreCommon.props: Add new Modules path.
* WebCore.xcodeproj/project.pbxproj: Add new files.

* Modules/plugins: Added.
* Modules/plugins/PluginReplacement.h: Added. Defines the interface for a plug-in replacement.

Create a replacement for the QuickTime plug-in.
* Modules/plugins/QuickTimePluginReplacement.cpp: Added.
* Modules/plugins/QuickTimePluginReplacement.css: Added.
* Modules/plugins/QuickTimePluginReplacement.h: Added.
* Modules/plugins/QuickTimePluginReplacement.idl: Added.
* Modules/plugins/QuickTimePluginReplacement.js: Added.

Allow plug-in replacement to be enabled at runtime.
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setPluginReplacementEnabled):
(WebCore::RuntimeEnabledFeatures::pluginReplacementEnabled):

* bindings/js/JSDOMBinding.h:
(WebCore::toJS): Add toJS(... const String& ...).

* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::pluginScriptObject): Give a plug-in replacement a first shot at defining the
    script interface.

* html/HTMLEmbedElement.cpp:
(WebCore::HTMLEmbedElement::updateWidget): Call base class requestObject.

* html/HTMLMediaElement.cpp:
(HTMLMediaElement::fileSize): New, passthrough to media engine.
* html/HTMLMediaElement.h:

* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::updateWidget): Call base class requestObject.

Moved some logic that was previously used only for creating a plug-in snapshot to the base
class so it can be shared by a plug-in replacement.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::HTMLPlugInElement): Initialize timer used to swap renderers.
(WebCore::HTMLPlugInElement::createRenderer): Allow plug-in replacement to create the renderer.
(WebCore::HTMLPlugInElement::swapRendererTimerFired): Create a shadow root.
(WebCore::HTMLPlugInElement::setDisplayState): Set the new state, prime the swap renderer 
    timer if necessary.
(WebCore::HTMLPlugInElement::didAddUserAgentShadowRoot): Tell the plug-in replacement to
    install itself in the new shadow DOM.
(WebCore::registeredPluginReplacements): Return vector of all registered plug-in replacements.
(WebCore::registerPluginReplacement): Add a plug-in replacement.
(WebCore::pluginReplacementForType): Find a plug-in replacement for a MIME type.
(WebCore::HTMLPlugInElement::requestObject): If there is a plug-in replacement for the MIME type,
    create it and set the display state.
(WebCore::HTMLPlugInElement::scriptObjectForPluginReplacement): Return the script object for 
    the current plug-in replacement, if any.
* html/HTMLPlugInElement.h:

Move some plug-in snapshot code into the base class.
* html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): No need to initialize timer.
(WebCore::HTMLPlugInImageElement::setDisplayState): Call base class.
(WebCore::HTMLPlugInImageElement::createRenderer): Ditto.
(WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot): Ditto.
(WebCore::HTMLPlugInImageElement::userDidClickSnapshot): Remove unnecessary class name.
(WebCore::HTMLPlugInImageElement::requestObject): New.
* html/HTMLPlugInImageElement.h:

* html/HTMLVideoElement.h: Make createRenderer public so the QuickTime plug-in replacement can
    call it.

* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::fileSize): New.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:

* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::extraMemoryCost): totalBytes returns an unsigned long long.
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(WebCore::MediaPlayerPrivateAVFoundation::fileSize):

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::totalBytes): Return an unsigned long long.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::totalBytes): Ditto.

* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup): Backup the plug-in replacement runtime setting.
(WebCore::InternalSettings::Backup::restoreTo): Restore it.
(WebCore::InternalSettings::setPluginReplacementEnabled): Set it.
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

LayoutTests: 

* platform/efl/TestExpectations: Skip the new test.
* platform/gtk/TestExpectations: Ditto.
* platform/wincairo/TestExpectations: Ditto.
* plugins/quicktime-plugin-replacement.html: Added.
* plugins/quicktime-plugin-replacement-expected.txt: Added.
* plugins/resources/orange.mov: Replace movie compressed with ancient (and deprecated) 
    animated gif codec with one compressed with H.264 codec.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159827 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[EFL] The remote inspector does not show the base page.
https://bugs.webkit.org/show_bug.cgi?id=124942

Patch by László Langó <lango@inf.u-szeged.hu> on 2013-11-27
Reviewed by Gyuyoung Kim.

On EFL the remote inspector does not show the base page about
which pages are available for debug. This should be fixed for
further inspector development.

* Source/PlatformEfl.cmake:

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159828 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make WKProcessGroup work with WKObject wrapping
https://bugs.webkit.org/show_bug.cgi?id=124952

Reviewed by Dan Bernstein.

* Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Add support for WKProcessGroup.

* UIProcess/API/mac/WKProcessGroup.mm:
(-[WKProcessGroup initWithInjectedBundleURL:]):
(-[WKProcessGroup dealloc]):
(-[WKProcessGroup API::]):
(-[WKProcessGroup _contextRef]):
(-[WKProcessGroup _geolocationProvider]):
Convert from wrapping the C-SPI type to storing the bits of the wrapped object inline

* UIProcess/API/mac/WKProcessGroupInternal.h: Added.
(WebKit::wrapper):
Add wrapper() helper and declare conformance to the WKObject protocol.

* UIProcess/WebContext.cpp:
(WebKit::WebContext::create):
(WebKit::WebContext::WebContext):
* UIProcess/WebContext.h:
Make the WebContext constructor public (for use with Object::constructInWrapper) and remove unused ProcessModel parameter.

* WebKit2.xcodeproj/project.pbxproj:
Add new file.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159829 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add accessors for the WKProcessGroup and WKBrowsingContextGroup on the WKBrowsingContextController
https://bugs.webkit.org/show_bug.cgi?id=124953

Reviewed by Dan Bernstein.

* UIProcess/API/mac/WKBrowsingContextController.h:
* UIProcess/API/mac/WKBrowsingContextController.mm:
(-[WKBrowsingContextController processGroup]):
(-[WKBrowsingContextController browsingContextGroup]):
Add accessors.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159830 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix the iOS build.

../WebKit: 

* WebKit.xcodeproj/project.pbxproj:

../WebKit/mac: 

* WebView/WebAllowDenyPolicyListener.h: Added.
* WebView/WebUIDelegatePrivate.h:
Move the WebAllowDenyPolicyListener protocol to its own file.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159831 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix the iOS build.

* UIProcess/API/ios/WKGeolocationProviderIOS.mm:
* UIProcess/API/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159832 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Give the PageClient a chance to handle geolocation permission requests if the UIClient doesn't handle it
https://bugs.webkit.org/show_bug.cgi?id=124955

Reviewed by Dan Bernstein.

Use the new PageClient function to remove the need for WKContentView to take over the WKPageUIClient.

* UIProcess/API/ios/PageClientImplIOS.h:
* UIProcess/API/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::decidePolicyForGeolocationPermissionRequest):
* UIProcess/API/ios/WKContentView.mm:
(-[WKContentView _decidePolicyForGeolocationRequestFromOrigin:frame:request:]):
(-[WKContentView _commonInitWithProcessGroup:browsingContextGroup:]):
* UIProcess/API/ios/WKContentViewInternal.h:
* UIProcess/PageClient.h:
(WebKit::PageClient::decidePolicyForGeolocationPermissionRequest):
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestGeolocationPermissionForFrame):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159833 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Infer one-time scopes
https://bugs.webkit.org/show_bug.cgi?id=124812

Source/JavaScriptCore: 

Reviewed by Oliver Hunt.
        
This detects JSActivations that are created only once. The JSActivation pointer is then
baked into the machine code.
        
This takes advantage of the one-time scope inference to reduce the number of
indirections needed to get to a closure variable in case where the scope is only
allocated once. This isn't really a speed-up since in the common case the total number
of instruction bytes needed to load the scope from the stack is about equal to the
number of instruction bytes needed to materialize the absolute address of a scoped
variable. But, this is a necessary prerequisite to
https://bugs.webkit.org/show_bug.cgi?id=124630, so it's probably a good idea anyway.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finalizeUnconditionally):
* bytecode/Instruction.h:
* bytecode/Opcode.h:
(JSC::padOpcodeName):
* bytecode/Watchpoint.h:
(JSC::WatchpointSet::notifyWrite):
(JSC::InlineWatchpointSet::notifyWrite):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitResolveScope):
* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::::executeEffects):
* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
* dfg/DFGCSEPhase.cpp:
(JSC::DFG::CSEPhase::scopedVarLoadElimination):
(JSC::DFG::CSEPhase::scopedVarStoreElimination):
(JSC::DFG::CSEPhase::getLocalLoadElimination):
(JSC::DFG::CSEPhase::setLocalStoreElimination):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGGraph.cpp:
(JSC::DFG::Graph::tryGetRegisters):
* dfg/DFGGraph.h:
* dfg/DFGNode.h:
(JSC::DFG::Node::varNumber):
(JSC::DFG::Node::hasSymbolTable):
(JSC::DFG::Node::symbolTable):
* dfg/DFGNodeType.h:
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGWatchpointCollectionPhase.cpp:
(JSC::DFG::WatchpointCollectionPhase::handle):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileGetClosureRegisters):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
* runtime/JSActivation.h:
(JSC::JSActivation::create):
* runtime/JSScope.cpp:
(JSC::abstractAccess):
(JSC::JSScope::abstractResolve):
* runtime/JSScope.h:
(JSC::ResolveOp::ResolveOp):
* runtime/JSVariableObject.h:
(JSC::JSVariableObject::registers):
* runtime/SymbolTable.cpp:
(JSC::SymbolTable::SymbolTable):
* runtime/SymbolTable.h:

LayoutTests: 

Reviewed by Oliver Hunt.

* js/regress/infer-one-time-closure-expected.txt: Added.
* js/regress/infer-one-time-closure-ten-vars-expected.txt: Added.
* js/regress/infer-one-time-closure-ten-vars.html: Added.
* js/regress/infer-one-time-closure-two-vars-expected.txt: Added.
* js/regress/infer-one-time-closure-two-vars.html: Added.
* js/regress/infer-one-time-closure.html: Added.
* js/regress/infer-one-time-deep-closure-expected.txt: Added.
* js/regress/infer-one-time-deep-closure.html: Added.
* js/regress/script-tests/infer-one-time-closure-ten-vars.js: Added.
* js/regress/script-tests/infer-one-time-closure-two-vars.js: Added.
* js/regress/script-tests/infer-one-time-closure.js: Added.
* js/regress/script-tests/infer-one-time-deep-closure.js: Added.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159834 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Add a bunch of early exits and local optimizations to the x86 assembler.
https://bugs.webkit.org/show_bug.cgi?id=124904

Reviewed by Filip Pizlo.

* assembler/MacroAssemblerX86.h:
(JSC::MacroAssemblerX86::add32):
(JSC::MacroAssemblerX86::add64):
(JSC::MacroAssemblerX86::or32):
* assembler/MacroAssemblerX86Common.h:
(JSC::MacroAssemblerX86Common::add32):
(JSC::MacroAssemblerX86Common::or32):
* assembler/MacroAssemblerX86_64.h:
(JSC::MacroAssemblerX86_64::add32):
(JSC::MacroAssemblerX86_64::or32):
(JSC::MacroAssemblerX86_64::add64):
(JSC::MacroAssemblerX86_64::or64):
(JSC::MacroAssemblerX86_64::xor64):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159835 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Typo fix after r159834 to fix 32 bit builds.

Patch by Peter Gal <galpeter@inf.u-szeged.hu> on 2013-11-28
Reviewed by Csaba Osztrogonác.

* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159836 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Support custom types for drag and drop data
https://bugs.webkit.org/show_bug.cgi?id=124659

Patch by Gustavo Noronha Silva <gustavo.noronha@collabora.com> on 2013-11-27
Reviewed by Martin Robinson.

Source/WebCore:

Covered by fast/events/drag-customData.html.

* platform/gtk/DataObjectGtk.cpp:
(WebCore::DataObjectGtk::unknownTypes): returns a hash map with all custom types set.
(WebCore::DataObjectGtk::clearAllExceptFilenames): clear custom types.
* platform/gtk/DataObjectGtk.h:
(WebCore::DataObjectGtk::hasUnknownTypeData): returns whether custom types are set.
(WebCore::DataObjectGtk::unknownTypeData): returns the data for a custom type.
(WebCore::DataObjectGtk::setUnknownTypeData): sets the data for a custom type.
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::writeString): handle unknown types as custom.
(WebCore::Pasteboard::writePasteboard): ditto.
(WebCore::Pasteboard::hasData): also check for custom types.
(WebCore::Pasteboard::types): also obtain the list of custom types.
(WebCore::Pasteboard::readString): handle unknown types as custom.
* platform/gtk/PasteboardHelper.cpp:
(WebCore::initGdkAtoms): new unknown atom.
(WebCore::PasteboardHelper::PasteboardHelper): add custom type to the list of targets.
(WebCore::PasteboardHelper::fillSelectionData): turns any custom types' data into a GVariant, which
is in turn serialized to a single string for GtkSelectionData to hold.
(WebCore::PasteboardHelper::targetListForDataObject): add custom data to the target list if any is
set.
(WebCore::PasteboardHelper::fillDataObjectFromDropData): retrieve the custom types and their data
from the serialized GVariant string held by GtkSelectionData.
(WebCore::PasteboardHelper::dropAtomsForContext): handle custom types.

Source/WebKit2:

* Shared/gtk/ArgumentCodersGtk.cpp:
(CoreIPC::encodeDataObject): encode the unknown types data.
(CoreIPC::decodeDataObject): decode the unknown types data.

LayoutTests:

* platform/gtk/TestExpectations: remove failure expectation for test that now passes.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159837 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Checkout should own the scm object in Host
https://bugs.webkit.org/show_bug.cgi?id=124943

Patch by Dániel Bátyai <Batyai.Daniel@stud.u-szeged.hu> on 2013-11-28
Reviewed by Ryosuke Niwa.

* Scripts/webkitpy/common/host.py:
(Host.__init__):
(Host.initialize_scm):
(Host.scm):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159838 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Move PrettyPatch related code to prettypatch.py
https://bugs.webkit.org/show_bug.cgi?id=124937

Patch by Dániel Bátyai <Batyai.Daniel@stud.u-szeged.hu> on 2013-11-28
Reviewed by Ryosuke Niwa.

This code seems to have a better place here than in Port, since PrettyPatch already knows
pretty_patch_path, and this also unifies the usage of PrettyPatch

* Scripts/webkitpy/common/prettypatch.py:
(PrettyPatch.__init__):
(PrettyPatch.pretty_diff):
(PrettyPatch):
(PrettyPatch.pretty_patch_available):
(PrettyPatch.check_pretty_patch):
(PrettyPatch.pretty_patch_text):
* Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:
(TestResultWriter.create_text_diff_and_write_result):
* Scripts/webkitpy/layout_tests/models/test_run_results.py:
(summarize_results):
* Scripts/webkitpy/port/base.py:
(Port.__init__):
(Port.wdiff_available):
(Port.check_image_diff):
(Port.wdiff_text):
* Scripts/webkitpy/port/base_unittest.py:
(PortTest.test_pretty_patch_os_error):
(PortTest.test_pretty_patch_script_error):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@159839 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Updating RTCPeerConnectionHandlerMock after r159769
https://bugs.webkit.org/show_bug.cgi?id=124947

Patch by Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> on 2013-11-28
Reviewed by Philippe Normand.

Adding its create function back, in order to run RTCPeerConnection LayoutTests.

No new tests needed.

* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::create):
* platform/mock/RTCPeerConnectionHandlerMock.h:

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