⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Timeline



Nov 27, 2013:

11:40 PM Changeset in webkit [159835] by nrotem@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

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):

11:10 PM Changeset in webkit [159834] by fpizlo@apple.com
  • 31 edits
    12 adds in trunk

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.
8:34 PM Changeset in webkit [159833] by weinig@apple.com
  • 7 edits in trunk/Source/WebKit2

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):

7:23 PM Changeset in webkit [159832] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit2

Fix the iOS build.

  • UIProcess/API/ios/WKGeolocationProviderIOS.mm:
  • UIProcess/API/ios/WKGeolocationProviderIOSObjCSecurityOrigin.mm:
7:14 PM Changeset in webkit [159831] by weinig@apple.com
  • 4 edits
    1 add in trunk/Source/WebKit

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.

6:25 PM Changeset in webkit [159830] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit2

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.

6:03 PM Changeset in webkit [159829] by weinig@apple.com
  • 6 edits
    1 add in trunk/Source/WebKit2

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.

5:20 PM Changeset in webkit [159828] by commit-queue@webkit.org
  • 2 edits in trunk

[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:
5:05 PM Changeset in webkit [159827] by eric.carlson@apple.com
  • 37 edits
    9 adds in trunk

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.

4:22 PM Changeset in webkit [159826] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

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:
3:15 PM Changeset in webkit [159825] by fpizlo@apple.com
  • 15 edits
    1 add in trunk

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:
2:48 PM Changeset in webkit [159824] by weinig@apple.com
  • 7 edits
    1 add in trunk/Source/WebKit2

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.

1:03 PM Changeset in webkit [159823] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

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:
12:19 PM Changeset in webkit [159822] by betravis@adobe.com
  • 10 edits in trunk

[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:
12:17 PM Changeset in webkit [159821] by hmuller@adobe.com
  • 3 edits
    2 adds in trunk

[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.
11:02 AM Changeset in webkit [159820] by commit-queue@webkit.org
  • 2 edits
    2 deletes in trunk/Source

Remove Qt-specific .qrc files
https://bugs.webkit.org/show_bug.cgi?id=124944

Patch by Nick Diego Yamane <nick.yamane@openbossa.org> on 2013-11-27
Reviewed by Andreas Kling.

Source/WebCore:

No new tests needed.

  • WebCore.qrc: Removed.

Source/WebKit2:

  • WebKit2.qrc: Removed.
9:41 AM Changeset in webkit [159819] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Tools/Scripts/update-webkitgtk-libs fails due to missing fontutils dependencies for building the "xserver" module
https://bugs.webkit.org/show_bug.cgi?id=124940

Patch by Andres Gomez <Andres Gomez> on 2013-11-27
Reviewed by Martin Robinson.

xserver-font-utils is needed for building gtk port dependencies
with jhbuild.

  • gtk/install-dependencies: Added xserver-font-utils to jhbuild

dependecies.

9:24 AM Changeset in webkit [159818] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Tools/Scripts/update-webkitgtk-libs unsorted and fails because of missing "git"
https://bugs.webkit.org/show_bug.cgi?id=124938

Patch by Andres Gomez <Andres Gomez> on 2013-11-27
Reviewed by Philippe Normand.

Added needed git dependency for building the gtk port with
jhbuild. Also, the dependencies needed for building the gtk port
are now sorted alphabetically.

  • gtk/install-dependencies: Added git as jhbuild dependency and

sorted dependencies alphabetically.

8:35 AM Changeset in webkit [159817] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WTF

Remove Sparc specific code.
https://bugs.webkit.org/show_bug.cgi?id=124941

Patch by Tamas Gergely <tgergely.u-szeged@partner.samsung.com> on 2013-11-27
Reviewed by Michael Saboff.

Sparc is not supported, remove leftover code.

  • wtf/Platform.h:
  • wtf/dtoa/utils.h:
8:23 AM WebKitGTK/Releasing edited by Andres Gomez
(diff)
8:22 AM WebKitGTK/StartHacking edited by Andres Gomez
(diff)
8:16 AM WebKitGTK/Releasing edited by Andres Gomez
(diff)
8:12 AM Changeset in webkit [159816] by rniwa@webkit.org
  • 2 edits in trunk/PerformanceTests

Build fix after r159805.

  • resources/runner.js:
8:09 AM WebKitGTK/StableRelease created by Andres Gomez
8:02 AM WebKitGTK edited by Andres Gomez
(diff)
7:55 AM Changeset in webkit [159815] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

run_webkit_tests.py: error: no such option: --wincairo
https://bugs.webkit.org/show_bug.cgi?id=124927

Patch by Jozsef Berta <jberta@inf.u-szeged.hu> on 2013-11-27
Reviewed by Ryosuke Niwa.

  • BuildSlaveSupport/build.webkit.org-config/config.json: The run_webkit_tests.py doesn't supports

the layout testing on wincairo, so it is turned off.

7:10 AM Changeset in webkit [159814] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Structure::m_staticFunctionReified should be a single bit.
<https://webkit.org/b/124912>

Shave 8 bytes off of JSC::Structure by jamming m_staticFunctionReified
into the bitfield just above.

Reviewed by Antti Koivisto.

7:05 AM Changeset in webkit [159813] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSActivation constructor should use NotNull placement new.
<https://webkit.org/b/124909>

Knock a null check outta the storage initialization loop.

Reviewed by Antti Koivisto.

6:34 AM Changeset in webkit [159812] by Michał Pakuła vel Rutka
  • 3 edits in trunk/LayoutTests

Unreviewed EFL gardening

Add test expectations for flaky tests.

  • platform/efl-wk2/TestExpectations:
  • platform/efl/TestExpectations:
5:04 AM Changeset in webkit [159811] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[GTK] Programs/WebKit2APITests/TestWebKitSettings unit test is failing
https://bugs.webkit.org/show_bug.cgi?id=124924

Reviewed by Carlos Garcia Campos.

'Chrome'/'Chromium' substrings were removed from the user agent string in r159572, meaning the unit
test shouldn't check for those two substrings anymore. Instead, 'Safari' (as until now) and 'AppleWebKit'
substrings should be checked for.

  • UIProcess/API/gtk/tests/TestWebKitSettings.cpp:

(testWebKitSettingsUserAgent):

4:21 AM WebKitGTK/SpeedUpBuild edited by Manuel Rego Casasnovas
Fix typo (diff)
3:48 AM WebKitGTK/SpeedUpBuild edited by Manuel Rego Casasnovas
Add documentation about icecc (diff)
2:47 AM Changeset in webkit [159810] by calvaris@igalia.com
  • 3 edits
    2 adds in trunk

[GStreamer] Invalid command line error when visiting www.chessbase.com
https://bugs.webkit.org/show_bug.cgi?id=124715

Reviewed by Philippe Normand.

Source/WebCore:

We were not handling the HTTP errors in the WebKit GStreamer
source and therefore the 404 error page was being 'decoded'. As no
decoder could be found (for obvious reasons), playback failed, but
it should be failing for the source not being found instead of the
decoding problem.

Test: http/tests/media/video-error-does-not-exist.html

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(StreamingClient::handleResponseReceived): Handle HTTP errors in
the source and raise a GStreamer error to the pipeline.

LayoutTests:

Copied and adapted for HTTP from
media/video-error-does-not-exist.html.

  • http/tests/media/video-error-does-not-exist-expected.txt: Added.
  • http/tests/media/video-error-does-not-exist.html: Added.
12:43 AM Changeset in webkit [159809] by svillar@igalia.com
  • 8 edits
    2 adds in trunk

[CSS Grid Layout] Fix positioning of grid items with margins
https://bugs.webkit.org/show_bug.cgi?id=124345

Reviewed by David Hyatt.

From Blink r157925 and r158041 by <jchaffraix@chromium.org>

Source/WebCore:

Test: fast/css-grid-layout/grid-item-margin-resolution.html

Adds margin start/before to the positions of grid items (removing
several FIXME's in the current code). This means calling
findChildLogicalPosition() after the layout in order to have the
right values for the margins.

In order to match flexbox and author's intents we're also
including the margins of grid items in the intrinsic size of the
grid. That's why flexbox's marginLogicalPositionForChild() is
moved up to RenderBlock in order to share it with RenderGrid.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::marginIntrinsicLogicalWidthForChild): Moved
from RenderFlexibleBox::marginLogicalWidthForChild().

  • rendering/RenderBlock.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computeIntrinsicLogicalWidths):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computePreferredTrackWidth):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::findChildLogicalPosition):

LayoutTests:

New test case for grid items margin resolution. Extended the
preferred logical widths checks with grid items with margins.

  • fast/css-grid-layout/grid-item-margin-resolution-expected.txt: Added.
  • fast/css-grid-layout/grid-item-margin-resolution.html: Added.
  • fast/css-grid-layout/grid-preferred-logical-widths-expected.txt:
  • fast/css-grid-layout/grid-preferred-logical-widths.html:
12:31 AM Changeset in webkit [159808] by svillar@igalia.com
  • 7 edits
    2 adds in trunk

[CSS Grid Layout] Support grid-definition-{rows|columns} repeat() syntax
https://bugs.webkit.org/show_bug.cgi?id=103312

Reviewed by Andreas Kling.

PerformanceTests:

Use the repeat() syntax to build the huge grids used by the
performance tests.

  • Layout/auto-grid-lots-of-data.html:
  • Layout/fixed-grid-lots-of-data.html:

Source/WebCore:

Added support for the repeat() syntax inside
grid-definition-{rows|columns} by just adding the repeated values
to our list of column|row definitions.

The parsing of <track-name> was refactored in a new function as
it's used now in three different places. The <track-size> parsing
was also refactored to share it with the repeat() parsing.

Test: fast/css-grid-layout/grid-element-repeat-get-set.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseGridTrackNames):
(WebCore::CSSParser::parseGridTrackList):
(WebCore::CSSParser::parseGridTrackRepeatFunction):
(WebCore::CSSParser::parseGridTrackSize):

  • css/CSSParser.h:

LayoutTests:

Based on Blink r153155 by <jchaffraix@chromium.org>. Some code was
refactored in a helper function to have a more compact test.

  • fast/css-grid-layout/grid-element-repeat-get-set-expected.txt: Added.
  • fast/css-grid-layout/grid-element-repeat-get-set.html: Added.

Nov 26, 2013:

10:14 PM Changeset in webkit [159807] by rniwa@webkit.org
  • 2 edits
    2 adds in trunk/LayoutTests

Windows rebaselines after r158547.

  • platform/win/editing/selection/collapse-selection-in-bidi-expected.txt: Added.
  • platform/win/editing/selection/drag-text-delay-expected.txt: Added.
  • platform/win/editing/selection/extend-selection-home-end-expected.txt:
10:05 PM Changeset in webkit [159806] by marcelo.lira@openbossa.org
  • 19 edits
    14 adds in trunk

Nix upstreaming - Adding build files and supporting scripts
https://bugs.webkit.org/show_bug.cgi?id=118367

Reviewed by Ryosuke Niwa.

.:

  • CMakeLists.txt:
  • Source/CMakeLists.txt:
  • Source/cmake/FindEGL.cmake:
  • Source/cmake/FindOpenGLES2.cmake: Added.
  • Source/cmake/OptionsCommon.cmake:
  • Source/cmake/OptionsNix.cmake: Added.

Source/Platform:

  • CMakeLists.txt: Added.
  • PlatformNix.cmake: Added.

Source/WebCore:

No new tests needed.

  • CMakeLists.txt:
  • PlatformNix.cmake: Added.

Source/WTF:

  • wtf/FeatureDefines.h:
  • wtf/Platform.h:
  • wtf/PlatformNix.cmake: Added.

Tools:

  • Scripts/build-webkit:
  • Scripts/run-nix-tests: Added.
  • Scripts/run-webkit-tests:
  • Scripts/update-webkit-libs-jhbuild:
  • Scripts/update-webkitnix-libs: Added.
  • Scripts/webkitdirs.pm:

(determineArchitecture):
(argumentsForConfiguration):
(jscProductDir):
(builtDylibPathForName):
(determineIsNix):
(isNix):
(isAppleWebKit):
(launcherPath):
(launcherName):
(checkRequiredSystemConfig):
(copyInspectorFrontendFiles):
(jhbuildWrapperPrefixIfNeeded):
(buildCMakeProjectOrExit):
(cmakeBasedPortName):

  • Scripts/webkitpy/common/config/ports.py:

(DeprecatedPort.port):
(EflWK2Port.build_webkit_command):
(NixPort):
(NixPort.build_webkit_command):

  • Scripts/webkitpy/port/factory.py:

(platform_options):
(PortFactory):

  • Scripts/webkitpy/port/nix.py: Added.

(NixPort):
(NixPort._wk2_port_name):
(NixPort.determine_full_port_name):
(NixPort.init):
(NixPort._port_flag_for_scripts):
(NixPort.setup_test_run):
(NixPort.setup_environ_for_server):
(NixPort.default_timeout_ms):
(NixPort.clean_up_test_run):
(NixPort._generate_all_test_configurations):
(NixPort._path_to_driver):
(NixPort._path_to_image_diff):
(NixPort._image_diff_command):
(NixPort._search_paths):
(NixPort.show_results_html_file):
(NixPort._port_specific_expectations_files):
(NixPort.default_baseline_search_path):

  • Scripts/webkitpy/port/nix_unittest.py: Added.

(NixPortTest):
(NixPortTest._assert_search_path):
(NixPortTest._assert_expectations_files):
(NixPortTest.test_baseline_search_path):
(NixPortTest.test_expectations_files):
(NixPortTest.test_default_timeout_ms):

  • jhbuild/jhbuild-wrapper:

(determine_platform):

  • nix/common.py: Added.

(script_path):
(top_level_path):

  • nix/jhbuild.modules: Added.
  • nix/jhbuildrc: Added.
9:33 PM Changeset in webkit [159805] by rniwa@webkit.org
  • 10 edits in trunk

Record subtest values in Dromaeo tests
https://bugs.webkit.org/show_bug.cgi?id=124498

Reviewed by Andreas Kling.

PerformanceTests:

Made Dromaeo's test runner report values in DRT.progress via newly added PerfTestRunner.reportValues.

  • Dromaeo/resources/dromaeorunner.js:

(.): Moved the definition out of DRT.setup.
(DRT.setup): Ditto.
(DRT.testObject): Extracted from DRT.setup. Set the subtest name and continueTesting.
continueTesting is set true for subtests; i.e. when name is specified.
(DRT.progress): Call PerfTestRunner.reportValues to report subtest results.
(DRT.teardown): Call PerfTestRunner.reportValues instead of measureValueAsync.

  • resources/runner.js: Made various changes for newly added PerfTestRunner.reportValues.

(.): Moved the initialization of completedIterations, results, jsHeapResults, and mallocHeapResults into
start since they need to be initialized before running each subtest. Initialize logLines here since we
need to use the same logger for all subtests.
(.start): Initialize the variables mentioned above here. Also respect doNotLogStart used by reportValues.
(ignoreWarmUpAndLog): Added doNotLogProgress. Used by reportValues since it reports all values at once.
(finish): Compute the metric name such as FrameFrame and Runs from unit. Also don't log or notify done
when continueTesting is set on the test object.
(PerfTestRunner.reportValues): Added. Reports all values for the main/sub test.

Tools:

Supported parsing subtest results.

  • Scripts/webkitpy/performance_tests/perftest.py: Replaced _metrics with an ordered list of subtests, each of

which contains a dictionary with its name and an ordered list of subtest's metrics.
(PerfTest.init): Initialize _metrics as a list.
(PerfTest.run): Go through each subtest and its metrics to create a list of TestMetrics.
(PerfTest._run_with_driver):
(PerfTest._ensure_metrics): Look for a subtest then a metric in _metrics.

  • Scripts/webkitpy/performance_tests/perftest_unittest.py:

(TestPerfTest._assert_results_are_correct): Updated the assertions per changes to _metrics.
(TestPerfTest.test_parse_output): Ditto.
(TestPerfTest.test_parse_output_with_subtests): Added the metric and the unit on each subtest result as well as
assertions to ensure subtest results are parsed properly.
(TestReplayPerfTest.test_run_with_driver_accumulates_results): Updated the assertions per changes to _metrics.
(TestReplayPerfTest.test_run_with_driver_accumulates_memory_results): Dittp.

  • Scripts/webkitpy/performance_tests/perftestsrunner.py:

(_generate_results_dict): When the metric for a subtest is processed before that of the main test, the url is
incorrectly suffixed with '/'. Fix this later by re-computing the url with TestPerfMetric.test_file_name when
adding new results.

  • Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py:

(TestWithSubtestsData): Added.
(TestDriver.run_test):
(MainTest.test_run_test_with_subtests): Added.

LayoutTests:

Rebaselined the test.

  • fast/harness/perftests/runs-per-second-log-expected.txt:
9:13 PM Changeset in webkit [159804] by rniwa@webkit.org
  • 5 edits in trunk

Enable HTML template element on Windows ports
https://bugs.webkit.org/show_bug.cgi?id=124758

Reviewed by Andreas Kling.

Tools:

  • Scripts/webkitperl/FeatureList.pm:

WebKitLibraries:

Enable TEMPLATE_ELEMENT. Also removed UNDO_MANAGER since that feature has been removed
from the tree in r133326.

  • win/tools/vsprops/FeatureDefines.props:
  • win/tools/vsprops/FeatureDefinesCairo.props:
8:36 PM Changeset in webkit [159803] by rniwa@webkit.org
  • 8 edits
    1 delete in trunk

Remove replay performance tests as it's not actively maintained
https://bugs.webkit.org/show_bug.cgi?id=124764

Reviewed by Andreas Kling.

PerformanceTests:

Removed the replay performance tests. We can add them back when time comes.

  • Replay/Chinese/chinaz.com.replay: Removed.
  • Replay/Chinese/www.163.com.replay: Removed.
  • Replay/Chinese/www.alipay.com.replay: Removed.
  • Replay/Chinese/www.baidu.com.replay: Removed.
  • Replay/Chinese/www.csdn.net.replay: Removed.
  • Replay/Chinese/www.douban.com.replay: Removed.
  • Replay/Chinese/www.hao123.com.replay: Removed.
  • Replay/Chinese/www.xinhuanet.com.replay: Removed.
  • Replay/Chinese/www.xunlei.com.replay: Removed.
  • Replay/Chinese/www.youku.com.replay: Removed.
  • Replay/English/beatonna.livejournal.com.replay: Removed.
  • Replay/English/cakewrecks.blogspot.com.replay: Removed.
  • Replay/English/chemistry.about.com.replay: Removed.
  • Replay/English/digg.com.replay: Removed.
  • Replay/English/en.wikipedia.org-rorschach_test.replay: Removed.
  • Replay/English/icanhascheezburger.com.replay: Removed.
  • Replay/English/imgur.com-gallery.replay: Removed.
  • Replay/English/online.wsj.com.replay: Removed.
  • Replay/English/stockoverflow.com-best-comment.replay: Removed.
  • Replay/English/www.alibaba.com.replay: Removed.
  • Replay/English/www.amazon.com-kindle.replay: Removed.
  • Replay/English/www.apple.com.replay: Removed.
  • Replay/English/www.cnet.com.replay: Removed.
  • Replay/English/www.dailymotion.com.replay: Removed.
  • Replay/English/www.ehow.com-prevent-fire.replay: Removed.
  • Replay/English/www.filestube.com-amy-adams.replay: Removed.
  • Replay/English/www.foxnews.replay: Removed.
  • Replay/English/www.huffingtonpost.com.replay: Removed.
  • Replay/English/www.imdb.com-twilight.replay: Removed.
  • Replay/English/www.mozilla.com-all-order.replay: Removed.
  • Replay/English/www.php.net.replay: Removed.
  • Replay/English/www.reddit.com.replay: Removed.
  • Replay/English/www.telegraph.co.uk.replay: Removed.
  • Replay/English/www.w3.org-htmlcss.replay: Removed.
  • Replay/English/www.w3schools.com-html.replay: Removed.
  • Replay/English/www.youtube.com-music.replay: Removed.
  • Replay/French/www.orange.fr.replay: Removed.
  • Replay/Italian/www.repubblica.it.replay: Removed.
  • Replay/Japanese/2ch.net-newsplus.replay: Removed.
  • Replay/Japanese/entameblog.seesaa.net.replay: Removed.
  • Replay/Japanese/ja.wikipedia.org.replay: Removed.
  • Replay/Japanese/www.hatena.ne.jp.replay: Removed.
  • Replay/Japanese/www.livedoor.com.replay: Removed.
  • Replay/Japanese/www.nicovideo.jp.replay: Removed.
  • Replay/Japanese/www.rakuten.co.jp.replay: Removed.
  • Replay/Japanese/www.yahoo.co.jp.replay: Removed.
  • Replay/Korean/www.naver.com.replay: Removed.
  • Replay/Persian/blogfa.com.replay: Removed.
  • Replay/Polish/www.wp.pl.replay: Removed.
  • Replay/Portuguese/www.uol.com.br.replay: Removed.
  • Replay/Russian/lenta.ru.replay: Removed.
  • Replay/Russian/vkontakte.ru-help.replay: Removed.
  • Replay/Russian/www.ixbt.com.replay: Removed.
  • Replay/Russian/www.kp.ru.replay: Removed.
  • Replay/Russian/www.liveinternet.ru.replay: Removed.
  • Replay/Russian/www.pravda.ru.replay: Removed.
  • Replay/Russian/www.rambler.ru.replay: Removed.
  • Replay/Russian/www.ucoz.ru.replay: Removed.
  • Replay/Russian/www.yandex.ru.replay: Removed.
  • Replay/Spanish/www.taringa.net.replay: Removed.
  • Replay/Swedish/www.flashback.se.replay: Removed.
  • Replay/Swedish/www.tradera.com.replay: Removed.
  • Replay/www.google.com.replay: Removed.
  • Replay/www.techcrunch.com.replay: Removed.
  • Replay/www.youtube.com.replay: Removed.

Tools:

Removed the feature.

  • Scripts/webkitpy/performance_tests/perftest.py:

(SingleProcessPerfTest.init):
(PerfTestFactory):

  • Scripts/webkitpy/performance_tests/perftest_unittest.py:
  • Scripts/webkitpy/performance_tests/perftestsrunner.py:

(PerfTestsRunner._parse_args):
(PerfTestsRunner._collect_tests):

  • Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:

(MainTest.test_collect_tests_with_ignored_skipped_list):
(MainTest.test_default_args):

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module):
(AutoinstallImportHook._install_unittest2):

  • Scripts/webkitpy/thirdparty/init_unittest.py:

(ThirdpartyTest.test_imports):

8:32 PM Changeset in webkit [159802] by rniwa@webkit.org
  • 1 edit
    12 adds in trunk/LayoutTests/imported/w3c

Import W3C tests for cloning template elements and default stylesheet for template element
https://bugs.webkit.org/show_bug.cgi?id=124882

Reviewed by Andreas Kling.

Imported tests under html-templates/additions-to-the-steps-to-clone-a-node and
html-templates/additions-to-the-css-user-agent-style-sheet at d38dbd5b492808811bc0fe04a8cc49f28863c5cc.

Renamed and replicated css-user-agent-style-sheet-test-001-ref.html as -00*-expected.html for ref testing.

  • html-templates/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-001-expected.html: Added.
  • html-templates/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-001.html: Added.
  • html-templates/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-002-expected.html: Added.
  • html-templates/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-002.html: Added.
  • html-templates/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-003-expected.html: Added.
  • html-templates/additions-to-the-css-user-agent-style-sheet/css-user-agent-style-sheet-test-003.html: Added.
  • html-templates/additions-to-the-steps-to-clone-a-node/template-clone-children-expected.txt: Added.
  • html-templates/additions-to-the-steps-to-clone-a-node/template-clone-children.html: Added.
  • html-templates/additions-to-the-steps-to-clone-a-node/templates-copy-document-owner-expected.txt: Added.
  • html-templates/additions-to-the-steps-to-clone-a-node/templates-copy-document-owner.html: Added.
8:05 PM Changeset in webkit [159801] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Enable aggressive DFG validation in testing
https://bugs.webkit.org/show_bug.cgi?id=124911

Rubber stamped by Ryosuke Niwa.

This enables validation testing in non-concurrent-JIT runs.

  • Scripts/run-jsc-stress-tests:
7:50 PM Changeset in webkit [159800] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Don't parent the TileController root layer in two places
https://bugs.webkit.org/show_bug.cgi?id=124873

Reviewed by Brent Fulgham.

  • platform/graphics/ca/mac/TileController.mm:

(WebCore::TileController::TileController):
The TileController's layer is already parented by callers of
TileController::create, and in a special way. TileController
shouldn't parent itself, anyway...

7:35 PM Changeset in webkit [159799] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WTF

ASSERT_WITH_SECURITY_IMPLICATION should crash in a distinct way.
https://bugs.webkit.org/show_bug.cgi?id=124757

Change ASSERT_WITH_SECURITY_IMPLICATION to access a different address from CRASH()
in order to help screen fuzzing bugs.

Patch by Drew Yao <ayao@apple.com> on 2013-11-26
Reviewed by Brent Fulgham.

  • wtf/Assertions.cpp:
  • wtf/Assertions.h:
6:47 PM Changeset in webkit [159798] by fpizlo@apple.com
  • 37 edits
    1 add in trunk/Source/JavaScriptCore

Restructure global variable constant inference so that it could work for any kind of symbol table variable
https://bugs.webkit.org/show_bug.cgi?id=124760

Reviewed by Oliver Hunt.

This changes the way global variable constant inference works so that it can be reused
for closure variable constant inference. Some of the premises that originally motivated
this patch are somewhat wrong, but it led to some simplifications anyway and I suspect
that we'll be able to fix those premises in the future. The main point of this patch is
to make it easy to reuse global variable constant inference for closure variable
constant inference, and this will be possible provided we can also either (a) infer
one-shot closures (easy) or (b) infer closure variables that are always assigned prior
to first use.

One of the things that this patch is meant to enable is constant inference for closure
variables that may be part of a multi-shot closure. Closure variables may be
instantiated multiple times, like:

function foo() {

var WIDTH = 45;
function bar() {

... use WIDTH ...

}
...

}


Even if foo() is called many times and WIDTH is assigned to multiple times, that
doesn't change the fact that it's a constant. The goal of closure variable constant
inference is to catch any case where a closure variable has been assigned at least once
and its value has never changed. This patch doesn't implement that, but it does change
global variable constant inference to have most of the powers needed to do that. Note
that most likely we will use this functionality only to implement constant inference
for one-shot closures, but the resulting machinery is still simpler than what we had
before.

This involves three changes:

  • The watchpoint object now contains the inferred value. This involves creating a new kind of watchpoint set, the VariableWatchpointSet. We will reuse this object for closure variables.


  • Writing to a variable that is watchpointed still involves these three states that we proceed through monotonically (Uninitialized->Initialized->Invalidated) but now, the Initialized->Invalidated state transition only happens if we change the variable's value, rather than store to the variable. Repeatedly storing the same value won't change the variable's state.


  • On 64-bit systems (the only systems on which we do concurrent JIT), you no longer need fancy fencing to get a consistent view of the watchpoint in the JIT. The state of the VariableWatchpointSet for the purposes of constant folding is entirely encapsulated in the VariableWatchpointSet::m_inferredValue. If that is JSValue() then you cannot fold (either because the set is uninitialized or because it's invalidated - doesn't matter which); on the other hand if the value is anything other than JSValue() then you can fold, and that's the value you fold to. Simple!


This also changes the way that DFG IR deals with variable watchpoints. It's now
oblivious to global variables. You install a watchpoint using VariableWatchpoint and
you notify write using NotifyWrite. Easy!

Note that this will requires some more tweaks because of the fact that op_enter will
store Undefined into every captured variable. Hence it won't even work for one-shot
closures. One-shot closures are easily fixed by introducing another state (so we'll
have Uninitialized->Undefined->Initialized->Invalidated). Multi-shot closures will
require static analysis. One-shot closures are clearly a higher priority.

  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/Instruction.h:
  • bytecode/VariableWatchpointSet.h: Added.

(JSC::VariableWatchpointSet::VariableWatchpointSet):
(JSC::VariableWatchpointSet::~VariableWatchpointSet):
(JSC::VariableWatchpointSet::inferredValue):
(JSC::VariableWatchpointSet::notifyWrite):
(JSC::VariableWatchpointSet::invalidate):
(JSC::VariableWatchpointSet::finalizeUnconditionally):
(JSC::VariableWatchpointSet::addressOfInferredValue):

  • bytecode/Watchpoint.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::performNodeCSE):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasRegisterPointer):
(JSC::DFG::Node::hasVariableWatchpointSet):
(JSC::DFG::Node::variableWatchpointSet):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithMod):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • 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::compileNotifyWrite):

  • jit/JIT.h:
  • jit/JITOperations.h:
  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitNotifyWrite):
(JSC::JIT::emitPutGlobalVar):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitNotifyWrite):
(JSC::JIT::emitPutGlobalVar):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::addGlobalVar):
(JSC::JSGlobalObject::addFunction):

  • runtime/JSGlobalObject.h:
  • runtime/JSScope.h:

(JSC::ResolveOp::ResolveOp):

  • runtime/JSSymbolTableObject.h:

(JSC::symbolTablePut):
(JSC::symbolTablePutWithAttributes):

  • runtime/SymbolTable.cpp:

(JSC::SymbolTableEntry::inferredValue):
(JSC::SymbolTableEntry::prepareToWatch):
(JSC::SymbolTableEntry::addWatchpoint):
(JSC::SymbolTableEntry::notifyWriteSlow):
(JSC::SymbolTable::visitChildren):
(JSC::SymbolTable::WatchpointCleanup::WatchpointCleanup):
(JSC::SymbolTable::WatchpointCleanup::~WatchpointCleanup):
(JSC::SymbolTable::WatchpointCleanup::finalizeUnconditionally):

  • runtime/SymbolTable.h:

(JSC::SymbolTableEntry::watchpointSet):
(JSC::SymbolTableEntry::notifyWrite):

6:13 PM Changeset in webkit [159797] by commit-queue@webkit.org
  • 10 edits
    5 adds in trunk

[MediaStream API] HTMLMediaElement should be able to use MediaStream as source
https://bugs.webkit.org/show_bug.cgi?id=121943

Patch by Nick Diego Yamane <nick.yamane@openbossa.org> on 2013-11-26
Reviewed by Eric Carlson.

Source/WebCore:

Implement MediaStream direct assignment to Media Elements using the new 'srcObject'
attribute: http://www.w3.org/TR/mediacapture-streams/#direct-assignment-to-media-elements

Test: fast/mediastream/MediaStream-MediaElement-srcObject.html

  • CMakeLists.txt: Added new HTMLMediaElementMediaStream.h and .cpp to cmake build.
  • DerivedSources.make: Added HTMLMediaElementMediaStream.idl.
  • GNUmakefile.list.am: Added new HTMLMediaElementMediaStream* to autotools build.
  • WebCore.xcodeproj/project.pbxproj: Added new files.
  • Modules/mediastream/HTMLMediaElementMediaStream.cpp: Added.

(WebCore::HTMLMediaElementMediaStream::srcObject): implements srcObject getter.
(WebCore::HTMLMediaElementMediaStream::setSrcObject): implements srcObject setter.

  • Modules/mediastream/HTMLMediaElementMediaStream.h: Added.
  • Modules/mediastream/HTMLMediaElementMediaStream.idl: Added.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setSrcObject): This is an initial implementation, and
is still incomplete, that will be addressed in a separate bug: https://webkit.org/b/124896

  • html/HTMLMediaElement.h: Added m_mediaStreamSrcObject class variable

and its corresponding getter.

Source/WebKit2:

Add mediastream module and platform to cmake include directories.

  • CMakeLists.txt:

LayoutTests:

Add layout tests to MediaStream direct assignment to HTMLMediaElement
using brand new srcObject attribute.

  • fast/mediastream/MediaStream-MediaElement-srcObject-expected.txt: Added.
  • fast/mediastream/MediaStream-MediaElement-srcObject.html: Added.
5:27 PM Changeset in webkit [159796] by commit-queue@webkit.org
  • 6 edits in trunk/Tools

Moved methods which belong to Checkout into checkout.py
https://bugs.webkit.org/show_bug.cgi?id=124889

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

  • Scripts/webkitpy/common/checkout/checkout.py:

(Checkout.scripts_directory):
(Checkout):
(Checkout.script_path):
(Checkout.commit_message_for_this_commit):
(Checkout.apply_patch):

  • Scripts/webkitpy/common/checkout/checkout_unittest.py:

(test_commit_message_for_this_commit):
(CheckoutTest.test_apply_patch):

  • Scripts/webkitpy/common/checkout/scm/scm.py:

(SCM.absolute_path):

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:

(SCMTest._setup_webkittools_scripts_symlink):

  • Scripts/webkitpy/common/checkout/scm/svn.py:

(SVN.create_patch):

5:22 PM Changeset in webkit [159795] by fpizlo@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Create a new SymbolTable every time code is loaded so that the watchpoints don't get reused
https://bugs.webkit.org/show_bug.cgi?id=124824

Reviewed by Oliver Hunt.

This helps with one shot closure inference as well as closure variable constant
inference, since without this, if code was reloaded from the cache then we would
think that the first run was actually an Nth run. This would cause us to think that
the watchpoint(s) should all be invalidated.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::stronglyVisitStrongReferences):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::symbolTable):

  • runtime/Executable.cpp:

(JSC::FunctionExecutable::symbolTable):

  • runtime/Executable.h:
  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::clone):

  • runtime/SymbolTable.h:
3:55 PM Changeset in webkit [159794] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

Use child iterator to find operators in RenderMathMLRow::layout().
<https://webkit.org/b/124108>

Replace manual children walk with childrenOfType<RenderMathMLBlock>.
Minor update to fix build.

Patch by Andreas Kling <akling@apple.com> on 2013-11-26
Reviewed by Martin Robinson.

3:36 PM Changeset in webkit [159793] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

RenderObject: Inline isBody() and isHR().
<https://webkit.org/b/124901>

Together these account for ~0.3% of samples on HTML5-8266.
Almost all of it is call overhead.

Reviewed by Anders Carlsson.

3:05 PM Changeset in webkit [159792] by betravis@adobe.com
  • 36 edits
    6 adds in trunk
[CSS Shapes] Layout using [<box>
<shape>] value

https://bugs.webkit.org/show_bug.cgi?id=124428

Reviewed by David Hyatt.

Source/WebCore:

When a box value is supplied, use it to size and position the shape. Otherwise,
use a default value (content-box for shape-inside, margin-box for shape-outside).
This patch extends the sizing and positioning code used for the box patch (Bug 124227)
to also apply to shapes. With this patch, we also no longer use the box-sizing
property to size and position shapes.

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

fast/shapes/shape-outside-floats/shape-outside-shape-boxes-002.html
fast/shapes/shape-outside-floats/shape-outside-shape-boxes-003.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue): Adjust for ShapeValues storing
BasicShape::ReferenceBox as their box value, rather than a CSSValueID.

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::ApplyPropertyShape::applyValue): Ditto.

  • rendering/shapes/ShapeInfo.h:

(WebCore::ShapeInfo::setShapeSize): Adjust for BasicShapes with reference boxes
as well as plain box values. Also, remove old box-sizing code.
(WebCore::ShapeInfo::logicalTopOffset): Ditto.
(WebCore::ShapeInfo::logicalLeftOffset): Ditto.

  • rendering/shapes/ShapeInsideInfo.h:
  • rendering/shapes/ShapeOutsideInfo.h:
  • rendering/style/ShapeValue.h:

(WebCore::ShapeValue::createBoxValue): Adjust for boxes being stored as
BasicShape::ReferenceBoxes.
(WebCore::ShapeValue::box): Ditto.
(WebCore::ShapeValue::ShapeValue): Ditto.

LayoutTests:

Adding tests to make sure that shapes properly size and position themselves across box values
and writing modes. Some shape-outside tests needed to be updated to explicitly size themselves
to content-box, as they were relying on that being the default value. Some shape-inside tests
needed to be adjusted as box-sizing no longer affects the shape size and position.

  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-circle-001.html:

Explicitly size to content-box.

  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-001.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-002.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-003.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-004.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-010.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-011.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-012.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-014.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-015.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-016.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-017.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-018.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-margin-021.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-001.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-002.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-003.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-padding-004.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-polygon-000.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-polygon-001.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-polygon-002.html: Ditto.
  • csswg/contributors/adobe/submitted/shapes/shape-outside/shape-outside-floats-square-border-000.html: Ditto.
  • fast/shapes/shape-inside/shape-inside-box-sizing-expected.html: Small test cleanup.
  • fast/shapes/shape-inside/shape-inside-box-sizing.html: Modify shapes to provide their sizing box.
  • fast/shapes/shape-inside/shape-inside-empty-expected.html: Small test cleanup.
  • fast/shapes/shape-inside/shape-inside-empty.html: Modify shapes to provide their sizing box.
  • fast/shapes/shape-outside-floats/shape-outside-floats-different-writing-modes.html: Ditto.
  • fast/shapes/shape-outside-floats/shape-outside-shape-boxes-001-expected.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-shape-boxes-001.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-shape-boxes-002-expected.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-shape-boxes-002.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-shape-boxes-003-expected.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-shape-boxes-003.html: Added.
  • inspector-protocol/model/highlight-shape-outside.html: Modify shapes to provide their sizing box.
2:58 PM Changeset in webkit [159791] by commit-queue@webkit.org
  • 45 edits in trunk/Source/WebCore

ImageBuffer::create should return a std::unique_ptr instead of OwnPtr.
https://bugs.webkit.org/show_bug.cgi?id=124822

Patch by Brian J. Burg <Brian Burg> on 2013-11-26
Reviewed by Andreas Kling.

Replace all uses of OwnPtr<ImageBuffer> and PassOwnPtr<ImageBuffer> with
std::unique_ptr<ImageBuffer>. Replace calls to OwnPtr::clear() and
OwnPtr::release() with reset() and std::move(). Remove unnecessary includes.

No new tests. This is a mechanical refactoring.

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::setSurfaceSize):

  • html/HTMLCanvasElement.h:
  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::createCompositingBuffer):
(WebCore::CanvasRenderingContext2D::fullCanvasCompositedDrawImage):
(WebCore::CanvasRenderingContext2D::fullCanvasCompositedFill):
(WebCore::CanvasRenderingContext2D::drawTextInternal):

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::LRUImageBufferCache::LRUImageBufferCache):
(WebCore::WebGLRenderingContext::LRUImageBufferCache::imageBuffer):

  • html/canvas/WebGLRenderingContext.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):

  • page/Frame.cpp:

(WebCore::Frame::nodeImage):
(WebCore::Frame::dragImageForSelection):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::drawPattern):

  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::CrossfadeGeneratedImage::drawPattern):

  • platform/graphics/GradientImage.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::createCompatibleBuffer):

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::create):

  • platform/graphics/ShadowBlur.cpp:
  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::putByteArray):

  • platform/graphics/cg/PDFDocumentImage.h:
  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware):

  • platform/graphics/filters/Filter.h:

(WebCore::Filter::setSourceImage):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::clearResult):

  • platform/graphics/filters/FilterEffect.h:
  • platform/graphics/texmap/TextureMapper.cpp:

(WebCore::BitmapTexture::updateContents):

  • platform/graphics/texmap/TextureMapperImageBuffer.h:
  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintDecoration):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintProgressBar):

  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createShape):

  • rendering/svg/RenderSVGImage.cpp:

(WebCore::RenderSVGImage::invalidateBufferedForeground):

  • rendering/svg/RenderSVGImage.h:
  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):

  • rendering/svg/RenderSVGResourceClipper.h:
  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::postApplyResource):

  • rendering/svg/RenderSVGResourceFilter.h:
  • rendering/svg/RenderSVGResourceGradient.cpp: Remove method parameter wrapping/indentation.

(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):
(WebCore::RenderSVGResourceGradient::applyResource):

  • rendering/svg/RenderSVGResourceGradient.h:
  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):

  • rendering/svg/RenderSVGResourceMasker.h:
  • rendering/svg/RenderSVGResourcePattern.cpp: Remove method parameter wrapping/indentation.

(WebCore::RenderSVGResourcePattern::buildPattern):
(WebCore::RenderSVGResourcePattern::createTileImage):

  • rendering/svg/RenderSVGResourcePattern.h: Remove method parameter wrapping/indentation.
  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::createImageBuffer):
(WebCore::SVGRenderingContext::createImageBufferForPattern):
(WebCore::SVGRenderingContext::clipToImageBuffer):
(WebCore::SVGRenderingContext::bufferForeground):

  • rendering/svg/SVGRenderingContext.h:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::drawPatternForContainer):

12:24 PM Changeset in webkit [159790] by oliver@apple.com
  • 5 edits in trunk

Crash in JSC::ASTBuilder::Expression JSC::Parser<JSC::Lexer<unsigned char> >::parseUnaryExpression<JSC::ASTBuilder>(JSC::ASTBuilder&)
https://bugs.webkit.org/show_bug.cgi?id=124886

Reviewed by Sam Weinig.

Source/JavaScriptCore:

Make sure the error macros propagate an existing error before
trying to create a new error message. We need to do this as
the parser state may not be safe for any specific error message
if we are already unwinding due to an error.

  • parser/Parser.cpp:

LayoutTests:

Add tests

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:
12:11 PM Changeset in webkit [159789] by eric.carlson@apple.com
  • 3 edits
    2 adds in trunk

video.currentSrc should return empty when no resource is loaded
https://bugs.webkit.org/show_bug.cgi?id=124898

Reviewed by Dan Bernstein.

Source/WebCore:

Test: media/video-currentsrc-cleared.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::prepareForLoad): Set m_currentSrc to empty in

preparation for attempting to load a new url.

LayoutTests:

  • media/video-currentsrc-cleared-expected.txt: Added.
  • media/video-currentsrc-cleared.html: Added.
12:07 PM Changeset in webkit [159788] by mitz@apple.com
  • 31 edits in trunk/Source/WebKit2

Some WebKit2 headers are not self-contained
https://bugs.webkit.org/show_bug.cgi?id=124884

Reviewed by Anders Carlsson.

  • Shared/API/Cocoa/WKRemoteObjectInterface.h: Added import.
  • Shared/API/Cocoa/WKRemoteObjectRegistry.h: Ditto.
  • Shared/API/c/WKContextMenuItemTypes.h: Added include.
  • Shared/API/c/WKFindOptions.h: Ditto.
  • Shared/API/c/WKMutableArray.h: Ditto.
  • Shared/API/c/WKPageLoadTypes.h: Ditto.
  • Shared/API/c/WKPageVisibilityTypes.h: Ditto.
  • Shared/API/c/WKPluginInformation.cpp:

(WKPluginInformationBundleIdentifierKey): Made this API function always be defined. When
the Netscape plug-in API is not enabled, it returns 0.
(WKPluginInformationBundleVersionKey): Ditto.
(WKPluginInformationBundleShortVersionKey): Ditto.
(WKPluginInformationPathKey): Ditto.
(WKPluginInformationDisplayNameKey): Ditto.
(WKPluginInformationDefaultLoadPolicyKey): Ditto.
(WKPluginInformationUpdatePastLastBlockedVersionIsKnownAvailableKey): Ditto.
(WKPluginInformationHasSandboxProfileKey): Ditto.
(WKPluginInformationFrameURLKey): Ditto.
(WKPluginInformationMIMETypeKey): Ditto.
(WKPluginInformationPageURLKey): Ditto.
(WKPluginInformationPluginspageAttributeURLKey): Ditto.
(WKPluginInformationPluginURLKey): Ditto.
(WKPlugInInformationReplacementObscuredKey): Ditto.

  • Shared/API/c/WKString.h: Added include.
  • UIProcess/API/C/WKCredentialTypes.h: Ditto.
  • UIProcess/API/C/WKPageContextMenuClient.h: Ditto.
  • UIProcess/API/C/WKPageLoaderClient.h: Added includes.
  • UIProcess/API/C/WKPagePolicyClient.h: Ditto.
  • UIProcess/API/C/WKPageUIClient.h: Ditto.
  • UIProcess/API/C/WKPluginSiteDataManager.cpp:

(WKPluginSiteDataManagerGetTypeID): Fixed the !ENABLE(NETSCAPE_PLUGIN_API) build.

  • UIProcess/API/C/mac/WKContextPrivateMac.h: Removed use of ENABLE() from this private

header.

  • UIProcess/API/C/mac/WKContextPrivateMac.mm:

(WKContextCopyPlugInInfoForBundleIdentifier): Made this API function always be defined.
When the Netscape plug-in API is not enabled, it returns 0.
(WKContextGetInfoForInstalledPlugIns): Made this API function always be defined.

  • UIProcess/API/C/mac/WKInspectorPrivateMac.h: Added imports.
  • UIProcess/API/C/mac/WKPagePrivateMac.h: Added include.
  • UIProcess/API/Cocoa/WKBackForwardListItem.h: Added import.
  • UIProcess/API/Cocoa/WKNavigationData.h: Ditto.
  • UIProcess/API/cpp/WKRetainPtr.h: Replaced use of WARN_UNUSED_RETURN in this private header

with an equivalent macro defined in the header.

  • WebProcess/InjectedBundle/API/c/WKBundleFramePrivate.h: Added include.
  • WebProcess/InjectedBundle/API/c/WKBundleInspector.cpp:

(WKBundleInspectorGetTypeID): Made this API function always be defined. When the Inspector
is not enabled, it returns the Null type.
(WKBundleInspectorShow): Made this API function always be defined.
(WKBundleInspectorClose): Ditto.
(WKBundleInspectorEvaluateScriptForTest): Ditto.
(WKBundleInspectorSetPageProfilingEnabled): Ditto.

  • WebProcess/InjectedBundle/API/c/WKBundleInspector.h: Removed use of ENABLE() from this

private header.

  • WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h: Added includes.
  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h: Added include.
  • WebProcess/Plugins/Netscape/mac/WKNPAPIPlugInContainer.mm:

(-[WKNPAPIPlugInContainer openPlugInPreferencePane]): Fixed the !ENABLE(NETSCAPE_PLUGIN_API)
build.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::createJavaAppletWidget): Ditto.

  • WebProcess/WebPage/mac/WebInspectorMac.mm: Fixed the !ENABLE(INSPECTOR) build.
11:19 AM Changeset in webkit [159787] by hmuller@adobe.com
  • 5 edits
    4 adds in trunk

[CSS Shapes] Support for shape-margin in BoxShape
https://bugs.webkit.org/show_bug.cgi?id=124788

Source/WebCore:

Reviewed by Andreas Kling.

Corrected BoxShape's internal shape-margin/padding bounds FloatRoundedRect
initialization. Tests for the padding bounds will be added when the rest of
shape-padding for box shapes implementation is ready.

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

fast/shapes/shape-outside-floats/shape-outside-margin-boxes-002.html

  • rendering/shapes/BoxShape.cpp: Use constructor shape-margin,shape-padding parameters.

(WebCore::BoxShape::BoxShape):

  • rendering/shapes/BoxShape.h:
  • rendering/shapes/Shape.cpp:

(WebCore::createBoxShape): Pass the shape-margin and shape-padding values along to the BoxShape constructor.
(WebCore::Shape::createShape): Ditto.

LayoutTests:

Verify that shape-margin has the expected effect on the four possible shape-outside box values
for left and right floats.

Reviewed by Andreas Kling.

  • fast/shapes/shape-outside-floats/shape-outside-margin-boxes-001-expected.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-margin-boxes-001.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-margin-boxes-002-expected.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-margin-boxes-002.html: Added.
10:34 AM Changeset in webkit [159786] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove unnecessary webaudio include from MediaStreamSource header
https://bugs.webkit.org/show_bug.cgi?id=124897

Patch by Nick Diego Yamane <nick.yamane@openbossa.org> on 2013-11-26
Reviewed by Eric Carlson.

AudioDestinationConsumer.h is included but not used anywhere in
MediaStreamSource implementation.

  • platform/mediastream/MediaStreamSource.h:
9:47 AM Changeset in webkit [159785] by Gustavo Noronha Silva
  • 2 edits in trunk/Source/WebCore/platform/gtk/po

Updated Brazilian Portuguese translation of WebKitGTK+ - November 02, 2013
https://bugs.webkit.org/show_bug.cgi?id=123694

Patch by Enrico Nicoletto <liverig@gmail.com> on 2013-11-26
Reviewed by Gustavo Noronha.

  • pt_BR.po: updated.
9:21 AM Changeset in webkit [159784] by Michał Pakuła vel Rutka
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening

Add test expectations for failing accessibility tests.

  • platform/efl/TestExpectations:
9:10 AM Changeset in webkit [159783] by nrotem@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Optimize away OR with zero - a common ASM.js pattern.
https://bugs.webkit.org/show_bug.cgi?id=124869

Reviewed by Filip Pizlo.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

8:20 AM Changeset in webkit [159782] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Avoid unnecessary copy-on-write in FillLayer style application.
<https://webkit.org/b/124878>

We ended up with a lot of cloned StyleBackgroundData objects on
HTML5-8266. This happened because we always forced a copy-on-write
when applying background-image:inherit / background-image:initial.

This patch adds early returns to both functions. In the "inherit"
case, we bail early if the target style already has the same fill
layer data as its parent style.

In the "initial" case, we optimize for the single-FillLayer case
and add an early return if the relevant value is either unset or
equal to the templatized initial value.

2.46 MB progression on HTML5-8266 locally.

Reviewed by Antti Koivisto.

6:09 AM Changeset in webkit [159781] by Michał Pakuła vel Rutka
  • 4 edits in trunk/LayoutTests

Unreviewed ATK gardening

Rebaseline accessibility tests after r159747.

  • platform/efl-wk1/accessibility/table-detection-expected.txt:
  • platform/efl-wk2/accessibility/table-detection-expected.txt:
  • platform/gtk/accessibility/table-detection-expected.txt:
12:29 AM Changeset in webkit [159780] by Antoine Quint
  • 6 edits in trunk/Source

Web Inspector: Allow showing a context menu on all mouse events.
https://bugs.webkit.org/show_bug.cgi?id=124747

Reviewed by Joseph Pecoraro.

Source/WebCore:

Add a new InspectorFrontendHost::dispatchEventAsContextMenuEvent(Event*) method
to let the inspector front-end dispatch a native contextmenu event that will allow
for a context menu to be shown from within a non-contextmenu event handler.

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):
Check that we're dealing with a mouse event, get the frame for the event target
and the event's location to call ContextMenuController::showContextMenuAt()
which will handle the new contextmenu event dispatch to the original event target.

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:

Source/WebInspectorUI:

Automatically dispatch a contextmenu event in case WebInspector.ContextMenu.prototype.show()
is called outside of a contextmenu event handler and would therefore not show the expected
context menu (except in the Remote Web Inspector where this already works).

  • UserInterface/ContextMenu.js:

(WebInspector.ContextMenu.prototype.show):
Check whether the event is a contextmenu event, and if not, add an event listener for a manually
dispatched contextmenu event such that we may then call InspectorFrontendHost.showContextMenu()
in a contextmenu event handler.

(WebInspector.ContextMenu.prototype.handleEvent):
Call InspectorFrontendHost.showContextMenu() now that we received the manually dispatched
contextmenu event.

Note: See TracTimeline for information about the timeline view.