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

Timeline



Jul 7, 2016:

11:32 PM Changeset in webkit [202968] by Gyuyoung Kim
  • 23 edits in trunk/Source/WebCore

Clean up PassRefPtr in Modules/webaudio
https://bugs.webkit.org/show_bug.cgi?id=159540

Reviewed by Alex Christensen.

Purge PassRefPtr in webaudio directory.

No new tests, no behavior changes.

  • Modules/webaudio/AsyncAudioDecoder.h:
  • Modules/webaudio/AudioBasicProcessorNode.h:
  • Modules/webaudio/AudioBuffer.h:
  • Modules/webaudio/AudioBufferSourceNode.h:
  • Modules/webaudio/AudioListener.h:
  • Modules/webaudio/AudioParam.h:
  • Modules/webaudio/AudioParamTimeline.h:

(WebCore::AudioParamTimeline::ParamEvent::ParamEvent):

  • Modules/webaudio/AudioProcessingEvent.cpp:

(WebCore::AudioProcessingEvent::AudioProcessingEvent):

  • Modules/webaudio/AudioProcessingEvent.h:

(WebCore::AudioProcessingEvent::create):

  • Modules/webaudio/ChannelMergerNode.h:
  • Modules/webaudio/ChannelSplitterNode.h:
  • Modules/webaudio/GainNode.h:
  • Modules/webaudio/MediaElementAudioSourceNode.h:
  • Modules/webaudio/MediaStreamAudioDestinationNode.h:
  • Modules/webaudio/MediaStreamAudioSource.cpp:

(WebCore::MediaStreamAudioSource::addAudioConsumer):

  • Modules/webaudio/MediaStreamAudioSource.h:
  • Modules/webaudio/OfflineAudioCompletionEvent.cpp:

(WebCore::OfflineAudioCompletionEvent::create):
(WebCore::OfflineAudioCompletionEvent::OfflineAudioCompletionEvent):

  • Modules/webaudio/OfflineAudioCompletionEvent.h:
  • Modules/webaudio/OfflineAudioDestinationNode.h:
  • Modules/webaudio/OscillatorNode.h:
  • Modules/webaudio/PeriodicWave.h:
  • Modules/webaudio/ScriptProcessorNode.h:
11:28 PM Changeset in webkit [202967] by pvollan@apple.com
  • 4 edits in trunk

[Win] The test http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=159510

Reviewed by Brent Fulgham.

Source/WebCore:

On Windows, validate certificate chain even when any https certificate is allowed.

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::createCFURLConnection):

Tools:

Allow any https certificate when running tests.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(runTest):

11:25 PM Changeset in webkit [202966] by commit-queue@webkit.org
  • 8 edits
    6 adds in trunk

padStart/padEnd with Infinity produces unexpected result
https://bugs.webkit.org/show_bug.cgi?id=159543

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-07
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

  • builtins/GlobalOperations.js:

(globalPrivate.toLength):
Fix style.

  • builtins/StringPrototype.js:

(padStart):
(padEnd):
After all observable operations, and after empty string has been handled,
throw an out of memory error if the resulting string would be greater
than the maximum string size.

  • tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors-proxy.js:

(shouldThrow): Deleted.

  • tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors.js:

(shouldThrow):
(testMeta):

  • tests/es6/String.prototype_methods_String.prototype.padEnd.js:

(shouldThrow):
(TestToLength):
(TestMemoryLimits):
(TestMeta): Deleted.

  • tests/es6/String.prototype_methods_String.prototype.padStart.js:

(shouldThrow):
(TestToLength):
(TestMemoryLimits):
Replace incorrect shouldThrow(..., errorType) with explicit shouldThrow(..., errorMessage).
The old shouldThrow would incorrectly succeed if the expected error type was just "Error".
Now we explicitly check the error message.

LayoutTests:

  • js/script-tests/string-padend.js: Added.

(thisObject.toString):
(lengthObject.valueOf):
(fillObject.toString):

  • js/script-tests/string-padstart.js: Added.

(thisObject.toString):
(lengthObject.valueOf):
(fillObject.toString):

  • js/string-padend-expected.txt: Added.
  • js/string-padend.html: Added.
  • js/string-padstart-expected.txt: Added.
  • js/string-padstart.html: Added.

Add some basic String.prototype.padStart/padEnd test coverage
that is not just in the JavaScriptCore/tests/es6 directory.

11:23 PM Changeset in webkit [202965] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.40-branch/Source

Versioning.

11:22 PM Changeset in webkit [202964] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.2

New tag.

11:21 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
11:17 PM Changeset in webkit [202963] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.40-branch/Source

Versioning.

11:16 PM Changeset in webkit [202962] by fred.wang@free.fr
  • 12 edits
    16 adds in trunk

Bug 155792 - Basic implementation of mpadded
https://bugs.webkit.org/show_bug.cgi?id=155792

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-07
Reviewed by Brent Fulgham.

Source/WebCore:

We implement a basic support for the mpadded element.
We support most of the attribute values except pseudo-units or negative values.

Tests: mathml/presentation/mpadded-1-2.html

mathml/presentation/mpadded-1.html
mathml/presentation/mpadded-2.html
mathml/presentation/mpadded-3.html
mathml/presentation/mpadded-unsupported-values.html
mathml/presentation/mpadded-dynamic.html

  • CMakeLists.txt: Add RenderMathMLPadded to the build system.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::createElementRenderer): Create the renderer
for mpadded.

  • mathml/mathattrs.in: Add voffset attribute.
  • mathml/mathtags.in: Make mpadded use MathMLInlineContainerElement.
  • rendering/RenderObject.h:

(WebCore::RenderObject::isRenderMathMLPadded): Define isRenderMathMLPadded.

  • rendering/mathml/RenderMathMLPadded.cpp: Added.

We do a simple implementation by overriding the behavior of RenderMathMLRow and forcing
relayout after attribute or style change.
(WebCore::RenderMathMLPadded::RenderMathMLPadded):
(WebCore::RenderMathMLPadded::computePreferredLogicalWidths):
(WebCore::RenderMathMLPadded::layoutBlock):
(WebCore::RenderMathMLPadded::updateFromElement):
(WebCore::RenderMathMLPadded::styleDidChange):
(WebCore::RenderMathMLPadded::firstLineBaseline):

  • rendering/mathml/RenderMathMLPadded.h: Added.

LayoutTests:

We import mpadded tests from Mozilla test suite.
We also add some tests for dynamic changes of mpadded attributes and to verify
that the mpadded element behaves as if it had an inferred <mrow>.
Finally, we check that fallback properly for negative and pseudo-unit values that
we do not support yet.

  • mathml/presentation/inferred-mrow-baseline.html: Check baseline for mpadded.
  • mathml/presentation/inferred-mrow-baseline-expected.txt: Ditto.
  • mathml/presentation/inferred-mrow-stretchy.html: Check stretching of operators for mpadded.
  • mathml/presentation/inferred-mrow-stretchy-expected.txt: Ditto.
  • mathml/presentation/mpadded-dynamic.html: Added. Verify dynamic change of mpadded attributes.
  • mathml/presentation/mpadded-dynamic-expected.html: Added. Ditto.
  • mathml/presentation/mpadded-unsupported-values.html: Added. Check negative and pseudo-unit values.
  • mathml/presentation/mpadded-unsupported-values-expected.html: Added.
  • mathml/presentation/mpadded-1-2-expected.html: Added.
  • mathml/presentation/mpadded-1-2.html: Added.
  • mathml/presentation/mpadded-1-expected.html: Added.
  • mathml/presentation/mpadded-1.html: Added.
  • mathml/presentation/mpadded-2-expected.html: Added.
  • mathml/presentation/mpadded-2.html: Added.
  • mathml/presentation/mpadded-3-expected.html: Added.
  • mathml/presentation/mpadded-3.html: Added.
10:51 PM Changeset in webkit [202961] by fred.wang@free.fr
  • 7 edits
    2 adds in trunk/Source/WebCore

Move MathML-specific code into a separate accessibility class
https://bugs.webkit.org/show_bug.cgi?id=159213

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-07
Reviewed by Chris Fleizach.

Currently, MathML accessibility is completely handled in the generic AccessibilityRenderObject
and it's sometimes messy and unconvenient. Hence we move most of the MathML-specific code
into a separate AccessibilityMathMLElement class to facilitate future work and maintenance.

No new tests, already covered by existing tests.

  • CMakeLists.txt: Add new AccessibilityMathMLElement module.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • accessibility/AccessibilityAllInOne.cpp: Ditto.
  • accessibility/AXObjectCache.cpp: Add MathML headers and create AccessibilityMathMLElement.

(WebCore::createFromRenderer): Create AccessibilityMathMLElement for MathML elements and
anonymous operators created by the mfenced element.

  • accessibility/AccessibilityMathMLElement.cpp: Added. This class handles all the MathML

elements as well as the anonymous operators created by the mfenced element. A boolean is
passed to the constructor to indicate whether we are in the latter case.
(WebCore::AccessibilityMathMLElement::AccessibilityMathMLElement):
(WebCore::AccessibilityMathMLElement::~AccessibilityMathMLElement):
(WebCore::AccessibilityMathMLElement::create):
(WebCore::AccessibilityMathMLElement::determineAccessibilityRole): Move handling of specific
MathElementRole and DocumentMathRole here.
(WebCore::AccessibilityMathMLElement::textUnderElement): Move retrieval of text from the
anonymous operators here.
(WebCore::AccessibilityMathMLElement::stringValue): Ditto.
(WebCore::AccessibilityMathMLElement::isIgnoredElementWithinMathTree): Move the determination
of ignored math elements here.
(WebCore::AccessibilityMathMLElement::isMathFraction): Moved from AccessibilityRenderObject.
(WebCore::AccessibilityMathMLElement::isMathFenced): Ditto.
(WebCore::AccessibilityMathMLElement::isMathSubscriptSuperscript): Ditto.
(WebCore::AccessibilityMathMLElement::isMathRow): Ditto.
(WebCore::AccessibilityMathMLElement::isMathUnderOver): Ditto.
(WebCore::AccessibilityMathMLElement::isMathSquareRoot): Ditto.
(WebCore::AccessibilityMathMLElement::isMathToken): Ditto.
(WebCore::AccessibilityMathMLElement::isMathRoot): Ditto.
(WebCore::AccessibilityMathMLElement::isMathOperator): Ditto.
(WebCore::AccessibilityMathMLElement::isAnonymousMathOperator): Move the determination of
anonymous operators here. We now just return the boolean passed at creation time.
(WebCore::AccessibilityMathMLElement::isMathFenceOperator): Moved from
AccessibilityRenderObject.
(WebCore::AccessibilityMathMLElement::isMathSeparatorOperator): Ditto.
(WebCore::AccessibilityMathMLElement::isMathText): Ditto.
(WebCore::AccessibilityMathMLElement::isMathNumber): Ditto.
(WebCore::AccessibilityMathMLElement::isMathIdentifier): Ditto.
(WebCore::AccessibilityMathMLElement::isMathMultiscript): Ditto.
(WebCore::AccessibilityMathMLElement::isMathTable): Ditto.
(WebCore::AccessibilityMathMLElement::isMathTableRow): Ditto.
(WebCore::AccessibilityMathMLElement::isMathTableCell): Ditto.
(WebCore::AccessibilityMathMLElement::isMathScriptObject): Ditto.
(WebCore::AccessibilityMathMLElement::isMathMultiscriptObject): Ditto.
(WebCore::AccessibilityMathMLElement::mathRadicandObject): Ditto.
(WebCore::AccessibilityMathMLElement::mathRootIndexObject): Ditto.
(WebCore::AccessibilityMathMLElement::mathNumeratorObject): Ditto.
(WebCore::AccessibilityMathMLElement::mathDenominatorObject): Ditto.
(WebCore::AccessibilityMathMLElement::mathUnderObject): Ditto.
(WebCore::AccessibilityMathMLElement::mathOverObject): Ditto.
(WebCore::AccessibilityMathMLElement::mathBaseObject): Ditto.
(WebCore::AccessibilityMathMLElement::mathSubscriptObject): Ditto.
(WebCore::AccessibilityMathMLElement::mathSuperscriptObject): Ditto.
(WebCore::AccessibilityMathMLElement::mathFencedOpenString): Ditto.
(WebCore::AccessibilityMathMLElement::mathFencedCloseString): Ditto.
(WebCore::AccessibilityMathMLElement::mathPrescripts): Ditto.
(WebCore::AccessibilityMathMLElement::mathPostscripts): Ditto.
(WebCore::AccessibilityMathMLElement::mathLineThickness): Ditto.

  • accessibility/AccessibilityMathMLElement.h: Added.
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree): The cases of
AccessibilityMathMLElement objects are now handled in the derived class. We remove the case
of text node since the MathML code no longer creates anonymous text nodes after r202420.
Anonymous block inserted into RenderMathMLBlocks to honor CSS rules are not AccessibilityMathMLElements
and it does not seem safe to modify AXObjectCache::createFromRenderer to force that. Hence
we still need to be handle them here.
(WebCore::AccessibilityRenderObject::textUnderElement): This code is moved into AccessibilityMathMLElement.
(WebCore::AccessibilityRenderObject::stringValue): Ditto.
(WebCore::AccessibilityRenderObject::determineAccessibilityRole): Ditto.
(WebCore::AccessibilityRenderObject::isMathElement): Deleted.
(WebCore::AccessibilityRenderObject::isMathFraction): Deleted.
(WebCore::AccessibilityRenderObject::isMathFenced): Deleted.
(WebCore::AccessibilityRenderObject::isMathSubscriptSuperscript): Deleted.
(WebCore::AccessibilityRenderObject::isMathRow): Deleted.
(WebCore::AccessibilityRenderObject::isMathUnderOver): Deleted.
(WebCore::AccessibilityRenderObject::isMathSquareRoot): Deleted.
(WebCore::AccessibilityRenderObject::isMathToken): Deleted.
(WebCore::AccessibilityRenderObject::isMathRoot): Deleted.
(WebCore::AccessibilityRenderObject::isMathOperator): Deleted.
(WebCore::AccessibilityRenderObject::isAnonymousMathOperator): Deleted.
(WebCore::AccessibilityRenderObject::isMathFenceOperator): Deleted.
(WebCore::AccessibilityRenderObject::isMathSeparatorOperator): Deleted.
(WebCore::AccessibilityRenderObject::isMathText): Deleted.
(WebCore::AccessibilityRenderObject::isMathNumber): Deleted.
(WebCore::AccessibilityRenderObject::isMathIdentifier): Deleted.
(WebCore::AccessibilityRenderObject::isMathMultiscript): Deleted.
(WebCore::AccessibilityRenderObject::isMathTable): Deleted.
(WebCore::AccessibilityRenderObject::isMathTableRow): Deleted.
(WebCore::AccessibilityRenderObject::isMathTableCell): Deleted.
(WebCore::AccessibilityRenderObject::isMathScriptObject): Deleted.
(WebCore::AccessibilityRenderObject::isMathMultiscriptObject): Deleted.
(WebCore::AccessibilityRenderObject::mathRadicandObject): Deleted.
(WebCore::AccessibilityRenderObject::mathRootIndexObject): Deleted.
(WebCore::AccessibilityRenderObject::mathNumeratorObject): Deleted.
(WebCore::AccessibilityRenderObject::mathDenominatorObject): Deleted.
(WebCore::AccessibilityRenderObject::mathUnderObject): Deleted.
(WebCore::AccessibilityRenderObject::mathOverObject): Deleted.
(WebCore::AccessibilityRenderObject::mathBaseObject): Deleted.
(WebCore::AccessibilityRenderObject::mathSubscriptObject): Deleted.
(WebCore::AccessibilityRenderObject::mathSuperscriptObject): Deleted.
(WebCore::AccessibilityRenderObject::mathFencedOpenString): Deleted.
(WebCore::AccessibilityRenderObject::mathFencedCloseString): Deleted.
(WebCore::AccessibilityRenderObject::mathPrescripts): Deleted.
(WebCore::AccessibilityRenderObject::mathPostscripts): Deleted.
(WebCore::AccessibilityRenderObject::mathLineThickness): Deleted.

  • accessibility/AccessibilityRenderObject.h: Remove declarations of functions that are now

overridden in AccessibilityMathMLElement. Make isIgnoredElementWithinMathTree virtual so that
it can be reimplemented in AccessibilityMathMLElement.

10:40 PM Changeset in webkit [202960] by fred.wang@free.fr
  • 14 edits
    1 copy
    10 adds in trunk

Implement an internal style property for displaystyle.
https://bugs.webkit.org/show_bug.cgi?id=133845

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-07
Reviewed by Brent Fulgham.

Source/WebCore:

Tests: mathml/opentype/large-operators-displaystyle-dynamic.html

mathml/opentype/large-operators-displaystyle.html

This is based on a patch by Alejandro G. Castro <alex@igalia.com>

  • CMakeLists.txt: Add MathMLStyle to the build system.
  • WebCore.xcodeproj/project.pbxproj: ditto.
  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::parseAttribute): Resolve the mathml style when the
displaystyle attribute changes on the mtable or mstyle elements.

  • mathml/MathMLInlineContainerElement.h: Define parseAttribute.
  • mathml/MathMLMathElement.cpp:

(WebCore::MathMLMathElement::MathMLMathElement): Indicate that we have custom style.
(WebCore::MathMLMathElement::parseAttribute): Resolve the mathml style when the display or
displaystyle attributes change on the math element.
(WebCore::MathMLMathElement::didAttachRenderers): Resolve the mathml style when one
renderer is attached.

  • mathml/MathMLMathElement.h: Declare parseAttribute and didAttachRenderers.
  • mathml/mathattrs.in: Declare the display and displaystyle attributes.
  • rendering/mathml/MathMLStyle.cpp: Added.

(WebCore::MathMLStyle::MathMLStyle): New class to handle custom MathML style.
(WebCore::MathMLStyle::create):
(WebCore::MathMLStyle::setDisplayStyle): Helper function to take the displaystyle from
the specified rendered.
(WebCore::MathMLStyle::resolveMathMLStyleTree): Helper function to resolve the custom
MathML style in renderer subtree.
(WebCore::MathMLStyle::getMathMLParentNode): Helper function to get a MathML ancestor of
the specified renderer.
(WebCore::MathMLStyle::updateStyleIfNeeded): Helper function to update the style of the
specified renderer if needed.
(WebCore::MathMLStyle::resolveMathMLStyle): Resolve the MathML style of a given renderer.
For displaystyle, we inherit the value of the parent except for the cases mentioned in the
MathML recommendation.

  • rendering/mathml/MathMLStyle.h: New class header for custom MathML style.

Only displaystyle is supported for now.

  • rendering/mathml/RenderMathMLBlock.cpp: Add a member and getter for custom MathML style.

(WebCore::RenderMathMLBlock::RenderMathMLBlock):

  • rendering/mathml/RenderMathMLBlock.h: ditto.

(WebCore::RenderMathMLBlock::mathMLStyle):

  • rendering/mathml/RenderMathMLMath.h: Add definition to use the syntax is<RenderMathMLMath>.
  • rendering/mathml/RenderMathMLOperator.h:

(WebCore::RenderMathMLOperator::isLargeOperatorInDisplayStyle): Do not rerturn true when
the operator is not in displaystyle.

  • rendering/mathml/RenderMathMLRoot.h: Make updateStyle public, so that it can be called

by MathMLStyle::updateStyleIfNeeded.

  • rendering/mathml/RenderMathMLUnderOver.h: Add definition to use the syntax

is<RenderMathMLUnderOver>.

LayoutTests:

This is based on a patch by Alejandro G. Castro <alex@igalia.com>

Add two new tests to verify that the displaystyle property is correctly inherited
on various MathML elements.
large-operators-displaystyle verifies that large operators are only drawn bigger when
the displaystyle is true.
large-operators-displaystyle-dynamic verifies the same displaystyle is calculated when
the display and displaystyle attributes are changed dynamically.

  • mathml/opentype/large-operators-displaystyle-dynamic-expected.html: Added.
  • mathml/opentype/large-operators-displaystyle-dynamic.html: Added.
  • mathml/opentype/large-operators-displaystyle-expected.txt: Added.
  • imported/mathml-in-html5/fonts/math/largeop-displayoperatorminheight5000.woff: Added.
  • imported/mathml-in-html5/mathml/relations/css-styling/displaystyle-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/css-styling/displaystyle-1-expected.txt: Added.
10:20 PM Changeset in webkit [202959] by fred.wang@free.fr
  • 5 edits in trunk/LayoutTests

Rebaseline some MathML tests on Windows after r202934

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-07

  • platform/win/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/win/mathml/opentype/vertical-expected.txt:
  • platform/win/mathml/presentation/mo-stretch-expected.txt:
  • platform/win/mathml/presentation/roots-expected.txt:
10:14 PM Changeset in webkit [202958] by fred.wang@free.fr
  • 5 edits in trunk/LayoutTests

Rebaseline MathML pixels tests
https://bugs.webkit.org/show_bug.cgi?id=159348

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-07

  • platform/efl/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/efl/mathml/opentype/vertical-expected.txt:
  • platform/efl/mathml/presentation/mo-stretch-expected.txt:
  • platform/efl/mathml/presentation/roots-expected.txt:
10:12 PM Changeset in webkit [202957] by Beth Dakin
  • 5 edits in trunk

API Test DoNotLeakWebView.ViewThatLoadsEditableArea times out on macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=159532
-and corresponding-
rdar://problem/27177179

Reviewed by Tim Horton.

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView showCandidates:forString:inRect:forSelectedRange:view:completionHandler:]):
(-[WebView forceRequestCandidatesForTesting]):
(-[WebView shouldRequestCandidates]):

  • WebView/WebViewPrivate.h:

Tools:

  • TestWebKitAPI/Tests/mac/ViewWithEditableAreaLeak.mm:

(-[DoNotLeakFrameLoadDelegate webView:didFinishLoadForFrame:]):

9:10 PM Changeset in webkit [202956] by benjamin@webkit.org
  • 3 edits
    3 adds in trunk

[JSC] String.prototype[Symbol.iterator] needs a name
https://bugs.webkit.org/show_bug.cgi?id=159541

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

A man needs a name.
Spec: https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):

LayoutTests:

  • js/script-tests/string-iterator.js: Added.
  • js/string-iterator-expected.txt: Added.
  • js/string-iterator.html: Added.
8:47 PM Changeset in webkit [202955] by msaboff@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

REGRESSION(184445): Need to insert a StoreBarrier when we don't know child's epoch
https://bugs.webkit.org/show_bug.cgi?id=159537

Reviewed by Benjamin Poulain.

We weren't checking the case of a child node with a null epoch. The problem surfaces
when the base node of a PutByVal variant has a non-null epoch, because it represents an
allocation in the current function, while the child of the same node has an unknown epoch.
Added a check that the child node is not null before comparing the epochs of the base and
child nodes.

The added test creates the problem circumstance by doing a full GC to place an array in
remembered space, allocating a new object followed by an eden GC. The new object is
only referenced by the array and therefore won't be visited Without the store barrier.
The test may crash or more likely get the wrong answer with the bug.

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
  • tests/stress/regress-159537.js: Added test.

(MyNumber):
(MyNumber.prototype.plusOne):
(bar):
(foo):
(test):

8:13 PM Changeset in webkit [202954] by commit-queue@webkit.org
  • 7 edits in trunk

Unexpected "Out of memory" error for "x".repeat(-1)
https://bugs.webkit.org/show_bug.cgi?id=159529

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-07
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

  • builtins/StringPrototype.js:

(globalPrivate.repeatSlowPath):
(repeat):
Move the @toInteger and range checking to the always path,
since the spec does say it should always happen. Also remove
the duplication of the fast path here.

  • runtime/StringPrototype.cpp:

(JSC::repeatCharacter):
Remove unused function.

(JSC::stringProtoFuncRepeatCharacter):
ASSERT if given a negative number. This is a private function
only used internally.

  • tests/stress/string-repeat-edge-cases.js:

(shouldThrow):
Update expected error message.

LayoutTests:

Extended test coverage for:

  • function properties
  • fast path with invalid counts
  • observable side effects for fast path which were wrong before
  • js/script-tests/string-repeat.js:
  • js/string-repeat-expected.txt:
6:57 PM Changeset in webkit [202953] by rniwa@webkit.org
  • 24 edits in trunk

Replace scoped flag in Event by composed flag
https://bugs.webkit.org/show_bug.cgi?id=158415

Reviewed by Chris Dumez.

Source/WebCore:

Replace scoped flag with composed flag and negate its meaning per the latest spec:
https://dom.spec.whatwg.org/#dom-event-composed
https://github.com/w3c/webcomponents/issues/513

In the old spec, every event was assumed to be "composed" (crosses shadow boundaries)
by default and there was scoped flag which prevented the event from crossing bondaries,
and there was a handful of events for which scoped was set true when dispatched by UA.

In the new spec, every event is assumed to be "scoped" and a handful of user-initiated
events set composed flag to true, which is also exposed in EventInit dictionary.
relatedTargetScoped flag has been removed. New behavior is identical to when this flag
was set to true.

No new tests since existing tests are updated to test the new flag and behavior.

  • dom/CompositionEvent.cpp:

(WebCore::CompositionEvent::isCompositionEvent): Added.

  • dom/CompositionEvent.h:
  • dom/Event.cpp:

(WebCore::Event::Event): Initialize m_composed. Also re-ordered m_type and m_isInitialized
for better packing.
(WebCore::Event::composed): Renamed from Event::composed. We return true whenever composed
is set to true in EventInit, or the engine is dispatching an user-initiated event listed in:
https://github.com/w3c/webcomponents/issues/513#issuecomment-224183937
as well as keypress, cut, paste, and, copy as discussed in:
https://github.com/w3c/webcomponents/issues/513#issuecomment-230988170
(WebCore::Event::isCompositionEvent): Added.

  • dom/Event.h:

(WebCore::Event::composed): Added.
(WebCore::Event::scoped): Deleted.
(WebCore::Event::relatedTargetScoped): Deleted.
(WebCore::Event): Reordered m_type and m_isInitialized for better packing. Added m_composed
and removed m_scoped and m_relatedTargetScoped.

  • dom/Event.idl:
  • dom/EventPath.cpp:

(WebCore::shouldEventCrossShadowBoundary): Returns true if the event did not originate from
a shadow tree (this event entered the current shadow tree via a slot so we need to proceed with
the normal bubble path outside the shadow tree) or composed flag is set true.
(WebCore::EventPath::EventPath): m_event no longer exists, which was only used to get the value
of relatedTargetScoped which has been removed.
(WebCore::EventPath::setRelatedTarget): Behave as if relatedTargetScoped is always set true
since the flag has been removed.

  • dom/EventPath.h:
  • dom/FocusEvent.cpp:

(WebCore::FocusEvent::relatedTargetScoped): Deleted.

  • dom/FocusEvent.h:
  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::relatedTargetScoped): Deleted.

  • dom/MouseEvent.h:

LayoutTests:

Updated the tests to reflect the rename of scoped to composed and the negation of its semantics.
Now every Event is assumed to be scoped / non-composed by default, and we need to explicitly set
composed to true in order for events to cross shadow boundaries.

Also, every Event behaves as if related target is assumed to be scoped in the old terminology
althoug the flag no longer exists.

  • fast/shadow-dom/Extensions-to-Event-Interface-expected.txt:
  • fast/shadow-dom/Extensions-to-Event-Interface.html: Removed a test case that was testing

relatedTargetScoped to false since this flag no longer exists.

  • fast/shadow-dom/MouseEvent-prototype-offsetX-offsetY.html:
  • fast/shadow-dom/event-inside-shadow-tree.html:
  • fast/shadow-dom/event-inside-slotted-node.html:
  • fast/shadow-dom/event-with-related-target.html:
  • fast/shadow-dom/trusted-event-scoped-flags-expected.txt:
  • fast/shadow-dom/trusted-event-scoped-flags.html:
  • fast/xmlhttprequest/xmlhttprequest-get-expected.txt:
  • http/tests/workers/worker-importScriptsOnError-expected.txt:
  • inspector/model/remote-object-get-properties-expected.txt:
6:56 PM Changeset in webkit [202952] by Chris Dumez
  • 6 edits in trunk

tdody.deleteRow(-1) and tr.deleteCell(-1) should not throw when there are no rows / cells
https://bugs.webkit.org/show_bug.cgi?id=159527
<rdar://problem/27232261>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/semantics/tabular-data/the-tbody-element/deleteRow-expected.txt:
  • web-platform-tests/html/semantics/tabular-data/the-tr-element/deleteCell-expected.txt:

Source/WebCore:

tdody.deleteRow(-1) and tr.deleteCell(-1) should not throw when there
are no rows / cells:

Firefox and Chrome do not throw but WebKit was throwing.

No new tests, rebaselined existing tests.

  • html/HTMLTableRowElement.cpp:

(WebCore::HTMLTableRowElement::deleteCell):

  • html/HTMLTableSectionElement.cpp:

(WebCore::HTMLTableSectionElement::deleteRow):

6:15 PM Changeset in webkit [202951] by Chris Dumez
  • 5 edits in trunk

HTMLTitleElement.text should only account for direct children Text nodes
https://bugs.webkit.org/show_bug.cgi?id=159536

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/semantics/document-metadata/the-title-element/title.text-01-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-title-element/title.text-02-expected.txt:

Source/WebCore:

HTMLTitleElement.text should only account for direct children Text nodes:

Firefox and Chrome match the specification. However, WebKit accounted for all
Text nodes that are descendants, not just children. This patch aligns our
behavior with the specification and other browsers.

No new tests, rebaselined existing tests.

  • html/HTMLTitleElement.cpp:

(WebCore::HTMLTitleElement::text):

5:20 PM Changeset in webkit [202950] by dino@apple.com
  • 7 edits in trunk

REGRESSION(r200769): animations are no longer overridden
https://bugs.webkit.org/show_bug.cgi?id=159450
<rdar://problem/27120570>

Reviewed by Zalan Bujtas.

Source/WebCore:

The change in r200769 removed a lot of the prefixing variant
handling, but unfortunately we can't be completely rid
of it until we alias the prefixed transitions and animations
to the non-prefixed form. For example, setting the prefixed
shorthand has to reset the non-prefixed longhands.

The fix was to explicitly call the variant forms when
parsing such longhands, and make sure that MutableStyleProperties
removes all prefixed variants when removing shorthands.

The existing test was amended to cover this case:
fast/css/shorthand-omitted-initial-value-overrides-shorthand.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseAnimationShorthand):
(WebCore::CSSParser::addPropertyWithPrefixingVariant):
(WebCore::CSSParser::parseTransitionShorthand):

  • css/CSSParser.h:
  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::removeShorthandProperty):

LayoutTests:

Update an existing test to exercise a prefixed form applying
to non-prefixed longhands.

  • fast/css/shorthand-omitted-initial-value-overrides-shorthand-expected.txt:
  • fast/css/shorthand-omitted-initial-value-overrides-shorthand.html:
5:12 PM Changeset in webkit [202949] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix CMake build.

  • PlatformMac.cmake:
4:58 PM Changeset in webkit [202948] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Test gardening after r202826
https://bugs.webkit.org/show_bug.cgi?id=159538
<rdar://problem/27197375>

Unreviewed.

  • editing/style/text-indent.html:
  • platform/mac-wk1/TestExpectations:
4:58 PM Changeset in webkit [202947] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix CMake build.

  • PlatformMac.cmake:
4:48 PM Changeset in webkit [202946] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.1

New tag.

4:34 PM Changeset in webkit [202945] by fred.wang@free.fr
  • 4 edits
    2 adds in trunk

[Font Loading] The callback passed to document.fonts.ready should always be called
https://bugs.webkit.org/show_bug.cgi?id=158884

Reviewed by Dean Jackson.

Source/WebCore:

The boolean was simply not being reset when loads start.

Test: fast/text/font-face-set-ready-fire.html

  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::startedLoading):

  • css/FontFaceSet.h:

LayoutTests:

  • fast/text/font-face-set-ready-fire-expected.txt: Added.
  • fast/text/font-face-set-ready-fire.html: Added.
4:26 PM Changeset in webkit [202944] by aestes@apple.com
  • 35 edits
    20 adds
    18 deletes in trunk

[Content Filtering] Load blocked pages more like other error pages are loaded
https://bugs.webkit.org/show_bug.cgi?id=159485
<rdar://problem/26014076>

Reviewed by Brady Eidson.

Source/WebCore:

Content filter blocked pages were being loaded by cancelling the provisional load of the
page that was blocked and then scheduling a navigation to the content filter error page.
Some clients would not expect a new, Web process-initiated provisional navigation to start
after a cancellation, though, and this would put them in a bad state.

This patch changes blocked page loading to behave more like loading other error pages.
Specifically:

  1. didFailProvisionalLoad is dispatched with a new, non-cancellation error code.
  2. The blocked page is loaded immediately after dispatching didFailProvisionalLoad, which prevents FrameLoader from creating a new back-forward list item for the substitute data load.
  3. A substitute data load initiated by the client for the blocked URL is ignored if ContentFilter will display its own error page.
  4. A file: URL is used instead of a custom scheme for the base URL of the blocked page, since some clients expect this.

Updated existing tests to capture frame load delegate callbacks and the back forward list.
Added new API tests: ContentFiltering.LoadAlternate*.

  • English.lproj/Localizable.strings: Added a WebKitErrorFrameLoadBlockedByContentFilter description.
  • Resources/ContentFilterBlockedPage.html: Added.
  • WebCore.xcodeproj/project.pbxproj: Added ContentFilterBlockedPage.html as a frameowrk resource.
  • loader/ContentFilter.cpp:

(WebCore::ContentFilter::stopFilteringMainResource): Only set m_state to Stopped if not
already Blocked, so that we don't forget this ContentFilter was blocked when calling
cancelMailResourceLoad() in didDecide().
(WebCore::ContentFilter::didDecide): Moved code from DocumentLoader::contentFilterDidBlock() to here.
Created a blockedByContentFilterError() and called cancelMainResourceLoad().
(WebCore::blockedPageURL): Returned a file: URL to ContentFilterBlockedPage.html in WebCore.framework.
(WebCore::ContentFilter::continueAfterSubstituteDataRequest): If the substitute data load
is for the same failingURL as the currently-displayed blocked page, ignore it.
(WebCore::ContentFilter::handleProvisionalLoadFailure): Load the blocked page if m_state is Blocked
and the ResourceError matches the error we used when previously calling cancelMainResourceLoad().
(WebCore::ContentFilter::unblockHandler): Deleted.
(WebCore::ContentFilter::replacementData): Deleted.
(WebCore::ContentFilter::unblockRequestDeniedScript): Deleted.

  • loader/ContentFilter.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::contentFilter): Returned m_contentFilter.
(WebCore::DocumentLoader::installContentFilterUnblockHandler): Deleted.
(WebCore::DocumentLoader::contentFilterDidBlock): Deleted.

  • loader/DocumentLoader.h:
  • loader/EmptyClients.h: Added a default implementation of blockedByContentFilterError().
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::load): If m_loadType was already RedirectWithLockedBackForwardList
and we are loading subsitute data for a failing URL, continue to use RedirectWithLockedBackForwardList.
This prevents a new back-forward list item from being created when loading a blocked page in a subframe.
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
Called ContentFilter::handleProvisionalLoadFailure() after dispatchDidFailProvisionalLoad().
(WebCore::FrameLoader::blockedByContentFilterError): Called FrameLoaderClient::blockedByContentFilterError().

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledSubstituteDataLoad::ScheduledSubstituteDataLoad): Deleted.
(WebCore::NavigationScheduler::scheduleSubstituteDataLoad): Deleted.

  • loader/NavigationScheduler.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy): Ignored a substitute data load for a
failing URL if ContentFilter::continueAfterSubstituteDataRequest() returns false.

Source/WebKit/mac:

  • Misc/WebKitErrors.h: Defined WebKitErrorFrameLoadBlockedByContentFilter.
  • Misc/WebKitErrors.m:

(registerErrors): Registered WebKitErrorDescriptionFrameLoadBlockedByContentFilter.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::blockedByContentFilterError): Returned a ResourceError for WebKitErrorFrameLoadBlockedByContentFilter.

Source/WebKit2:

  • Shared/API/c/WKErrorRef.h: Defined kWKErrorCodeFrameLoadBlockedByContentFilter.
  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:

(WebKit::WebProcessProxy::platformPathsWithAssumedReadAccess): Added the resource directories
of WebCore.framework and WebKit.framework as paths with assumed read access.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::hasAssumedReadAccessToURL): Checked platformPathsWithAssumedReadAccess()
as well as m_localPathsWithAssumedReadAccess.
(WebKit::WebProcessProxy::platformPathsWithAssumedReadAccess): Added a non-Cocoa implementation.

  • UIProcess/WebProcessProxy.h:
  • WebProcess/WebCoreSupport/WebErrors.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::blockedByContentFilterError): Called WebKit::blockedByContentFilterError().

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebCoreSupport/mac/WebErrorsMac.mm:

(WebKit::blockedByContentFilterError): Returned a ResourceError for kWKErrorCodeFrameLoadBlockedByContentFilter.

Tools:

Added API tests for WebView and WKWebView to verify that alternate HTML loaded in response
to a content filtering provisional navigation failure is ignored in preference of
ContentFilter's own error page.

  • TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm:

(-[LoadAlternateNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
(-[LoadAlternateNavigationDelegate webView:didFinishNavigation:]):
(loadAlternateTest):
(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFilteringPlugIn.mm:

(-[MockContentFilterEnabler initWithCoder:]):

  • TestWebKitAPI/Tests/mac/ContentFiltering.mm: Added.

(-[LoadAlternateFrameLoadDelegate webView:didFailProvisionalLoadWithError:forFrame:]):
(-[LoadAlternateFrameLoadDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::loadAlternateTest):
(TestWebKitAPI::TEST):

LayoutTests:

Changed allow-* and block-* tests from ref tests to text tests so that they can capture
frame load delegate callbacks and the back forward list.

  • contentfiltering/allow-after-add-data-expected.html: Removed.
  • contentfiltering/allow-after-add-data-expected.txt: Added.
  • contentfiltering/allow-after-finished-adding-data-expected.html: Removed.
  • contentfiltering/allow-after-finished-adding-data-expected.txt: Added.
  • contentfiltering/allow-after-response-expected.html: Removed.
  • contentfiltering/allow-after-response-expected.txt: Added.
  • contentfiltering/allow-after-will-send-request-expected.html: Removed.
  • contentfiltering/allow-after-will-send-request-expected.txt: Added.
  • contentfiltering/allow-never-expected.html: Removed.
  • contentfiltering/allow-never-expected.txt: Added.
  • contentfiltering/block-after-add-data-expected.html: Removed.
  • contentfiltering/block-after-add-data-expected.txt: Added.
  • contentfiltering/block-after-add-data-then-allow-unblock-expected.html: Removed.
  • contentfiltering/block-after-add-data-then-allow-unblock-expected.txt: Added.
  • contentfiltering/block-after-add-data-then-deny-unblock-expected.html: Removed.
  • contentfiltering/block-after-add-data-then-deny-unblock-expected.txt: Added.
  • contentfiltering/block-after-finished-adding-data-expected.html: Removed.
  • contentfiltering/block-after-finished-adding-data-expected.txt: Added.
  • contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.html: Removed.
  • contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.txt: Added.
  • contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.html: Removed.
  • contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.txt: Added.
  • contentfiltering/block-after-response-expected.html: Removed.
  • contentfiltering/block-after-response-expected.txt: Added.
  • contentfiltering/block-after-response-then-allow-unblock-expected.html: Removed.
  • contentfiltering/block-after-response-then-allow-unblock-expected.txt: Added.
  • contentfiltering/block-after-response-then-deny-unblock-expected.html: Removed.
  • contentfiltering/block-after-response-then-deny-unblock-expected.txt: Added.
  • contentfiltering/block-after-will-send-request-expected.html: Removed.
  • contentfiltering/block-after-will-send-request-expected.txt: Added.
  • contentfiltering/block-after-will-send-request-then-allow-unblock-expected.html: Removed.
  • contentfiltering/block-after-will-send-request-then-allow-unblock-expected.txt: Added.
  • contentfiltering/block-after-will-send-request-then-deny-unblock-expected.html: Removed.
  • contentfiltering/block-after-will-send-request-then-deny-unblock-expected.txt: Added.
  • contentfiltering/block-never-expected.html: Removed.
  • contentfiltering/block-never-expected.txt: Added.
  • contentfiltering/resources/contentfiltering.js: Added testRunner calls to dump as text,

dump frame load callbacks, and dump the back forward list. Changed from loading data: URLs
to file: URLs in the test iframe.

4:22 PM Changeset in webkit [202943] by benjamin@webkit.org
  • 4 edits
    3 adds in trunk

[JSC] Array.prototype[Symbol.unscopables] should have the "includes" property
https://bugs.webkit.org/show_bug.cgi?id=159504

Reviewed by Keith Miller.

Source/JavaScriptCore:

The property "includes" was missing.
Spec: https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):

  • tests/stress/unscopables.js:

LayoutTests:

  • js/array-unscopables-properties-expected.txt: Added.
  • js/array-unscopables-properties.html: Added.
  • js/script-tests/array-unscopables-properties.js: Added.
4:06 PM Changeset in webkit [202942] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/27197375.

  • platform/mac-wk1/TestExpectations:
4:01 PM Changeset in webkit [202941] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/video-main-content-allow-then-deny.html as failing on ElCapitan+
https://bugs.webkit.org/show_bug.cgi?id=159533

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:59 PM Changeset in webkit [202940] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Followup to r202939.
https://bugs.webkit.org/show_bug.cgi?id=159526

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didFailLoading):
We need the correct destination id when sending a message.

3:42 PM Changeset in webkit [202939] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix crash when sending failure message to closed WebProcess
https://bugs.webkit.org/show_bug.cgi?id=159526
<rdar://problem/26767037>

Reviewed by Brady Eidson.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didFailLoading):
Check to see if there is a connection before using it to send a message.
Sometimes it was null.
I think this could be tested if we had real network loading from TestWebKitAPI
by cancelling slow loads and closing WebProcesses around the same time, but no such infrastructure exists yet.

3:37 PM Changeset in webkit [202938] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit/win

Fix Windows build after r202930.
https://bugs.webkit.org/show_bug.cgi?id=158776

  • WebView.cpp:

(WebView::initWithFrame):

3:36 PM Changeset in webkit [202937] by Chris Dumez
  • 20 edits
    5 deletes in trunk

td / th should be exposed as HTMLTableCellElement objects
https://bugs.webkit.org/show_bug.cgi?id=159518
<rdar://problem/27225436>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C tests now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/semantics/interfaces-expected.txt:

Source/WebCore:

td / th should be exposed as HTMLTableCellElement objects:

We were using HTMLTableDataCellElement / HTMLTableHeaderCellElement
sub-types.

Firefox and Chrome match the current specification.

We actually introduced these types recently via Bug 148859 to align
with an older version of the HTML specification. However, it seems the
specification has been updated to match Firefox / Chrome in the mean
time.

Since we have not shipped those subtypes yet, the compatibility risk is
low.

No new tests, rebaselined existing tests.

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLElementsAllInOne.cpp:
  • html/HTMLTableCellElement.cpp:

(WebCore::HTMLTableCellElement::create):
(WebCore::HTMLTableCellElement::scope):
(WebCore::HTMLTableCellElement::setScope):
(WebCore::HTMLTableCellElement::setRowSpanForBindings): Deleted.

  • html/HTMLTableCellElement.h:
  • html/HTMLTableCellElement.idl:
  • html/HTMLTableDataCellElement.h: Removed.
  • html/HTMLTableDataCellElement.idl: Removed.
  • html/HTMLTableHeaderCellElement.cpp: Removed.
  • html/HTMLTableHeaderCellElement.h: Removed.
  • html/HTMLTableHeaderCellElement.idl: Removed.
  • html/HTMLTableRowElement.cpp:

(WebCore::HTMLTableRowElement::insertCell):

  • html/HTMLTagNames.in:
3:15 PM Changeset in webkit [202936] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

ToThis constant folding in DFG is incorrect when the structure indicates that toThis is overridden
https://bugs.webkit.org/show_bug.cgi?id=159501
<rdar://problem/27109354>

Reviewed by Mark Lam.

We *cannot* constant fold ToThis when the structure of an object
indicates that toThis() is overridden. isToThisAnIdentity() inside
AbstractInterpreterInlines accidentally wrote the opposite rule.
The rule was written as we can constant fold ToThis only when
toThis() is overridden. To fix the bug, we must write the rule
as isToThisAnIdentity() can only be true as long as the structure
set indicates that no structures override toThis().

We could probably get more clever in the future and notice
when we're dealing with a constant |this| values. For example,
a ToThis might occur on a constant JSLexicalEnvironment. We could
implement the rules of JSLexicalEnvironment's toThis() implementation
inside AI/constant folding.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::isToThisAnIdentity):

  • tests/stress/to-this-on-constant-lexical-environment.js: Added.

(foo.bar):
(foo.inner):
(foo):

3:05 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
2:49 PM Changeset in webkit [202935] by beidson@apple.com
  • 4 edits
    5 adds in trunk

Modern IDB: When IDBDatabase objects are garbage collected, they don't close their server connection.
<rdar://problem/25910345> and https://bugs.webkit.org/show_bug.cgi?id=159523

Reviewed by Alex Christensen.

Source/WebCore:

Tests: storage/indexeddb/modern/gc-closes-database-private.html

storage/indexeddb/modern/gc-closes-database.html

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::IDBDatabase): New logging.
(WebCore::IDBDatabase::~IDBDatabase): Close server connection.
(WebCore::IDBDatabase::fireVersionChangeEvent): New logging.
(WebCore::IDBDatabase::dispatchEvent): New logging.

  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::openDatabase): New logging.

LayoutTests:

  • storage/indexeddb/modern/gc-closes-database-expected.txt: Added.
  • storage/indexeddb/modern/gc-closes-database-private-expected.txt: Added.
  • storage/indexeddb/modern/gc-closes-database-private.html: Added.
  • storage/indexeddb/modern/gc-closes-database.html: Added.
  • storage/indexeddb/modern/resources/gc-closes-database.js: Added.
2:48 PM Changeset in webkit [202934] by fred.wang@free.fr
  • 36 edits in trunk

Refactor layout functions to avoid using flexbox in MathML
https://bugs.webkit.org/show_bug.cgi?id=153991

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-07
Reviewed by Brent Fulgham.

Source/WebCore:

No new tests, already covered by existing tests.

  • css/mathml.css:

(math): Change inline mathematical formulas from inline-flex to inline.
(math[display="block"]): Change display mathematical formulas from flex to block and
remove flexbox property justify-content.
(ms, mspace, mtext, mi, mn, mo, mrow, mfenced, mfrac, msub, msup, msubsup, mmultiscripts,

mprescripts, none, munder, mover, munderover, msqrt, mroot, merror, mphantom, mstyle)
menclose, semantics, mpadded, maction): In order to render properly, all children of the
classes derived from RenderMathMLBlock must now be block-level. So we add more elements in
this list and update the display property.

(mtd > *): However, we use inline-block for children of the cell so that the text-align

property is taken into account.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalWidthInRegion): Add a special case for RenderMathMLBlock
to preserve the old behavior.
(WebCore::RenderBox::sizesLogicalWidthToFitContent): Ditto.

  • rendering/RenderFlexibleBox.h: No need to override layoutBlock anymore.
  • rendering/mathml/RenderMathMLBlock.cpp: Include LayoutRepainter header for use in layoutBlock.

(WebCore::RenderMathMLBlock::RenderMathMLBlock): Inherit from RenderBlock and ensure that
our children are block-level.
(WebCore::RenderMathMLBlock::~RenderMathMLBlock): Added.
(WebCore::RenderMathMLBlock::baselinePosition): If the baselinefirstLineBaseline() is
undefined, just returns 0.
(WebCore::RenderMathMLBlock::paint): Call RenderBlock::paint.
(WebCore::RenderMathMLBlock::layoutItems): Implement a simplified version of
RenderFlexibleBox::layoutItems where we assume horizontal layout for all children.
(WebCore::RenderMathMLBlock::layoutBlock): Add a basic implementation based on
RenderFlexibleBox::layoutBlock.
(WebCore::RenderMathMLBlock::renderName): Deleted. There is now a simple implementation in the header.

  • rendering/mathml/RenderMathMLBlock.h: Use RenderBlock instead of RenderFlexibleBox and

define layout functions. Define avoidsFloats and canDropAnonymousBlockChild to preserve
the old behavior and remove isFlexibleBoxImpl.

  • rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::createMathMLOperator): Use block for anonymous RenderMathMLOperator.

  • rendering/mathml/RenderMathMLRow.cpp:

(WebCore::RenderMathMLRow::layoutRowItems): No need to handle the flexbox case anymore.
(WebCore::RenderMathMLRow::paintChildren): Deleted. We now just use RenderBlock::paintChildren.

  • rendering/mathml/RenderMathMLRow.h:
  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::paintChildren): Deleted. We now just use RenderBlock::paintChildren.

  • rendering/mathml/RenderMathMLFraction.h:
  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::paintChildren): Deleted. We now just use RenderBlock::paintChildren.

  • rendering/mathml/RenderMathMLRoot.h:
  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::paintChildren): Deleted. We now just use RenderBlock::paintChildren.

  • rendering/mathml/RenderMathMLScripts.h:
  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::paintChildren): Deleted. We now just use RenderBlock::paintChildren.

  • rendering/mathml/RenderMathMLUnderOver.h:

LayoutTests:

Update expectations of some MathML tests to take into account the
removal of some line breaks and a better computation of the width of
MathML expressions with vertical stretchy operators.

  • mathml/presentation/stretchy-depth-height-expected.txt:
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/gtk/mathml/opentype/vertical-expected.png:
  • platform/gtk/mathml/opentype/vertical-expected.txt:
  • platform/gtk/mathml/presentation/mo-stretch-expected.png:
  • platform/gtk/mathml/presentation/mo-stretch-expected.txt:
  • platform/gtk/mathml/presentation/roots-expected.png:
  • platform/gtk/mathml/presentation/roots-expected.txt:
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.png:
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/ios-simulator/mathml/presentation/mo-stretch-expected.txt:
  • platform/mac/mathml/opentype/opentype-stretchy-expected.png:
  • platform/mac/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/mac/mathml/presentation/mo-stretch-expected.png:
  • platform/mac/mathml/presentation/mo-stretch-expected.txt:
  • accessibility/mac/mathml-elements-expected.txt:
  • imported/blink/fast/text/output-isolate-at-end-of-line-crash-expected.txt:
2:28 PM Changeset in webkit [202933] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Web Inspector, regression: JS/JSON pretty-printing sporadically broken in STP8
https://bugs.webkit.org/show_bug.cgi?id=159511
<rdar://problem/27218435>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-07
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Workers/Formatter/FormatterWorker.js:

(FormatterWorker.prototype.formatJavaScript):
Attempt to format invalid JSON that can be evaluated to an object.

LayoutTests:

  • inspector/formatting/formatting-json-expected.txt: Added.
  • inspector/formatting/formatting-json.html: Added.
2:26 PM Changeset in webkit [202932] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: scrolled Snapshot list is reset to top and drawn blank after switching back from Snapshot Comparison view
https://bugs.webkit.org/show_bug.cgi?id=158218
rdar://problem/26545000

Reviewed by Brian Burg.

  • UserInterface/Views/ClusterContentView.js:

(WebInspector.ClusterContentView.prototype.get scrollableElements): Added.
A default implementation for all cluster views.

  • UserInterface/Views/DOMStorageContentView.js:

(WebInspector.DOMStorageContentView.prototype.get scrollableElements): Deleted.
This was duplicated in the class, removed one.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView): Initialize _snapshotListScrollTop.
(WebInspector.HeapAllocationsTimelineView.prototype.get scrollableElements): Added. Return elements
based on what is showing.

(WebInspector.HeapAllocationsTimelineView.prototype.showHeapSnapshotList): Restore the scroll position
of the DataGrid after it is added to the view.

(WebInspector.HeapAllocationsTimelineView.prototype.showHeapSnapshotTimelineRecord): Save the scroll position
of the DataGrid before it is removed from the view.

  • UserInterface/Views/ScriptClusterTimelineView.js:

(WebInspector.ScriptClusterTimelineView.prototype.get scrollableElements): Deleted. Handled by the base class now.

2:24 PM Changeset in webkit [202931] by Antti Koivisto
  • 7 edits
    2 adds in trunk

REGRESSION (r199054): CrashTracer: [USER] parseWebKit at WebCore: WebCore::RenderBlockFlow::checkFloatsInCleanLine + 107
https://bugs.webkit.org/show_bug.cgi?id=159519

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: fast/inline/trailing-floats-inline-crash.html

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::checkFloatsInCleanLine):

Use the existing deletionHasBegun bit in RenderStyle to assert against this reliably.

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

In some cases a special TrailingFloatsRootInlineBox may be added as the last root linebox of a flow.
If it is combined with br the existing invalidation that invalidates the next and previous line may
not be sufficient. Test for this case and invalidate the TrailingFloatsRootInlineBox too if it exists.

  • rendering/RootInlineBox.h:

(WebCore::RootInlineBox::isTrailingFloatsRootInlineBox):

  • rendering/TrailingFloatsRootInlineBox.h:
  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::deletionHasBegun):

Expose the bit in debug.

LayoutTests:

  • fast/inline/trailing-floats-inline-crash-expected.txt: Added.
  • fast/inline/trailing-floats-inline-crash.html: Added.
2:09 PM Changeset in webkit [202930] by commit-queue@webkit.org
  • 42 edits
    2 copies
    1 move in trunk/Source

Use SocketProvider to create WebSocketChannels
https://bugs.webkit.org/show_bug.cgi?id=158776

Patch by Alex Christensen <achristensen@webkit.org> on 2016-07-07
Reviewed by Brent Fulgham.

Source/WebCore:

This patch should have no change in behavior except making an InvalidStateError in
conditions where we should not be able to do networking, like in a detached frame.
It just replaces ThreadableWebSocketChannel::create with SocketProvider::createWebSocketChannel
which does the same thing as ThreadableWebSocketChannel::create for Mac and
Windows WebKit1. The WebKit2 implementation is the same right now, but it will
be replaced by a proxy that will do the WebSocket operations in the NetworkProcess.

  • Modules/websockets/ThreadableWebSocketChannel.cpp: Removed.
  • Modules/websockets/ThreadableWebSocketChannel.h:

(WebCore::ThreadableWebSocketChannel::ThreadableWebSocketChannel):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • Modules/websockets/WebSocketChannel.h:
  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::idbConnectionProxy):
(WebCore::Document::socketProvider):
(WebCore::Document::canNavigate):

  • dom/Document.h:

(WebCore::Document::notifyRemovePendingSheetIfNeeded):

  • dom/ScriptExecutionContext.h:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::overlayPage):

  • loader/EmptyClients.cpp:

(WebCore::EmptyEditorClient::registerRedoStep):
(WebCore::EmptySocketProvider::createWebSocketChannel):

  • loader/EmptyClients.h:
  • page/Page.h:
  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:
  • page/SocketProvider.h:

(WebCore::SocketProvider::~SocketProvider):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/DedicatedWorkerThread.cpp:

(WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
(WebCore::DedicatedWorkerThread::runEventLoop):

  • workers/DedicatedWorkerThread.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::disableEval):
(WebCore::WorkerGlobalScope::socketProvider):
(WebCore::WorkerGlobalScope::idbConnectionProxy):

  • workers/WorkerGlobalScope.h:

(WebCore::WorkerGlobalScope::script):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
(WebCore::WorkerThread::WorkerThread):
(WebCore::WorkerThread::idbConnectionProxy):
(WebCore::WorkerThread::socketProvider):

  • workers/WorkerThread.h:

(WebCore::WorkerThread::workerGlobalScope):

Source/WebKit:

  • PlatformMac.cmake:
  • PlatformWin.cmake:
  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • Misc/WebSocketProvider.mm: Copied from Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp.

(WebSocketProvider::createWebSocketChannel):
(WebCore::ThreadableWebSocketChannel::create): Deleted.

  • Misc/WebSocketProvider.h:
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKit/win:

  • WebSocketProvider.cpp: Copied from Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp.

(WebSocketProvider::createWebSocketChannel):
(WebCore::ThreadableWebSocketChannel::create): Deleted.

  • WebSocketProvider.h:

Source/WebKit2:

  • CMakeLists.txt:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebSocketProvider.cpp: Copied from Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp.

(WebKit::WebSocketProvider::createWebSocketChannel):
(WebCore::ThreadableWebSocketChannel::create): Deleted.

  • WebProcess/Network/WebSocketProvider.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_shouldDispatchFakeMouseMoveEvents):

1:53 PM Changeset in webkit [202929] by Ryan Haddad
  • 3 edits
    4 deletes in trunk

Unreviewed, rolling out r202905 and r202911.
https://bugs.webkit.org/show_bug.cgi?id=159522

This test is fails on El Capitan and Sierra WK1 (Requested by
ryanhaddad on #webkit).

Reverted changesets:

"Add a test for media control dropoff"
https://bugs.webkit.org/show_bug.cgi?id=151287
http://trac.webkit.org/changeset/202905

"Add a test for media control dropoff"
https://bugs.webkit.org/show_bug.cgi?id=151287
http://trac.webkit.org/changeset/202911

Patch by Commit Queue <commit-queue@webkit.org> on 2016-07-07

1:13 PM Changeset in webkit [202928] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.40-branch/Source/WebCore

Merged r202923. rdar://problem/27221109

12:32 PM Changeset in webkit [202927] by commit-queue@webkit.org
  • 22 edits in trunk/Source

<img> with a wide gamut PDF does not display using a wide gamut color space
https://bugs.webkit.org/show_bug.cgi?id=158983
<rdar://problem/25720247>

Patch by Antoine Quint <Antoine Quint> on 2016-07-07
Reviewed by Dean Jackson.

Source/WebCore:

Calls to ImageBuffer::createCompatibleBuffer() that do not provide an explicit
color space will now infer the color space from the provided graphics context
on platforms using CG. The method signature that takes in a GraphicsContext
without a color space is now split into a CG-specified implementation and a
Cairo one to avoid having diverging platform code in ImageBuffer.cpp.

Some call sites need to provide an explicit color space still, so we add a new
ImageBuffer::createCompatibleBuffer() that allows for that while inferring
sizing and scaling from a GraphicsContext.

All signatures of ImageBuffer::createCompatibleBuffer() are losing the
hasAlpha parameter which was always ignored. All call sites that were using
hasAlpha have been updated.

In addition, we make all the IOSurface and IOSurfacePool code, which is
CG-specific, use the plaform-specific type CGColorSpaceRef instead of ColorSpace
so that we may pick up on the color space copied over from the graphics context
in the CG-specific implementation of ImageBuffer::createCompatibleBuffer().

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::drawTextInternal):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::drawPattern):

  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::drawPattern):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer):

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

(WebCore::NamedImageGeneratedImage::drawPattern):

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer):

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::surfaceMatchesParameters):
(WebCore::IOSurfacePool::takeSurface):

  • platform/graphics/cg/IOSurfacePool.h:
  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer):
(WebCore::ImageBuffer::ImageBuffer):

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::surfaceFromPool):
(WebCore::IOSurface::create):
(WebCore::IOSurface::createFromSendRight):
(WebCore::IOSurface::createFromSurface):
(WebCore::IOSurface::createFromImage):
(WebCore::IOSurface::IOSurface):
(WebCore::IOSurface::ensurePlatformContext):

  • platform/mac/ThemeMac.mm:

(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):

  • platform/spi/cg/CoreGraphicsSPI.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintProgressBar):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::bufferForeground):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawPatternForContainer):

Source/WebKit2:

ColorSpace parameters have been replaced with CGColorSpaceRef parameters for IOSurface.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::decode):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _takeViewSnapshot]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

12:03 PM Changeset in webkit [202926] by benjamin@webkit.org
  • 5 edits in trunk

[JSC] Array.prototype.includes uses ToInt32 instead of ToInteger on the index argument
https://bugs.webkit.org/show_bug.cgi?id=159505

Reviewed by Mark Lam.

Source/JavaScriptCore:

The code was using (value)|0 which is effectively a ToInt32.
This fails on large integers and +-Infinity.

Spec: https://tc39.github.io/ecma262/#sec-array.prototype.includes

  • builtins/ArrayPrototype.js:

(includes):

LayoutTests:

  • js/array-includes-expected.txt:
  • js/script-tests/array-includes.js:
12:00 PM Changeset in webkit [202925] by andersca@apple.com
  • 1 edit in trunk/Source/WebKit2/ChangeLog

Use the correct radar number.

11:57 AM Changeset in webkit [202924] by Beth Dakin
  • 3 edits in trunk/Source/WebCore

All fullscreen videos should be able the control the controls manager
https://bugs.webkit.org/show_bug.cgi?id=159496
-and corresponding-
rdar://problem/27009446

Reviewed by Eric Carlson.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::fullscreenModeChanged):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canControlControlsManager):

11:53 AM Changeset in webkit [202923] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Crash due to HTMLMediaElement at JavaScriptCore: JSC::JSLockHolder::JSLockHolder
https://bugs.webkit.org/show_bug.cgi?id=159517
<rdar://problem/27221109>

Reviewed by Eric Carlson.

When WebKit on iOS gets a notification that the UIProcess has been backgrounded, it sends an
interruption event to the WebProcess to pause any playing HTMLMediaElements. When the
elements which get this interruption have pending promises created during a previous call to
play(), these promises get rejected.

However, if the HTMLMediaElement's document has already been destroyed, the pending Promises
are in an inconsistent state: their script execution context (the document) has been
destroyed, leading to the crash in JSLockHolder.

When HTMLMediaElement is notified that its ScriptExecutionContext has been destroyed, also
clear the list of pending Promises.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::contextDestroyed):

11:47 AM Changeset in webkit [202922] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit2

Memory corruption destroying PaymentCoordinator
https://bugs.webkit.org/show_bug.cgi?id=159516
rdar://problem/27222857

Reviewed by Tim Horton.

Introduce a new MessageReceiverMap::removeMessageReceiver that takes a MessageReceiver
and removes all traces of it in the message receiver map. Use it in the WebPaymentCoordinator destructor.

  • Platform/IPC/MessageReceiverMap.cpp:

(IPC::MessageReceiverMap::removeMessageReceiver):

  • Platform/IPC/MessageReceiverMap.h:
  • Shared/ChildProcess.cpp:

(WebKit::ChildProcess::removeMessageReceiver):

  • Shared/ChildProcess.h:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::~WebPaymentCoordinator):

11:30 AM Changeset in webkit [202921] by bshafiei@apple.com
  • 12 edits in branches/safari-602.1.40-branch/Source

Merge patch for rdar://problem/27175583.

11:26 AM Changeset in webkit [202920] by pvollan@apple.com
  • 2 edits in trunk/Tools

Unreviewed: add myself to the reviewers list.

  • Scripts/webkitpy/common/config/contributors.json:
11:01 AM Changeset in webkit [202919] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.40-branch/Source

Versioning.

11:00 AM Changeset in webkit [202918] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Facebook videos without audio tracks will sometimes cause playback controls to appear.
https://bugs.webkit.org/show_bug.cgi?id=159437

Reviewed by Eric Carlson.

Because updatePlaybackControlsManager() will cause the session manager to walk through all
the outstanding sessions asking if it canControlControlsManager(), some sessions will say
they can control the controls manager if we are currently processing a user gesture. This is
obviously not intended (there may be a user gesture to un-mute video 1, but an unrelated
video 2 should not be allowed to use that use gesture to fulfill its own requirements.)

So in those situations where conditions may have changed and updatePlaybackControlsManager()
needs to be called, instead schedule the update for the next run loop.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::layoutSizeChanged):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::createMediaPlayer):
(WebCore::HTMLMediaElement::scheduleUpdatePlaybackControlsManager):

  • html/HTMLMediaElement.h:
10:30 AM Changeset in webkit [202917] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix after r202908. Fix the webPlaybackSessionInterfaceMac @property.

  • platform/mac/WebPlaybackControlsManager.h:
  • platform/mac/WebPlaybackControlsManager.mm:
10:27 AM Changeset in webkit [202916] by benjamin@webkit.org
  • 3 edits
    3 adds in trunk

[JSC] String.prototype.normalize should have a length of zero
https://bugs.webkit.org/show_bug.cgi?id=159506

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Spec: https://tc39.github.io/ecma262/#sec-string.prototype.normalize
The argument is optional, the length should be zero.

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):

LayoutTests:

  • js/script-tests/string-normalize.js: Added.

(listener.toString):

  • js/string-normalize-expected.txt: Added.
  • js/string-normalize.html: Added.
10:23 AM Changeset in webkit [202915] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

10:20 AM Changeset in webkit [202914] by bshafiei@apple.com
  • 1 copy in branches/safari-602.1.40-branch

New Branch.

10:19 AM Changeset in webkit [202913] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win] The test http/tests/loading/main-resource-delegates-on-back-navigation.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=159509

Reviewed by Alex Christensen.

We should always insert the url in the url map when identifierForInitialRequest
is called. Otherwise we can end up with identifiers not having an entry in the
url map when urls are written to the test output file.

  • DumpRenderTree/win/ResourceLoadDelegate.cpp:

(ResourceLoadDelegate::identifierForInitialRequest):

10:19 AM Changeset in webkit [202912] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40

New tag.

9:24 AM Changeset in webkit [202911] by eric.carlson@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Add a test for media control dropoff
https://bugs.webkit.org/show_bug.cgi?id=151287
<rdar://problem/23544666>

Unreviewed El Capitan-specific test results after r202905.

  • platform/mac-elcapitan/media/controls: Added.
  • platform/mac-elcapitan/media/controls/inline-elements-dropoff-order-expected.txt: Added.
9:24 AM Changeset in webkit [202910] by commit-queue@webkit.org
  • 6 edits in trunk

[Fetch API] Response constructor should throw in case of bad reason phrase
https://bugs.webkit.org/show_bug.cgi?id=159508

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-07
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-error-expected.txt:

Source/WebCore:

Covered by rebased test.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::initializeWith): Validating reason phrase with new routine.
Throwing a TypeError in case of error.

  • platform/network/HTTPParsers.cpp:

(WebCore::isValidReasonPhrase): Added to validate reason phrase according
https://tools.ietf.org/html/rfc7230#section-3.1.2

  • platform/network/HTTPParsers.h:
9:03 AM Changeset in webkit [202909] by commit-queue@webkit.org
  • 4 edits in trunk

[Fetch API] Response.redirect should throw a RangeError in case of bad status code
https://bugs.webkit.org/show_bug.cgi?id=159507

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-07
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-static-redirect-expected.txt:

Source/WebCore:

Covered by rebased test.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::redirect): Throw a RangeError in case of bad status.

9:00 AM Changeset in webkit [202908] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

Ownership between WebPlaybackSessionInterfaceMac and WebPlaybackControlsManager is backwards.
https://bugs.webkit.org/show_bug.cgi?id=159441

Reviewed by Eric Carlson.

The WebPlaybackControlsManager should own the WebPlaybackSessionInterfaceMac, and not
vice versa.

  • platform/mac/WebPlaybackControlsManager.h:
  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager webPlaybackSessionInterfaceMac]):
(-[WebPlaybackControlsManager setWebPlaybackSessionInterfaceMac:]):

  • platform/mac/WebPlaybackSessionInterfaceMac.h:
  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(WebCore::WebPlaybackSessionInterfaceMac::playBackControlsManager):

7:29 AM Changeset in webkit [202907] by fred.wang@free.fr
  • 2 edits
    2 adds
    1 delete in trunk/LayoutTests

Replace reftest scripts-height.html with script tests
https://bugs.webkit.org/show_bug.cgi?id=159423

We import a test from the MathML in HTML5 test suite to replace the test scripts-height.html
and make results more reliable, explicit and accurate. This avoids the failure on iOS.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-07
Reviewed by Martin Robinson.

  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-4-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-4.html: Added.
  • mathml/presentation/scripts-height.html: Removed.
  • platform/ios-simulator/TestExpectations: Remove failure expectation.
7:26 AM Changeset in webkit [202906] by fred.wang@free.fr
  • 3 edits
    4 adds
    1 delete in trunk/LayoutTests

Replace multiscripts-positions.html reftest with script tests
https://bugs.webkit.org/show_bug.cgi?id=159418

We import more tests from the MathML in HTML5 test suite to replace
and extend the reftest testing metrics in the mmultiscripts element.
This allows to make such tests work on OS X and iOS.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-07
Reviewed by Martin Robinson.

  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-2-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-2.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-3-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-3.html: Added.
  • mathml/presentation/multiscripts-positions.html: Removed.
  • platform/ios-simulator/TestExpectations: Remove failure for multiscripts-positions.
  • platform/mac/TestExpectations: Ditto.
7:21 AM Changeset in webkit [202905] by eric.carlson@apple.com
  • 3 edits
    4 adds in trunk

Add a test for media control dropoff
https://bugs.webkit.org/show_bug.cgi?id=151287
<rdar://problem/23544666>

Reviewed by Antoine Quint.

Source/WebCore:

Test: media/controls/inline-elements-dropoff-order.html

  • Modules/mediacontrols/mediaControlsApple.js: Expose more state to testing.

LayoutTests:

  • media/controls/inline-elements-dropoff-order-expected.txt: Added.
  • media/controls/inline-elements-dropoff-order.html: Added.
  • platform/mac-yosemite/media/controls: Added.
  • platform/mac-yosemite/media/controls/inline-elements-dropoff-order-expected.txt: Added.
7:20 AM Changeset in webkit [202904] by fred.wang@free.fr
  • 8 edits
    2 adds in trunk/LayoutTests

Rewrite the tests of scripts-subsup.html
https://bugs.webkit.org/show_bug.cgi?id=159202

The tests for script metrics in scripts-subsup.html are very unreliable and difficult to
debug. They currently fail on all platforms. We remove them and import a test from the
MathML in HTML5 test suite that verifies equivalent features in a more reliable and
understandable way. The equivalence test for msubsup and empty script is not preserved as
the current code does not actually try to achieve this equivalence.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-07
Reviewed by Martin Robinson.

  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-1.html: Added.
  • mathml/presentation/scripts-subsup-expected.html: Remove the tests for metrics.
  • mathml/presentation/scripts-subsup.html: Ditto.
  • platform/gtk/TestExpectations: Remove failure for scripts-subsup.html.
  • platform/ios-simulator-wk1/TestExpectations: Ditto.
  • platform/ios-simulator/TestExpectations: Ditto.
  • platform/mac/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
7:09 AM Changeset in webkit [202903] by fred.wang@free.fr
  • 7 edits in trunk/LayoutTests

Improve test mathml/presentation/tokenElements-background-color.html
https://bugs.webkit.org/show_bug.cgi?id=130693

We use the Ahem font to make tokenElements-background-color.html more reliable. However, we
remove the case of italic m because Ahem does not contain the required character U+1D45A.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-07
Reviewed by Martin Robinson.

  • mathml/presentation/tokenElements-background-color-expected.html:
  • mathml/presentation/tokenElements-background-color.html:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
7:01 AM Changeset in webkit [202902] by fred.wang@free.fr
  • 1 edit
    1 move in trunk/LayoutTests

Fix the name of mathml-in-dashboard-expected.txt for iOS.

Unreviewed test gardening.

  • platform/ios-simulator/mathml/mathml-in-dashboard-expected.txt: Renamed from LayoutTests/platform/ios-simulator/mathml/mathml-in-dashboard-actual.txt.
6:04 AM Changeset in webkit [202901] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[GTK] Painting a video into a canvas doesn't work when accelerated compositing is enabled
https://bugs.webkit.org/show_bug.cgi?id=159405

Patch by Miguel Gomez <magomez@igalia.com> on 2016-07-07
Reviewed by Xabier Rodriguez-Calvar.

Implement video frame painting to the canvas when accelerated compositing is enabled.

Already covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
Replace custom enumeration for the video rotation with the ImageOrientation class.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
Replace the orientation value comparison with ImageOrientation::usesWidthAsHeight().
(WebCore::MediaPlayerPrivateGStreamerBase::paint):
Perform the frame painting taking into account the video orientation tag.
(WebCore::MediaPlayerPrivateGStreamerBase::nativeImageForCurrentTime):
Rotate the native image before returning it.
(WebCore::MediaPlayerPrivateGStreamerBase::setVideoSourceOrientation):
Replace custom enumeration for the video rotation with the ImageOrientation class.
(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase): Deleted.
Remove orientation initialization.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:

Remove custom enumeration for the video orientation.

4:57 AM Changeset in webkit [202900] by fred.wang@free.fr
  • 5 edits in trunk/LayoutTests

Tweak mathml/presentation/semantics.html to make it pass on iOS
https://bugs.webkit.org/show_bug.cgi?id=159457

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-07
Reviewed by Sergio Villar Senin.

  • mathml/presentation/semantics-expected.html: Force a line break between the two tests.
  • mathml/presentation/semantics.html: Ditto.
  • platform/ios-simulator-wk1/TestExpectations: Remove failure expectation.
  • platform/ios-simulator-wk2/TestExpectations: Ditto.
1:32 AM Changeset in webkit [202899] by Csaba Osztrogonác
  • 3 edits in trunk/Source/JavaScriptCore
[ARMv7] REGRESSION(r197655): ASSERTION FAILED: (cond == Zero)
(cond == NonZero)

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

Reviewed by Benjamin Poulain.

Allow Signed and PositiveOrZero conditions too because tst instruction updates N and Z flags.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::branchTest32):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::branchTest32): Add assertions to avoid possible bugs in the future.

1:09 AM Changeset in webkit [202898] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[Mac][cmake] Unreviewed buildfix after r202889. Just for fun.

  • PlatformMac.cmake:

Jul 6, 2016:

11:58 PM Changeset in webkit [202897] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

[GStreamer][GL] switch to appsink
https://bugs.webkit.org/show_bug.cgi?id=159466

Reviewed by Carlos Garcia Campos.

Fakesink is mostly used for tests. Appsink provides the same
functionality and is actually meant to be used on application
side.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::newSampleCallback):
(WebCore::newPrerollCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL):
(WebCore::MediaPlayerPrivateGStreamerBase::drawCallback): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
11:22 PM Changeset in webkit [202896] by commit-queue@webkit.org
  • 16 edits in trunk/Source/JavaScriptCore

Builtin generator should use pragma once for header files
https://bugs.webkit.org/show_bug.cgi?id=159462

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-06
Reviewed by Alex Christensen.

  • Scripts/builtins/builtins_generate_combined_header.py:

(BuiltinsCombinedHeaderGenerator.generate_output):

  • Scripts/builtins/builtins_generate_separate_header.py:

(BuiltinsSeparateHeaderGenerator.generate_output):

  • Scripts/builtins/builtins_templates.py:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
10:55 PM Changeset in webkit [202895] by Chris Dumez
  • 7 edits in trunk

Document.title setter does not work for SVG documents
https://bugs.webkit.org/show_bug.cgi?id=159503
<rdar://problem/27212313>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that all checks are passing.

  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.title-09-expected.txt:

Source/WebCore:

Document.title setter should work for SVG documents:

This patch aligns our behavior with the specification
and with Firefox / Chrome.

No new tests, rebaselined existing test.

  • dom/Document.cpp:

(WebCore::Document::setTitle):

  • Reverse the if conditions for clarity.
  • If the document element is an SVG svg element, create a SVGTitleElement and insert it as first child of the document element.
  • Call SVGTitleElement::setText() instead of HTMLTitleElement::setText() at the end of the method if m_titleElement is a SVGTitleElement.

(WebCore::Document::updateTitleElement):

  • If document element is an SVG svg element, use the first child of the document element that is a SVGTitleElement.
  • svg/SVGTitleElement.cpp:

(WebCore::SVGTitleElement::setText):

  • svg/SVGTitleElement.h:

Add SVGTitleElement::setText() method that does the same
thing as HTMLTitleElement::setText().

10:41 PM Changeset in webkit [202894] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Some API tests started failing after r202889
https://bugs.webkit.org/show_bug.cgi?id=159498

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadHTMLString):
Fix a typo; this is a MIME type, not an encoding :|

9:14 PM Changeset in webkit [202893] by Chris Dumez
  • 7 edits
    2 adds in trunk

Align Document.body setter with the HTML specification
https://bugs.webkit.org/show_bug.cgi?id=159490

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline existing W3C test now that one more check is passing.

  • web-platform-tests/html/dom/documents/dom-tree-accessors/Document.body-expected.txt:

Source/WebCore:

Align Document.body setter with the HTML specification:

In particular, the following web-exposed changes were made:

  • It is now possible to set document.body to a frameset element.
  • We no longer call importNode() on the passed in body. Therefore, if the body comes from another document, its will be adopted / transferred rather than cloned.

Both changes match the behavior of Firefox and Chrome.

No new tests, updated / rebaselined existing tests.

  • dom/Document.cpp:

(WebCore::Document::setBodyOrFrameset):

LayoutTests:

Update existing test that was setting a document's body to another frame's body
as it was expecting the body element to get cloned rather than adopted / transferred.

  • fast/dom/document-set-body-expected.txt:
  • fast/dom/document-set-body.html:
8:38 PM Changeset in webkit [202892] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Fix my bogus json I landed earlier today.

  • features.json:
8:25 PM Changeset in webkit [202891] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION: Hitting ⌘T in Web Inspector no longer opens in new tab in Safari
https://bugs.webkit.org/show_bug.cgi?id=159487
rdar://problem/27188047

Change Command-T to Command-Option-T to open a new tab.

I also changed Command-1, etc. to Command-Option-1, etc. to switch tabs. The number commands
conflicted similarly with Safari and didn't work for me as a Web Inspector shortcut at all.
We can't use Command-Shift because of Command-Shift-3 and Command-Shift-4 for screenshots.

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):

8:12 PM Changeset in webkit [202890] by benjamin@webkit.org
  • 46 edits in trunk/Source

[JSC] Unify how we throw TypeError from C++
https://bugs.webkit.org/show_bug.cgi?id=159500

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-06
Reviewed by Saam Barati.

Source/JavaScriptCore:

Throwing a TypeError is an uncommon case. We should minimize the impact
on the call sites.

This patch does that by:
-Replace the 2 calls createTypeError()->throwException() by throwTypeError().
-Use ASCIILiteral when possible.
-Add an overload of throwTypeError() taking ASCIILiteral directly

(that way, the String creation and destruction is done by the callee).

On x86_64, this reduces the TEXT segment by 29kb.

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::evaluateWithScopeExtension):

  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::evaluateWithScopeExtension):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • jit/JITOperations.cpp:
  • runtime/DatePrototype.cpp:

(JSC::dateProtoFuncToJSON):

  • runtime/Error.cpp:

(JSC::throwConstructorCannotBeCalledAsFunctionTypeError):
(JSC::throwTypeError):

  • runtime/Error.h:

(JSC::throwVMTypeError):

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::arrayBufferProtoFuncSlice):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):
(JSC::JSValue::toStringSlowCase):

  • runtime/JSCJSValueInlines.h:

(JSC::toPreferredPrimitiveType):

  • runtime/JSDataViewPrototype.cpp:

(JSC::getData):
(JSC::setData):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::defineOwnProperty):

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructGenericTypedArrayViewFromIterator):
(JSC::constructGenericTypedArrayViewWithArguments):
(JSC::constructGenericTypedArrayView):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::speciesConstruct):
(JSC::genericTypedArrayViewProtoFuncSet):
(JSC::genericTypedArrayViewProtoFuncCopyWithin):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):
(JSC::genericTypedArrayViewProtoFuncSubarray):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncProtoGetter):
(JSC::globalFuncProtoSetter):

  • runtime/JSONObject.cpp:

(JSC::Stringifier::appendStringifiedValue):

  • runtime/JSObject.cpp:

(JSC::JSObject::setPrototypeWithCycleCheck):
(JSC::callToPrimitiveFunction):
(JSC::JSObject::ordinaryToPrimitive):
(JSC::JSObject::defaultHasInstance):
(JSC::validateAndApplyPropertyDescriptor):

  • runtime/JSTypedArrayViewConstructor.cpp:

(JSC::constructTypedArrayView):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::typedArrayViewPrivateFuncLength):
(JSC::typedArrayViewProtoFuncSet):
(JSC::typedArrayViewProtoFuncCopyWithin):
(JSC::typedArrayViewProtoFuncFill):
(JSC::typedArrayViewProtoFuncLastIndexOf):
(JSC::typedArrayViewProtoFuncIndexOf):
(JSC::typedArrayViewProtoFuncJoin):
(JSC::typedArrayViewProtoGetterFuncBuffer):
(JSC::typedArrayViewProtoGetterFuncLength):
(JSC::typedArrayViewProtoGetterFuncByteLength):
(JSC::typedArrayViewProtoGetterFuncByteOffset):
(JSC::typedArrayViewProtoFuncReverse):
(JSC::typedArrayViewProtoFuncSubarray):
(JSC::typedArrayViewProtoFuncSlice):

  • runtime/ObjectConstructor.cpp:

(JSC::toPropertyDescriptor):
(JSC::objectConstructorDefineProperty):
(JSC::objectConstructorDefineProperties):
(JSC::objectConstructorCreate):

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncDefineGetter):
(JSC::objectProtoFuncDefineSetter):

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncCompile):

  • runtime/Symbol.cpp:

(JSC::Symbol::toNumber):

Source/WebCore:

  • bindings/js/JSBiquadFilterNodeCustom.cpp:

(WebCore::JSBiquadFilterNode::setType):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::constructJSBlob):

  • bindings/js/JSCryptoKeySerializationJWK.cpp:

(WebCore::getBigIntegerVectorFromJSON):
(WebCore::JSCryptoKeySerializationJWK::JSCryptoKeySerializationJWK):
(WebCore::tryJWKKeyOpsValue):
(WebCore::JSCryptoKeySerializationJWK::reconcileUsages):
(WebCore::JSCryptoKeySerializationJWK::keyDataOctetSequence):
(WebCore::JSCryptoKeySerializationJWK::keyDataRSAComponents):
(WebCore::JSCryptoKeySerializationJWK::keyData):
(WebCore::addJWKAlgorithmToJSON):
(WebCore::JSCryptoKeySerializationJWK::serialize):

  • bindings/js/JSCryptoOperationData.cpp:

(WebCore::cryptoOperationDataFromJSValue):

  • bindings/js/JSDOMBinding.cpp:

(WebCore::enforceRange):
(WebCore::throwTypeError):
(WebCore::throwArgumentMustBeEnumError):
(WebCore::throwArgumentMustBeFunctionError):
(WebCore::throwArgumentTypeError):
(WebCore::throwArrayElementTypeError):
(WebCore::throwGetterTypeError):
(WebCore::throwThisTypeError):

  • bindings/js/JSDataCueCustom.cpp:

(WebCore::constructJSDataCue):

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::defineElement):

  • bindings/js/JSFileCustom.cpp:

(WebCore::constructJSFile):

  • bindings/js/JSModuleLoader.cpp:

(WebCore::JSModuleLoader::evaluate):

  • bindings/js/JSMutationObserverCustom.cpp:

(WebCore::constructJSMutationObserver):

  • bindings/js/JSOscillatorNodeCustom.cpp:

(WebCore::JSOscillatorNode::setType):

  • bindings/js/JSPannerNodeCustom.cpp:

(WebCore::JSPannerNode::setPanningModel):
(WebCore::JSPannerNode::setDistanceModel):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp:

(WebCore::constructJSReadableStreamController):
(WebCore::constructJSReadableStreamReader):

  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::cryptoKeyFormatFromJSValue):
(WebCore::importKey):
(WebCore::exportKey):

  • bindings/js/ReadableStreamController.cpp:

(WebCore::ReadableStreamController::invoke):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::throwValidationError):
(WebCore::SerializedScriptValue::maybeThrowExceptionIfSerializationFailed):

  • bridge/c/c_instance.cpp:

(JSC::Bindings::CInstance::invokeMethod):

  • bridge/objc/objc_instance.mm:

(ObjcInstance::invokeMethod):

  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::ObjcArray::setValueAt):

Source/WebKit/mac:

  • Plugins/Hosted/ProxyInstance.mm:

(WebKit::ProxyInstance::invokeMethod):

8:03 PM Changeset in webkit [202889] by timothy_horton@apple.com
  • 26 edits
    3 copies
    1 move
    2 adds in trunk

Email from June 1st containing text 'Today @ 7:10PM' is linkified, but shouldn't be
https://bugs.webkit.org/show_bug.cgi?id=159498
<rdar://problem/26719903>

Reviewed by Sam Weinig.

Source/WebCore:

New API test: WebKit2.DataDetectionReferenceDate

  • editing/cocoa/DataDetection.h:
  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):
Extract the reference date from the DataDetectors context dictionary if it exists,
and pass it along to DataDetectors.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkLoadCompleteForThisFrame):

  • loader/FrameLoaderClient.h:

Plumb the DataDetectors context dictionary through from WebPage.

Source/WebKit2:

  • Shared/Cocoa/LoadParametersCocoa.mm: Added.

(WebKit::LoadParameters::platformEncode):
(WebKit::LoadParameters::platformDecode):

  • Shared/LoadParameters.cpp: Added.

(WebKit::LoadParameters::encode):
(WebKit::LoadParameters::decode):

  • Shared/LoadParameters.h: Added.

Add a struct that knows how to encode all of the different parameters
to all of the Load* messages, including the platform-specific DataDetectors parameters.

  • Shared/mac/ArgumentCodersMac.h:
  • Shared/mac/ArgumentCodersMac.mm:

(IPC::typeFromObject):
(IPC::encode):
(IPC::decode):
Add NSURL coders that defer to the CFURL coders.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::dataDetectionContext):

  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::dataDetectionContext):
Add APIUIClient methods to retrieve the DataDetectors context dictionary.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::addPlatformLoadParameters):
Add the DataDetectors context dictionary to the given LoadParameters.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dataDetectionContext):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::dataDetectionContext):
Store the dataDetectionContext on WebPage, and make it accessible to WebCore
via the FrameLoaderClient (it is used in FrameLoader when the load completes).

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::loadFile):
(WebKit::WebPageProxy::loadData):
(WebKit::WebPageProxy::loadHTMLString):
(WebKit::WebPageProxy::loadAlternateHTMLString):
(WebKit::WebPageProxy::loadPlainTextString):
(WebKit::WebPageProxy::loadWebArchiveData):

  • UIProcess/WebPageProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadStringImpl):
(WebKit::WebPage::loadData):
(WebKit::WebPage::loadString):
(WebKit::WebPage::loadAlternateHTMLString):
(WebKit::WebPage::loadHTMLString): Deleted.
(WebKit::WebPage::loadPlainTextString): Deleted.
(WebKit::WebPage::loadWebArchiveData): Deleted.

  • WebProcess/WebPage/WebPage.messages.in:

Adopt LoadParameters, taking this opportunity to reduce the number of very similar messages.
We can take this further (we should be able to get it down to just LoadRequest
and LoadData) in the future. When any load occurs, grab the client's DataDetectorse
context dictionary and send it along with the load request, storing it in WebPage.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/DataDetection.mm: Added.

(-[DataDetectionNavigationDelegate webView:didFinishNavigation:]):
(-[DataDetectionUIDelegate _dataDetectionContextForWebView:]):
(expectLinkCount):
(TEST):
Add a test ensuring that ReferenceDate in the DataDetectors context is respected
when deciding what to linkify.

7:06 PM WebInspectorCodingStyleGuide edited by Joseph Pecoraro
Double quoted strings (diff)
6:32 PM Changeset in webkit [202888] by Chris Dumez
  • 5 edits in trunk/Source

[WK2][Cocoa] Disable ResourceResponse lazy initialization
https://bugs.webkit.org/show_bug.cgi?id=159497
<rdar://problem/27209066>

Reviewed by Alex Christensen.

Source/WebCore:

Add method to Cocoa's ResponseResponse header to disable
lazy initialization.

  • platform/network/cf/ResourceResponse.h:
  • platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::ResourceResponse::disableLazyInitialization):

Source/WebKit2:

Disable ResourceResponse lazy initialization for WebKit2 as
we always end up initializing all the fields anyway when
sending the response to the WebContent process via IPC.

Even worse, we always do a partial lazy initialization (common
fields only) before the IPC so we always do the initialization
in 2 steps. This normally would not be an issue but the 2 steps
actually have some overlap because both call
CFHTTPMessageCopyAllHeaderFields(), which is expensive (See
<rdar://problem/26796059>) to first get the common HTTP headers,
then ALL the HTTP headers.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

6:02 PM Changeset in webkit [202887] by Brent Fulgham
  • 8 edits
    2 adds in trunk

Return values of JSArray::createUninitialized (and related) are not consistently checked for nullptr
https://bugs.webkit.org/show_bug.cgi?id=159495
<rdar://problem/26075433>

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/canvas/canvas-getImageData-invalid-result-buffer-crash.html

  • html/ImageData.cpp:

(WebCore::ImageData::ImageData): Assert at construction if we could not create a valid
buffer.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::createArrayBuffer): Check for a null buffer before using it.

  • platform/graphics/cg/ImageBufferDataCG.cpp:

(WebCore::ImageBufferData::getData): Ditto.

  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::platformApplySoftware): Ditto.

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::copyImageBytes): Ditto.
(WebCore::FilterEffect::copyUnmultipliedImage): Ditto.
(WebCore::FilterEffect::copyPremultipliedImage): Ditto.

LayoutTests:

  • fast/canvas/canvas-getImageData-invalid-result-buffer-crash.html: Added.
  • fast/canvas/canvas-getImageData-invalid-result-buffer-crash-expected.txt: Added.
5:33 PM Changeset in webkit [202886] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/restore-from-page-cache.html as a flaky crash on mac-wk2 debug
https://bugs.webkit.org/show_bug.cgi?id=159430

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:20 PM Changeset in webkit [202885] by Ryan Haddad
  • 3 edits
    1 copy in trunk/LayoutTests

More test gardening after r202835.

Unreviewed test gardening.

  • platform/mac-elcapitan/fast/attachment/attachment-select-on-click-expected.txt: Copied from LayoutTests/platform/mac/fast/attachment/attachment-select-on-click-expected.txt.
  • platform/mac/fast/attachment/attachment-select-on-click-expected.png:
  • platform/mac/fast/attachment/attachment-select-on-click-expected.txt:
4:37 PM Changeset in webkit [202884] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS] Text suggestions should be cleared when form input session is invalidated
https://bugs.webkit.org/show_bug.cgi?id=159477

Patch by Chelsea Pugh <cpugh@apple.com> on 2016-07-06
Reviewed by Dan Bernstein.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKFormInputSession invalidate]): Set input delegate's suggestions to nil when a form input session is
invalidated. This will set the keyboard QuickType suggestions back to their default values.

4:13 PM Changeset in webkit [202883] by ap@apple.com
  • 2 edits in trunk/Tools

Build fix - work around rdar://problem/27196668.

  • LayoutTestRelay/Configurations/Base.xcconfig:
3:39 PM Changeset in webkit [202882] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit2

Call continueCanAuthenticateAgainstProtectionSpace when cancelling loads waiting for the callback
https://bugs.webkit.org/show_bug.cgi?id=159492
<rdar://problem/26921670>

Reviewed by Brady Eidson.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::~NetworkLoad):
(WebKit::NetworkLoad::canAuthenticateAgainstProtectionSpaceAsync):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):

  • NetworkProcess/NetworkLoad.h:
3:13 PM Changeset in webkit [202881] by Chris Dumez
  • 3 edits
    2 adds in trunk

Document.body should return the first child of the html element that is either a body / frameset element
https://bugs.webkit.org/show_bug.cgi?id=159488

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Import corresponding W3C test.

  • web-platform-tests/html/dom/documents/dom-tree-accessors/Document.body-expected.txt: Added.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/Document.body.html: Added.

Source/WebCore:

Document.body should return the first child of the html element that is
either a body / frameset element:

We used the first child of the *document* element that is either a
body / frameset element, even if the document element is not an html
element.

Firefox and Chrome match the specification.

Test: imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/Document.body.html

  • dom/Document.cpp:

(WebCore::Document::bodyOrFrameset):

2:54 PM Changeset in webkit [202880] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Adopt new PiP glyph
https://bugs.webkit.org/show_bug.cgi?id=159494
<rdar://problem/27061084>

Reviewed by Ada Chan.

We got new artwork for Picture-in-Picture on macOS from
our designers.

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-controls-panel .picture-in-picture-button):
(video::-webkit-media-controls-panel .picture-in-picture-button.return-from-picture-in-picture):

2:39 PM Changeset in webkit [202879] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline inspector/model/remote-object.html after r202873

Unreviewed test gardening.

  • platform/mac/inspector/model/remote-object-expected.txt:
2:23 PM Changeset in webkit [202878] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebKit2

[RTL Scrollbars] RTL Scrollbars broken with clients creating Web Views via [WKView initWithFrame:contextRef:pageGroupRef:]
https://bugs.webkit.org/show_bug.cgi?id=159383
<rdar://problem/26921117>

Reviewed by Anders Carlsson.

The code which consults with the userInterfaceLayoutDirection of the view is
inside [WKWebView _initializeWithConfiguration:]. However, some clients create
Web Views via [WKView initWithFrame:contextRef:pageGroupRef:] which doesn't
call this code. Therefore, this codepath should do the same kind of direction
consulting.

  • UIProcess/API/mac/WKView.mm:

(toUserInterfaceLayoutDirection):
(-[WKView initWithFrame:contextRef:pageGroupRef:relatedToPage:]):

2:10 PM Changeset in webkit [202877] by Ryan Haddad
  • 21 edits in trunk/Source

Unreviewed, rolling out r202867.
https://bugs.webkit.org/show_bug.cgi?id=159491

This change caused an existing LayoutTest to crash on ios-
simulator (Requested by ryanhaddad on #webkit).

Reverted changeset:

"<img> with a wide gamut PDF does not display using a wide
gamut color space"
https://bugs.webkit.org/show_bug.cgi?id=158983
http://trac.webkit.org/changeset/202867

Patch by Commit Queue <commit-queue@webkit.org> on 2016-07-06

1:23 PM Changeset in webkit [202876] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: sometimes reloading a page with main resource selected will show an empty content view
https://bugs.webkit.org/show_bug.cgi?id=158069
<rdar://problem/26516710>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView):
Continue until we get one that works.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement):
Avoid showing a content view for a background tab if it could steal
the content view from a foreground tab. This is a targeted fix for
reload + tab content view loading behavior. A more general fix would
be reducing the work done by non-foreground tabs.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser.prototype._tabBarItemSelected):
Update navigation sidebar first so it is set when showing the TabContentView.

1:22 PM Changeset in webkit [202875] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception reporter should include the currently dispatching protocol event or request/response if applicable
https://bugs.webkit.org/show_bug.cgi?id=159320
<rdar://problem/27117754>

Reviewed by Timothy Hatcher and Joseph Pecoraro.

Keep track of the currently dispatched protocol response or protocol event and make
them available to the uncaught exception reporter. If an internal exception is reported
while dispatching an event or response, dump the protocol message(s) into the pre-filled
bug report.

  • UserInterface/Debug/UncaughtExceptionReporter.js:

(stringifyAndTruncateObject): Added.
Rearrange the code that generates the pre-filled report so it's easier to add optional sections.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass):
(InspectorBackendClass.prototype.get currentDispatchState): Expose the dispatching state.
(InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
(InspectorBackendClass.prototype._sendCommandToBackendExpectingPromise):
Store the originating command request with the pendingResponse data so that we can examine
the originating request if the response causes an error. This will cause request message objects
to be garbage-collected after their responses are dispatched rather than when the request is sent.
But, I don't forsee this being a performance problem since we should always get a command response
and pending command responses do not typically accumulate except when the inspector first loads.

(InspectorBackendClass.prototype._dispatchResponse): Save the response being dispatched.
(InspectorBackendClass.prototype._dispatchResponseToCallback): Simplify exception reporting.
(InspectorBackendClass.prototype._dispatchEvent): Save the event being dispatched.

1:14 PM Changeset in webkit [202874] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Correct a typo in the Mac TestExpectations file.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:09 PM Changeset in webkit [202873] by Chris Dumez
  • 11 edits
    1 copy
    2 moves in trunk

[ShadowDOM] assignedSlot property should be on Text, not CharacterData
https://bugs.webkit.org/show_bug.cgi?id=159482
<rdar://problem/27201687>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/dom/interfaces-expected.txt:

Source/WebCore:

assignedSlot property should be on Text, not CharacterData as per:

Align with the latest specification.

No new tests, rebaselined existing test.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/Element.idl:
  • dom/NonDocumentTypeChildNode.idl:
  • dom/Slotable.idl: Copied from Source/WebCore/dom/NonDocumentTypeChildNode.idl.
  • dom/Text.idl:

LayoutTests:

Update / rebaseline a couple of existing tests.

  • fast/shadow-dom/Slotable-interface-assignedSlot-expected.txt: Renamed from LayoutTests/fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot-expected.txt.
  • fast/shadow-dom/Slotable-interface-assignedSlot.html: Renamed from LayoutTests/fast/shadow-dom/NonDocumentTypeChildNode-interface-assignedSlot.html.
  • js/dom/dom-static-property-for-in-iteration-expected.txt:
1:03 PM Changeset in webkit [202872] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Do not animate video fullscreen exit when page has navigated away.
https://bugs.webkit.org/show_bug.cgi?id=159479

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-06
Reviewed by Eric Carlson.

No new tests there is no effect on the DOM. The only effect is to video fullscreen window animation.

When the page has been navigated away, the fullscreen or picture-in-picture window should
not animate back inline in the page, since the page has already navigated to a new page.
Instead exit the fullscreen mode without animating.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::exitFullscreen):

1:02 PM Changeset in webkit [202871] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Signal that media element is prepared for inline when being stopped since script won't be able to.
https://bugs.webkit.org/show_bug.cgi?id=159163
rdar://problem/26844557

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-07-06
Reviewed by Jer Noble.

No new tests since this don't change behavior in the DOM. It prevents a race that could cause
fullscreen and picture in picture to fail to tear down completely.

When an element exits a fullscreen mode and is immediately removed from the DOM by the page,
its JavaScript stops running. The fullscreen code is then blocked waiting for JS to signal
that it has updated its state in preparation for inline mode. This change explicitly signals
this since JS wont be able to.

Additionally, when going from PiP back to inline, don't go through fullscreen first, when the
request comes from the DOM. This was causing the presentation mode to become confused. The
page requests inline. PiP would exit back to fullscreen and set the presentation mode to
fullscreen. Then it would exit fullscreen back to inline, but the DOM still had the wrong
presentation mode. Skipping this removes an unnecessary step in the animation and keeps the
presentation mode state consistent.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::stopWithoutDestroyingMediaPlayer):

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm: Set prepared for inline.

(WebVideoFullscreenInterfaceAVKit::exitFullscreen): Return directly to inlne.

12:54 PM Changeset in webkit [202870] by Chris Dumez
  • 6 edits
    2 adds in trunk

Add support for Node.isConnected
https://bugs.webkit.org/show_bug.cgi?id=159474
<rdar://problem/27197947>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/interfaces-expected.txt:

Rebaseline now that more checks are passing.

  • web-platform-tests/dom/nodes/Node-isConnected-expected.txt: Added.
  • web-platform-tests/dom/nodes/Node-isConnected.html: Added.

Import W3C test for Node.isConnected.

Source/WebCore:

Add support for Node.isConnected as per:

Chrome already supports this.

Test: imported/w3c/web-platform-tests/dom/nodes/Node-isConnected.html

  • dom/Node.idl:

LayoutTests:

Rebaseline test now that a new property is exposed on nodes.

  • js/dom/dom-static-property-for-in-iteration-expected.txt:
12:17 PM Changeset in webkit [202869] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Update IndexedDB's status on the feature page (How had we not done this already?)

Rubberstamped by Sam Weinig.

  • features.json:
12:04 PM Changeset in webkit [202868] by enrica@apple.com
  • 3 edits in trunk/Source/WebKit2

Limit touch distance for two finger tap.
https://bugs.webkit.org/show_bug.cgi?id=159476
rdar://problem/26439052

Reviewed by Beth Dakin.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView setupInteraction]):

  • Platform/spi/ios/UIKitSPI.h
11:46 AM Changeset in webkit [202867] by commit-queue@webkit.org
  • 21 edits in trunk/Source

<img> with a wide gamut PDF does not display using a wide gamut color space
https://bugs.webkit.org/show_bug.cgi?id=158983
<rdar://problem/25720247>

Patch by Antoine Quint <Antoine Quint> on 2016-07-06
Reviewed by Tim Horton.

Source/WebCore:

Calls to ImageBuffer::createCompatibleBuffer() that do not provide an explicit
color space will now infer the color space from the provided graphics context
on platforms using CG. The method signature that takes in a GraphicsContext
without a color space is now split into a CG-specified implementation and a
Cairo one to avoid having diverging platform code in ImageBuffer.cpp.

Some call sites need to provide an explicit color space still, so we add a new
ImageBuffer::createCompatibleBuffer() that allows for that while inferring
sizing and scaling from a GraphicsContext.

All signatures of ImageBuffer::createCompatibleBuffer() are losing the
hasAlpha parameter which was always ignored. All call sites that were using
hasAlpha have been updated.

In addition, we make all the IOSurface and IOSurfacePool code, which is
CG-specific, use the plaform-specific type CGColorSpaceRef instead of ColorSpace
so that we may pick up on the color space copied over from the graphics context
in the CG-specific implementation of ImageBuffer::createCompatibleBuffer().

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::drawTextInternal):

  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::drawPattern):

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer):

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

(WebCore::NamedImageGeneratedImage::drawPattern):

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer):

  • platform/graphics/cg/IOSurfacePool.cpp:

(WebCore::surfaceMatchesParameters):
(WebCore::IOSurfacePool::takeSurface):

  • platform/graphics/cg/IOSurfacePool.h:
  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer):
(WebCore::ImageBuffer::ImageBuffer):

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::surfaceFromPool):
(WebCore::IOSurface::create):
(WebCore::IOSurface::createFromSendRight):
(WebCore::IOSurface::createFromSurface):
(WebCore::IOSurface::createFromImage):
(WebCore::IOSurface::IOSurface):
(WebCore::IOSurface::ensurePlatformContext):

  • platform/mac/ThemeMac.mm:

(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):

  • platform/spi/cg/CoreGraphicsSPI.h:
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintProgressBar):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::bufferForeground):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawPatternForContainer):

Source/WebKit2:

ColorSpace parameters have been replaced with CGColorSpaceRef parameters for IOSurface.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::decode):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _takeViewSnapshot]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

11:23 AM Changeset in webkit [202866] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

InlineAccess::sizeForLengthAccess() is wrong on some platforms because it should also consider "length" not being array length
https://bugs.webkit.org/show_bug.cgi?id=159429

Reviewed by Filip Pizlo.

The calculation inside sizeForLengthAccess() was not taking into
account that an access to a "length" property might not be an
array length access. sizeForLengthAccess() should always have enough
room for a regular self property accesses. This only changes how
much of a nop sled we emit if array length access size is smaller
than self access size. This matters on ARM64.

  • bytecode/InlineAccess.h:

(JSC::InlineAccess::sizeForPropertyAccess):
(JSC::InlineAccess::sizeForPropertyReplace):
(JSC::InlineAccess::sizeForLengthAccess):

11:22 AM Changeset in webkit [202865] by commit-queue@webkit.org
  • 6 edits in trunk

Unreviewed, rolling out r198928 and r198985.
https://bugs.webkit.org/show_bug.cgi?id=159478

"It's breaking some websites" (Requested by saamyjoon on
#webkit).

Reverted changesets:

"[ES6] Disallow var assignments in for-in loops"
https://bugs.webkit.org/show_bug.cgi?id=155451
http://trac.webkit.org/changeset/198928

"Unreviewed, turn ES6 for-in loop test success"
https://bugs.webkit.org/show_bug.cgi?id=155451
http://trac.webkit.org/changeset/198985

11:15 AM Changeset in webkit [202864] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/debugger/tail-deleted-frames-from-vm-entry.html as flaky on mac-wk2 debug
https://bugs.webkit.org/show_bug.cgi?id=159447

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
10:34 AM Changeset in webkit [202863] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Long spin editing text at top of message containing Reader version of web page with many GIFs
https://bugs.webkit.org/show_bug.cgi?id=159444
<rdar://problem/26790386>

Reviewed by Sam Weinig.

  • editing/cocoa/HTMLConverter.mm:

(fileWrapperForElement):
Instead of looking up the image's data in the cache by URL, just use the
CachedImage on the HTMLImageElement. There are situations (which seem to involve
cloning the DOM then having the cloned DOM get garbage collected) where the image
can be removed from the cache, but still be live in the document.

10:19 AM Changeset in webkit [202862] by mark.lam@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

Rename VM stack limit fields to better describe their purpose.
https://bugs.webkit.org/show_bug.cgi?id=159451

Reviewed by Keith Miller.

This is in preparation for an upcoming patch that changes what stack limit values
are used under various circumstances. This patch aims to do some minimal work to
rename the fields so that it will be easier to reason about the upcoming patch.

In this patch, we make the following changes:

  1. Rename VM::m_stackLimit to VM::m_jsCPUStackLimit.
  1. VM::m_jsStackLimit used to have an overloaded meaning:
    1. For JIT builds, m_jsStackLimit is synonymous with m_stackLimit.
    2. For C Loop builds, m_jsStackLimit is a separate pointer that points to the emulated JS stack that the C Loop uses.

In place of m_jsStackLimit, this patch introduces 2 new fields:
VM::m_jsEmulatedStackLimit and VM::m_llintStackLimit.

m_llintStackLimit is the limit that the LLInt assembly uses for its stack
check. m_llintStackLimit behaves like the old m_jsStackLimit in that:

  1. For JIT builds, m_llintStackLimit is synonymous with m_jsCPUStackLimit.
  2. For C Loop builds, m_llintStackLimit is synonymous with m_jsEmulatedStackLimit.

m_jsEmulatedStackLimit is used for the emulated stack that the C Loop uses.

  1. Rename the following methods to match the above:

VM::stackLimit() ==> VM::jsCPUStackLimit()
VM::addressOfStackLimit() ==> VM::addressOfJSCPUStackLimit()
VM::jsStackLimit() ==> VM::jsEmulatedStackLimit()
VM::setJSStackLimit() ==> VM::setJSEmulatedStackLimit()
JSStack::setStackLimit() ==> JSStack::setEmulatedStackLimit()

  1. With change (2) and (3), the limits will be used as follows:
    1. VM code doing stack recursion checks will only use m_jsCPUStackLimit.
    2. JIT code will only use m_jsCPUStackLimit.
    3. C Loop emulated stack code in JSStack will only use m_jsEmulatedStackLimit. Note: the part of JSStack that operates on a JIT build will use

m_jsCPUStackLimit as expected.

  1. LLINT assembly code will only use m_llintStackLimit.

This patch only contains the above refactoring changes. There is no behavior
change.

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):

  • interpreter/JSStack.cpp:

(JSC::JSStack::JSStack):
(JSC::JSStack::growSlowCase):
(JSC::JSStack::lowAddress):
(JSC::JSStack::highAddress):

  • interpreter/JSStack.h:
  • interpreter/JSStackInlines.h:

(JSC::JSStack::ensureCapacityFor):
(JSC::JSStack::shrink):
(JSC::JSStack::grow):
(JSC::JSStack::setJSEmulatedStackLimit):
(JSC::JSStack::setStackLimit): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetupVarargsFrameFastCase):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/RegExp.cpp:

(JSC::RegExp::finishCreation):
(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::updateStackLimit):

  • runtime/VM.h:

(JSC::VM::reservedZoneSize):
(JSC::VM::jsCPUStackLimit):
(JSC::VM::addressOfJSCPUStackLimit):
(JSC::VM::jsEmulatedStackLimit):
(JSC::VM::setJSEmulatedStackLimit):
(JSC::VM::isSafeToRecurse):
(JSC::VM::jsStackLimit): Deleted.
(JSC::VM::setJSStackLimit): Deleted.
(JSC::VM::stackLimit): Deleted.
(JSC::VM::addressOfStackLimit): Deleted.

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::startFunction):

10:04 AM Changeset in webkit [202861] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit/win

[Win] Add null pointer check in gesture handling.
https://bugs.webkit.org/show_bug.cgi?id=159454

Reviewed by Brent Fulgham.

  • WebView.cpp:

(WebView::gesture):

9:58 AM Changeset in webkit [202860] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Hold RefPtr<>'s to UniqueIDBDatabases while performing user delete.
https://bugs.webkit.org/show_bug.cgi?id=159471

Reviewed by Brent Fulgham.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
(WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):

9:57 AM Changeset in webkit [202859] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/27187013.

  • platform/mac/TestExpectations:
9:57 AM Changeset in webkit [202858] by commit-queue@webkit.org
  • 10 edits in trunk/Source

Unreviewed, rolling out r202725.
https://bugs.webkit.org/show_bug.cgi?id=159473

didn't reduce coreui memory usage (Requested by kling on
#webkit).

Reverted changeset:

"[Mac] Get rid of the old timey rubber-banding linen pattern."
https://bugs.webkit.org/show_bug.cgi?id=159329
http://trac.webkit.org/changeset/202725

6:27 AM Changeset in webkit [202857] by Philippe Normand
  • 3 edits in trunk/Source/WebCore

[GStreamer] duration query improvements
https://bugs.webkit.org/show_bug.cgi?id=159458

Reviewed by Carlos Garcia Campos.

Currently the player caches the result of the duration query but
this is overkill because it's cached by playbin already. The only
time where the player needs to cache the duration is when EOS was
reached because in that situation the query would fail.

No new tests, existing media tests cover this patch.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): Member variables update.
(WebCore::MediaPlayerPrivateGStreamer::load): Stop the fill timer
before loading a new URL, the same player can be used for
different assets.
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition): Perform
a duration query, the duration value is no longer locally cached.
(WebCore::MediaPlayerPrivateGStreamer::duration): Return cached value only after EOS was reached.
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired): Perform
a duration query, the duration value is no longer locally cached.
(WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::updateStates): Remove duration caching support.
(WebCore::MediaPlayerPrivateGStreamer::didEnd): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::durationChanged): Ditto.
(WebCore::MediaPlayerPrivateGStreamer::cacheDuration): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
6:02 AM Changeset in webkit [202856] by Manuel Rego Casasnovas
  • 3 edits
    2 adds in trunk

[css-grid] Height percentages are not properly resolved for item's children
https://bugs.webkit.org/show_bug.cgi?id=159258

Reviewed by Sergio Villar Senin.

Source/WebCore:

When grid items are vertically stretched (default behavior)
they store their height on RenderBox::overrideLogicalContentHeight().
In order to resolve the percentage height on the grid item's children
we need to use that size.

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

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computePercentageLogicalHeight):

LayoutTests:

  • fast/css-grid-layout/percent-resolution-grid-item-children-expected.txt: Added.
  • fast/css-grid-layout/percent-resolution-grid-item-children.html: Added.
4:32 AM Changeset in webkit [202855] by Carlos Garcia Campos
  • 7 edits
    2 moves in trunk/Source/WebKit2

Duplicated code in DrawingAreaImpl and CoordinatedDrawingArea
https://bugs.webkit.org/show_bug.cgi?id=159259

Reviewed by Žan Doberšek.

It seems that CoordinatedDrawingArea is just a copy paste of DrawingAreaImpl with non-accelerated code path
removed. There's actually nothing (or very little) specific to coordinated graphics in the
CoordinatedDrawingArea implementation. This patch renames CoordinatedDrawingArea as AcceleratedDrawingArea and
makes DrawingAreaImpl inherit from it, so that in case of accelerated compositing the parent class is used, and
DrawingAreaImpl only adds the non accelerated code path.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • WebProcess/WebPage/AcceleratedDrawingArea.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp.

(WebKit::AcceleratedDrawingArea::~AcceleratedDrawingArea):
(WebKit::AcceleratedDrawingArea::AcceleratedDrawingArea):
(WebKit::AcceleratedDrawingArea::setNeedsDisplay):
(WebKit::AcceleratedDrawingArea::setNeedsDisplayInRect):
(WebKit::AcceleratedDrawingArea::scroll):
(WebKit::AcceleratedDrawingArea::pageBackgroundTransparencyChanged):
(WebKit::AcceleratedDrawingArea::setLayerTreeStateIsFrozen):
(WebKit::AcceleratedDrawingArea::forceRepaint):
(WebKit::AcceleratedDrawingArea::forceRepaintAsync):
(WebKit::AcceleratedDrawingArea::setPaintingEnabled):
(WebKit::AcceleratedDrawingArea::updatePreferences):
(WebKit::AcceleratedDrawingArea::mainFrameContentSizeChanged):
(WebKit::AcceleratedDrawingArea::layerHostDidFlushLayers):
(WebKit::AcceleratedDrawingArea::graphicsLayerFactory):
(WebKit::AcceleratedDrawingArea::setRootCompositingLayer):
(WebKit::AcceleratedDrawingArea::scheduleCompositingLayerFlush):
(WebKit::AcceleratedDrawingArea::scheduleCompositingLayerFlushImmediately):
(WebKit::AcceleratedDrawingArea::updateBackingStoreState):
(WebKit::AcceleratedDrawingArea::sendDidUpdateBackingStoreState):
(WebKit::AcceleratedDrawingArea::suspendPainting):
(WebKit::AcceleratedDrawingArea::resumePainting):
(WebKit::AcceleratedDrawingArea::enterAcceleratedCompositingMode):
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModeSoon):
(WebKit::AcceleratedDrawingArea::didReceiveCoordinatedLayerTreeHostMessage):
(WebKit::AcceleratedDrawingArea::viewStateDidChange):
(WebKit::AcceleratedDrawingArea::attachViewOverlayGraphicsLayer):

  • WebProcess/WebPage/AcceleratedDrawingArea.h: Renamed from Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h.

(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingModePending):
(WebKit::AcceleratedDrawingArea::didUpdateBackingStoreState):
(WebKit::AcceleratedDrawingArea::exitAcceleratedCompositingMode):

  • WebProcess/WebPage/DrawingArea.cpp:

(WebKit::DrawingArea::create):

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::DrawingAreaImpl):
(WebKit::DrawingAreaImpl::setNeedsDisplay):
(WebKit::DrawingAreaImpl::setNeedsDisplayInRect):
(WebKit::DrawingAreaImpl::scroll):
(WebKit::DrawingAreaImpl::forceRepaint):
(WebKit::DrawingAreaImpl::setRootCompositingLayer):
(WebKit::DrawingAreaImpl::updateBackingStoreState):
(WebKit::DrawingAreaImpl::didUpdateBackingStoreState):
(WebKit::DrawingAreaImpl::sendDidUpdateBackingStoreState):
(WebKit::DrawingAreaImpl::suspendPainting):
(WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):
(WebKit::DrawingAreaImpl::~DrawingAreaImpl): Deleted.
(WebKit::DrawingAreaImpl::mainFrameContentSizeChanged): Deleted.
(WebKit::DrawingAreaImpl::updatePreferences): Deleted.
(WebKit::DrawingAreaImpl::didUpdate): Deleted.
(WebKit::DrawingAreaImpl::exitAcceleratedCompositingMode): Deleted.
(WebKit::DrawingAreaImpl::scheduleDisplay): Deleted.
(WebKit::DrawingAreaImpl::displayTimerFired): Deleted.
(WebKit::DrawingAreaImpl::display): Deleted.
(WebKit::shouldPaintBoundsRect): Deleted.
(WebKit::DrawingAreaImpl::setNativeSurfaceHandleForCompositing): Deleted.

  • WebProcess/WebPage/DrawingAreaImpl.h:
4:27 AM AddingFeatures edited by Konstantin Tokarev
Autotools, qmake, and Visual Studio build systems are gone (diff)
4:12 AM SuccessfulPortHowTo edited by Konstantin Tokarev
Add some words aboud build system integration (diff)
2:48 AM Changeset in webkit [202854] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

[GTK] Better guard TextureMapper header and CMake includes
https://bugs.webkit.org/show_bug.cgi?id=159415

Reviewed by Carlos Garcia Campos.

  • PlatformGTK.cmake: Only include TextureMapper.cmake if USE_TEXTURE_MAPPER is enabled.
  • platform/graphics/GraphicsContext3DPrivate.h: Guard texmap header inclusions with USE(TEXTURE_MAPPER).
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h: Ditto, but wrap it around

the existing USE(TEXTURE_MAPPER_GL) block.

2:42 AM SuccessfulPortHowTo edited by Konstantin Tokarev
"Skipped" is "TestExpectations" now (diff)

Jul 5, 2016:

11:54 PM Changeset in webkit [202853] by commit-queue@webkit.org
  • 48 edits
    2 copies
    16 adds
    17 deletes in trunk/LayoutTests

LayoutTests/imported/w3c:
Refresh WPT tests up to 03916af
https://bugs.webkit.org/show_bug.cgi?id=159420

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-05
Reviewed by Alex Christensen.

Rrefreshing tests.
Used clean option to remove obsolete tests.

  • resources/ImportExpectations:
  • resources/TestRepositories:
  • web-platform-tests/XMLHttpRequest/resources/last-modified.py: Added.

(main):

  • web-platform-tests/XMLHttpRequest/resources/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/responsexml-document-properties-expected.txt:
  • web-platform-tests/XMLHttpRequest/responsexml-document-properties.htm:
  • web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/send-blob-with-no-mime-type.html: Added.
  • web-platform-tests/XMLHttpRequest/send-entity-body-document-expected.txt:
  • web-platform-tests/XMLHttpRequest/w3c-import.log:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-defer-scripts-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-defer-scripts-subframe.html: Added.
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-defer-scripts.html: Added.
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-scripts-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-scripts.html: Added.
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-not-hang-scriptloader-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-not-hang-scriptloader-subframe.html: Added.
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-not-hang-scriptloader.html: Added.
  • web-platform-tests/common/entities.json: Added.
  • web-platform-tests/common/form-submission.py:

(main):

  • web-platform-tests/common/w3c-import.log:
  • web-platform-tests/dom/nodes/Node-contains-xhtml-expected.txt: Removed.
  • web-platform-tests/dom/nodes/Node-contains-xhtml.xhtml: Removed.
  • web-platform-tests/dom/nodes/rootNode-expected.txt: Removed.
  • web-platform-tests/dom/nodes/rootNode.html: Removed.
  • web-platform-tests/fetch/api/basic/integrity.js:
  • web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-no-cors.js:
  • web-platform-tests/fetch/api/cors/cors-basic-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic.js:
  • web-platform-tests/fetch/api/cors/cors-cookies-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies.js:
  • web-platform-tests/fetch/api/cors/cors-filtering.js:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins.js:

(corsMultipleOrigins):

  • web-platform-tests/fetch/api/cors/cors-preflight-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight.js:

(corsPreflight):

  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials.js:
  • web-platform-tests/fetch/api/redirect/redirect-schemes-expected.txt: Added.
  • web-platform-tests/fetch/api/redirect/redirect-schemes.html: Added.
  • web-platform-tests/fetch/api/request/request-idl.html:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.body-getter-expected.txt: Removed.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.body-getter.html: Removed.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.body-setter-01-expected.txt: Removed.
  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.body-setter-01.html: Removed.
  • web-platform-tests/html/dom/elements-microdata.js: Removed.
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/2d.scaled-manual.png: Removed.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change-expected.txt:
  • web-platform-tests/html/semantics/forms/the-form-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/the-input-element/input-textselection-01-expected.txt: Removed.
  • web-platform-tests/html/semantics/forms/the-input-element/input-textselection-01.html: Removed.
  • web-platform-tests/html/syntax/html-element-list.js: Added.
  • web-platform-tests/html/syntax/w3c-import.log: Renamed from LayoutTests/imported/w3c/web-platform-tests/service-workers/service-workers/resources/w3c-import.log.
  • web-platform-tests/service-workers/service-worker/resources/test-helpers.sub.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/service-workers/service-workers/resources/test-helpers.js.

(service_worker_unregister_and_register):
(service_worker_unregister):
(service_worker_unregister_and_done):
(unreached_fulfillment):
(with_iframe.):
(wait_for_update):
(wait_for_state):
(base_path):
(test_login):
(login_https):
(websocket):
(get_websocket_url):

  • web-platform-tests/streams/OWNERS: Added.
  • web-platform-tests/streams/byte-length-queuing-strategy.https.html:
  • web-platform-tests/streams/count-queuing-strategy.https.html:
  • web-platform-tests/streams/readable-streams/bad-strategies.https.html:
  • web-platform-tests/streams/readable-streams/bad-underlying-sources.https.html:
  • web-platform-tests/streams/readable-streams/brand-checks.https.html:
  • web-platform-tests/streams/readable-streams/cancel.https.html:
  • web-platform-tests/streams/readable-streams/count-queuing-strategy-integration.https.html:
  • web-platform-tests/streams/readable-streams/garbage-collection-1-expected.txt: Removed.
  • web-platform-tests/streams/readable-streams/garbage-collection-1.html: Removed.
  • web-platform-tests/streams/readable-streams/garbage-collection-2-expected.txt: Removed.
  • web-platform-tests/streams/readable-streams/garbage-collection-2.html: Removed.
  • web-platform-tests/streams/readable-streams/garbage-collection.https.html:
  • web-platform-tests/streams/readable-streams/general.https.html:
  • web-platform-tests/streams/readable-streams/pipe-through.https.html:
  • web-platform-tests/streams/readable-streams/readable-stream-reader.https.html:
  • web-platform-tests/streams/readable-streams/tee.https.html:
  • web-platform-tests/streams/readable-streams/templated.https.html:
  • web-platform-tests/streams/w3c-import.log:

LayoutTests:
Rebasing tests

Importing tests

Refresh WPT tests up to 03916af
https://bugs.webkit.org/show_bug.cgi?id=159420

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-05
Reviewed by Alex Christensen.

  • TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wk2/imported/w3c/web-platform-tests/html/semantics/document-metadata/styling/LinkStyle-expected.txt:
11:53 PM Changeset in webkit [202852] by commit-queue@webkit.org
  • 6 edits
    1 delete in trunk/Source/WebKit2

Refactor NetworkResourceLoadParameters
https://bugs.webkit.org/show_bug.cgi?id=159402

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-06
Reviewed by Alex Christensen.

Making NetworkResourceLoadParameters derive from NetworkLoadParameters.

  • CMakeLists.txt: Removed NetworkLoadParameters.cpp
  • NetworkProcess/NetworkLoadParameters.cpp: Deleted.
  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters): Deleted.

  • NetworkProcess/NetworkResourceLoadParameters.h: Making it derive from NetworkLoadParameters.
  • WebKit2.xcodeproj/project.pbxproj:
11:52 PM Changeset in webkit [202851] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] Do not build MediaPlayerPrivateGStreamerOwr when VIDEO is disabled
https://bugs.webkit.org/show_bug.cgi?id=159425

Patch by Olivier Blin <Olivier Blin> on 2016-07-05
Reviewed by Philippe Normand.

MediaPlayer backends are useful and can be built only when VIDEO is enabled.

No new tests, behavior is unchanged.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.h:
11:51 PM Changeset in webkit [202850] by commit-queue@webkit.org
  • 2 edits in trunk

ENABLE_MEDIA_SOURCE should depend on ENABLE_VIDEO
https://bugs.webkit.org/show_bug.cgi?id=159424

Patch by Olivier Blin <Olivier Blin> on 2016-07-05
Reviewed by Philippe Normand.

MEDIA_SOURCE requires VIDEO enabled, since MediaSource needs HTMLMediaElement.

  • Source/cmake/WebKitFeatures.cmake:
11:13 PM Changeset in webkit [202849] by pvollan@apple.com
  • 4 edits in trunk

Enhance Windows DRT implementation to support platform scroll wheel events.
https://bugs.webkit.org/show_bug.cgi?id=36002

Reviewed by Brent Fulgham.

Tools:

Implement function continuousMouseScrollBy in Windows event sender.

  • DumpRenderTree/win/EventSender.cpp:

(mouseScrollBy):
(continuousMouseScrollBy):

LayoutTests:

Update test expectations.

  • platform/win/TestExpectations:
10:51 PM Changeset in webkit [202848] by pvollan@apple.com
  • 6 edits in trunk

[Win] Layout Test http/tests/security/contentSecurityPolicy/source-list-parsing-10.html is failing
https://bugs.webkit.org/show_bug.cgi?id=147646

Reviewed by Brent Fulgham.

.:

Disable CSP_NEXT. We can then use the common expected test results for this test.

  • Source/cmake/OptionsWin.cmake:

Source/WebCore:

Fix build error when CSP_NEXT is disabled.

  • DerivedSources.cpp:

LayoutTests:

Update test expectations.

  • platform/win/TestExpectations:
10:25 PM Changeset in webkit [202847] by sbarati@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

StackVisitor::unwindToMachineCodeBlockFrame() may unwind past a VM entry frame when catching an exception and the frame has inlined tail calls
https://bugs.webkit.org/show_bug.cgi?id=159448
<rdar://problem/27084459>

Reviewed by Mark Lam.

Consider the following stack trace:
(machine) foo -> VM entry frame -> (machine) bar -> (inlined tailcall) baz

If an exception is thrown at 'baz', we will do exception unwinding,
which will eventually call unwindToMachineCodeBlockFrame() which will call
gotoNextFrame() on the 'baz' frame. The next logical frame for 'baz' is 'foo' because
'bar' tail called 'baz' even though there is a machine frame for 'bar' on the stack.
This is a bug. unwindToMachineCodeBlockFrame() should not care about the next
logical frame, it just wants to move StackVisitor's state to the current machine
frame. The bug here is that we would end up unwinding past the VM entry frame
which can have all kinds of terrible consequences.

This bug fixes unwindToMachineCodeBlockFrame() by having it not rely
on gotoNextFrame() and instead using its own mechanism for setting
the StackVisotor's state to the current machine frame.

  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::unwindToMachineCodeBlockFrame):

  • tests/stress/dont-unwind-past-vm-entry-frame.js: Added.

(let.p.new.Proxy):
(let.p.new.Proxy.apply):
(bar):
(let.good):
(getItem):
(start):

10:04 PM Changeset in webkit [202846] by commit-queue@webkit.org
  • 9 edits in trunk

RELEASE_ASSERT(!thisObject) in ObjCCallbackFunctionImpl::call when calling JSExport ObjC Constructor without operator new
https://bugs.webkit.org/show_bug.cgi?id=159446

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-05
Reviewed by Mark Lam.

Source/JavaScriptCore:

Treat ObjC JSExport init constructors like ES6 Class Constructors
and throw a TypeError when called without 'new'.

  • API/ObjCCallbackFunction.mm:

(JSC::ObjCCallbackFunctionImpl::type):
(JSC::objCCallbackFunctionCallAsFunction):
When calling an init method as a function instead of construction
throw a TypeError.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
Improve error message.

  • API/tests/testapi.mm:

(testObjectiveCAPIMain):
Test we get an exception when calling an ObjC constructor without 'new'.

LayoutTests:

  • js/class-syntax-call-expected.txt:
  • js/class-syntax-default-constructor-expected.txt:
  • js/script-tests/class-syntax-call.js:
  • js/script-tests/class-syntax-default-constructor.js:

Improve error message when calling a class constructor without 'new'.

9:11 PM Changeset in webkit [202845] by Brent Fulgham
  • 4 edits
    3 adds in trunk

Throw exceptions for invalid number of channels for ConvolverNode
<https://webkit.org/b/159238>

Patch by David Kilzer <ddkilzer@apple.com> on 2016-07-05
Reviewed by Brent Fulgham.

Source/WebCore:

Fix based on a Blink change (patch by <rtoy@chromium.org>):
<https://chromium.googlesource.com/chromium/src.git/+/0cc26bbb7175aec77910d0b47faf9f8c8a640fe5>

Also includes a related fix for ReverbConvolverStage (patch by <rtoy@chromium.org>):
<https://src.chromium.org/viewvc/blink?revision=157832&view=revision>

Test: webaudio/convolver-channels.html

  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::setBuffer): Throw an exception for
anything but 1, 2 or 4 channels.

  • platform/audio/ReverbConvolverStage.cpp:

(WebCore::ReverbConvolverStage::ReverbConvolverStage): Don't read past the end of
the impulseResponse array.

LayoutTests:

Test based on a Blink change (patch by <rtoy@chromium.org>):
<https://chromium.googlesource.com/chromium/src.git/+/0cc26bbb7175aec77910d0b47faf9f8c8a640fe5>

compatibility.js based on a Blink change (patch by <Raymond Toy>):
<https://chromium.googlesource.com/chromium/src.git/+/f846f5a461d1fcdbe5152898576c125058079ed1>

  • webaudio/convolver-channels-expected.txt: Added.
  • webaudio/convolver-channels.html: Added.
  • webaudio/resources/compatibility.js: Added.
7:50 PM Changeset in webkit [202844] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Remove some unneeded #include "CachedCall.h".
https://bugs.webkit.org/show_bug.cgi?id=159449

Reviewed by Saam Barati.

  • runtime/ArrayPrototype.cpp:
  • runtime/JSArray.cpp:
  • runtime/MapPrototype.cpp:
  • runtime/SetPrototype.cpp:
5:56 PM Changeset in webkit [202843] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk

Web Inspector: Sending XHR with UTF8 encoded data shows garbled data in Resource sidebar
https://bugs.webkit.org/show_bug.cgi?id=159358

Patch by Johan K. Jensen <jj@johanjensen.dk> on 2016-07-05
Reviewed by Joseph Pecoraro.

Source/WebCore:

Test: http/tests/inspector/network/xhr-request-data-encoded-correctly.html

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::buildObjectForResourceRequest):

  • inspector/NetworkResourcesData.cpp:

(WebCore::NetworkResourcesData::setResourceContent):

LayoutTests:

  • http/tests/inspector/network/xhr-request-data-encoded-correctly-expected.txt: Added.
  • http/tests/inspector/network/xhr-request-data-encoded-correctly.html: Added.
5:53 PM Changeset in webkit [202842] by Ryan Haddad
  • 3 edits
    1 delete in trunk/LayoutTests

Test gardening after r202835.

Unreviewed test garedening.

  • platform/ios-simulator/fast/attachment/attachment-select-on-click-expected.txt:
  • platform/mac-elcapitan/fast/attachment/attachment-select-on-click-expected.txt: Removed.
  • platform/mac/fast/attachment/attachment-select-on-click-expected.txt:
5:41 PM Changeset in webkit [202841] by Chris Fleizach
  • 3 edits
    2 adds in trunk

AX: Image attachment in email does not show up in AX tree
https://bugs.webkit.org/show_bug.cgi?id=159422

Reviewed by Joanmarie Diggs.

Source/WebCore:

When an image loads after the accessibility tree has already been created, the ignored status
of that image does not get updated.

Test: accessibility/image-load-on-delay.html

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::imageChanged):

LayoutTests:

  • accessibility/image-load-on-delay-expected.txt: Added.
  • accessibility/image-load-on-delay.html: Added.
4:42 PM Changeset in webkit [202840] by timothy@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Switch last uses of -webkit-linear-gradient() to linear-gradient()
https://bugs.webkit.org/show_bug.cgi?id=159438
rdar://problem/27183417

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:

(.timeline-overview-graph.rendering-frame > .frame-marker):
(body.window-inactive .timeline-overview-graph.rendering-frame > .frame-marker):

  • UserInterface/Views/TimelineRecordFrame.css:

(.timeline-record-frame.tall):
(.timeline-record-frame.selected):
(body.window-inactive .timeline-record-frame.selected):

4:38 PM Changeset in webkit [202839] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

4:09 PM Changeset in webkit [202838] by ggaren@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Crash @ bankofamerica.com, University of Vienna
https://bugs.webkit.org/show_bug.cgi?id=159439

Reviewed by Saam Barati.

  • ftl/FTLLink.cpp:

(JSC::FTL::link): Do check for stack overflow in the arity mismatch thunk
because it can happen. Don't store a CallSiteIndex because we haven't
stored a CodeBlock yet, and our stack frame is not fully constructed,
so it would be an error for any client to try to load this value (and
operationCallArityCheck does not load this value).

  • tests/stress/arity-check-ftl-throw.js: Added. New test case for stressing

a stack overflow with arity mismatch. Sadly, after hours of fiddling, I
can't seem to get this to fail in trunk. Still, it's good to have some
more testing in this area.

3:27 PM Changeset in webkit [202837] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/27182687.

  • platform/mac/TestExpectations:
3:25 PM Changeset in webkit [202836] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Windows build.
https://bugs.webkit.org/show_bug.cgi?id=159103

  • Modules/indexeddb/IDBActiveDOMObject.h:

(WebCore::IDBActiveDOMObject::callFunctionOnOriginThread):
WTF.

3:23 PM Changeset in webkit [202835] by enrica@apple.com
  • 7 edits in trunk

HTMLAttachment elements don't receive clicks after the first on iOS.
https://bugs.webkit.org/show_bug.cgi?id=159310
rdar://problem/25776940

Reviewed by Tim Horton.

Source/WebCore:

shouldSelectOnMouseDown() now returns false on iOS.

  • html/HTMLAttachmentElement.h:

LayoutTests:

Updated existing test to correctly reflect the new behavior.

  • fast/attachment/attachment-select-on-click.html:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator/fast/attachment/attachment-select-on-click-expected.txt:
  • platform/mac/fast/attachment/attachment-select-on-click-expected.txt:
3:21 PM Changeset in webkit [202834] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Actually persist changes to cookie accept policy.
https://bugs.webkit.org/show_bug.cgi?id=159377
<rdar://problem/22774152>

Patch by Alex Christensen <achristensen@webkit.org> on 2016-07-05
Reviewed by Alexey Proskuryakov.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSession::NetworkSession):
Added logging.

  • UIProcess/mac/WebCookieManagerProxyMac.mm:

(WebKit::WebCookieManagerProxy::persistHTTPCookieAcceptPolicy):
When we persist the cookie accept policy, we want to call _saveCookies to actually write the
change to disk so that when we create a new process which reads from disk to determine its
cookie accept policy, it will read the new cookie accept policy. Before this patch it was
reading the old one in some cases where the changes had not yet been persisted to disk.

2:34 PM Changeset in webkit [202833] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

IDBDatabase can null deref its ScriptExecutionContext inside connectionToServerLost.
<rdar://problem/27169924> and https://bugs.webkit.org/show_bug.cgi?id=159432

Reviewed by Alex Christensen.

No new tests (Targeted test not possible, covered peripherally by all IDB tests).

  • Modules/indexeddb/IDBActiveDOMObject.h:
  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::connectionToServerLost): Make sure there is still a script execution context.

2:08 PM Changeset in webkit [202832] by commit-queue@webkit.org
  • 8 edits in trunk

[JSC] The prototype cycle checks throws the wrong error type
https://bugs.webkit.org/show_bug.cgi?id=159393

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-05
Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

We were supposed to throw the TypeError:
-https://tc39.github.io/ecma262/#sec-set-object.prototype.__proto

  • runtime/JSObject.cpp:

(JSC::JSObject::setPrototypeWithCycleCheck):

LayoutTests:

  • js/cyclic-prototypes-expected.txt:
  • js/script-tests/cyclic-prototypes.js:

(catch):

1:38 PM Changeset in webkit [202831] by timothy@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Drop -webkit-calc() in completions and a single use
https://bugs.webkit.org/show_bug.cgi?id=159435
rdar://problem/27179340

Reviewed by Dean Jackson.

  • UserInterface/Models/CSSKeywordCompletions.js:
  • UserInterface/Views/VisualStylePropertyEditorLink.css:

(.visual-style-property-editor-link > .visual-style-property-editor-link-border):

1:30 PM Changeset in webkit [202830] by timothy@apple.com
  • 15 edits in trunk/Source/WebInspectorUI

Web Inspector: Drop the prefix from -webkit-image-set()
https://bugs.webkit.org/show_bug.cgi?id=159433
rdar://problem/27178887

Reviewed by Dean Jackson.

  • UserInterface/Models/CSSKeywordCompletions.js:
  • UserInterface/Views/ApplicationCacheIcons.css:

(.application-cache-manifest .icon):
(.application-cache-frame .icon):

  • UserInterface/Views/CookieIcon.css:

(.cookie-icon .icon):

  • UserInterface/Views/DOMStorageIcons.css:

(.local-storage-icon .icon):
(.session-storage-icon .icon):

  • UserInterface/Views/DatabaseIcon.css:

(.database-icon .icon):

  • UserInterface/Views/DatabaseTableIcon.css:

(.database-table-icon .icon):

  • UserInterface/Views/FolderIcon.css:

(.folder-icon .icon):

  • UserInterface/Views/GradientSlider.css:

(.gradient-slider-knob):
(.gradient-slider-knob.selected):

  • UserInterface/Views/HoverMenu.css:

(.hover-menu > img):

  • UserInterface/Views/ResourceIcons.css:

(.resource-icon .icon):
(.resource-icon.resource-type-document .icon):
(.resource-icon.resource-type-image .icon):
(.resource-icon.resource-type-font .icon):
(.resource-icon.resource-type-stylesheet .icon):
(.resource-icon.resource-type-script .icon):
(.anonymous-script-icon .icon):
(.source-map-resource.resource-icon .icon):
(.source-map-resource.resource-icon.resource-type-stylesheet .icon):
(.source-map-resource.resource-icon.resource-type-script .icon):
(.large .resource-icon .icon):
(.large .resource-icon.resource-type-document .icon):
(.large .resource-icon.resource-type-image .icon):
(.large .resource-icon.resource-type-font .icon):
(.large .resource-icon.resource-type-stylesheet .icon):
(.large .resource-icon.resource-type-script .icon):
(.large .anonymous-script-icon .icon):
(.large .source-map-resource.resource-icon .icon):
(.large .source-map-resource.resource-icon.resource-type-stylesheet .icon):
(.large .source-map-resource.resource-icon.resource-type-script .icon):

  • UserInterface/Views/Slider.css:

(.slider > img):
(.slider > img.dragging):

  • UserInterface/Views/SourceCodeTextEditor.css:

(.hover-menu.color > img):

  • UserInterface/Views/TextEditor.css:

(.text-editor > .CodeMirror .has-breakpoint .CodeMirror-linenumber::before):
(.text-editor > .CodeMirror .breakpoint-resolved .CodeMirror-linenumber::before):
(.text-editor > .CodeMirror .execution-line .CodeMirror-linenumber::after):

  • UserInterface/Views/TimelineIcons.css:

(body:not(.mac-platform, .windows-platform) .network-icon .icon):
(body:not(.mac-platform, .windows-platform) .network-icon.large .icon):
(body:not(.mac-platform, .windows-platform) .layout-icon .icon):
(body:not(.mac-platform, .windows-platform) .layout-icon.large .icon):
(body:not(.mac-platform, .windows-platform) .script-icon .icon):
(body:not(.mac-platform, .windows-platform) .script-icon.large .icon):
(body:not(.mac-platform, .windows-platform) .rendering-frame-icon .icon):
(body:not(.mac-platform, .windows-platform) .memory-icon .icon):
(body:not(.mac-platform, .windows-platform) .heap-allocations-icon .icon):
(body:not(.mac-platform, .windows-platform) .stopwatch-icon .icon):

1:22 PM Changeset in webkit [202829] by jer.noble@apple.com
  • 6 edits
    2 adds in trunk

REGRESSION (r202641): Netflix playback stalls after a few seconds
https://bugs.webkit.org/show_bug.cgi?id=159365

Reviewed by Eric Carlson.

Source/WebCore:

Test: LayoutTests/media/media-source/media-source-small-gap.html

In r202641, we removed a "fudge factor" of 1 millisecond added onto the duration
of every sample for the purposes of calculating a SourceBuffer's buffered ranges.
Netflix (and likely other providers) have streams that have 1 "timeScale" gaps
between segments (e.g., 1/9000s, 1/3003s, etc.). Fill those gaps by looking for
the previous and next samples and extending the buffered range to cover the gaps
if they're short enough. We have to ensure that we correctly remove those extended
durations when we remove samples from the SourceBuffer as well.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::removeSamplesFromTrackBuffer):
(WebCore::SourceBuffer::removeCodedFrames):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

Source/WTF:

Add a isBetween() convenience method.

  • wtf/MediaTime.cpp:

(WTF::MediaTime::isBetween):

  • wtf/MediaTime.h:

LayoutTests:

  • media/media-source/media-source-small-gap-expected.txt: Added.
  • media/media-source/media-source-small-gap.html: Added.
1:05 PM Changeset in webkit [202828] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

our parsing for "use strict" is wrong when we first parse other directives that are not "use strict" but are located in a place where "use strict" would be valid
https://bugs.webkit.org/show_bug.cgi?id=159376
<rdar://problem/27108773>

Reviewed by Benjamin Poulain.

Our strict mode detection algorithm used to break if we ever saw a directive
that is not "use strict" but is syntactically located in a location where our
parser looks for "use strict". It broke as follows:

If a function started with a non "use strict" string literal, we will allow
"use strict" to be in any arbitrary statement inside the top level block in
the function body. For example, this meant that if we parsed a sequence of string
literals, followed by arbitrary statements, followed by "use strict", we would parse
the function as if it's in strict mode. This is the wrong behavior with respect to
the spec. This has consequences in other ways that break invariants of the language.
For example, we used to allow functions that are lexically nested inside what we deemed
a strict function to be non-strict. This used to fire an assertion if we ever skipped over
that function using the source provider cache, but it worked just fine in release builds.

This patch fixes this bug.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseSourceElements):
(JSC::Parser<LexerType>::parseStatement):

  • tests/stress/ensure-proper-strict-mode-parsing.js: Added.

(foo.bar):
(foo):
(bar.foo):
(bar):
(bar.call.undefined.this.throw.new.Error.string_appeared_here.baz):
(baz.call.undefined.undefined.throw.new.Error.string_appeared_here.jaz):
(jaz.call.undefined.this.throw.new.Error.string_appeared_here.vaz):

12:49 PM Changeset in webkit [202827] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

reportAbandonedObjectGraph should report abandoned bytes based on capacity() so it works even if a GC has never happened
https://bugs.webkit.org/show_bug.cgi?id=159222
<rdar://problem/27001991>

Reviewed by Geoffrey Garen.

When reportAbandonedObjectGraph() was called before the first GC, it used to
not indicate to the GC timers that we have memory that needs to be collected
because the calculation was based on m_sizeAfterLastCollect (which was zero).
This patch makes the calculation based on capacity() which is a valid number
even before the first GC.

  • heap/Heap.cpp:

(JSC::Heap::reportAbandonedObjectGraph):
(JSC::Heap::protect):
(JSC::Heap::didAbandon): Deleted.

  • heap/Heap.h:

(JSC::Heap::jitStubRoutines):

11:59 AM Changeset in webkit [202826] by mmaxfield@apple.com
  • 577 edits
    290 copies
    2 moves
    96 adds in trunk

[Sierra] Rebaseline tests to use un-mocked system font metrics
https://bugs.webkit.org/show_bug.cgi?id=159311
<rdar://problem/24138411>

Reviewed in person by Alexey Proskuryakov.

Tools:

Stop mocking the system font on Sierra.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setDefaultsToConsistentValuesForTesting):

  • WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:

(WTR::InjectedBundle::platformInitialize):

LayoutTests:

  • platform/mac-elcapitan/accessibility/aria-readonly-expected.txt: Copied from LayoutTests/platform/mac/accessibility/aria-readonly-expected.txt.
  • platform/mac-elcapitan/accessibility/form-control-value-settable-expected.txt: Copied from LayoutTests/platform/mac/accessibility/form-control-value-settable-expected.txt.
  • platform/mac-elcapitan/compositing/contents-opaque/control-layer-expected.txt: Copied from LayoutTests/platform/mac/compositing/contents-opaque/control-layer-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/html/css3-modsel-19b-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/html/css3-modsel-19b-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/html/css3-modsel-23-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/html/css3-modsel-23-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/html/css3-modsel-24-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/html/css3-modsel-24-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/html/css3-modsel-64-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/html/css3-modsel-64-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/html/css3-modsel-68-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/html/css3-modsel-68-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/html/css3-modsel-69-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/html/css3-modsel-69-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/xhtml/css3-modsel-19b-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xhtml/css3-modsel-19b-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/xhtml/css3-modsel-23-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xhtml/css3-modsel-23-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/xhtml/css3-modsel-24-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xhtml/css3-modsel-24-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/xhtml/css3-modsel-64-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xhtml/css3-modsel-64-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/xhtml/css3-modsel-68-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xhtml/css3-modsel-68-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/xhtml/css3-modsel-69-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xhtml/css3-modsel-69-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/xml/css3-modsel-19b-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xml/css3-modsel-19b-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/xml/css3-modsel-23-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xml/css3-modsel-23-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/xml/css3-modsel-24-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xml/css3-modsel-24-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/xml/css3-modsel-64-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xml/css3-modsel-64-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/xml/css3-modsel-68-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xml/css3-modsel-68-expected.txt.
  • platform/mac-elcapitan/css3/selectors3/xml/css3-modsel-69-expected.txt: Copied from LayoutTests/platform/mac/css3/selectors3/xml/css3-modsel-69-expected.txt.
  • platform/mac-elcapitan/editing/input/caret-at-the-edge-of-input-expected.txt: Copied from LayoutTests/platform/mac/editing/input/caret-at-the-edge-of-input-expected.txt.
  • platform/mac-elcapitan/editing/input/reveal-caret-of-multiline-input-expected.txt: Copied from LayoutTests/platform/mac/editing/input/reveal-caret-of-multiline-input-expected.txt.
  • platform/mac-elcapitan/editing/inserting/4960120-1-expected.txt: Copied from LayoutTests/platform/mac/editing/inserting/4960120-1-expected.txt.
  • platform/mac-elcapitan/editing/inserting/before-after-input-element-expected.txt: Copied from LayoutTests/platform/mac/editing/inserting/before-after-input-element-expected.txt.
  • platform/mac-elcapitan/editing/mac/spelling/autocorrection-at-beginning-of-word-1-expected.txt: Added.
  • platform/mac-elcapitan/editing/mac/spelling/autocorrection-at-beginning-of-word-2-expected.txt: Added.
  • platform/mac-elcapitan/editing/mac/spelling/delete-autocorrected-word-2-expected.txt: Copied from LayoutTests/editing/mac/spelling/delete-autocorrected-word-2-expected.txt.
  • platform/mac-elcapitan/editing/pasteboard/4641033-expected.txt: Copied from LayoutTests/platform/mac/editing/pasteboard/4641033-expected.txt.
  • platform/mac-elcapitan/editing/pasteboard/4806874-expected.txt: Copied from LayoutTests/platform/mac/editing/pasteboard/4806874-expected.txt.
  • platform/mac-elcapitan/editing/pasteboard/4944770-1-expected.txt: Copied from LayoutTests/platform/mac/editing/pasteboard/4944770-1-expected.txt.
  • platform/mac-elcapitan/editing/pasteboard/4944770-2-expected.txt: Copied from LayoutTests/platform/mac/editing/pasteboard/4944770-2-expected.txt.
  • platform/mac-elcapitan/editing/pasteboard/drop-text-without-selection-expected.txt: Copied from LayoutTests/platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt.
  • platform/mac-elcapitan/editing/pasteboard/input-field-1-expected.txt: Copied from LayoutTests/platform/mac/editing/pasteboard/input-field-1-expected.txt.
  • platform/mac-elcapitan/editing/pasteboard/pasting-tabs-expected.txt: Copied from LayoutTests/platform/mac/editing/pasteboard/pasting-tabs-expected.txt.
  • platform/mac-elcapitan/editing/selection/3690703-2-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/3690703-2-expected.txt.
  • platform/mac-elcapitan/editing/selection/3690703-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/3690703-expected.txt.
  • platform/mac-elcapitan/editing/selection/3690719-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/3690719-expected.txt.
  • platform/mac-elcapitan/editing/selection/4397952-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/4397952-expected.txt.
  • platform/mac-elcapitan/editing/selection/4895428-3-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/4895428-3-expected.txt.
  • platform/mac-elcapitan/editing/selection/4975120-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/4975120-expected.txt.
  • platform/mac-elcapitan/editing/selection/5240265-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/5240265-expected.txt.
  • platform/mac-elcapitan/editing/selection/drag-select-1-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/drag-select-1-expected.txt.
  • platform/mac-elcapitan/editing/selection/replaced-boundaries-3-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/replaced-boundaries-3-expected.txt.
  • platform/mac-elcapitan/editing/selection/select-across-readonly-input-3-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/select-across-readonly-input-3-expected.txt.
  • platform/mac-elcapitan/editing/selection/select-box-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/select-box-expected.txt.
  • platform/mac-elcapitan/editing/selection/select-element-paragraph-boundary-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/select-element-paragraph-boundary-expected.txt.
  • platform/mac-elcapitan/editing/selection/select-from-textfield-outwards-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/select-from-textfield-outwards-expected.txt.
  • platform/mac-elcapitan/editing/selection/selection-button-text-expected.txt: Copied from LayoutTests/platform/mac/editing/selection/selection-button-text-expected.txt.
  • platform/mac-elcapitan/fast/attachment/attachment-label-highlight-expected.txt: Copied from LayoutTests/platform/mac/fast/attachment/attachment-label-highlight-expected.txt.
  • platform/mac-elcapitan/fast/attachment/attachment-progress-expected.txt: Copied from LayoutTests/platform/mac/fast/attachment/attachment-progress-expected.txt.
  • platform/mac-elcapitan/fast/attachment/attachment-select-on-click-expected.txt: Copied from LayoutTests/platform/mac/fast/attachment/attachment-select-on-click-expected.txt.
  • platform/mac-elcapitan/fast/attachment/attachment-select-on-click-inside-user-select-all-expected.txt: Copied from LayoutTests/platform/mac/fast/attachment/attachment-select-on-click-inside-user-select-all-expected.txt.
  • platform/mac-elcapitan/fast/attachment/attachment-subtitle-expected.txt: Copied from LayoutTests/platform/mac/fast/attachment/attachment-subtitle-expected.txt.
  • platform/mac-elcapitan/fast/block/float/float-avoidance-expected.txt: Copied from LayoutTests/platform/mac/fast/block/float/float-avoidance-expected.txt.
  • platform/mac-elcapitan/fast/block/margin-collapse/103-expected.txt: Copied from LayoutTests/platform/mac/fast/block/margin-collapse/103-expected.txt.
  • platform/mac-elcapitan/fast/block/positioning/inline-block-relposition-expected.txt: Copied from LayoutTests/platform/mac/fast/block/positioning/inline-block-relposition-expected.txt.
  • platform/mac-elcapitan/fast/css/continuationCrash-expected.txt: Copied from LayoutTests/platform/mac/fast/css/continuationCrash-expected.txt.
  • platform/mac-elcapitan/fast/css/focus-ring-exists-for-search-field-expected.txt: Copied from LayoutTests/platform/mac/fast/css/focus-ring-exists-for-search-field-expected.txt.
  • platform/mac-elcapitan/fast/css/line-height-expected.txt: Copied from LayoutTests/platform/mac/fast/css/line-height-expected.txt.
  • platform/mac-elcapitan/fast/css/margin-top-bottom-dynamic-expected.txt: Copied from LayoutTests/platform/mac/fast/css/margin-top-bottom-dynamic-expected.txt.
  • platform/mac-elcapitan/fast/css/text-overflow-input-expected.txt: Copied from LayoutTests/platform/mac/fast/css/text-overflow-input-expected.txt.
  • platform/mac-elcapitan/fast/css/text-transform-select-expected.txt: Copied from LayoutTests/platform/mac/fast/css/text-transform-select-expected.txt.
  • platform/mac-elcapitan/fast/dom/HTMLInputElement/input-image-alt-text-expected.txt: Copied from LayoutTests/platform/mac/fast/dom/HTMLInputElement/input-image-alt-text-expected.txt.
  • platform/mac-elcapitan/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt: Copied from LayoutTests/platform/mac/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt.
  • platform/mac-elcapitan/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt: Copied from LayoutTests/platform/mac/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt.
  • platform/mac-elcapitan/fast/dom/isindex-001-expected.txt: Copied from LayoutTests/platform/mac/fast/dom/isindex-001-expected.txt.
  • platform/mac-elcapitan/fast/dom/isindex-002-expected.txt: Copied from LayoutTests/platform/mac/fast/dom/isindex-002-expected.txt.
  • platform/mac-elcapitan/fast/dynamic/008-expected.txt: Copied from LayoutTests/platform/mac/fast/dynamic/008-expected.txt.
  • platform/mac-elcapitan/fast/dynamic/positioned-movement-with-positioned-children-expected.txt: Copied from LayoutTests/platform/mac/fast/dynamic/positioned-movement-with-positioned-children-expected.txt.
  • platform/mac-elcapitan/fast/events/context-no-deselect-expected.txt: Copied from LayoutTests/platform/mac/fast/events/context-no-deselect-expected.txt.
  • platform/mac-elcapitan/fast/events/shadow-event-path-2-expected.txt: Copied from LayoutTests/platform/mac/fast/events/shadow-event-path-2-expected.txt.
  • platform/mac-elcapitan/fast/forms/001-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/001-expected.txt.
  • platform/mac-elcapitan/fast/forms/004-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/004-expected.txt.
  • platform/mac-elcapitan/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Added.
  • platform/mac-elcapitan/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt: Added.
  • platform/mac-elcapitan/fast/forms/basic-buttons-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/basic-buttons-expected.txt.
  • platform/mac-elcapitan/fast/forms/basic-inputs-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/basic-inputs-expected.txt.
  • platform/mac-elcapitan/fast/forms/basic-selects-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/basic-selects-expected.txt.
  • platform/mac-elcapitan/fast/forms/basic-textareas-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/basic-textareas-expected.txt.
  • platform/mac-elcapitan/fast/forms/basic-textareas-quirks-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/basic-textareas-quirks-expected.txt.
  • platform/mac-elcapitan/fast/forms/blankbuttons-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/blankbuttons-expected.txt.
  • platform/mac-elcapitan/fast/forms/box-shadow-override-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/box-shadow-override-expected.txt.
  • platform/mac-elcapitan/fast/forms/button-align-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/button-align-expected.txt.
  • platform/mac-elcapitan/fast/forms/button-cannot-be-nested-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/button-cannot-be-nested-expected.txt.
  • platform/mac-elcapitan/fast/forms/button-default-title-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/button-default-title-expected.txt.
  • platform/mac-elcapitan/fast/forms/button-generated-content-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/button-generated-content-expected.txt.
  • platform/mac-elcapitan/fast/forms/button-positioned-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/button-positioned-expected.txt.
  • platform/mac-elcapitan/fast/forms/button-sizes-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/button-sizes-expected.txt.
  • platform/mac-elcapitan/fast/forms/button-style-color-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/button-style-color-expected.txt.
  • platform/mac-elcapitan/fast/forms/button-table-styles-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/button-table-styles-expected.txt.
  • platform/mac-elcapitan/fast/forms/button-text-transform-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/button-text-transform-expected.txt.
  • platform/mac-elcapitan/fast/forms/button-white-space-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/button-white-space-expected.txt.
  • platform/mac-elcapitan/fast/forms/control-clip-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/control-clip-expected.txt.
  • platform/mac-elcapitan/fast/forms/control-clip-overflow-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/control-clip-overflow-expected.txt.
  • platform/mac-elcapitan/fast/forms/control-restrict-line-height-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/control-restrict-line-height-expected.txt.
  • platform/mac-elcapitan/fast/forms/disabled-select-change-index-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/disabled-select-change-index-expected.txt.
  • platform/mac-elcapitan/fast/forms/encoding-test-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/encoding-test-expected.txt.
  • platform/mac-elcapitan/fast/forms/fieldset-align-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/fieldset-align-expected.txt.
  • platform/mac-elcapitan/fast/forms/file/file-input-direction-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/file/file-input-direction-expected.txt.
  • platform/mac-elcapitan/fast/forms/file/file-input-disabled-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/file/file-input-disabled-expected.txt.
  • platform/mac-elcapitan/fast/forms/file/input-file-re-render-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/file/input-file-re-render-expected.txt.
  • platform/mac-elcapitan/fast/forms/floating-textfield-relayout-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/floating-textfield-relayout-expected.txt.
  • platform/mac-elcapitan/fast/forms/form-element-geometry-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/form-element-geometry-expected.txt.
  • platform/mac-elcapitan/fast/forms/hidden-listbox-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/hidden-listbox-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-align-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-align-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-appearance-bkcolor-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-bkcolor-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-appearance-default-bkcolor-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-default-bkcolor-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-appearance-disabled-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-disabled-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-appearance-focus-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-focus-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-appearance-height-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-height-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-appearance-preventDefault-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-preventDefault-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-appearance-readonly-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-readonly-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-appearance-selection-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-selection-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-appearance-spinbutton-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-spinbutton-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-appearance-spinbutton-up-expected.txt: Added.
  • platform/mac-elcapitan/fast/forms/input-appearance-visibility-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-visibility-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-appearance-width-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-appearance-width-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-baseline-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-baseline-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-button-sizes-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-button-sizes-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-disabled-color-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-disabled-color-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-double-click-selection-gap-bug-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-double-click-selection-gap-bug-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-field-text-truncated-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-field-text-truncated-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-first-letter-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-first-letter-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-placeholder-visibility-1-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-placeholder-visibility-1-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-placeholder-visibility-3-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-placeholder-visibility-3-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-readonly-autoscroll-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-readonly-autoscroll-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-readonly-dimmed-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-readonly-dimmed-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-readonly-empty-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-readonly-empty-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-spaces-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-spaces-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-table-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-table-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-text-click-inside-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-text-click-inside-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-text-click-outside-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-text-click-outside-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-text-double-click-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-text-double-click-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-text-drag-down-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-text-drag-down-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-text-option-delete-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-text-option-delete-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-text-scroll-left-on-blur-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-text-self-emptying-click-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-text-self-emptying-click-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-text-word-wrap-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-text-word-wrap-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-value-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-value-expected.txt.
  • platform/mac-elcapitan/fast/forms/input-width-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/input-width-expected.txt.
  • platform/mac-elcapitan/fast/forms/listbox-bidi-align-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/listbox-bidi-align-expected.txt.
  • platform/mac-elcapitan/fast/forms/listbox-scrollbar-incremental-load-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/listbox-scrollbar-incremental-load-expected.txt.
  • platform/mac-elcapitan/fast/forms/listbox-width-change-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/listbox-width-change-expected.txt.
  • platform/mac-elcapitan/fast/forms/menulist-clip-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/menulist-clip-expected.txt.
  • platform/mac-elcapitan/fast/forms/menulist-deselect-update-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/menulist-deselect-update-expected.txt.
  • platform/mac-elcapitan/fast/forms/menulist-narrow-width-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/menulist-narrow-width-expected.txt.
  • platform/mac-elcapitan/fast/forms/menulist-no-overflow-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/menulist-no-overflow-expected.txt.
  • platform/mac-elcapitan/fast/forms/menulist-restrict-line-height-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/menulist-restrict-line-height-expected.txt.
  • platform/mac-elcapitan/fast/forms/menulist-style-color-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/menulist-style-color-expected.txt.
  • platform/mac-elcapitan/fast/forms/menulist-width-change-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/menulist-width-change-expected.txt.
  • platform/mac-elcapitan/fast/forms/minWidthPercent-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/minWidthPercent-expected.txt.
  • platform/mac-elcapitan/fast/forms/number/number-appearance-rtl-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/number/number-appearance-rtl-expected.txt.
  • platform/mac-elcapitan/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt.
  • platform/mac-elcapitan/fast/forms/number/number-appearance-spinbutton-layer-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/number/number-appearance-spinbutton-layer-expected.txt.
  • platform/mac-elcapitan/fast/forms/option-script-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/option-script-expected.txt.
  • platform/mac-elcapitan/fast/forms/option-strip-whitespace-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/option-strip-whitespace-expected.txt.
  • platform/mac-elcapitan/fast/forms/option-text-clip-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/option-text-clip-expected.txt.
  • platform/mac-elcapitan/fast/forms/placeholder-position-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/placeholder-position-expected.txt.
  • platform/mac-elcapitan/fast/forms/placeholder-pseudo-style-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/placeholder-pseudo-style-expected.txt.
  • platform/mac-elcapitan/fast/forms/plaintext-mode-2-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/plaintext-mode-2-expected.txt.
  • platform/mac-elcapitan/fast/forms/search-cancel-button-style-sharing-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/search-cancel-button-style-sharing-expected.txt.
  • platform/mac-elcapitan/fast/forms/search-display-none-cancel-button-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/search-display-none-cancel-button-expected.txt.
  • platform/mac-elcapitan/fast/forms/search-input-rtl-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/search-input-rtl-expected.txt.
  • platform/mac-elcapitan/fast/forms/search-rtl-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/search-rtl-expected.txt.
  • platform/mac-elcapitan/fast/forms/search-styled-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/search-styled-expected.txt.
  • platform/mac-elcapitan/fast/forms/search-vertical-alignment-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/search-vertical-alignment-expected.txt.
  • platform/mac-elcapitan/fast/forms/search/search-padding-cancel-results-buttons-expected.txt: Added.
  • platform/mac-elcapitan/fast/forms/search/search-size-with-decorations-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/search/search-size-with-decorations-expected.txt.
  • platform/mac-elcapitan/fast/forms/searchfield-heights-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/searchfield-heights-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-background-none-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-background-none-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-baseline-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-baseline-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-block-background-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-block-background-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-change-listbox-size-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-change-listbox-size-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-change-listbox-to-popup-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-change-listbox-to-popup-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-change-popup-to-listbox-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-change-popup-to-listbox-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-dirty-parent-pref-widths-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-dirty-parent-pref-widths-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-disabled-appearance-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-disabled-appearance-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-empty-option-height-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-empty-option-height-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-initial-position-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-initial-position-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-item-background-clip-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-item-background-clip-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-list-box-with-height-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-list-box-with-height-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-listbox-multiple-no-focusring-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-listbox-multiple-no-focusring-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-non-native-rendering-direction-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-non-native-rendering-direction-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-overflow-scroll-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-overflow-scroll-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-overflow-scroll-inherited-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-overflow-scroll-inherited-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-selected-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-selected-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-style-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-style-expected.txt.
  • platform/mac-elcapitan/fast/forms/select-writing-direction-natural-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select-writing-direction-natural-expected.txt.
  • platform/mac-elcapitan/fast/forms/select/optgroup-rendering-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/select/optgroup-rendering-expected.txt.
  • platform/mac-elcapitan/fast/forms/stuff-on-my-optgroup-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/stuff-on-my-optgroup-expected.txt.
  • platform/mac-elcapitan/fast/forms/tabbing-input-iframe-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/tabbing-input-iframe-expected.txt.
  • platform/mac-elcapitan/fast/forms/text-style-color-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/text-style-color-expected.txt.
  • platform/mac-elcapitan/fast/forms/textAreaLineHeight-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textAreaLineHeight-expected.txt.
  • platform/mac-elcapitan/fast/forms/textarea-align-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textarea-align-expected.txt.
  • platform/mac-elcapitan/fast/forms/textarea-placeholder-pseudo-style-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textarea-placeholder-pseudo-style-expected.txt.
  • platform/mac-elcapitan/fast/forms/textarea-placeholder-visibility-1-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textarea-placeholder-visibility-1-expected.txt.
  • platform/mac-elcapitan/fast/forms/textarea-placeholder-visibility-2-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textarea-placeholder-visibility-2-expected.txt.
  • platform/mac-elcapitan/fast/forms/textarea-scroll-height-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textarea-scroll-height-expected.txt.
  • platform/mac-elcapitan/fast/forms/textarea-scrollbar-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textarea-scrollbar-expected.txt.
  • platform/mac-elcapitan/fast/forms/textarea-scrolled-type-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textarea-scrolled-type-expected.txt.
  • platform/mac-elcapitan/fast/forms/textarea-setinnerhtml-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textarea-setinnerhtml-expected.txt.
  • platform/mac-elcapitan/fast/forms/textfield-focus-ring-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textfield-focus-ring-expected.txt.
  • platform/mac-elcapitan/fast/forms/textfield-outline-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textfield-outline-expected.txt.
  • platform/mac-elcapitan/fast/forms/textfield-overflow-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/textfield-overflow-expected.txt.
  • platform/mac-elcapitan/fast/forms/validation-message-appearance-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/validation-message-appearance-expected.txt.
  • platform/mac-elcapitan/fast/forms/visual-hebrew-text-field-expected.txt: Copied from LayoutTests/platform/mac/fast/forms/visual-hebrew-text-field-expected.txt.
  • platform/mac-elcapitan/fast/frames/take-focus-from-iframe-expected.txt: Copied from LayoutTests/platform/mac/fast/frames/take-focus-from-iframe-expected.txt.
  • platform/mac-elcapitan/fast/hidpi/resize-corner-hidpi-expected.txt: Copied from LayoutTests/platform/mac/fast/hidpi/resize-corner-hidpi-expected.txt.
  • platform/mac-elcapitan/fast/html/details-no-summary4-expected.txt: Copied from LayoutTests/platform/mac/fast/html/details-no-summary4-expected.txt.
  • platform/mac-elcapitan/fast/html/details-open-javascript-expected.txt: Copied from LayoutTests/platform/mac/fast/html/details-open-javascript-expected.txt.
  • platform/mac-elcapitan/fast/html/details-open2-expected.txt: Copied from LayoutTests/platform/mac/fast/html/details-open2-expected.txt.
  • platform/mac-elcapitan/fast/html/details-open4-expected.txt: Copied from LayoutTests/platform/mac/fast/html/details-open4-expected.txt.
  • platform/mac-elcapitan/fast/html/keygen-expected.txt: Copied from LayoutTests/platform/mac/fast/html/keygen-expected.txt.
  • platform/mac-elcapitan/fast/lists/dynamic-marker-crash-expected.txt: Copied from LayoutTests/platform/mac/fast/lists/dynamic-marker-crash-expected.txt.
  • platform/mac-elcapitan/fast/overflow/overflow-x-y-expected.txt: Copied from LayoutTests/platform/mac/fast/overflow/overflow-x-y-expected.txt.
  • platform/mac-elcapitan/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt: Copied from LayoutTests/platform/mac/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt.
  • platform/mac-elcapitan/fast/overflow/scrollRevealButton-expected.txt: Copied from LayoutTests/platform/mac/fast/overflow/scrollRevealButton-expected.txt.
  • platform/mac-elcapitan/fast/parser/document-write-option-expected.txt: Copied from LayoutTests/platform/mac/fast/parser/document-write-option-expected.txt.
  • platform/mac-elcapitan/fast/parser/entity-comment-in-textarea-expected.txt: Copied from LayoutTests/platform/mac/fast/parser/entity-comment-in-textarea-expected.txt.
  • platform/mac-elcapitan/fast/parser/open-comment-in-textarea-expected.txt: Copied from LayoutTests/platform/mac/fast/parser/open-comment-in-textarea-expected.txt.
  • platform/mac-elcapitan/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt: Copied from LayoutTests/platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt.
  • platform/mac-elcapitan/fast/repaint/search-field-cancel-expected.txt: Copied from LayoutTests/platform/mac/fast/repaint/search-field-cancel-expected.txt.
  • platform/mac-elcapitan/fast/repaint/subtree-root-skipped-expected.txt: Copied from LayoutTests/platform/mac/fast/repaint/subtree-root-skipped-expected.txt.
  • platform/mac-elcapitan/fast/replaced/replaced-breaking-expected.txt: Copied from LayoutTests/platform/mac/fast/replaced/replaced-breaking-expected.txt.
  • platform/mac-elcapitan/fast/replaced/replaced-breaking-mixture-expected.txt: Copied from LayoutTests/platform/mac/fast/replaced/replaced-breaking-mixture-expected.txt.
  • platform/mac-elcapitan/fast/replaced/width100percent-button-expected.txt: Copied from LayoutTests/platform/mac/fast/replaced/width100percent-button-expected.txt.
  • platform/mac-elcapitan/fast/replaced/width100percent-menulist-expected.txt: Copied from LayoutTests/platform/mac/fast/replaced/width100percent-menulist-expected.txt.
  • platform/mac-elcapitan/fast/replaced/width100percent-textarea-expected.txt: Copied from LayoutTests/platform/mac/fast/replaced/width100percent-textarea-expected.txt.
  • platform/mac-elcapitan/fast/selectors/064-expected.txt: Copied from LayoutTests/platform/mac/fast/selectors/064-expected.txt.
  • platform/mac-elcapitan/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt: Copied from LayoutTests/platform/mac/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt.
  • platform/mac-elcapitan/fast/table/003-expected.txt: Copied from LayoutTests/platform/mac/fast/table/003-expected.txt.
  • platform/mac-elcapitan/fast/table/append-cells2-expected.txt: Copied from LayoutTests/platform/mac/fast/table/append-cells2-expected.txt.
  • platform/mac-elcapitan/fast/table/colspanMinWidth-expected.txt: Copied from LayoutTests/platform/mac/fast/table/colspanMinWidth-expected.txt.
  • platform/mac-elcapitan/fast/table/colspanMinWidth-vertical-expected.txt: Copied from LayoutTests/platform/mac/fast/table/colspanMinWidth-vertical-expected.txt.
  • platform/mac-elcapitan/fast/table/remove-td-display-none-expected.txt: Copied from LayoutTests/platform/mac/fast/table/remove-td-display-none-expected.txt.
  • platform/mac-elcapitan/fast/table/spanOverlapRepaint-expected.txt: Copied from LayoutTests/platform/mac/fast/table/spanOverlapRepaint-expected.txt.
  • platform/mac-elcapitan/fast/table/text-field-baseline-expected.txt: Copied from LayoutTests/platform/mac/fast/table/text-field-baseline-expected.txt.
  • platform/mac-elcapitan/fast/text/backslash-to-yen-sign-euc-expected.txt: Copied from LayoutTests/platform/mac/fast/text/backslash-to-yen-sign-euc-expected.txt.
  • platform/mac-elcapitan/fast/text/drawBidiText-expected.txt: Copied from LayoutTests/platform/mac/fast/text/drawBidiText-expected.txt.
  • platform/mac-elcapitan/fast/text/international/hindi-spacing-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/hindi-spacing-expected.txt.
  • platform/mac-elcapitan/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt.
  • platform/mac-elcapitan/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt.
  • platform/mac-elcapitan/fast/text/textIteratorNilRenderer-expected.txt: Copied from LayoutTests/platform/mac/fast/text/textIteratorNilRenderer-expected.txt.
  • platform/mac-elcapitan/fast/text/trak-optimizeLegibility-expected.txt: Added.
  • platform/mac-elcapitan/fast/transforms/transformed-focused-text-input-expected.txt: Copied from LayoutTests/platform/mac/fast/transforms/transformed-focused-text-input-expected.txt.
  • platform/mac-elcapitan/http/tests/navigation/javascriptlink-frames-expected.txt: Copied from LayoutTests/platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt.
  • platform/mac-elcapitan/media/controls-after-reload-expected.txt: Copied from LayoutTests/platform/mac/media/controls-after-reload-expected.txt.
  • platform/mac-elcapitan/media/controls-styling-expected.txt: Renamed from LayoutTests/platform/mac-yosemite/media/controls-styling-expected.txt.
  • platform/mac-elcapitan/media/media-document-audio-repaint-expected.txt: Copied from LayoutTests/platform/mac/media/media-document-audio-repaint-expected.txt.
  • platform/mac-elcapitan/plugins/mouse-click-plugin-clears-selection-expected.txt: Copied from LayoutTests/platform/mac/plugins/mouse-click-plugin-clears-selection-expected.txt.
  • platform/mac-elcapitan/scrollbars/key-window-not-first-responder-expected.txt: Copied from LayoutTests/platform/mac/scrollbars/key-window-not-first-responder-expected.txt.
  • platform/mac-elcapitan/svg/custom/inline-svg-in-xhtml-expected.txt: Copied from LayoutTests/platform/mac/svg/custom/inline-svg-in-xhtml-expected.txt.
  • platform/mac-elcapitan/svg/hixie/mixed/003-expected.txt: Copied from LayoutTests/platform/mac/svg/hixie/mixed/003-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug1188-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug1188-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug12384-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug12384-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug138725-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug138725-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug18359-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug18359-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug194024-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug194024-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug24200-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug24200-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug2479-2-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug2479-2-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug2479-3-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug2479-3-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug2479-4-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug2479-4-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug26178-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug26178-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug28928-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug28928-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug29326-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug29326-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug30559-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug30559-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug30692-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug30692-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug33855-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug33855-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug39209-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug39209-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug4382-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug4382-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug4429-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug4429-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug4527-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug4527-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug46368-1-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug46368-1-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug46368-2-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug46368-2-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug51037-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug51037-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug51727-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug51727-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug52505-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug52505-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug52506-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug52506-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug55545-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug55545-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug59354-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug59354-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug68912-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug68912-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug7342-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug7342-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug96334-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug96334-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/bugs/bug99948-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/bugs/bug99948-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/collapsing_borders/bug41262-4-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/collapsing_borders/bug41262-4-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/core/margins-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/core/margins-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/dom/tableDom-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/dom/tableDom-expected.txt.
  • platform/mac-elcapitan/tables/mozilla/other/move_row-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla/other/move_row-expected.txt.
  • platform/mac-elcapitan/tables/mozilla_expected_failures/bugs/bug1725-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug1725-expected.txt.
  • platform/mac-elcapitan/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt.
  • platform/mac-elcapitan/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt.
  • platform/mac-elcapitan/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt.
  • platform/mac-elcapitan/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt.
  • platform/mac-elcapitan/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt: Copied from LayoutTests/platform/mac/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt.
  • platform/mac-elcapitan/transforms/2d/zoom-menulist-expected.txt: Copied from LayoutTests/platform/mac/transforms/2d/zoom-menulist-expected.txt.
  • platform/mac-elcapitan/transforms/3d/general/perspective-non-layer-expected.txt: Copied from LayoutTests/platform/mac/transforms/3d/general/perspective-non-layer-expected.txt.
  • platform/mac/accessibility/aria-readonly-expected.txt:
  • platform/mac/accessibility/form-control-value-settable-expected.txt:
  • platform/mac/compositing/contents-opaque/control-layer-expected.txt:
  • platform/mac/css3/selectors3/html/css3-modsel-19b-expected.png:
  • platform/mac/css3/selectors3/html/css3-modsel-19b-expected.txt:
  • platform/mac/css3/selectors3/html/css3-modsel-23-expected.png:
  • platform/mac/css3/selectors3/html/css3-modsel-23-expected.txt:
  • platform/mac/css3/selectors3/html/css3-modsel-24-expected.png:
  • platform/mac/css3/selectors3/html/css3-modsel-24-expected.txt:
  • platform/mac/css3/selectors3/html/css3-modsel-64-expected.png:
  • platform/mac/css3/selectors3/html/css3-modsel-64-expected.txt:
  • platform/mac/css3/selectors3/html/css3-modsel-68-expected.png:
  • platform/mac/css3/selectors3/html/css3-modsel-68-expected.txt:
  • platform/mac/css3/selectors3/html/css3-modsel-69-expected.png:
  • platform/mac/css3/selectors3/html/css3-modsel-69-expected.txt:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-19b-expected.png:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-19b-expected.txt:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-23-expected.png:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-23-expected.txt:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-24-expected.png:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-24-expected.txt:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-64-expected.png:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-64-expected.txt:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-68-expected.png:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-68-expected.txt:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-69-expected.png:
  • platform/mac/css3/selectors3/xhtml/css3-modsel-69-expected.txt:
  • platform/mac/css3/selectors3/xml/css3-modsel-19b-expected.png:
  • platform/mac/css3/selectors3/xml/css3-modsel-19b-expected.txt:
  • platform/mac/css3/selectors3/xml/css3-modsel-23-expected.png:
  • platform/mac/css3/selectors3/xml/css3-modsel-23-expected.txt:
  • platform/mac/css3/selectors3/xml/css3-modsel-24-expected.png:
  • platform/mac/css3/selectors3/xml/css3-modsel-24-expected.txt:
  • platform/mac/css3/selectors3/xml/css3-modsel-64-expected.png:
  • platform/mac/css3/selectors3/xml/css3-modsel-64-expected.txt:
  • platform/mac/css3/selectors3/xml/css3-modsel-68-expected.png:
  • platform/mac/css3/selectors3/xml/css3-modsel-68-expected.txt:
  • platform/mac/css3/selectors3/xml/css3-modsel-69-expected.png:
  • platform/mac/css3/selectors3/xml/css3-modsel-69-expected.txt:
  • platform/mac/editing/input/caret-at-the-edge-of-input-expected.png:
  • platform/mac/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/mac/editing/input/reveal-caret-of-multiline-input-expected.png:
  • platform/mac/editing/input/reveal-caret-of-multiline-input-expected.txt:
  • platform/mac/editing/inserting/4960120-1-expected.png:
  • platform/mac/editing/inserting/4960120-1-expected.txt:
  • platform/mac/editing/inserting/before-after-input-element-expected.png:
  • platform/mac/editing/inserting/before-after-input-element-expected.txt:
  • platform/mac/editing/mac/spelling/autocorrection-at-beginning-of-word-1-expected.png: Added.
  • platform/mac/editing/mac/spelling/autocorrection-at-beginning-of-word-1-expected.txt: Added.
  • platform/mac/editing/mac/spelling/autocorrection-at-beginning-of-word-2-expected.png: Added.
  • platform/mac/editing/mac/spelling/autocorrection-at-beginning-of-word-2-expected.txt: Added.
  • platform/mac/editing/mac/spelling/delete-autocorrected-word-2-expected.png: Added.
  • platform/mac/editing/mac/spelling/delete-autocorrected-word-2-expected.txt: Renamed from LayoutTests/editing/mac/spelling/delete-autocorrected-word-2-expected.txt.
  • platform/mac/editing/pasteboard/4641033-expected.png:
  • platform/mac/editing/pasteboard/4641033-expected.txt:
  • platform/mac/editing/pasteboard/4806874-expected.png:
  • platform/mac/editing/pasteboard/4806874-expected.txt:
  • platform/mac/editing/pasteboard/4944770-1-expected.png:
  • platform/mac/editing/pasteboard/4944770-1-expected.txt:
  • platform/mac/editing/pasteboard/4944770-2-expected.png:
  • platform/mac/editing/pasteboard/4944770-2-expected.txt:
  • platform/mac/editing/pasteboard/drop-text-without-selection-expected.png:
  • platform/mac/editing/pasteboard/drop-text-without-selection-expected.txt:
  • platform/mac/editing/pasteboard/input-field-1-expected.png:
  • platform/mac/editing/pasteboard/input-field-1-expected.txt:
  • platform/mac/editing/pasteboard/pasting-tabs-expected.png:
  • platform/mac/editing/pasteboard/pasting-tabs-expected.txt:
  • platform/mac/editing/selection/3690703-2-expected.png:
  • platform/mac/editing/selection/3690703-2-expected.txt:
  • platform/mac/editing/selection/3690703-expected.png:
  • platform/mac/editing/selection/3690703-expected.txt:
  • platform/mac/editing/selection/3690719-expected.png:
  • platform/mac/editing/selection/3690719-expected.txt:
  • platform/mac/editing/selection/4397952-expected.png:
  • platform/mac/editing/selection/4397952-expected.txt:
  • platform/mac/editing/selection/4895428-3-expected.png:
  • platform/mac/editing/selection/4895428-3-expected.txt:
  • platform/mac/editing/selection/4975120-expected.png:
  • platform/mac/editing/selection/4975120-expected.txt:
  • platform/mac/editing/selection/5240265-expected.png:
  • platform/mac/editing/selection/5240265-expected.txt:
  • platform/mac/editing/selection/drag-select-1-expected.png:
  • platform/mac/editing/selection/drag-select-1-expected.txt:
  • platform/mac/editing/selection/replaced-boundaries-3-expected.png:
  • platform/mac/editing/selection/replaced-boundaries-3-expected.txt:
  • platform/mac/editing/selection/select-across-readonly-input-3-expected.png:
  • platform/mac/editing/selection/select-across-readonly-input-3-expected.txt:
  • platform/mac/editing/selection/select-box-expected.png:
  • platform/mac/editing/selection/select-box-expected.txt:
  • platform/mac/editing/selection/select-element-paragraph-boundary-expected.png:
  • platform/mac/editing/selection/select-element-paragraph-boundary-expected.txt:
  • platform/mac/editing/selection/select-from-textfield-outwards-expected.png:
  • platform/mac/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/mac/editing/selection/selection-button-text-expected.png:
  • platform/mac/editing/selection/selection-button-text-expected.txt:
  • platform/mac/fast/attachment/attachment-label-highlight-expected.png:
  • platform/mac/fast/attachment/attachment-label-highlight-expected.txt:
  • platform/mac/fast/attachment/attachment-progress-expected.png:
  • platform/mac/fast/attachment/attachment-progress-expected.txt:
  • platform/mac/fast/attachment/attachment-select-on-click-expected.png:
  • platform/mac/fast/attachment/attachment-select-on-click-expected.txt:
  • platform/mac/fast/attachment/attachment-select-on-click-inside-user-select-all-expected.png:
  • platform/mac/fast/attachment/attachment-select-on-click-inside-user-select-all-expected.txt:
  • platform/mac/fast/attachment/attachment-subtitle-expected.png:
  • platform/mac/fast/attachment/attachment-subtitle-expected.txt:
  • platform/mac/fast/block/float/float-avoidance-expected.png:
  • platform/mac/fast/block/float/float-avoidance-expected.txt:
  • platform/mac/fast/block/margin-collapse/103-expected.png:
  • platform/mac/fast/block/margin-collapse/103-expected.txt:
  • platform/mac/fast/block/positioning/inline-block-relposition-expected.png:
  • platform/mac/fast/block/positioning/inline-block-relposition-expected.txt:
  • platform/mac/fast/css/continuationCrash-expected.png:
  • platform/mac/fast/css/continuationCrash-expected.txt:
  • platform/mac/fast/css/focus-ring-exists-for-search-field-expected.png:
  • platform/mac/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/mac/fast/css/line-height-expected.png:
  • platform/mac/fast/css/line-height-expected.txt:
  • platform/mac/fast/css/margin-top-bottom-dynamic-expected.png:
  • platform/mac/fast/css/margin-top-bottom-dynamic-expected.txt:
  • platform/mac/fast/css/text-overflow-input-expected.png:
  • platform/mac/fast/css/text-overflow-input-expected.txt:
  • platform/mac/fast/css/text-transform-select-expected.png:
  • platform/mac/fast/css/text-transform-select-expected.txt:
  • platform/mac/fast/dom/HTMLInputElement/input-image-alt-text-expected.png:
  • platform/mac/fast/dom/HTMLInputElement/input-image-alt-text-expected.txt:
  • platform/mac/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.png:
  • platform/mac/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
  • platform/mac/fast/dom/HTMLTextAreaElement/reset-textarea-expected.png:
  • platform/mac/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/mac/fast/dom/isindex-001-expected.png:
  • platform/mac/fast/dom/isindex-001-expected.txt:
  • platform/mac/fast/dom/isindex-002-expected.png:
  • platform/mac/fast/dom/isindex-002-expected.txt:
  • platform/mac/fast/dynamic/008-expected.png:
  • platform/mac/fast/dynamic/008-expected.txt:
  • platform/mac/fast/dynamic/positioned-movement-with-positioned-children-expected.png:
  • platform/mac/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
  • platform/mac/fast/events/context-no-deselect-expected.png:
  • platform/mac/fast/events/context-no-deselect-expected.txt:
  • platform/mac/fast/events/shadow-event-path-2-expected.txt:
  • platform/mac/fast/forms/001-expected.png:
  • platform/mac/fast/forms/001-expected.txt:
  • platform/mac/fast/forms/004-expected.png:
  • platform/mac/fast/forms/004-expected.txt:
  • platform/mac/fast/forms/auto-fill-button/input-auto-fill-button-expected.png: Added.
  • platform/mac/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Added.
  • platform/mac/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.png: Added.
  • platform/mac/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt: Added.
  • platform/mac/fast/forms/basic-buttons-expected.png:
  • platform/mac/fast/forms/basic-buttons-expected.txt:
  • platform/mac/fast/forms/basic-inputs-expected.png:
  • platform/mac/fast/forms/basic-inputs-expected.txt:
  • platform/mac/fast/forms/basic-selects-expected.png:
  • platform/mac/fast/forms/basic-selects-expected.txt:
  • platform/mac/fast/forms/basic-textareas-expected.png:
  • platform/mac/fast/forms/basic-textareas-expected.txt:
  • platform/mac/fast/forms/basic-textareas-quirks-expected.png:
  • platform/mac/fast/forms/basic-textareas-quirks-expected.txt:
  • platform/mac/fast/forms/blankbuttons-expected.png:
  • platform/mac/fast/forms/blankbuttons-expected.txt:
  • platform/mac/fast/forms/box-shadow-override-expected.png:
  • platform/mac/fast/forms/box-shadow-override-expected.txt:
  • platform/mac/fast/forms/button-align-expected.png:
  • platform/mac/fast/forms/button-align-expected.txt:
  • platform/mac/fast/forms/button-cannot-be-nested-expected.png:
  • platform/mac/fast/forms/button-cannot-be-nested-expected.txt:
  • platform/mac/fast/forms/button-default-title-expected.png:
  • platform/mac/fast/forms/button-default-title-expected.txt:
  • platform/mac/fast/forms/button-generated-content-expected.png:
  • platform/mac/fast/forms/button-generated-content-expected.txt:
  • platform/mac/fast/forms/button-positioned-expected.png:
  • platform/mac/fast/forms/button-positioned-expected.txt:
  • platform/mac/fast/forms/button-sizes-expected.png:
  • platform/mac/fast/forms/button-sizes-expected.txt:
  • platform/mac/fast/forms/button-style-color-expected.png:
  • platform/mac/fast/forms/button-style-color-expected.txt:
  • platform/mac/fast/forms/button-table-styles-expected.png:
  • platform/mac/fast/forms/button-table-styles-expected.txt:
  • platform/mac/fast/forms/button-text-transform-expected.png:
  • platform/mac/fast/forms/button-text-transform-expected.txt:
  • platform/mac/fast/forms/button-white-space-expected.png:
  • platform/mac/fast/forms/button-white-space-expected.txt:
  • platform/mac/fast/forms/control-clip-expected.png:
  • platform/mac/fast/forms/control-clip-expected.txt:
  • platform/mac/fast/forms/control-clip-overflow-expected.png:
  • platform/mac/fast/forms/control-clip-overflow-expected.txt:
  • platform/mac/fast/forms/control-restrict-line-height-expected.png:
  • platform/mac/fast/forms/control-restrict-line-height-expected.txt:
  • platform/mac/fast/forms/disabled-select-change-index-expected.png:
  • platform/mac/fast/forms/disabled-select-change-index-expected.txt:
  • platform/mac/fast/forms/encoding-test-expected.png:
  • platform/mac/fast/forms/encoding-test-expected.txt:
  • platform/mac/fast/forms/fieldset-align-expected.png:
  • platform/mac/fast/forms/fieldset-align-expected.txt:
  • platform/mac/fast/forms/file/file-input-direction-expected.png:
  • platform/mac/fast/forms/file/file-input-direction-expected.txt:
  • platform/mac/fast/forms/file/file-input-disabled-expected.png:
  • platform/mac/fast/forms/file/file-input-disabled-expected.txt:
  • platform/mac/fast/forms/file/input-file-re-render-expected.txt:
  • platform/mac/fast/forms/floating-textfield-relayout-expected.png:
  • platform/mac/fast/forms/floating-textfield-relayout-expected.txt:
  • platform/mac/fast/forms/form-element-geometry-expected.png:
  • platform/mac/fast/forms/form-element-geometry-expected.txt:
  • platform/mac/fast/forms/hidden-listbox-expected.png:
  • platform/mac/fast/forms/hidden-listbox-expected.txt:
  • platform/mac/fast/forms/input-align-expected.png:
  • platform/mac/fast/forms/input-align-expected.txt:
  • platform/mac/fast/forms/input-appearance-bkcolor-expected.png:
  • platform/mac/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/mac/fast/forms/input-appearance-default-bkcolor-expected.png:
  • platform/mac/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/mac/fast/forms/input-appearance-disabled-expected.png:
  • platform/mac/fast/forms/input-appearance-disabled-expected.txt:
  • platform/mac/fast/forms/input-appearance-focus-expected.png:
  • platform/mac/fast/forms/input-appearance-focus-expected.txt:
  • platform/mac/fast/forms/input-appearance-height-expected.png:
  • platform/mac/fast/forms/input-appearance-height-expected.txt:
  • platform/mac/fast/forms/input-appearance-preventDefault-expected.png:
  • platform/mac/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/mac/fast/forms/input-appearance-readonly-expected.png:
  • platform/mac/fast/forms/input-appearance-readonly-expected.txt:
  • platform/mac/fast/forms/input-appearance-selection-expected.png:
  • platform/mac/fast/forms/input-appearance-selection-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-expected.png: Added.
  • platform/mac/fast/forms/input-appearance-spinbutton-expected.txt:
  • platform/mac/fast/forms/input-appearance-spinbutton-up-expected.png: Added.
  • platform/mac/fast/forms/input-appearance-spinbutton-up-expected.txt: Added.
  • platform/mac/fast/forms/input-appearance-visibility-expected.png:
  • platform/mac/fast/forms/input-appearance-visibility-expected.txt:
  • platform/mac/fast/forms/input-appearance-width-expected.png:
  • platform/mac/fast/forms/input-appearance-width-expected.txt:
  • platform/mac/fast/forms/input-baseline-expected.png:
  • platform/mac/fast/forms/input-baseline-expected.txt:
  • platform/mac/fast/forms/input-button-sizes-expected.png:
  • platform/mac/fast/forms/input-button-sizes-expected.txt:
  • platform/mac/fast/forms/input-disabled-color-expected.png:
  • platform/mac/fast/forms/input-disabled-color-expected.txt:
  • platform/mac/fast/forms/input-double-click-selection-gap-bug-expected.png:
  • platform/mac/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/mac/fast/forms/input-field-text-truncated-expected.png:
  • platform/mac/fast/forms/input-field-text-truncated-expected.txt:
  • platform/mac/fast/forms/input-first-letter-expected.png:
  • platform/mac/fast/forms/input-first-letter-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-1-expected.png:
  • platform/mac/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/mac/fast/forms/input-placeholder-visibility-3-expected.png:
  • platform/mac/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/mac/fast/forms/input-readonly-autoscroll-expected.png:
  • platform/mac/fast/forms/input-readonly-autoscroll-expected.txt:
  • platform/mac/fast/forms/input-readonly-dimmed-expected.png:
  • platform/mac/fast/forms/input-readonly-dimmed-expected.txt:
  • platform/mac/fast/forms/input-readonly-empty-expected.png:
  • platform/mac/fast/forms/input-readonly-empty-expected.txt:
  • platform/mac/fast/forms/input-spaces-expected.png:
  • platform/mac/fast/forms/input-spaces-expected.txt:
  • platform/mac/fast/forms/input-table-expected.png:
  • platform/mac/fast/forms/input-table-expected.txt:
  • platform/mac/fast/forms/input-text-click-inside-expected.png:
  • platform/mac/fast/forms/input-text-click-inside-expected.txt:
  • platform/mac/fast/forms/input-text-click-outside-expected.png:
  • platform/mac/fast/forms/input-text-click-outside-expected.txt:
  • platform/mac/fast/forms/input-text-double-click-expected.png:
  • platform/mac/fast/forms/input-text-double-click-expected.txt:
  • platform/mac/fast/forms/input-text-drag-down-expected.png:
  • platform/mac/fast/forms/input-text-drag-down-expected.txt:
  • platform/mac/fast/forms/input-text-option-delete-expected.png:
  • platform/mac/fast/forms/input-text-option-delete-expected.txt:
  • platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.png:
  • platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/mac/fast/forms/input-text-self-emptying-click-expected.png:
  • platform/mac/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/mac/fast/forms/input-text-word-wrap-expected.png:
  • platform/mac/fast/forms/input-text-word-wrap-expected.txt:
  • platform/mac/fast/forms/input-value-expected.png:
  • platform/mac/fast/forms/input-value-expected.txt:
  • platform/mac/fast/forms/input-width-expected.png:
  • platform/mac/fast/forms/input-width-expected.txt:
  • platform/mac/fast/forms/listbox-bidi-align-expected.png:
  • platform/mac/fast/forms/listbox-bidi-align-expected.txt:
  • platform/mac/fast/forms/listbox-scrollbar-incremental-load-expected.png:
  • platform/mac/fast/forms/listbox-scrollbar-incremental-load-expected.txt:
  • platform/mac/fast/forms/listbox-width-change-expected.png:
  • platform/mac/fast/forms/listbox-width-change-expected.txt:
  • platform/mac/fast/forms/menulist-clip-expected.png:
  • platform/mac/fast/forms/menulist-clip-expected.txt:
  • platform/mac/fast/forms/menulist-deselect-update-expected.png:
  • platform/mac/fast/forms/menulist-deselect-update-expected.txt:
  • platform/mac/fast/forms/menulist-narrow-width-expected.png:
  • platform/mac/fast/forms/menulist-narrow-width-expected.txt:
  • platform/mac/fast/forms/menulist-no-overflow-expected.png:
  • platform/mac/fast/forms/menulist-no-overflow-expected.txt:
  • platform/mac/fast/forms/menulist-restrict-line-height-expected.png:
  • platform/mac/fast/forms/menulist-restrict-line-height-expected.txt:
  • platform/mac/fast/forms/menulist-style-color-expected.png:
  • platform/mac/fast/forms/menulist-style-color-expected.txt:
  • platform/mac/fast/forms/menulist-width-change-expected.png:
  • platform/mac/fast/forms/menulist-width-change-expected.txt:
  • platform/mac/fast/forms/minWidthPercent-expected.png:
  • platform/mac/fast/forms/minWidthPercent-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-rtl-expected.png:
  • platform/mac/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.png:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-layer-expected.png:
  • platform/mac/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/mac/fast/forms/option-script-expected.png:
  • platform/mac/fast/forms/option-script-expected.txt:
  • platform/mac/fast/forms/option-strip-whitespace-expected.png:
  • platform/mac/fast/forms/option-strip-whitespace-expected.txt:
  • platform/mac/fast/forms/option-text-clip-expected.png:
  • platform/mac/fast/forms/option-text-clip-expected.txt:
  • platform/mac/fast/forms/placeholder-position-expected.png:
  • platform/mac/fast/forms/placeholder-position-expected.txt:
  • platform/mac/fast/forms/placeholder-pseudo-style-expected.png:
  • platform/mac/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/mac/fast/forms/plaintext-mode-2-expected.png:
  • platform/mac/fast/forms/plaintext-mode-2-expected.txt:
  • platform/mac/fast/forms/search-cancel-button-style-sharing-expected.png:
  • platform/mac/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/mac/fast/forms/search-display-none-cancel-button-expected.png:
  • platform/mac/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/mac/fast/forms/search-input-rtl-expected.png: Added.
  • platform/mac/fast/forms/search-input-rtl-expected.txt:
  • platform/mac/fast/forms/search-rtl-expected.png:
  • platform/mac/fast/forms/search-rtl-expected.txt:
  • platform/mac/fast/forms/search-styled-expected.png:
  • platform/mac/fast/forms/search-styled-expected.txt:
  • platform/mac/fast/forms/search-vertical-alignment-expected.png:
  • platform/mac/fast/forms/search-vertical-alignment-expected.txt:
  • platform/mac/fast/forms/search/search-padding-cancel-results-buttons-expected.png: Copied from LayoutTests/platform/mac/fast/forms/textarea-setinnerhtml-expected.png.
  • platform/mac/fast/forms/search/search-padding-cancel-results-buttons-expected.txt: Added.
  • platform/mac/fast/forms/search/search-size-with-decorations-expected.png:
  • platform/mac/fast/forms/search/search-size-with-decorations-expected.txt:
  • platform/mac/fast/forms/searchfield-heights-expected.png:
  • platform/mac/fast/forms/searchfield-heights-expected.txt:
  • platform/mac/fast/forms/select-background-none-expected.png:
  • platform/mac/fast/forms/select-background-none-expected.txt:
  • platform/mac/fast/forms/select-baseline-expected.png:
  • platform/mac/fast/forms/select-baseline-expected.txt:
  • platform/mac/fast/forms/select-block-background-expected.png:
  • platform/mac/fast/forms/select-block-background-expected.txt:
  • platform/mac/fast/forms/select-change-listbox-size-expected.png:
  • platform/mac/fast/forms/select-change-listbox-size-expected.txt:
  • platform/mac/fast/forms/select-change-listbox-to-popup-expected.png:
  • platform/mac/fast/forms/select-change-listbox-to-popup-expected.txt:
  • platform/mac/fast/forms/select-change-popup-to-listbox-expected.png:
  • platform/mac/fast/forms/select-change-popup-to-listbox-expected.txt:
  • platform/mac/fast/forms/select-dirty-parent-pref-widths-expected.png:
  • platform/mac/fast/forms/select-dirty-parent-pref-widths-expected.txt:
  • platform/mac/fast/forms/select-disabled-appearance-expected.png:
  • platform/mac/fast/forms/select-disabled-appearance-expected.txt:
  • platform/mac/fast/forms/select-empty-option-height-expected.png:
  • platform/mac/fast/forms/select-empty-option-height-expected.txt:
  • platform/mac/fast/forms/select-initial-position-expected.png:
  • platform/mac/fast/forms/select-initial-position-expected.txt:
  • platform/mac/fast/forms/select-item-background-clip-expected.png:
  • platform/mac/fast/forms/select-item-background-clip-expected.txt:
  • platform/mac/fast/forms/select-list-box-with-height-expected.png:
  • platform/mac/fast/forms/select-list-box-with-height-expected.txt:
  • platform/mac/fast/forms/select-listbox-multiple-no-focusring-expected.png:
  • platform/mac/fast/forms/select-listbox-multiple-no-focusring-expected.txt:
  • platform/mac/fast/forms/select-non-native-rendering-direction-expected.png:
  • platform/mac/fast/forms/select-non-native-rendering-direction-expected.txt:
  • platform/mac/fast/forms/select-overflow-scroll-expected.png:
  • platform/mac/fast/forms/select-overflow-scroll-expected.txt:
  • platform/mac/fast/forms/select-overflow-scroll-inherited-expected.png:
  • platform/mac/fast/forms/select-overflow-scroll-inherited-expected.txt:
  • platform/mac/fast/forms/select-selected-expected.png:
  • platform/mac/fast/forms/select-selected-expected.txt:
  • platform/mac/fast/forms/select-style-expected.png:
  • platform/mac/fast/forms/select-style-expected.txt:
  • platform/mac/fast/forms/select-writing-direction-natural-expected.png:
  • platform/mac/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/mac/fast/forms/select/optgroup-rendering-expected.png:
  • platform/mac/fast/forms/select/optgroup-rendering-expected.txt:
  • platform/mac/fast/forms/stuff-on-my-optgroup-expected.png:
  • platform/mac/fast/forms/stuff-on-my-optgroup-expected.txt:
  • platform/mac/fast/forms/tabbing-input-iframe-expected.png:
  • platform/mac/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/mac/fast/forms/text-style-color-expected.png:
  • platform/mac/fast/forms/text-style-color-expected.txt:
  • platform/mac/fast/forms/textAreaLineHeight-expected.png:
  • platform/mac/fast/forms/textAreaLineHeight-expected.txt:
  • platform/mac/fast/forms/textarea-align-expected.png:
  • platform/mac/fast/forms/textarea-align-expected.txt:
  • platform/mac/fast/forms/textarea-placeholder-pseudo-style-expected.png:
  • platform/mac/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
  • platform/mac/fast/forms/textarea-placeholder-visibility-1-expected.png:
  • platform/mac/fast/forms/textarea-placeholder-visibility-1-expected.txt:
  • platform/mac/fast/forms/textarea-placeholder-visibility-2-expected.png:
  • platform/mac/fast/forms/textarea-placeholder-visibility-2-expected.txt:
  • platform/mac/fast/forms/textarea-scroll-height-expected.png:
  • platform/mac/fast/forms/textarea-scroll-height-expected.txt:
  • platform/mac/fast/forms/textarea-scrollbar-expected.png:
  • platform/mac/fast/forms/textarea-scrollbar-expected.txt:
  • platform/mac/fast/forms/textarea-scrolled-type-expected.png:
  • platform/mac/fast/forms/textarea-scrolled-type-expected.txt:
  • platform/mac/fast/forms/textarea-setinnerhtml-expected.png:
  • platform/mac/fast/forms/textarea-setinnerhtml-expected.txt:
  • platform/mac/fast/forms/textfield-focus-ring-expected.png:
  • platform/mac/fast/forms/textfield-focus-ring-expected.txt:
  • platform/mac/fast/forms/textfield-outline-expected.png:
  • platform/mac/fast/forms/textfield-outline-expected.txt:
  • platform/mac/fast/forms/textfield-overflow-expected.png:
  • platform/mac/fast/forms/textfield-overflow-expected.txt:
  • platform/mac/fast/forms/validation-message-appearance-expected.png:
  • platform/mac/fast/forms/validation-message-appearance-expected.txt:
  • platform/mac/fast/forms/visual-hebrew-text-field-expected.png:
  • platform/mac/fast/forms/visual-hebrew-text-field-expected.txt:
  • platform/mac/fast/frames/take-focus-from-iframe-expected.png:
  • platform/mac/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/mac/fast/hidpi/resize-corner-hidpi-expected.png:
  • platform/mac/fast/hidpi/resize-corner-hidpi-expected.txt:
  • platform/mac/fast/html/details-no-summary4-expected.png:
  • platform/mac/fast/html/details-no-summary4-expected.txt:
  • platform/mac/fast/html/details-open-javascript-expected.png:
  • platform/mac/fast/html/details-open-javascript-expected.txt:
  • platform/mac/fast/html/details-open2-expected.png:
  • platform/mac/fast/html/details-open2-expected.txt:
  • platform/mac/fast/html/details-open4-expected.png:
  • platform/mac/fast/html/details-open4-expected.txt:
  • platform/mac/fast/html/keygen-expected.png:
  • platform/mac/fast/html/keygen-expected.txt:
  • platform/mac/fast/lists/dynamic-marker-crash-expected.png:
  • platform/mac/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/mac/fast/overflow/overflow-x-y-expected.png:
  • platform/mac/fast/overflow/overflow-x-y-expected.txt:
  • platform/mac/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.png:
  • platform/mac/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/mac/fast/overflow/scrollRevealButton-expected.png:
  • platform/mac/fast/overflow/scrollRevealButton-expected.txt:
  • platform/mac/fast/parser/document-write-option-expected.png:
  • platform/mac/fast/parser/document-write-option-expected.txt:
  • platform/mac/fast/parser/entity-comment-in-textarea-expected.png:
  • platform/mac/fast/parser/entity-comment-in-textarea-expected.txt:
  • platform/mac/fast/parser/open-comment-in-textarea-expected.png:
  • platform/mac/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.png:
  • platform/mac/fast/repaint/renderer-destruction-by-invalidateSelection-crash-expected.txt:
  • platform/mac/fast/repaint/search-field-cancel-expected.png:
  • platform/mac/fast/repaint/search-field-cancel-expected.txt:
  • platform/mac/fast/repaint/subtree-root-skipped-expected.png:
  • platform/mac/fast/repaint/subtree-root-skipped-expected.txt:
  • platform/mac/fast/replaced/replaced-breaking-expected.png:
  • platform/mac/fast/replaced/replaced-breaking-expected.txt:
  • platform/mac/fast/replaced/replaced-breaking-mixture-expected.png:
  • platform/mac/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/mac/fast/replaced/width100percent-button-expected.png:
  • platform/mac/fast/replaced/width100percent-button-expected.txt:
  • platform/mac/fast/replaced/width100percent-menulist-expected.png:
  • platform/mac/fast/replaced/width100percent-menulist-expected.txt:
  • platform/mac/fast/replaced/width100percent-textarea-expected.png:
  • platform/mac/fast/replaced/width100percent-textarea-expected.txt:
  • platform/mac/fast/selectors/064-expected.png:
  • platform/mac/fast/selectors/064-expected.txt:
  • platform/mac/fast/spatial-navigation/snav-multiple-select-focusring-expected.png:
  • platform/mac/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt:
  • platform/mac/fast/table/003-expected.png:
  • platform/mac/fast/table/003-expected.txt:
  • platform/mac/fast/table/append-cells2-expected.png:
  • platform/mac/fast/table/append-cells2-expected.txt:
  • platform/mac/fast/table/colspanMinWidth-expected.png:
  • platform/mac/fast/table/colspanMinWidth-expected.txt:
  • platform/mac/fast/table/colspanMinWidth-vertical-expected.png:
  • platform/mac/fast/table/colspanMinWidth-vertical-expected.txt:
  • platform/mac/fast/table/remove-td-display-none-expected.png:
  • platform/mac/fast/table/remove-td-display-none-expected.txt:
  • platform/mac/fast/table/spanOverlapRepaint-expected.png:
  • platform/mac/fast/table/spanOverlapRepaint-expected.txt:
  • platform/mac/fast/table/text-field-baseline-expected.png:
  • platform/mac/fast/table/text-field-baseline-expected.txt:
  • platform/mac/fast/text/backslash-to-yen-sign-euc-expected.png:
  • platform/mac/fast/text/backslash-to-yen-sign-euc-expected.txt:
  • platform/mac/fast/text/drawBidiText-expected.png:
  • platform/mac/fast/text/drawBidiText-expected.txt:
  • platform/mac/fast/text/international/hindi-spacing-expected.png:
  • platform/mac/fast/text/international/hindi-spacing-expected.txt:
  • platform/mac/fast/text/international/pop-up-button-text-alignment-and-direction-expected.png:
  • platform/mac/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.png:
  • platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/mac/fast/text/textIteratorNilRenderer-expected.png:
  • platform/mac/fast/text/textIteratorNilRenderer-expected.txt:
  • platform/mac/fast/text/trak-optimizeLegibility-expected.txt: Added.
  • platform/mac/fast/transforms/transformed-focused-text-input-expected.png:
  • platform/mac/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/mac/http/tests/media/video-buffered-range-contains-currentTime-expected.png: Added.
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.png:
  • platform/mac/http/tests/navigation/javascriptlink-frames-expected.txt:
  • platform/mac/media/controls-after-reload-expected.png:
  • platform/mac/media/controls-after-reload-expected.txt:
  • platform/mac/media/controls-styling-expected.png:
  • platform/mac/media/controls-styling-expected.txt:
  • platform/mac/media/media-document-audio-repaint-expected.png:
  • platform/mac/media/media-document-audio-repaint-expected.txt:
  • platform/mac/media/video-controls-rendering-expected.png: Added.
  • platform/mac/media/video-controls-rendering-expected.txt:
  • platform/mac/media/video-display-toggle-expected.png: Added.
  • platform/mac/media/video-display-toggle-expected.txt:
  • platform/mac/media/video-no-audio-expected.png: Added.
  • platform/mac/media/video-no-audio-expected.txt:
  • platform/mac/media/video-volume-slider-expected.png: Added.
  • platform/mac/media/video-volume-slider-expected.txt:
  • platform/mac/plugins/mouse-click-plugin-clears-selection-expected.png: Added.
  • platform/mac/plugins/mouse-click-plugin-clears-selection-expected.txt:
  • platform/mac/scrollbars/key-window-not-first-responder-expected.txt:
  • platform/mac/svg/custom/inline-svg-in-xhtml-expected.png:
  • platform/mac/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/mac/svg/hixie/mixed/003-expected.png:
  • platform/mac/svg/hixie/mixed/003-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1188-expected.png:
  • platform/mac/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug12384-expected.png:
  • platform/mac/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug138725-expected.png:
  • platform/mac/tables/mozilla/bugs/bug138725-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug18359-expected.png:
  • platform/mac/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug194024-expected.png:
  • platform/mac/tables/mozilla/bugs/bug194024-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug24200-expected.png:
  • platform/mac/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-2-expected.png:
  • platform/mac/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-3-expected.png:
  • platform/mac/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug2479-4-expected.png:
  • platform/mac/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug26178-expected.png:
  • platform/mac/tables/mozilla/bugs/bug26178-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug28928-expected.png:
  • platform/mac/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug29326-expected.png:
  • platform/mac/tables/mozilla/bugs/bug29326-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug30559-expected.png:
  • platform/mac/tables/mozilla/bugs/bug30559-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug30692-expected.png:
  • platform/mac/tables/mozilla/bugs/bug30692-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug33855-expected.png:
  • platform/mac/tables/mozilla/bugs/bug33855-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug39209-expected.png:
  • platform/mac/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4382-expected.png:
  • platform/mac/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4429-expected.png:
  • platform/mac/tables/mozilla/bugs/bug4429-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug4527-expected.png:
  • platform/mac/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug46368-1-expected.png:
  • platform/mac/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug46368-2-expected.png:
  • platform/mac/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug51037-expected.png:
  • platform/mac/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug51727-expected.png:
  • platform/mac/tables/mozilla/bugs/bug51727-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug52505-expected.png:
  • platform/mac/tables/mozilla/bugs/bug52505-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug52506-expected.png:
  • platform/mac/tables/mozilla/bugs/bug52506-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug55545-expected.png:
  • platform/mac/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug59354-expected.png:
  • platform/mac/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug68912-expected.png:
  • platform/mac/tables/mozilla/bugs/bug68912-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug7342-expected.png:
  • platform/mac/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug96334-expected.png:
  • platform/mac/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug99948-expected.png:
  • platform/mac/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/mac/tables/mozilla/collapsing_borders/bug41262-4-expected.png:
  • platform/mac/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
  • platform/mac/tables/mozilla/core/margins-expected.png:
  • platform/mac/tables/mozilla/core/margins-expected.txt:
  • platform/mac/tables/mozilla/dom/tableDom-expected.png:
  • platform/mac/tables/mozilla/dom/tableDom-expected.txt:
  • platform/mac/tables/mozilla/other/move_row-expected.png:
  • platform/mac/tables/mozilla/other/move_row-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug1725-expected.png:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.png:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug58402-2-expected.png:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug92647-1-expected.png:
  • platform/mac/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.png:
  • platform/mac/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
  • platform/mac/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.png:
  • platform/mac/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
  • platform/mac/transforms/2d/zoom-menulist-expected.png:
  • platform/mac/transforms/2d/zoom-menulist-expected.txt:
  • platform/mac/transforms/3d/general/perspective-non-layer-expected.png:
  • platform/mac/transforms/3d/general/perspective-non-layer-expected.txt:
11:36 AM Changeset in webkit [202825] by Joseph Pecoraro
  • 12 edits
    32 deletes in trunk/LayoutTests

REGRESSION (r202529?) inspector/debugger/break-on-* tests are flaky
https://bugs.webkit.org/show_bug.cgi?id=159272
<rdar://problem/27087938>

Reviewed by Timothy Hatcher.

Rewrite the break on exception and uncaught exception tests
to be easier to read and understand, reduce duplicated code,
and avoid unnecessary work (such as a reload and script check).

  • TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:

Unskip the core break-on-* tests, but mark them as Slow.

  • inspector/debugger/break-on-exception-throw-in-promise.html:
  • inspector/debugger/break-on-exception-throw-in-promise-expected.txt:
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-expected.txt:
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise.html:
  • inspector/debugger/break-on-exception-expected.txt:
  • inspector/debugger/break-on-exception.html:
  • inspector/debugger/break-on-uncaught-exception-expected.txt:
  • inspector/debugger/break-on-uncaught-exception.html:

Converge into 4 tests, share a significant amount of code,
and make them easier to read and understand.

  • inspector/debugger/break-on-exception-catch-expected.txt: Removed.
  • inspector/debugger/break-on-exception-catch.html: Removed.
  • inspector/debugger/break-on-exception-finally-expected.txt: Removed.
  • inspector/debugger/break-on-exception-finally.html: Removed.
  • inspector/debugger/break-on-exception-native-expected.txt: Removed.
  • inspector/debugger/break-on-exception-native.html: Removed.
  • inspector/debugger/break-on-exception-throw-in-promise-rethrow-in-catch-expected.txt: Removed.
  • inspector/debugger/break-on-exception-throw-in-promise-rethrow-in-catch.html: Removed.
  • inspector/debugger/break-on-exception-throw-in-promise-then-expected.txt: Removed.
  • inspector/debugger/break-on-exception-throw-in-promise-then-with-catch-expected.txt: Removed.
  • inspector/debugger/break-on-exception-throw-in-promise-then-with-catch.html: Removed.
  • inspector/debugger/break-on-exception-throw-in-promise-then.html: Removed.
  • inspector/debugger/break-on-exception-throw-in-promise-with-catch-expected.txt: Removed.
  • inspector/debugger/break-on-exception-throw-in-promise-with-catch.html: Removed.
  • inspector/debugger/break-on-uncaught-exception-catch-expected.txt: Removed.
  • inspector/debugger/break-on-uncaught-exception-catch.html: Removed.
  • inspector/debugger/break-on-uncaught-exception-finally-expected.txt: Removed.
  • inspector/debugger/break-on-uncaught-exception-finally.html: Removed.
  • inspector/debugger/break-on-uncaught-exception-native-expected.txt: Removed.
  • inspector/debugger/break-on-uncaught-exception-native.html: Removed.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-rethrow-in-catch-expected.txt: Removed.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-rethrow-in-catch.html: Removed.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-expected.txt: Removed.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-with-catch-expected.txt: Removed.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-with-catch.html: Removed.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then.html: Removed.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-with-catch-expected.txt: Removed.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-with-catch.html: Removed.

Merged into the 4 tests above.

  • inspector/debugger/break-on-exception-window-onerror-expected.txt: Removed.
  • inspector/debugger/break-on-exception-window-onerror.html: Removed.
  • inspector/debugger/break-on-uncaught-exception-window-onerror-expected.txt: Removed.
  • inspector/debugger/break-on-uncaught-exception-window-onerror.html: Removed.

Eliminate these entirely. Tests already have an onerror listener,
so these were actually already equivalent to the basic tests.

11:30 AM Changeset in webkit [202824] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/restore-from-page-cache.html as a flaky failure on El Capitan
https://bugs.webkit.org/show_bug.cgi?id=158747

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:10 AM Changeset in webkit [202823] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/media/hls/video-controller-getStartDate.html as a flaky timeout on Yosemite WK1
https://bugs.webkit.org/show_bug.cgi?id=158645

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:05 AM Changeset in webkit [202822] by beidson@apple.com
  • 4 edits
    5 adds in trunk

Database process crashes deleting a corrupt SQLite database file (null deref).
https://bugs.webkit.org/show_bug.cgi?id=155506.

Reviewed by Alex Christensen.

Source/WebCore:

Covered by new API test.

  • Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:

(WebCore::IDBServer::SQLiteIDBBackingStore::deleteBackingStore): Null check.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.mm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.sqlite3: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.sqlite3-shm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.sqlite3-wal: Added.
11:04 AM Changeset in webkit [202821] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

TransactionOperations can get destroyed on the wrong thread.
https://bugs.webkit.org/show_bug.cgi?id=159103

Reviewed by Alex Christensen.

No new tests (Very racy, not feasible to write a dedicated test for, caught on bots occasionally as-is).

  • Modules/indexeddb/IDBActiveDOMObject.h:

(WebCore::IDBActiveDOMObject::callFunctionOnOriginThread):

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::completeOperation): Pass the last ref to the operation to its

origin thread to be deleted there.

  • Modules/indexeddb/client/TransactionOperation.h:

(WebCore::IDBClient::TransactionOperation::performCompleteOnOriginThread):

9:57 AM Changeset in webkit [202820] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/history/page-cache-webdatabase-pending-transaction.html as flaky on ios-simulator-wk2
https://bugs.webkit.org/show_bug.cgi?id=159379

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
9:52 AM Changeset in webkit [202819] by ap@apple.com
  • 3 edits in trunk/Tools

run-webkit-tests should print more complete baseline search paths
https://bugs.webkit.org/show_bug.cgi?id=159354

Reviewed by Daniel Bates.

run-webkit-tests used to only print directory names in baseline search paths.
This was ok in basic usage, but quickly got confusing when using
--additional-platform-directory flags.

  • Scripts/webkitpy/layout_tests/views/printing.py:

(Printer.print_config):

  • Scripts/webkitpy/layout_tests/views/printing_unittest.py:

(Testprinter.test_print_config):
(Testprinter.test_print_one_line_summary):

8:49 AM Changeset in webkit [202818] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Typo fix after r202214
https://bugs.webkit.org/show_bug.cgi?id=159416

Reviewed by Saam Barati.

  • bytecode/InlineAccess.h:
2:37 AM Changeset in webkit [202817] by fred.wang@free.fr
  • 2 edits in trunk/LayoutTests

Unskip mathml/presentation/fractions-box.html
https://bugs.webkit.org/show_bug.cgi?id=159347

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-05

  • platform/efl/TestExpectations:
2:15 AM Changeset in webkit [202816] by fred.wang@free.fr
  • 2 edits
    2 deletes in trunk/LayoutTests

Remove obsolete test mathml/presentation/bug97990.html

This test is currently skipped on all platforms. It was a test for the
old flexbox-based MathML layout. The new layout ignore padding or
borders for MathML elements and it's not clear whether this will change
in the future.

Unreviewed test gardening.

  • TestExpectations: Remove skip flag for bug97990.html.
  • mathml/presentation/bug97990-expected.html: Removed.
  • mathml/presentation/bug97990.html: Removed.
12:59 AM Changeset in webkit [202815] by commit-queue@webkit.org
  • 14 edits in trunk/Source/WebCore

Remove CredentialRequest ResourceLoaderOptions
https://bugs.webkit.org/show_bug.cgi?id=159404

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-05
Reviewed by Sam Weinig.

No observable change of behavior.
Removing CredentialRequest from ResourceLoaderOptions and replacing it by FetchOptions::Credentials.
As per https://fetch.spec.whatwg.org/#http-fetch, credentials flag is set according FetchOptions::Credentials.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource): Set credentials mode to Include.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived): Disable credentials if credentials mode is SameOrigin
(request being cross origin).

  • loader/MediaResourceLoader.cpp: Refqctoring to use CachedResourceReauest::setAsPotentiallyCrossOrigin.

Removed unnecessary ResourceRequest copy by using the mutable request of CachedResourceRequest.
(WebCore::MediaResourceLoader::requestResource):

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader): Set credential mode to Include

  • loader/ResourceLoaderOptions.h: Removing CredentialRequest option.

(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::credentialRequest): Deleted.
(WebCore::ResourceLoaderOptions::setCredentialRequest): Deleted.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Set credential mode to Include.
(WebCore::CachedResourceLoader::defaultCachedResourceOptions): Ditto.

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setAsPotentiallyCrossOrigin): Set credential mode according crossorigin
atribute value.

  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::startLoading): Set credential mode to Omit.

  • page/EventSource.cpp:

(WebCore::EventSource::connect): Set credential mode according crossorigin atribute value.

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::startLoading): Set credential mode to Omit.

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::startLoading): Ditto.

  • platform/network/ResourceHandleTypes.h: Removed definition of CredentialRequest.
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest): Set credential mode according crossorigin atribute value.

Jul 4, 2016:

11:43 PM Changeset in webkit [202814] by commit-queue@webkit.org
  • 4 edits in trunk

[GTK] Null Node dereference in FrameSelection::notifyAccessibilityForSelectionChange of FrameSelectionAtk.cpp
https://bugs.webkit.org/show_bug.cgi?id=159411

Patch by Fujii Hironori <Fujii Hironori> on 2016-07-04
Reviewed by Carlos Garcia Campos.

Source/WebCore:

Tests:

editing/selection/selection-in-iframe-removed-crash.html

  • editing/atk/FrameSelectionAtk.cpp:

(WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
Added a null check for the return value of containerNode().

LayoutTests:

  • platform/gtk/TestExpectations: Removed a crash expectation of

editing/selection/selection-in-iframe-removed-crash.html.

11:35 PM Changeset in webkit [202813] by Gyuyoung Kim
  • 5 edits in trunk

[EFL] Remove mac configuration dependency in WebKit Version definition
https://bugs.webkit.org/show_bug.cgi?id=159407

Reviewed by Yusuke Suzuki.

.:

EFL port has been used Version.xconfig file in WebKit/mac/Configurations.
in order to generate WebKitVersion.h file. But it can be simply defined
in cmake.

  • Source/cmake/OptionsEfl.cmake:

Source/WebCore:

EFL port has been used Version.xconfig file in WebKit/mac/Configurations
in order to generate WebKitVersion.h file. But it can be simply defined
in cmake.

  • PlatformEfl.cmake: Remove WebKitVersion.h generation.
  • platform/efl/UserAgentEfl.cpp:

(WebCore::versionForUAString): Use USER_AGENT_EFL_MAJOR_VERSION and USER_AGENT_EFL_MINOR_VERSION.

11:16 PM Changeset in webkit [202812] by Carlos Garcia Campos
  • 21 edits in trunk/Source

[Coordinated Graphics] Modernize and cleanup CompositingCoordinator
https://bugs.webkit.org/show_bug.cgi?id=159212

Reviewed by Žan Doberšek.

Source/WebCore:

Use references instead of pointers when possible.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::paintToSurface):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:

(WebCore::CoordinatedImageBacking::update):

  • platform/graphics/texmap/coordinated/CoordinatedImageBacking.h:
  • platform/graphics/texmap/coordinated/CoordinatedSurface.h:
  • platform/graphics/texmap/coordinated/Tile.cpp:

(WebCore::Tile::updateBackBuffer):

  • platform/graphics/texmap/coordinated/TiledBackingStoreClient.h:

Source/WebKit2:

Changes done:

  • Use references instead of pointers when possible.
  • Add missing final/override keywords.
  • Reduce the use of PassRefPtr
  • Move member initializations to the declaration.
  • Use nullptr instead of 0.
  • Use HashMap::ensure() instead of complicated code with iterators.
  • Avoid heap allocation when possible.
  • Shared/CoordinatedGraphics/WebCoordinatedSurface.cpp:

(WebKit::WebCoordinatedSurface::paintToSurface):

  • Shared/CoordinatedGraphics/WebCoordinatedSurface.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp:

(WebKit::ThreadSafeCoordinatedSurface::paintToSurface):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.h:
  • WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.cpp:

(WebKit::GeneralAreaAllocator::expand):
(WebKit::GeneralAreaAllocator::splitNode):
(WebKit::GeneralAreaAllocator::release):
(WebKit::GeneralAreaAllocator::GeneralAreaAllocator): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.h:
  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::CompositingCoordinator):
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::createImageBackingIfNeeded):
(WebKit::CompositingCoordinator::updateImageBacking):
(WebKit::CompositingCoordinator::notifyFlushRequired):
(WebKit::CompositingCoordinator::paintContents):
(WebKit::CompositingCoordinator::createUpdateAtlas):
(WebKit::CompositingCoordinator::commitScrollOffset):
(WebKit::CompositingCoordinator::paintToSurface):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::setViewOverlayRootLayer):
(WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
(WebKit::CoordinatedLayerTreeHost::invalidate):
(WebKit::CoordinatedLayerTreeHost::forceRepaint):
(WebKit::CoordinatedLayerTreeHost::sizeDidChange):
(WebKit::CoordinatedLayerTreeHost::setVisibleContentsRect):
(WebKit::CoordinatedLayerTreeHost::renderNextFrame):
(WebKit::CoordinatedLayerTreeHost::purgeBackingStores):
(WebKit::CoordinatedLayerTreeHost::layerFlushTimerFired):
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::CoordinatedLayerTreeHost::graphicsLayerFactory):
(WebKit::CoordinatedLayerTreeHost::scheduleAnimation):
(WebKit::CoordinatedLayerTreeHost::commitScrollOffset):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.cpp:

(WebKit::UpdateAtlas::UpdateAtlas):
(WebKit::UpdateAtlas::~UpdateAtlas):
(WebKit::UpdateAtlas::buildLayoutIfNeeded):
(WebKit::UpdateAtlas::paintOnAvailableBuffer):
(WebKit::UpdateAtlasSurfaceClient::UpdateAtlasSurfaceClient): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.h:
11:36 AM Changeset in webkit [202811] by commit-queue@webkit.org
  • 14 edits in trunk/Source/WebCore

Remove RequestOriginPolicy from ResourceLoaderOptions
https://bugs.webkit.org/show_bug.cgi?id=159406

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-04
Reviewed by Sam Weinig.

Using FetchOptions::mode in lieu of ResourceLoaderOptions::RequestOriginPolicy.
The cors, no-cors and same-origin values match PotentiallyCrossOriginEnabled,
UseDefaultOriginRestrictionsForType and RestrictToSameOrigin, default being
cors/UseDefaultOriginRestrictionsForType as per fetch specification.

No change of behavior.

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::cachedImageSet):

  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::cachedImage):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource):

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource):

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):

  • loader/ResourceLoaderOptions.h:

(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::requestOriginPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setRequestOriginPolicy): Deleted.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::init):
(WebCore::SubresourceLoader::willSendRequestInternal):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
(WebCore::CachedResourceLoader::canRequest):
(WebCore::CachedResourceLoader::defaultCachedResourceOptions):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setAsPotentiallyCrossOrigin):

  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::startLoading):

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::startLoading):

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::startLoading):

  • style/StylePendingResources.cpp:

(WebCore::Style::loadPendingImage):

11:31 AM Changeset in webkit [202810] by commit-queue@webkit.org
  • 6 edits in trunk

Shield WebRTC JS built-ins from user scripts
https://bugs.webkit.org/show_bug.cgi?id=155964

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-04
Reviewed by Sam Weinig.

Source/WebCore:

Making use of Promise.prototype.@then instead of Promise.prototype.then.
Covered by updated tests.

  • Modules/mediastream/RTCPeerConnection.js:

(createOffer):
(createAnswer):
(setLocalDescription):
(setRemoteDescription):
(addIceCandidate):
(getStats):

  • Modules/mediastream/RTCPeerConnectionInternals.js:

(enqueueOperation):

LayoutTests:

  • fast/mediastream/RTCPeerConnection-createOffer.html:
  • fast/mediastream/RTCPeerConnection-stable.html:
8:30 AM Changeset in webkit [202809] by beidson@apple.com
  • 15 edits
    2 adds in trunk

WebProcesses don't handle DatabaseProcess going away uncleanly..
https://bugs.webkit.org/show_bug.cgi?id=159371

Reviewed by Alex Christensen.

Source/WebCore:

Covered by new API test.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::didCloseFromServer):
(WebCore::IDBDatabase::connectionToServerLost):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::connectionToServerLost): Notify all IDBDatabase

connections, as well as all pending IDBOpenDBRequests, with the error about the
server connection dropping.

  • Modules/indexeddb/client/IDBConnectionProxy.h:
  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::connectionToServerLost):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/shared/IDBError.h:

Source/WebKit2:

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::terminateDatabaseProcess): Deleted.

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::connectionToServerLost):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/WebToDatabaseProcessConnection.cpp:

(WebKit::WebToDatabaseProcessConnection::didReceiveMessage):
(WebKit::WebToDatabaseProcessConnection::didClose): Notify each connection

that the database server connection dropped.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBDatabaseProcessKill-1.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBDatabaseProcessKill.mm: Added.

(-[DatabaseProcessKillNavigationDelegate webView:didFinishNavigation:]):
(-[DatabaseProcessKillMessageHandler userContentController:didReceiveScriptMessage:]):

4:44 AM Changeset in webkit [202808] by clopez@igalia.com
  • 3 edits in trunk/Tools

[EFL][GTK] Layout Test doesn't run on Ubuntu 16.04
https://bugs.webkit.org/show_bug.cgi?id=158141

Rubber-stamped by Michael Catanzaro.

Instead of checking for an specific Ubuntu version, query the apt
database to see which version of PHP is available.

  • efl/install-dependencies:
  • gtk/install-dependencies:
4:22 AM Changeset in webkit [202807] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK] Null WebCore::Range dereference in WebEditorClient::updateGlobalSelection
https://bugs.webkit.org/show_bug.cgi?id=159341

Patch by Fujii Hironori <Fujii Hironori> on 2016-07-04
Reviewed by Carlos Garcia Campos.

FrameSelection::toNormalizedRange() can return null. Null check is
needed.

Tests:

editing/input/set-value-on-input-and-delete.html
editing/selection/selection-in-iframe-removed-crash.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute.html
imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-after-content-change.html
imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application-textarea.html
imported/w3c/web-platform-tests/html/semantics/forms/textfieldselection/selection-not-application.html

  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::updateGlobalSelection): Do not update
global selection if FrameSelection::toNormalizedRange() returns
null.

3:51 AM Changeset in webkit [202806] by Philippe Normand
  • 27 edits in trunk/Source/WebCore

Release build with logging enabled fails
https://bugs.webkit.org/show_bug.cgi?id=159403

Reviewed by Žan Doberšek.

Protect logging-related methods with !LOG_DISABLED.

  • Modules/indexeddb/IDBDatabaseIdentifier.cpp:
  • Modules/indexeddb/IDBDatabaseIdentifier.h:
  • Modules/indexeddb/IDBKey.cpp:
  • Modules/indexeddb/IDBKey.h:
  • Modules/indexeddb/IDBKeyData.cpp:
  • Modules/indexeddb/IDBKeyData.h:
  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::IDBKeyPath::IDBKeyPath):

  • Modules/indexeddb/IDBKeyRangeData.cpp:
  • Modules/indexeddb/IDBKeyRangeData.h:
  • Modules/indexeddb/server/IndexValueEntry.cpp:

(WebCore::IDBServer::IndexValueEntry::Iterator::isValid):

  • Modules/indexeddb/server/IndexValueStore.cpp:
  • Modules/indexeddb/server/IndexValueStore.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::clearObjectStore):

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::isVersionChangeInProgress):

  • Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
  • Modules/indexeddb/shared/IDBDatabaseInfo.h:
  • Modules/indexeddb/shared/IDBIndexInfo.cpp:
  • Modules/indexeddb/shared/IDBIndexInfo.h:
  • Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:
  • Modules/indexeddb/shared/IDBObjectStoreInfo.h:
  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:
  • Modules/indexeddb/shared/IDBResourceIdentifier.h:
  • Modules/indexeddb/shared/IDBTransactionInfo.cpp:
  • Modules/indexeddb/shared/IDBTransactionInfo.h:
  • page/SecurityOriginData.cpp:
  • page/SecurityOriginData.h:
2:29 AM Changeset in webkit [202805] by Yusuke Suzuki
  • 2 edits in trunk/LayoutTests

Unreviewed, skip misc-bugs-847389-jpeg2000.js in jsc stress tests
https://bugs.webkit.org/show_bug.cgi?id=159334

In debug build, it takes too much time.
Since run-jsc-stress-tests can take the arbitrary JSC shell, ifJSCArgIsntProvidedAreWeReleaseBuild
is not good source to determine whether the test is executed with the debug built JSC shell.
So here, we skip this test.
This test is still executed under the run-webkit-tests. So the coverage is still kept.

  • js/regress/script-tests/misc-bugs-847389-jpeg2000.js:
1:06 AM Changeset in webkit [202804] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

webkit-patch failure-reason always raises TypeError
https://bugs.webkit.org/show_bug.cgi?id=159394

Patch by Fujii Hironori <Fujii Hironori> on 2016-07-04
Reviewed by Benjamin Poulain.

In r170637 (Bug 133067), the first and second arguments of
pluralize were swapped.

  • Scripts/webkitpy/tool/commands/queries.py:

(FailureReason._builder_to_explain): Swap the first and second
arguments of pluralize.

12:44 AM Changeset in webkit [202803] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r202556.
https://bugs.webkit.org/show_bug.cgi?id=159399

introduces deadlocks (Requested by philn on #webkit).

Reverted changeset:

"[GStreamer] improved duration query support in the HTTP
source element"
https://bugs.webkit.org/show_bug.cgi?id=159204
http://trac.webkit.org/changeset/202556

12:38 AM Changeset in webkit [202802] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Update Windows test expectations for fast/css/fontloader-download-error.html.
It is skipped on all platforms.

Unreviewed test gardening.

  • platform/win/TestExpectations:
12:35 AM Changeset in webkit [202801] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK] ASSERTION_FAILED: m_key != PTHREAD_KEYS_MAX when defining WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH
https://bugs.webkit.org/show_bug.cgi?id=158149

Patch by Fujii Hironori <Fujii Hironori> on 2016-07-04
Reviewed by Carlos Garcia Campos.

WTF::sleep can not be used at the beginning of web process because
WTF is not initialized at the moment yet.

  • WebProcess/gtk/WebProcessMainGtk.cpp: Use g_usleep instead of WTF::sleep.

Jul 3, 2016:

11:30 PM Changeset in webkit [202800] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebCore

[image-decoders] Make ImageDecoder::size() lazily decode the image if needed to return a valid size
https://bugs.webkit.org/show_bug.cgi?id=159297

Reviewed by Antonio Gomes.

It's otherwise confusing leading to bugs like #159089.

  • platform/image-decoders/ImageDecoder.cpp:

(WebCore::ImageDecoder::createFrameImageAtIndex): Check the size at the beginning and return early if it's
empty. We no longer need to check the size after calling frameBufferAtIndex().

  • platform/image-decoders/ImageDecoder.h:

(WebCore::ImageDecoder::size): Check first is size is available, which lazily decodes the image.
(WebCore::ImageDecoder::scaledSize): Remove const.
(WebCore::ImageDecoder::frameSizeAtIndex): Ditto.

  • platform/image-decoders/ico/ICOImageDecoder.cpp:

(WebCore::ICOImageDecoder::size): Ditto.
(WebCore::ICOImageDecoder::frameSizeAtIndex): Ditto.

  • platform/image-decoders/ico/ICOImageDecoder.h:
11:27 PM Changeset in webkit [202799] by pvollan@apple.com
  • 7 edits in trunk/Source

[Win] DLLs are missing version information.
https://bugs.webkit.org/show_bug.cgi?id=159349

Reviewed by Brent Fulgham.

Source/JavaScriptCore:

Run perl version stamp utility.

  • CMakeLists.txt:

Source/WebKit:

WTF will generate autoversion.h in the prebuild step.
Run the perl version stamp utility.

  • CMakeLists.txt:
  • PlatformWin.cmake:

Source/WTF:

Generate autoversion.h in the prebuild step.
Run the perl version stamp utility.

  • wtf/CMakeLists.txt:
10:59 PM Changeset in webkit [202798] by mitz@apple.com
  • 2 edits in trunk

[Xcode] With default verbosity, make(1) output no longer hides environment variable listings
https://bugs.webkit.org/show_bug.cgi?id=159392

Reviewed by Alexey Proskuryakov.

  • Makefile.shared: Pass the -hideShellScriptEnvironment option to xcodebuild instead of piping its output through an ineffective "grep -v setenv",
10:39 PM Changeset in webkit [202797] by Yusuke Suzuki
  • 5 edits
    3 adds in trunk

[JSC] MacroAssemblerX86::branch8 should accept unsigned 8bit value
https://bugs.webkit.org/show_bug.cgi?id=159334

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

As described in branchTest8 functions, byte in TrustedImm32 is not well defined.
So the assertion here should be a little permissive; accepting -128 to 255.

This assertion is originally fired when executing misc-bugs-847389-jpeg2000 benchmark in Debug build.
So this patch includes misc-bugs-847389-jpeg2000 benchmark.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::branchTest8):
(JSC::MacroAssemblerX86Common::branch8):

  • b3/testb3.cpp:

(JSC::B3::testBranch8WithLoad8ZIndex):
(JSC::B3::run):

LayoutTests:

  • TestExpectations:
  • js/regress/misc-bugs-847389-jpeg2000-expected.txt: Added.
  • js/regress/misc-bugs-847389-jpeg2000.html: Added.
  • js/regress/script-tests/misc-bugs-847389-jpeg2000.js: Added.

(error):
(warn):
(JpxImage.JpxImageClosure.JpxImage):
(JpxImage.JpxImageClosure.JpxImage.prototype.load.JpxImage_load.xhr.onload):
(JpxImage.JpxImageClosure.JpxImage.prototype.load):
(JpxImage.JpxImageClosure.JpxImage.prototype.parse.JpxImage_parse.readUint):
(JpxImage.JpxImageClosure.JpxImage.prototype.parse):
(JpxImage.JpxImageClosure.JpxImage.prototype.parseCodestream):
(JpxImage.JpxImageClosure.readUint32):
(JpxImage.JpxImageClosure.readUint16):
(JpxImage.JpxImageClosure.log2):
(JpxImage.JpxImageClosure.calculateComponentDimensions):
(JpxImage.JpxImageClosure.calculateTileGrids):
(JpxImage.JpxImageClosure.getBlocksDimensions):
(JpxImage.JpxImageClosure.buildPrecincts):
(JpxImage.JpxImageClosure.buildCodeblocks):
(JpxImage.JpxImageClosure.createPacket):
(JpxImage.JpxImageClosure.LayerResolutionComponentPositionIterator.this.nextPacket):
(JpxImage.JpxImageClosure.LayerResolutionComponentPositionIterator):
(JpxImage.JpxImageClosure.ResolutionLayerComponentPositionIterator.this.nextPacket):
(JpxImage.JpxImageClosure.ResolutionLayerComponentPositionIterator):
(JpxImage.JpxImageClosure.buildPackets):
(JpxImage.JpxImageClosure.readBits):
(JpxImage.JpxImageClosure.alignToByte):
(JpxImage.JpxImageClosure.readCodingpasses):
(JpxImage.JpxImageClosure.parseTilePackets):
(JpxImage.JpxImageClosure.copyCoefficients):
(JpxImage.JpxImageClosure.transformTile):
(JpxImage.JpxImageClosure.transformComponents):
(JpxImage.JpxImageClosure.initializeTile):
(JpxImage.JpxImageClosure.):
(JpxImage.JpxImageClosure.TagTree):
(JpxImage.JpxImageClosure.InclusionTree):
(JpxImage.JpxImageClosure.ArithmeticDecoder):
(JpxImage.JpxImageClosure.BitModel):
(JpxImage.JpxImageClosure.Transform):
(JpxImage.JpxImageClosure.IrreversibleTransform):
(JpxImage.JpxImageClosure.ReversibleTransform):
(JpxImage):
(atob):

8:25 PM Changeset in webkit [202796] by commit-queue@webkit.org
  • 5 edits in trunk

[JSC] lookupGetter and lookupSetter should not ignore exceptions
https://bugs.webkit.org/show_bug.cgi?id=159390

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-03
Reviewed by Mark Lam.

Source/JavaScriptCore:

See:
-https://tc39.github.io/ecma262/#sec-object.prototype.__lookupGetter
-https://tc39.github.io/ecma262/#sec-object.prototype.__lookupSetter

They are both supposed to be regular GetOwnProperty.

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncLookupGetter):
(JSC::objectProtoFuncLookupSetter):

LayoutTests:

  • js/property-getters-and-setters-expected.txt:
  • js/script-tests/property-getters-and-setters.js:

(getter17):
(get getter17):
(getOwnPropertyDescriptor):
(setter18):
(set setter18):

2:36 PM Changeset in webkit [202795] by sbarati@apple.com
  • 4 edits in trunk/Source

BytecodeGenerator::getVariablesUnderTDZ is too conservative
https://bugs.webkit.org/show_bug.cgi?id=159387

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

We were too conservative in the following type of programs:
`
{

{

let x;
...

}
let x;

}
`
We used to report "x" as under TDZ when calling getVariablesUnderTDZ at the
"...", even though "x" is not under TDZ. This patch removes this conservatism
and makes the algorithm precise.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::getVariablesUnderTDZ):

  • bytecompiler/BytecodeGenerator.h:

Source/WTF:

I've templatized SmallPtrSet on its SmallArraySize instead
of it always being 8.

  • wtf/SmallPtrSet.h:

(WTF::SmallPtrSet::SmallPtrSet):
(WTF::SmallPtrSet::add):
(WTF::SmallPtrSet::iterator::operator!=):
(WTF::SmallPtrSet::bucket):

1:01 PM Changeset in webkit [202794] by fred.wang@free.fr
  • 2 edits
    1 add in trunk/LayoutTests

Update windows test expectations for some MathML tests.

Unreviewed test gardening.

  • platform/win/TestExpectations:
  • platform/win/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Added.
12:44 PM Changeset in webkit [202793] by mitz@apple.com
  • 11 edits in trunk/Source/WebKit2

Follow-up to r202789.

Reviewed by Sam Weinig.

Ensure that API that isn’t available at all on a platform is declared under an appropriate
TARGET_OS_* conditional.

  • Shared/API/Cocoa/_WKHitTestResult.h:
  • Shared/API/Cocoa/_WKHitTestResult.mm:
  • Shared/API/Cocoa/_WKHitTestResultInternal.h:
  • UIProcess/API/Cocoa/WKOpenPanelParameters.h:
  • UIProcess/API/Cocoa/WKOpenPanelParameters.mm:
  • UIProcess/API/Cocoa/WKOpenPanelParametersInternal.h:
  • UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.h:
  • UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.mm:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
12:34 PM Changeset in webkit [202792] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

FTL should refer to B3 types directly
https://bugs.webkit.org/show_bug.cgi?id=159389

Reviewed by Saam Barati.

When we used LLVM, types were objects that were allocated by the LLVMContext. We had to
remember pointers to them or else call through the C API every time we wanted the type. We
stored the type pointers inside FTL::CommonValues.

But in B3, types are just members of an enum. We don't have to remember pointers to them.

This change replaces all prior uses of things like "m_out.int32" with just "Int32", and
likewise for m_out.boolean, m_out.int64, m_out.intPtr, m_out.floatType, m_out.doubleType,
and m_out.voidType.

We still use FTL::CommonValues for common constants that we have pre-hoisted. Hopefully we
will come up with a better story for those eventually, since that's still kinda ugly.

  • ftl/FTLCommonValues.cpp:

(JSC::FTL::CommonValues::CommonValues):

  • ftl/FTLCommonValues.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::createPhiVariables):
(JSC::FTL::DFG::LowerDFGToB3::compileDoubleRep):
(JSC::FTL::DFG::LowerDFGToB3::compileBooleanToNumber):
(JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileToThis):
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileStrCat):
(JSC::FTL::DFG::LowerDFGToB3::compileArithMinOrMax):
(JSC::FTL::DFG::LowerDFGToB3::compileArithPow):
(JSC::FTL::DFG::LowerDFGToB3::compileArithRound):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayifyToStructure):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByValWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetIndexedPropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayByteOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArrayLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutGetterSetterById):
(JSC::FTL::DFG::LowerDFGToB3::compilePutAccessorByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):
(JSC::FTL::DFG::LowerDFGToB3::compileArrayPop):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileNewFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateDirectArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateScopedArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCreateClonedArguments):
(JSC::FTL::DFG::LowerDFGToB3::compileCopyRest):
(JSC::FTL::DFG::LowerDFGToB3::compileGetRestLength):
(JSC::FTL::DFG::LowerDFGToB3::compileNewObject):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArray):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayBuffer):
(JSC::FTL::DFG::LowerDFGToB3::compileNewArrayWithSize):
(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::compileToNumber):
(JSC::FTL::DFG::LowerDFGToB3::compileToStringOrCallStringConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileToPrimitive):
(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharCodeAt):
(JSC::FTL::DFG::LowerDFGToB3::compileStringFromCharCode):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileMultiGetByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compilePutByOffset):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileLoadVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileSwitch):
(JSC::FTL::DFG::LowerDFGToB3::compileIsString):
(JSC::FTL::DFG::LowerDFGToB3::compileIsJSArray):
(JSC::FTL::DFG::LowerDFGToB3::compileIsObject):
(JSC::FTL::DFG::LowerDFGToB3::compileIsObjectOrNull):
(JSC::FTL::DFG::LowerDFGToB3::compileIsFunction):
(JSC::FTL::DFG::LowerDFGToB3::compileIsRegExpObject):
(JSC::FTL::DFG::LowerDFGToB3::compileIsTypedArrayView):
(JSC::FTL::DFG::LowerDFGToB3::compileTypeOf):
(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::compileOverridesHasInstance):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckTypeInfoFlags):
(JSC::FTL::DFG::LowerDFGToB3::compileInstanceOf):
(JSC::FTL::DFG::LowerDFGToB3::compileInstanceOfCustom):
(JSC::FTL::DFG::LowerDFGToB3::compileCountExecution):
(JSC::FTL::DFG::LowerDFGToB3::compileHasIndexedProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileHasGenericProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileHasStructureProperty):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDirectPname):
(JSC::FTL::DFG::LowerDFGToB3::compileGetEnumerableLength):
(JSC::FTL::DFG::LowerDFGToB3::compileGetPropertyEnumerator):
(JSC::FTL::DFG::LowerDFGToB3::compileGetEnumeratorStructurePname):
(JSC::FTL::DFG::LowerDFGToB3::compileGetEnumeratorGenericPname):
(JSC::FTL::DFG::LowerDFGToB3::compileToIndexString):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckStructureImmediate):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeNewObject):
(JSC::FTL::DFG::LowerDFGToB3::compileMaterializeCreateActivation):
(JSC::FTL::DFG::LowerDFGToB3::compileSetFunctionName):
(JSC::FTL::DFG::LowerDFGToB3::numberOrNotCellToInt32):
(JSC::FTL::DFG::LowerDFGToB3::checkInferredType):
(JSC::FTL::DFG::LowerDFGToB3::initializeArrayElements):
(JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::reallocatePropertyStorage):
(JSC::FTL::DFG::LowerDFGToB3::allocatePropertyStorageWithSizeImpl):
(JSC::FTL::DFG::LowerDFGToB3::getById):
(JSC::FTL::DFG::LowerDFGToB3::compare):
(JSC::FTL::DFG::LowerDFGToB3::compileResolveScope):
(JSC::FTL::DFG::LowerDFGToB3::compileGetDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compareEqObjectOrOtherToObject):
(JSC::FTL::DFG::LowerDFGToB3::speculateTruthyObject):
(JSC::FTL::DFG::LowerDFGToB3::nonSpeculativeCompare):
(JSC::FTL::DFG::LowerDFGToB3::stringsEqual):
(JSC::FTL::DFG::LowerDFGToB3::allocateVariableSizedObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateObject):
(JSC::FTL::DFG::LowerDFGToB3::allocateJSArray):
(JSC::FTL::DFG::LowerDFGToB3::ensureShadowChickenPacket):
(JSC::FTL::DFG::LowerDFGToB3::boolify):
(JSC::FTL::DFG::LowerDFGToB3::equalNullOrUndefined):
(JSC::FTL::DFG::LowerDFGToB3::contiguousPutByValOutOfBounds):
(JSC::FTL::DFG::LowerDFGToB3::buildSwitch):
(JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):
(JSC::FTL::DFG::LowerDFGToB3::doubleToInt32):
(JSC::FTL::DFG::LowerDFGToB3::sensibleDoubleToInt32):
(JSC::FTL::DFG::LowerDFGToB3::strictInt52ToJSValue):
(JSC::FTL::DFG::LowerDFGToB3::strictInt52ToInt52):
(JSC::FTL::DFG::LowerDFGToB3::unboxInt32):
(JSC::FTL::DFG::LowerDFGToB3::boxInt32):
(JSC::FTL::DFG::LowerDFGToB3::isCellOrMisc):
(JSC::FTL::DFG::LowerDFGToB3::unboxDouble):
(JSC::FTL::DFG::LowerDFGToB3::boxDouble):
(JSC::FTL::DFG::LowerDFGToB3::jsValueToStrictInt52):
(JSC::FTL::DFG::LowerDFGToB3::doubleToStrictInt52):
(JSC::FTL::DFG::LowerDFGToB3::convertDoubleToInt32):
(JSC::FTL::DFG::LowerDFGToB3::callCheck):
(JSC::FTL::DFG::LowerDFGToB3::crash):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::bitCast):

10:47 AM Changeset in webkit [202791] by fpizlo@apple.com
  • 2 edits in trunk/Source/WTF

Ugh. Once again, unreviewed, roll out unintentional commit in r202790.

  • benchmarks/LockFairnessTest.cpp:

(main):

10:46 AM Changeset in webkit [202790] by fpizlo@apple.com
  • 3 edits
    2 adds in trunk/Source

DFG LICM needs to go all-in on the idea that some loops can't be LICMed
https://bugs.webkit.org/show_bug.cgi?id=159388

Reviewed by Mark Lam.

Some time ago I acknowledged that LICM required loops to meet certain requirements that
may get broken by the time we do LICM, like that the terminal of the pre-header is ExitOK.
It used to be that we just ignored that requirement and would hoist anyway, but since
r189126 we've stopped hoisting out of loops that don't have ExitOK. We also added tests
for the case that the pre-header doesn't exist or is invalid.

It turns out that this patch didn't go far enough: even though it made LICM avoid loops
that had an invalid pre-header, the part that updated the AI state in nested loops still
assumed that these loops had valid pre-headers. We would crash in null dereference in
that loop if a nested loop had an invalid pre-header.

The fix is simple: don't update the AI state of nested loops that don't have pre-headers,
since we won't try to hoist out of those loops anyway.

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • tests/stress/licm-no-pre-header-nested.js: Added. This would always crash before this fix.

(foo):

  • tests/stress/licm-pre-header-cannot-exit-nested.js: Added. This was a failed attempt at a test, but I figure it's good to have weird code anyway.

(foo):
(valueOf):

10:08 AM Changeset in webkit [202789] by mitz@apple.com
  • 94 edits in trunk/Source/WebKit2

[Cocoa] Adopt modern API availability macros
https://bugs.webkit.org/show_bug.cgi?id=159378

Reviewed by Sam Weinig.

iOS 10 and macOS Sierra introduce new macros for declaring API availability, defined in
CFAvailability.h, including API_AVAILABLE, API_DEPRECATED, and
API_DEPRECATED_WITH_REPLACEMENT. Rather than having positional parameters for macOS and iOS
versions, the new macros take a variable number of function-like parameters, where the
function specifies the platform to which it applies.

To have WebKit2’s postprocessed headers use the new macros, we make the following changes:

  • Replace instances of WK_AVAILABLE(_mac, _ios) with WK_API_AVAILABLE(macosx(_mac), ios(_ios)), eliding a platform if its current availability is NA.
  • Change instances of WK_CLASS_AVAILABLE(_mac, _ios) to WK_CLASS_AVAILABLE(macosx(_mac), ios(_ios)), eliding a platform if its current availability is NA.
  • Replace instances of WK_DEPRECATED(_macIntro, _macDep, _iosIntro, _iosDep, ...) with WK_API_DEPRECATED_WITH_REPLACEMENT(_replacement, macosx(_macIntro, _macDep), ios(_iosIntro, _iosDep)) when there is a one-for-one replacement, and with WK_API_DEPRECATED(_message, macosx(_macIntro, _macDep), ios(_iosIntro, _iosDep)) when the replacement isn’t one-for-one. Again, if the API doesn’t apply to a platform, then it’s elided.
  • Replace instances of WK_CLASS_DEPRECATED with WK_CLASS_DEPRECATED_WITH_REPLACEMENT, following the same rules.
  • Replace instances of the WK_ENUM_* macros with corresponding WK_API_* macros, now that all supported compilers support availability attributes on enum values.
  • Configurations/WebKit.xcconfig: Disable header postprocessing when building for iOS 9.x, which doesn’t have the new macros.
  • mac/postprocess-framework-headers.sh: Handle the new WK_* macros: WK_API_AVAILABLE becomes API_AVAILABLE; WK_API_DEPRECATED(_WITH_REPLACEMENT) become API_DEPRECATED(_WITH_REPLACEMENT); WK_CLASS_AVAILABLE and WK_CLASS_DEPRECATED(_WITH_REPLACEMENT) change to the corresponding API_ macros, prefixed with WK_EXTERN.
  • Shared/API/Cocoa/WKFoundation.h: When header postprocessing is disabled, provide definitions of the new WK_* macros we use.
  • UIProcess/API/Cocoa/WKWebViewConfiguration.h: In addition to the above, changed one instance of (iOS) 10_0 to WK_IOS_TBA.

Made the above changes in the following headers:

  • Shared/API/Cocoa/WKBrowsingContextHandle.h:
  • Shared/API/Cocoa/_WKFrameHandle.h:
  • Shared/API/Cocoa/_WKHitTestResult.h:
  • Shared/API/Cocoa/_WKRemoteObjectInterface.h:
  • Shared/API/Cocoa/_WKRemoteObjectRegistry.h:
  • Shared/API/Cocoa/_WKRenderingProgressEvents.h:
  • Shared/API/Cocoa/_WKSameDocumentNavigationType.h:
  • UIProcess/API/Cocoa/WKBackForwardList.h:
  • UIProcess/API/Cocoa/WKBackForwardListItem.h:
  • UIProcess/API/Cocoa/WKBrowsingContextController.h:
  • UIProcess/API/Cocoa/WKBrowsingContextGroup.h:
  • UIProcess/API/Cocoa/WKConnection.h:
  • UIProcess/API/Cocoa/WKError.h:
  • UIProcess/API/Cocoa/WKErrorPrivate.h:
  • UIProcess/API/Cocoa/WKFrameInfo.h:
  • UIProcess/API/Cocoa/WKFrameInfoPrivate.h:
  • UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
  • UIProcess/API/Cocoa/WKNavigation.h:
  • UIProcess/API/Cocoa/WKNavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
  • UIProcess/API/Cocoa/WKNavigationData.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKNavigationResponse.h:
  • UIProcess/API/Cocoa/WKOpenPanelParameters.h:
  • UIProcess/API/Cocoa/WKPreferences.h:
  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKPreviewActionItem.h:
  • UIProcess/API/Cocoa/WKPreviewActionItemIdentifiers.h:
  • UIProcess/API/Cocoa/WKPreviewElementInfo.h:
  • UIProcess/API/Cocoa/WKProcessGroup.h:
  • UIProcess/API/Cocoa/WKProcessPool.h:
  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/API/Cocoa/WKScriptMessage.h:
  • UIProcess/API/Cocoa/WKSecurityOrigin.h:
  • UIProcess/API/Cocoa/WKTypeRefWrapper.h:
  • UIProcess/API/Cocoa/WKUIDelegate.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKUserContentController.h:
  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h:
  • UIProcess/API/Cocoa/WKUserScript.h:
  • UIProcess/API/Cocoa/WKUserScriptPrivate.h:
  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
  • UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.h:
  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:
  • UIProcess/API/Cocoa/WKWindowFeatures.h:
  • UIProcess/API/Cocoa/_WKActivatedElementInfo.h:
  • UIProcess/API/Cocoa/_WKAutomationSession.h:
  • UIProcess/API/Cocoa/_WKContextMenuElementInfo.h:
  • UIProcess/API/Cocoa/_WKDiagnosticLoggingDelegate.h:
  • UIProcess/API/Cocoa/_WKDownload.h:
  • UIProcess/API/Cocoa/_WKElementAction.h:
  • UIProcess/API/Cocoa/_WKExperimentalFeature.h:
  • UIProcess/API/Cocoa/_WKFindOptions.h:
  • UIProcess/API/Cocoa/_WKFormInputSession.h:
  • UIProcess/API/Cocoa/_WKInputDelegate.h:
  • UIProcess/API/Cocoa/_WKLayoutMode.h:
  • UIProcess/API/Cocoa/_WKOverlayScrollbarStyle.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKSessionState.h:
  • UIProcess/API/Cocoa/_WKThumbnailView.h:
  • UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
  • UIProcess/API/Cocoa/_WKUserContentFilter.h:
  • UIProcess/API/Cocoa/_WKUserContentWorld.h:
  • UIProcess/API/Cocoa/_WKUserStyleSheet.h:
  • UIProcess/API/Cocoa/_WKVisitedLinkProvider.h:
  • UIProcess/API/Cocoa/_WKVisitedLinkStore.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataRecord.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataSize.h:
  • UIProcess/API/Cocoa/_WKWebsiteDataStore.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFormDelegatePrivate.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInPageGroup.h:
  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMDocument.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMElement.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMNode.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMRange.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMText.h:
  • WebProcess/InjectedBundle/API/mac/WKDOMTextIterator.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugIn.h:
  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.h:
9:38 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
9:27 AM Changeset in webkit [202788] by fred.wang@free.fr
  • 2 edits in trunk/LayoutTests

[win] Update TestExpectations after the MathML refactoring
https://bugs.webkit.org/show_bug.cgi?id=159386

Reviewed by Alex Christensen.

  • platform/win/TestExpectations:
9:18 AM Changeset in webkit [202787] by fred.wang@free.fr
  • 4 edits in trunk/LayoutTests

Update windows test expectations for some MathML tests.

Unreviewed test gardening.

  • platform/win/TestExpectations:
  • platform/win/mathml/opentype/horizontal-expected.txt:
  • platform/win/mathml/opentype/horizontal-munderover-expected.txt:
4:59 AM Changeset in webkit [202786] by ddkilzer@apple.com
  • 1 edit
    1 add in trunk/LayoutTests

fast/css/image-set-unprefixed.html fails on iOS Simulator

Follow-up fix for:

"image-src" support is missing. We only support "-webkit-image-src"
https://bugs.webkit.org/show_bug.cgi?id=159373
<rdar://problem/27140443>

  • platform/ios-simulator/fast/css/image-set-unprefixed-expected.txt: Added.

Cursor tests are expected to fail on iOS Simulator.

Jul 2, 2016:

8:36 PM Changeset in webkit [202785] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: CallFrame console.assert seen in tests (sourceCodeLocation instanceof SourceCodeLocation)
https://bugs.webkit.org/show_bug.cgi?id=159368

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-02
Reviewed by Timothy Hatcher.

  • UserInterface/Test.html:

SourceCodeLocation was already included earlier. This redefines it and
thereby breaks some things.

8:33 PM Changeset in webkit [202784] by commit-queue@webkit.org
  • 8 edits in trunk

inspector/debugger/command-line-api-exception.html flakily times out on mac
https://bugs.webkit.org/show_bug.cgi?id=152029
<rdar://problem/23813812>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-02
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Base/Object.js:

(WebInspector.Object.addEventListener):
Return the listener, this makes it cleaner to write tests.

LayoutTests:

  • inspector/debugger/command-line-api-exception-expected.txt:
  • inspector/debugger/command-line-api-exception-nested-catch-expected.txt:
  • inspector/debugger/command-line-api-exception-nested-catch.html:
  • inspector/debugger/command-line-api-exception.html:
  • platform/mac/TestExpectations:

Rewrite these tests to use the new test harness.
This also is more careful about Pause/Resume timing differences
between Release and Debug builds.

8:32 PM Changeset in webkit [202783] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Web Inspector: Fix inspector/debugger/pause-reason.html
https://bugs.webkit.org/show_bug.cgi?id=159325

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-02
Reviewed by Timothy Hatcher.

  • platform/mac/TestExpectations:
  • inspector/debugger/pause-reason.html:

This test was pausing on inspector code (evaluateInPage) and
auto-resuming. Instead change the test to pause on the page
doing the setTimeout, so we get the expected pause on next
statement evaluation.

10:52 AM Changeset in webkit [202782] by mitz@apple.com
  • 2 edits in trunk/Source/WTF

Build fix.

  • wtf/Assertions.cpp:
10:47 AM Changeset in webkit [202781] by fpizlo@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, roll back unintentional commit in r202778.

  • benchmarks/LockFairnessTest.cpp:

(main):

10:45 AM Changeset in webkit [202780] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Make it straightforward to start the Web Platform Tests HTTP server using run-webkit-httpd
https://bugs.webkit.org/show_bug.cgi?id=152486

Patch by Youenn Fablet <youennf@gmail.com> on 2016-07-02
Reviewed by Daniel Bates.

Add launch of web-platform-tests server by run-webkit-httpd.
Add two options to disable starting httpd and web-platform-tests servers.

  • Scripts/run-webkit-httpd:

(parse_args):
(main):

10:44 AM Changeset in webkit [202779] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Synchronous preflight checker should set loading options to not use credentials
https://bugs.webkit.org/show_bug.cgi?id=159351

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-02
Reviewed by Alex Christensen.

Like for asynchronous preflighting, synchronous preflighting loading options should disqble any credentials.

No change of behavior as preflight request is expressly set to not use credentials in
createAccessControlPreflightRequest.

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::doPreflight):

10:43 AM Changeset in webkit [202778] by fpizlo@apple.com
  • 7 edits
    1 add in trunk/Source

Scopes that are not under TDZ should still push their variables onto the TDZ stack so that lifting TDZ doesn't bypass that scope
https://bugs.webkit.org/show_bug.cgi?id=159332
rdar://problem/27018958

Reviewed by Saam Barati.

This fixes an instacrash in this code:

try{}catch(e){}print(e);let e;


We lift TDZ for "e" in "catch (e){}", but since that scope doesn't push anything onto the
TDZ stack, we lift TDZ from "let e".

The problem is that we weren't tracking the set of variables that do not have TDZ. We need
to track them to "block" the traversal that lifts TDZ. This change fixes this issue by
using a map that tracks all known variables, and tells you if they are under TDZ or not.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::numParameters):

  • bytecode/CodeOrigin.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::Label::setLocation):
(JSC::Variable::dump):
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):
(JSC::BytecodeGenerator::popLexicalScope):
(JSC::BytecodeGenerator::popLexicalScopeInternal):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::needsTDZCheck):
(JSC::BytecodeGenerator::liftTDZCheckIfPossible):
(JSC::BytecodeGenerator::pushTDZVariables):
(JSC::BytecodeGenerator::getVariablesUnderTDZ):
(JSC::BytecodeGenerator::endGenerator):
(WTF::printInternal):

  • bytecompiler/BytecodeGenerator.h:

(JSC::Variable::isConst):
(JSC::Variable::setIsReadOnly):

  • interpreter/CallFrame.h:

(JSC::ExecState::topOfFrame):

  • tests/stress/lift-tdz-bypass-catch.js: Added.

(foo):
(catch):

4:29 AM Changeset in webkit [202777] by fred.wang@free.fr
  • 5 edits in trunk/LayoutTests

Update EFL expectations for some MathML tests.

Unreviewed test gardening.

  • platform/efl/TestExpectations: Mark mathml/presentation/radical-bar-visibility.html as failing.
  • platform/efl/mathml/opentype/horizontal-munderover-expected.txt: Update expectation using latest buildbot results.
  • platform/efl/mathml/presentation/menclose-notation-values-expected.txt: Ditto.
  • platform/efl/mathml/presentation/mspace-children-expected.txt: Ditto.
1:24 AM Changeset in webkit [202776] by fred.wang@free.fr
  • 4 edits
    7 adds
    1 delete in trunk/LayoutTests

Update windows expectations for some MathML tests.

Unreviewed test gardening.

  • platform/win/TestExpectations:
  • platform/win/mathml/opentype/large-operators-expected.txt: Added.
  • platform/win/mathml/opentype/opentype-stretchy-expected.txt: Added.
  • platform/win/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Removed.
  • platform/win/mathml/opentype/vertical-expected.txt: Added.
  • platform/win/mathml/presentation/menclose-notation-default-longdiv-expected.txt:
  • platform/win/mathml/presentation/mo-stretch-expected.txt: Added.
  • platform/win/mathml/presentation/roots-expected.txt: Added.
  • platform/win/mathml/radical-fallback-expected.png: Added.
  • platform/win/mathml/radical-fallback-expected.txt: Added.
  • platform/efl/mathml/radical-fallback-expected.txt:
12:54 AM Changeset in webkit [202775] by fred.wang@free.fr
  • 11 edits
    2 adds
    6 deletes in trunk/LayoutTests

Update EFL expectations for some MathML tests.

Unreviewed test gardening.

  • platform/efl/accessibility/math-mo-fences-and-separators-expected.txt: Added.
  • platform/efl/mathml/opentype/horizontal-expected.txt:
  • platform/efl/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/efl/mathml/opentype/large-operators-expected.png: Removed.
  • platform/efl/mathml/opentype/large-operators-expected.txt:
  • platform/efl/mathml/opentype/opentype-stretchy-expected.png: Removed.
  • platform/efl/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/efl/mathml/opentype/vertical-expected.png: Removed.
  • platform/efl/mathml/opentype/vertical-expected.txt:
  • platform/efl/mathml/presentation/menclose-notation-default-longdiv-expected.png: Removed.
  • platform/efl/mathml/presentation/menclose-notation-default-longdiv-expected.txt:
  • platform/efl/mathml/presentation/menclose-notation-values-expected.txt:
  • platform/efl/mathml/presentation/mo-stretch-expected.png: Removed.
  • platform/efl/mathml/presentation/mo-stretch-expected.txt:
  • platform/efl/mathml/presentation/mspace-children-expected.txt:
  • platform/efl/mathml/presentation/roots-expected.png: Removed.
  • platform/efl/mathml/presentation/roots-expected.txt:
  • platform/efl/mathml/radical-fallback-expected.txt: Added.
12:11 AM Changeset in webkit [202774] by fred.wang@free.fr
  • 4 edits
    1 add in trunk/LayoutTests

Update iOS expectations for some MathML tests.

Unreviewed test gardening.

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/mathml/mathml-in-dashboard-actual.txt: Added.

Jul 1, 2016:

8:03 PM Changeset in webkit [202773] by Hunseop Jeong
  • 3 edits in trunk/Source/WebKit2

[EFL] Many layout tests are timeout after r202532.
https://bugs.webkit.org/show_bug.cgi?id=159337

Reviewed by Gyuyoung Kim.

WebPageProxy::forceRepaint() wait for the next commit from the web process
after r202532, but WebPageProxy::callAfterNextPresentationUpdate() is not
implemented in CoordinatedDrawingAreaProxy.

  • UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:

(WebKit::CoordinatedDrawingAreaProxy::contentsRect):
(WebKit::CoordinatedDrawingAreaProxy::dispatchAfterEnsuringDrawing):
(WebKit::CoordinatedDrawingAreaProxy::sizeDidChange):

  • UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h:

(WebKit::CoordinatedDrawingAreaProxy::page):

7:53 PM Changeset in webkit [202772] by mmaxfield@apple.com
  • 12 edits in trunk

REGRESSION(r189668): Notification tests are flakey
https://bugs.webkit.org/show_bug.cgi?id=159375
<rdar://problem/22760990>

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

Implement WKNotificationManagerGetLocalID(). For more information, see the entry in Tools/ChangeLog.

  • UIProcess/API/C/WKNotificationManager.cpp:

(WKNotificationManagerGetLocalID):

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::WebNotificationManagerProxy::notificationLocalIDForTesting):

  • UIProcess/Notifications/WebNotificationManagerProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:

Tools:

Notifications are objects which must exist in both the UI Process and the Web Process. Each process
identifies a notification object by a unique ID. When the Web Process sends a message regarding a
notification to the UI Process, the UI Process's WebNotificationManagerProxy holds a map from
(Page ID, Web Process notification ID) -> UI Process notification ID. This works as intended.

Our tests, however, include an additional method, simulateWebNotificationClick(), which is implemented
by WebKitTestRunner in the Web Process via the Injected Bundle. This method involves sending a message
to the UI process, to handle the simulated click. However, that RPC didn't perform the same local ->
global notification ID mapping, causing the wrong notification to be investigated.

The solution is for WebNotificationProvider, implemented in WebKitTestRunner in the UI Process, to
manually perform this same mapping. Luckily, this object already receives callbacks every time a
notification is created or destroyed. However, because this object is implemented outside WebKit,
it isn't privy to the internal Web Process ID used inside WebNotificationmanagerProxy. Therefore,
this patch adds a private testing function which returns this internal ID. Once given this intenal ID,
WebNotificationProvider can properly map between the different IDs.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::runTestingServerLoop):
(WTR::TestController::simulateWebNotificationClick):

  • WebKitTestRunner/WebNotificationProvider.cpp:

(WTR::WebNotificationProvider::showWebNotification):
(WTR::removeGlobalIDFromIDMap):
(WTR::WebNotificationProvider::closeWebNotification):
(WTR::WebNotificationProvider::removeNotificationManager):
(WTR::WebNotificationProvider::simulateWebNotificationClick):
(WTR::WebNotificationProvider::reset):

  • WebKitTestRunner/WebNotificationProvider.h:

LayoutTests:

  • platform/mac/TestExpectations:
  • platform/mac-wk2/TestExpectations:
7:32 PM Changeset in webkit [202771] by commit-queue@webkit.org
  • 3 edits
    1 delete in trunk

Unreviewed, rolling out r202766.
https://bugs.webkit.org/show_bug.cgi?id=159382

The new test asserts every time (Requested by ap on #webkit).

Reverted changeset:

"Web Inspector: Sending XHR with UTF8 encoded data shows
garbled data in Resource sidebar"
https://bugs.webkit.org/show_bug.cgi?id=159358
http://trac.webkit.org/changeset/202766

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

[JSC] RegExp.compile is not returning the regexp when it succeed
https://bugs.webkit.org/show_bug.cgi?id=159381

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-01
Reviewed by Mark Lam.

Source/JavaScriptCore:

Spec:
-https://tc39.github.io/ecma262/#sec-regexp.prototype.compile
-https://tc39.github.io/ecma262/#sec-regexpinitialize

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncCompile):

LayoutTests:

  • js/regexp-compile-expected.txt:
  • js/script-tests/regexp-compile.js:
6:15 PM Changeset in webkit [202769] by Alan Bujtas
  • 5 edits
    3 adds in trunk

prepareForDestruction() always needs to be called before destroying the Document object.
https://bugs.webkit.org/show_bug.cgi?id=159372
rdar://problem/26788150

Reviewed by Antti Koivisto.

We should never start destroying the Document object without calling prepareForDestruction() first.
It ensures that render tree gets nuked before we start tearing down the node tree.

Source/WebCore:

Test: fast/history/page-cache-destroy-document.html

  • dom/Document.cpp:

(WebCore::Document::removedLastRef):

LayoutTests:

  • fast/history/page-cache-destroy-document-expected.txt: Added.
  • fast/history/page-cache-destroy-document.html: Added.
  • fast/history/resources/page-cache-destroy-helper.html: Added.
5:59 PM Changeset in webkit [202768] by sbarati@apple.com
  • 6 edits
    1 add in trunk

fix "ASSERTION FAILED: currentOffset() >= currentLineStartOffset()"
https://bugs.webkit.org/show_bug.cgi?id=158572
<rdar://problem/26884092>

Reviewed by Mark Lam.

Source/JavaScriptCore:

There is a bug in our lexer when we notice the pattern:
<return|continue|break|...etc> // some comment here
Our code will say that the token for the comment is a semicolon.
This is the correct semantics, however, it would give the semicolon
a start offset of the comment, but it will give its line start offset
the newline after the comment. This breaks the invariant in the lexer/parser
that the offset for the current line starting point must be less than or equal to
than the start offset of any token on that line. This invariant was broken because
the line start offset was greater than the token start offset. To maintain this
invariant, we claim that the semicolon token is located where the comment starts,
and that its line start offset is the line start offset for the line with the
comment on it. There are other solutions that maintain this invariant, but this
solution provides the best error messages.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::lex):

  • parser/Parser.h:

(JSC::Parser::internalSaveLexerState):

  • tests/stress/obscure-error-message-dont-crash.js: Added.

(try.eval.or.catch):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:

(invalid.or.break.catch):
(catch): Deleted.

5:56 PM Changeset in webkit [202767] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/history/page-cache-webdatabase-pending-transaction.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=159379

Unreviewed test gardening.

  • platform/mac/TestExpectations:
5:55 PM Changeset in webkit [202766] by commit-queue@webkit.org
  • 3 edits
    3 adds in trunk

Web Inspector: Sending XHR with UTF8 encoded data shows garbled data in Resource sidebar
https://bugs.webkit.org/show_bug.cgi?id=159358

Patch by Johan K. Jensen <jj@johanjensen.dk> on 2016-07-01
Reviewed by Joseph Pecoraro.

Source/WebCore:

Test: http/tests/inspector/network/xhr-request-data-encoded-correctly.html

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::buildObjectForResourceRequest):

LayoutTests:

Based on Chromium patch:
<https://chromium.googlesource.com/chromium/src/+/bcbb663864624ab38b36731eb2edc839a90f9e65%5E%21/#F2>

  • http/tests/inspector/network/xhr-request-data-encoded-correctly-expected.txt:
  • http/tests/inspector/network/xhr-request-data-encoded-correctly.html:
5:22 PM Changeset in webkit [202765] by dino@apple.com
  • 10 edits
    2 adds in trunk

"image-src" support is missing. We only support "-webkit-image-src"
https://bugs.webkit.org/show_bug.cgi?id=159373
<rdar://problem/27140443>

Patch by Brent Fulgham and Dean Jackson.
Reviewed by Dean Jackson and Brent Fulgham.

Source/WebCore:

Support unprefixed image-set.

Test: fast/css/image-set-unprefixed.html

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::customCSSText):

  • css/CSSParser.cpp:

(WebCore::isImageSetFunctionValue): New helper function
that checks prefixed and unprefixed form.
(WebCore::CSSParser::parseValue): Use the helper.
(WebCore::CSSParser::parseContent):
(WebCore::CSSParser::parseFillImage):
(WebCore::CSSParser::parseBorderImage):

LayoutTests:

Convert some existing tests to use the unprefixed form,
and add a test that checks we are compatible with
the prefixed form.

  • cssom/cssvalue-comparison-expected.txt:
  • cssom/cssvalue-comparison.html:
  • fast/css/cursor-parsing-image-set-expected.txt:
  • fast/css/cursor-parsing-image-set.html:
  • fast/css/image-set-setting-expected.txt:
  • fast/css/image-set-unprefixed-expected.txt: Added.
  • fast/css/image-set-unprefixed.html: Added.
  • fast/css/script-tests/image-set-setting.js:

(testImageSetRule):

4:58 PM Changeset in webkit [202764] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/27141291.

  • platform/mac/TestExpectations:
4:41 PM Changeset in webkit [202763] by jer.noble@apple.com
  • 7 edits in trunk/Source/WebKit2

REGRESSION(r201405): Fullscreen video no longer enters low-power mode
https://bugs.webkit.org/show_bug.cgi?id=159220
<rdar://problem/26701056>

Reviewed by Beth Dakin.

In r201405, we removed the call to setTopContentInset(0) to avoid a flash
during repainting where the WebProcess still thought it had an inset and
the UIProcess did not, but the >0 inset breaks low power video playback
in fullscreen. So, instead, fix the repaint issue by setting a CALayer
fence which makes sure both the UIProcess and WebProcess paint simultaneously
after resizing and changing the top content inset.

This requires a new message from WebPageProxy -> WebPage: setTopContentInsetFenced().

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setTopContentInset):

  • UIProcess/mac/WKFullScreenWindowController.h:
  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setTopContentInsetFenced):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
4:25 PM Changeset in webkit [202762] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Possible null Range dereference under AXObjectCache::visiblePositionFromCharacterOffset()
https://bugs.webkit.org/show_bug.cgi?id=159330
<rdar://problem/27123752>

Reviewed by Benjamin Poulain.

rangeForUnorderedCharacterOffsets() can return a null Range but we failed
to do a null check before dereferencing it.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::visiblePositionFromCharacterOffset):

4:22 PM Changeset in webkit [202761] by Chris Dumez
  • 16 edits
    2 adds in trunk

Regression(r199087): window.focus() / window.close() can no longer be called by a Window's opener
https://bugs.webkit.org/show_bug.cgi?id=159364
<rdar://problem/27117169>

Reviewed by Gavin Barraclough.

Source/WebCore:

window.focus() / window.close() could no longer be called by a Window's opener
after r199087, which would break focusing of open iWork documents on icloud.com.

Before r199087, we would construct a new function in the caller's context every
time window.focus and window.close was accessed. r199087 fixed the issue so that
we always call the same function. However, those functions are using
[CallWith=Document] and they are were no longer passed the *caller*'s document
as a result. This broke focus / close permission checking as the code needed the
caller's document to do the check.

This patch introduces [CallWith=CallerDocument] and [CallWith=CallerWindow] so
that the implementation can now pass the caller's Document / Window to the
implementation. The bindings rely on JSDOMWindow's callerDOMWindow() to get the
caller DOMWindow / document. This new functionality is now used for window.close
and window.focus to unbreak their permission checking.

Test: fast/dom/Window/child-window-focus.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallWith):

  • bindings/scripts/IDLAttributes.txt:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::focus):

  • page/DOMWindow.h:
  • page/DOMWindow.idl:

LayoutTests:

Add layout test coverage.

  • fast/dom/Window/child-window-focus-expected.txt: Added.
  • fast/dom/Window/child-window-focus.html: Added.
4:15 PM Changeset in webkit [202760] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Test gardening for Sierra WK1

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:50 PM Changeset in webkit [202759] by fred.wang@free.fr
  • 2 edits in trunk/LayoutTests

Remove failure expectation for mathml/presentation/bug97990.html on ios-simulator

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-01

  • platform/ios-simulator-wk2/TestExpectations:
2:43 PM Changeset in webkit [202758] by mitz@apple.com
  • 22 edits in trunk/Source/WebKit2

[Mac] Get rid of support for old SDKs
https://bugs.webkit.org/show_bug.cgi?id=159369

Reviewed by Anders Carlsson.

  • Shared/API/Cocoa/WKFoundation.h: Removed the WK_ARRAY, WK_DICTIONARY, and WK_SET macros, which were only needed for pre-10.11 SDKs.
  • Shared/mac/WebEventFactory.mm:

(WebKit::mouseButtonForEvent): Removed checking for pre-10.10.3 SDKs.
(WebKit::globalPointForEvent): Ditto.
(WebKit::pointForEvent): Ditto.
(WebKit::WebEventFactory::createWebMouseEvent): Ditto.

  • UIProcess/API/Cocoa/WKBackForwardList.h: Replaced WK_ARRAY(...) with NSArray<...>.
  • UIProcess/API/Cocoa/WKPreferences.mm: Ditto.

(-[WKPreferences _setFixedPitchFontFamily:]):
(+[WKPreferences _experimentalFeatures]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h: Ditto.
  • UIProcess/API/Cocoa/WKUIDelegate.h: Ditto.
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Ditto.
  • UIProcess/API/Cocoa/WKUserContentController.h: Ditto.
  • UIProcess/API/Cocoa/WKUserContentControllerPrivate.h: Ditto.
  • UIProcess/API/Cocoa/WKUserScriptPrivate.h: Ditto.
  • UIProcess/API/Cocoa/WKWebsiteDataRecord.h: Replaced WK_SET(...) with NSSet<...>.
  • UIProcess/API/Cocoa/WKWebsiteDataStore.h: Ditto.
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm: Ditto.

(-[WKWebsiteDataStore fetchDataRecordsOfTypes:completionHandler:]):
(-[WKWebsiteDataStore _fetchDataRecordsOfTypes:withOptions:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h: Ditto.
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h: Replaced WK_ARRAY(...) with NSArray<...>.
  • UIProcess/API/Cocoa/_WKUserStyleSheet.h: Ditto.
  • UIProcess/API/Cocoa/_WKUserStyleSheet.mm: Ditto.

(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:]):
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:userContentWorld:]):
(-[_WKUserStyleSheet initWithSource:forMainFrameOnly:legacyWhitelist:legacyBlacklist:baseURL:userContentWorld:]):

  • UIProcess/API/Cocoa/_WKWebsiteDataSize.h: Replaced WK_SET(...) with NSSet<...>.
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::pressureChangeWithEvent): Removed checking for pre-10.10.3 SDKs.

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h: Replaced WK_ARRAY(...) with NSArray<...>.
  • mac/postprocess-framework-headers.sh: Removed sed rules for WK_ARRAY, WK_DICTIONARY and WK_SET.
1:59 PM Changeset in webkit [202757] by Chris Dumez
  • 5 edits in trunk/Source

[iOS] Possible null Range dereference under computeAutocorrectionContext()
https://bugs.webkit.org/show_bug.cgi?id=159328
<rdar://problem/26766720>

Reviewed by Benjamin Poulain.

Source/WebCore:

  • editing/Editor.cpp:

(WebCore::Editor::compositionRange):

  • editing/Editor.h:

Update to return a RefPtr instead of a PassRefPtr and use nullptr
instead of 0 in the implementation.

Source/WebKit2:

The code in computeAutocorrectionContext() was checking Editor::hasComposition()
before dereferencing Editor::compositionRange(). However, compositionRange()
can also return null in other cases (e.g. compositionStart == compositionEnd).

Drop the check for hasComposition() and do a null check on the value returned
by compositionRange() instead.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::computeAutocorrectionContext):

1:58 PM Changeset in webkit [202756] by Jon Davis
  • 3 edits in trunk/Websites/webkit.org

Added a colorful new image and fixed the Open Graph attribute.
https://bugs.webkit.org/show_bug.cgi?id=159359

Reviewed by Timothy Hatcher.

The Open Graph image tag should use the property attribute not
the itemprop attribute.

  • wp-content/plugins/social-meta.php:
  • wp-content/themes/webkit/images/ogimage.png:
1:55 PM Changeset in webkit [202755] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

defineGetter/defineSetter should throw exceptions
https://bugs.webkit.org/show_bug.cgi?id=142934

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-01
Reviewed by Mark Lam.

Source/JavaScriptCore:

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncDefineGetter):
(JSC::objectProtoFuncDefineSetter):

LayoutTests:

  • js/dom/dom-properties-are-configurable-expected.txt: Added.
  • js/dom/dom-properties-are-configurable.html: Added.
  • js/object-literal-duplicate-properties-expected.txt:
  • js/property-getters-and-setters-expected.txt:
  • js/script-tests/object-literal-duplicate-properties.js:
  • js/script-tests/property-getters-and-setters.js:
1:52 PM Changeset in webkit [202754] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

Prevent crash when attempting to copy an image
https://bugs.webkit.org/show_bug.cgi?id=159288
<rdar://problem/23507828>

Reviewed by Brady Eidson.

WebKit could crash if the HTMLImageElement had a null cachedImage member.
A little investigation showed that the URL we retrieve from the cachedImage
is never used, so rather than adding a null check, let's just pass a
default argument. The actual URL gets read from elsewhere in the pasteboard
processing code.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::performActionOnElement): Don't bother passing the
unused URL argument to the pasteboard method.

1:51 PM Changeset in webkit [202753] by Jon Davis
  • 4 edits in trunk/Source

Source/JavaScriptCore:
Moved Web Animations and Resource Timing feature entries to WebCore.
https://bugs.webkit.org/show_bug.cgi?id=159356

Reviewed by Timothy Hatcher.

  • features.json:

Source/WebCore:
Updated Picture element and WOFF 2 status
https://bugs.webkit.org/show_bug.cgi?id=159356

Reviewed by Timothy Hatcher.

Status updates and clean-up to move Web Animations and Resource Timing entries from JSC to WebCore.

  • features.json:
1:49 PM Changeset in webkit [202752] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk

[JSC] Date.toGMTString should be the Date.toUTCString function
https://bugs.webkit.org/show_bug.cgi?id=159318

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-07-01
Reviewed by Mark Lam.

Source/JavaScriptCore:

See https://tc39.github.io/ecma262/#sec-date.prototype.togmtstring

  • runtime/DatePrototype.cpp:

(JSC::DatePrototype::finishCreation):
(JSC::dateProtoFuncToGMTString): Deleted.

LayoutTests:

  • js/date-prototype-expected.txt: Added.
  • js/date-prototype.html: Added.
  • js/script-tests/date-prototype.js: Added.
1:46 PM Changeset in webkit [202751] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Add early return when processing content extensions if there aren't any.
<https://webkit.org/b/159363>

Reviewed by Antti Koivisto.

Short-circuit outta there if there aren't any extensions to query.

  • contentextensions/ContentExtensionsBackend.cpp:

(WebCore::ContentExtensions::ContentExtensionsBackend::processContentExtensionRulesForLoad):

1:44 PM Changeset in webkit [202750] by fred.wang@free.fr
  • 1 edit
    1 add
    2 deletes in trunk/LayoutTests

Rebaseline some MathML tests.

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-01

  • platform/gtk/mathml/opentype/munderover-window-resize-expected.txt: Removed.
  • platform/ios-simulator/mathml/presentation/roots-expected.png: Added.
  • platform/mac/mathml/opentype/munderover-window-resize-expected.png: Removed.
1:31 PM Changeset in webkit [202749] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

HTMLMediaElement::resume() may cause JavaScript execution
https://bugs.webkit.org/show_bug.cgi?id=159327
<rdar://problem/27131641>

Reviewed by Jer Noble.

HTMLMediaElement::updatePlayState can cause an element to begin playing and enter fullscreen,
which can result in a call to the media controls and JavaScript execution. Javascript is not
allowed allowed to run when a page resumes, so make the call to updatePlayState asynchronous.

No new tests, I wasn't able to create a test that triggers the crash.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::scheduleDelayedAction): Support UpdatePlayState.
(WebCore::HTMLMediaElement::pendingActionTimerFired): Ditto.
(WebCore::HTMLMediaElement::setReadyState): UpdateMediaState -> UpdateState.
(WebCore::HTMLMediaElement::playInternal): Don't call updateMediaController, it is called

by updatePlayState.

(WebCore::HTMLMediaElement::setMuted): UpdateMediaState -> UpdateState.
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Ditto.
(WebCore::HTMLMediaElement::mediaEngineWasUpdated): Update media state asynchronously.
(WebCore::HTMLMediaElement::updatePlayState): Add parameter to allow update to happen

asynchronously.

(WebCore::HTMLMediaElement::setPlaying): UpdateMediaState -> UpdateState.
(WebCore::HTMLMediaElement::setPausedInternal): Update media state asynchronously.
(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged):

UpdateMediaState -> UpdateState.

(WebCore::HTMLMediaElement::removeEventListener): Ditto.
(WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent): Ditto.
(WebCore::HTMLMediaElement::updateMediaState): UpdateMediaState -> UpdateState

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElementEnums.h: Add UpdatePlayState.
12:41 PM Changeset in webkit [202748] by fred.wang@free.fr
  • 26 edits
    8 adds
    9 deletes in trunk/LayoutTests

Update OS X and iOS expectations for some MathML pixel tests.
https://bugs.webkit.org/show_bug.cgi?id=159339

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-01

  • mathml/opentype/fraction-line.html: Add a comment about font requirements.
  • mathml/opentype/horizontal-munderover.html: Ditto.
  • mathml/opentype/horizontal.html: Ditto.
  • mathml/opentype/large-operators-italic-correction.html: Ditto.
  • mathml/opentype/large-operators.html: Ditto.
  • mathml/opentype/vertical.html: Ditto.
  • mathml/presentation/attributes-mathvariant.html: Ditto.
  • mathml/presentation/fractions-linethickness.html: Ditto.
  • mathml/presentation/tokenElements-mathvariant.html: Ditto.
  • mathml/radical-fallback.html: Ditto.
  • platform/ios-simulator-wk1/TestExpectations: Update expectations.
  • platform/ios-simulator-wk2/TestExpectations: Ditto.
  • platform/ios-simulator-wk2/mathml/opentype/large-operators-expected.png: Removed.
  • platform/ios-simulator-wk2/mathml/opentype/vertical-expected.png: Removed.
  • platform/ios-simulator-wk2/mathml/presentation/mo-stretch-expected.png: Removed.
  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/mathml/opentype/horizontal-expected.txt: Removed.
  • platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt: Removed.
  • platform/ios-simulator/mathml/opentype/large-operators-expected.txt: Removed.
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.png: Added.
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-horizontal-expected.png: Added.
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • platform/ios-simulator/mathml/opentype/vertical-expected.txt: Removed.
  • platform/ios-simulator/mathml/presentation/menclose-notation-default-longdiv-expected.png: Added.
  • platform/ios-simulator/mathml/presentation/menclose-notation-values-expected.png: Added.
  • platform/ios-simulator/mathml/presentation/mo-stretch-expected.png: Added.
  • platform/ios-simulator/mathml/presentation/mo-stretch-expected.txt:
  • platform/ios-simulator/mathml/presentation/mspace-children-expected.png: Added.
  • platform/ios-simulator/mathml/radical-fallback-expected.png:
  • platform/mac/TestExpectations: Update expectations.
  • platform/mac/mathml/opentype/horizontal-expected.txt: Removed.
  • platform/mac/mathml/opentype/horizontal-munderover-expected.txt: Removed.
  • platform/mac/mathml/opentype/large-operators-expected.txt: Removed.
  • platform/mac/mathml/opentype/opentype-stretchy-expected.png: Added.
  • platform/mac/mathml/opentype/vertical-expected.txt: Removed.
  • platform/mac/mathml/presentation/menclose-notation-values-expected.png:
  • platform/mac/mathml/presentation/menclose-notation-values-expected.txt:
  • platform/mac/mathml/presentation/mo-stretch-expected.png:
  • platform/mac/mathml/presentation/mo-stretch-expected.txt:
  • platform/mac/mathml/presentation/mspace-children-expected.png: Added.
  • platform/mac/mathml/presentation/roots-expected.png:
  • platform/mac/mathml/presentation/roots-expected.txt:
  • platform/mac/mathml/radical-fallback-expected.png:
  • platform/mac/mathml/radical-fallback-expected.txt:
12:10 PM Changeset in webkit [202747] by beidson@apple.com
  • 16 edits
    5 adds in trunk

Blob content type not preserved when retrieving blobs from IndexedDB.
<rdar://problem/27057357> and https://bugs.webkit.org/show_bug.cgi?id=159360

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/blob-svg-image.html

  • fileapi/Blob.cpp:

(WebCore::Blob::Blob):

  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::postToMainThread):
(WebCore::ThreadableBlobRegistry::registerBlobURLOptionallyFileBacked): Pass along the content type

to the blob registry so that if the file-backed blob takes over, it has the content type.

(WebCore::threadableQueue): Deleted.

  • fileapi/ThreadableBlobRegistry.h:
  • platform/network/BlobRegistry.h:
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLOptionallyFileBacked):

  • platform/network/BlobRegistryImpl.h:

Source/WebKit2:

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::registerBlobURLOptionallyFileBacked):

  • NetworkProcess/FileAPI/NetworkBlobRegistry.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::registerBlobURLOptionallyFileBacked):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):

  • WebProcess/FileAPI/BlobRegistryProxy.h:

LayoutTests:

  • storage/indexeddb/modern/blob-svg-image-expected.txt: Added.
  • storage/indexeddb/modern/blob-svg-image.html: Added.
  • storage/indexeddb/modern/resources/blob-svg-image.js: Added.
  • storage/indexeddb/modern/resources/blob-svg-image1.html: Added.
  • storage/indexeddb/modern/resources/blob-svg-image2.html: Added.
12:07 PM Changeset in webkit [202746] by mitz@apple.com
  • 6 edits in trunk/Source/WebKit2

[Cocoa] Get rid of WK_NULLABLE_SPECIFIER now that all supported compilers understand _Nullable
https://bugs.webkit.org/show_bug.cgi?id=159361

Reviewed by Anders Carlsson.

  • Shared/API/Cocoa/WKFoundation.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKUIDelegate.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • mac/postprocess-framework-headers.sh:
11:36 AM Changeset in webkit [202745] by bshafiei@apple.com
  • 1 delete in tags/Safari-602.1.38.2.100

Delete tag.

11:08 AM Changeset in webkit [202744] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit/win

ASSERTION FAILED: info.bmBitsPixel == 32
https://bugs.webkit.org/show_bug.cgi?id=17737

Reviewed by Brent Fulgham.

The ::SelectObject call will fail if m_backingStoreBitmap is already selected into a device context.
This happens when this method is called indirectly from WebView::updateBackingStore during normal
painting. There is no point continuing, since we would just be scrolling a 1x1 bitmap which is
selected into the device context by default. We can just scroll by repainting the scroll rectangle.

  • WebView.cpp:

(WebView::scrollBackingStore): Invalidate the scroll rectangle if the ::SelectObject call fails.

10:08 AM Changeset in webkit [202743] by ap@apple.com
  • 9 edits in trunk/Tools

Simplify LayoutTestRelay
https://bugs.webkit.org/show_bug.cgi?id=159353

Reviewed by Daniel Bates.

  1. Use UDID to pass the device from webkitpy to LayoutTestRelay, searching for it

by name and runtime makes no sense.

  1. Removed code to create devices, webkitpy always does this in advance.
  2. Don't create copies of testing apps - we can install the same one into

each simulator, now that we don't run multiple tester processes in a single simulator.

  1. Pass information on how to find I/O pipes via environment, not via Info.plist.
  2. Removed code that kept testing apps alive in the background.
  3. Slightly updated coding style in functions that I touched.
  • LayoutTestRelay/LayoutTestRelay/CoreSimulatorSPI.h:

Updated for what we acually use at this point.

  • LayoutTestRelay/LayoutTestRelay/LTRelayController.h:
  • LayoutTestRelay/LayoutTestRelay/LTRelayController.m:

(-[LTRelayController initWithDevice:productDir:appPath:deviceUDID:dumpToolArguments:]):
(-[LTRelayController ipcIdentifier]):
(-[LTRelayController processName]):
(-[LTRelayController didReceiveStdoutData:]):
(-[LTRelayController didCrashWithMessage:]):
(-[LTRelayController installApp]):
(-[LTRelayController _environmentVariables]):
(-[LTRelayController launchApp]):
(-[LTRelayController start]):
(-[LTRelayController initWithDevice:productDir:appPath:identifierSuffix:dumpToolArguments:]): Deleted.
(-[LTRelayController uniqueAppPath]): Deleted.
(-[LTRelayController uniqueAppURL]): Deleted.
(-[LTRelayController uniqueAppIdentifier]): Deleted.
(-[LTRelayController createUniqueApp]): Deleted.

  • LayoutTestRelay/LayoutTestRelay/main.m:

(usage):
(getRequiredStringArgument):
(main):
(getTestingSimDevice): Deleted.

  • Scripts/webkitpy/port/driver.py:

(IOSSimulatorDriver.cmd_line):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformInitialize):

  • WebKitTestRunner/ios/mainIOS.mm:

(-[WebKitTestRunnerApp applicationDidEnterBackground:]):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(dumpRenderTree):
(-[DumpRenderTree applicationDidEnterBackground:]):

10:06 AM Changeset in webkit [202742] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Make enabling protocol logging in inspector tests easy to remember
https://bugs.webkit.org/show_bug.cgi?id=159323

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-01
Reviewed by Brian Burg.

Now you just need to type InspectorTest.debug() or
ProtocolTest.debug() and it will include stderr logging.

  • UserInterface/Test/FrontendTestHarness.js:

(FrontendTestHarness.prototype.debug):

  • UserInterface/Test/ProtocolTestHarness.js:

(ProtocolTestHarness.prototype.debug):
(ProtocolTestHarness):

  • UserInterface/Test/TestHarness.js:

(TestHarness.prototype.debug):

10:03 AM Changeset in webkit [202741] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Make ResourceLoaderOptions derive from FetchOptions
https://bugs.webkit.org/show_bug.cgi?id=159345

Patch by Youenn Fablet <youenn@apple.com> on 2016-07-01
Reviewed by Alex Christensen.

No change of behavior.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start):

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::startPreflight):

  • loader/ResourceLoaderOptions.h:

(WebCore::ResourceLoaderOptions::fetchOptions): Deleted.
(WebCore::ResourceLoaderOptions::setFetchOptions): Deleted.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal):

10:00 AM Changeset in webkit [202740] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Web Inspector: Cleanup inspector/console/console-message.html
https://bugs.webkit.org/show_bug.cgi?id=159324

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-01
Reviewed by Brian Burg.

  • inspector/console/console-message.html:
9:43 AM Changeset in webkit [202739] by Konstantin Tokarev
  • 2 edits in trunk/Tools

[cmake] Build TestNetscapePlugin only if NPAPI is enabled.
https://bugs.webkit.org/show_bug.cgi?id=159344

Reviewed by Alex Christensen.

  • DumpRenderTree/CMakeLists.txt:
9:39 AM Changeset in webkit [202738] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Animations tests are crashing in debug mode.
https://bugs.webkit.org/show_bug.cgi?id=159335

Reviewed by Alex Christensen.

A MSVC runtime check fails because an uninitialized variable is being used.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::keyframeStylesForAnimation):

9:38 AM Changeset in webkit [202737] by mark.lam@apple.com
  • 7 edits
    3 adds in trunk/Source/JavaScriptCore

Update JSC_functionOverrides to handle the new SourceCode strings that have params.
https://bugs.webkit.org/show_bug.cgi?id=159321

Reviewed by Geoffrey Garen.

And add tests so that this won't fail silently and bit rot anymore.

  • API/tests/FunctionOverridesTest.cpp: Added.

(testFunctionOverrides):

  • API/tests/FunctionOverridesTest.h: Added.
  • API/tests/testapi-function-overrides.js: Added.
  • API/tests/testapi.c:

(main):

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::link):

  • shell/PlatformWin.cmake:
  • tools/FunctionOverrides.cpp:

(JSC::FunctionOverrides::FunctionOverrides):
(JSC::FunctionOverrides::reinstallOverrides):
(JSC::initializeOverrideInfo):
(JSC::FunctionOverrides::initializeOverrideFor):

  • tools/FunctionOverrides.h:

(JSC::FunctionOverrides::clear):

8:40 AM Changeset in webkit [202736] by jer.noble@apple.com
  • 2 edits in trunk/Source/WTF

Deadlock inside -[WebCoreNSURLSession dealloc]
https://bugs.webkit.org/show_bug.cgi?id=159331
<rdar://problem/27122716>

Reviewed by Alex Christensen.

A Function<> object can wrap any callable type, including a C++ lambda.

dispatchFunctionsFromMainThread() holds a lock while iterating over the functions in
functionQueue(), and during ths iteration, the previous callable object is destroyed by
assigning the result of functionQueue().takeFirst(). Because lambdas (and other callables,
like functors) can own objects, destroying this callable can have side effects, and if one
of those side effects is to call callOnMainThread(), this can deadlock.

Move this side-effect-having call outside the locked block by clearing the function object
immediately after calling it.

  • wtf/MainThread.cpp:

(WTF::dispatchFunctionsFromMainThread):

8:29 AM Changeset in webkit [202735] by Konstantin Tokarev
  • 2 edits in trunk

[cmake] Make LEGACY_WEB_AUDIO depend on WEB_AUDIO.
https://bugs.webkit.org/show_bug.cgi?id=159338

Reviewed by Michael Catanzaro.

Enabling LEGACY_WEB_AUDIO makes no sense when WEB_AUDIO is
disabled.

  • Source/cmake/WebKitFeatures.cmake:
8:25 AM Changeset in webkit [202734] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk/Source/JavaScriptCore

ES6: Implement HasRestrictedGlobalProperty when checking for global lexical tier conflicts
https://bugs.webkit.org/show_bug.cgi?id=148763

Patch by Caio Lima <Caio Lima> on 2016-07-01
Reviewed by Saam Barati

I've implemented the ES6 spec 8.1.1.4.14
(http://www.ecma-international.org/ecma-262/6.0/index.html#sec-hasrestrictedglobalproperty)
that defines when a global property can be shadowed.

Added some test cases into global-lexical-redeclare-variable.js

  • runtime/Executable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):

  • tests/stress/global-lexical-redeclare-variable.js:

(catch):

  • tests/stress/multiple-files-tests/global-lexical-redeclare-variable/eighth.js: Added.
  • tests/stress/multiple-files-tests/global-lexical-redeclare-variable/nineth.js: Added.
  • tests/stress/multiple-files-tests/global-lexical-redeclare-variable/seventh.js: Added.
  • tests/stress/multiple-files-tests/global-lexical-redeclare-variable/sixth.js:
  • tests/stress/multiple-files-tests/global-lexical-redeclare-variable/tenth.js: Added.
5:46 AM Changeset in webkit [202733] by fred.wang@free.fr
  • 3 edits in trunk/LayoutTests

Rebaseline opentype-stretchy-horizontal.html for EFL.
https://bugs.webkit.org/show_bug.cgi?id=135561

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-01

  • platform/efl/TestExpectations:
  • platform/efl/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
5:36 AM Changeset in webkit [202732] by fred.wang@free.fr
  • 2 edits
    1 add in trunk/LayoutTests

Regenerate EFL expectation for foreign-element-in-token.html
https://bugs.webkit.org/show_bug.cgi?id=133972

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-01

  • platform/efl/TestExpectations:
  • platform/efl/mathml/presentation/foreign-element-in-token-expected.txt: Added.
5:07 AM Changeset in webkit [202731] by fred.wang@free.fr
  • 4 edits in trunk/LayoutTests

Fix warnings about non existent paths in TestExpectations

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-01

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
5:07 AM QtWebKitSecurity edited by Konstantin Tokarev
qtwebkit-announce mailing list does not exist anymore (diff)
5:01 AM QtWebKitReleases edited by Konstantin Tokarev
qtwebkit-announce mailing list does not exist anymore (diff)
4:48 AM Acronyms edited by Konstantin Tokarev
Remove GYP and KURL (diff)
4:47 AM Acronyms edited by Konstantin Tokarev
Added definition for DFG and cross-reference for JSC (diff)
4:16 AM Acronyms edited by Konstantin Tokarev
(diff)
3:53 AM LayoutTestDashboards edited by Konstantin Tokarev
NWRT has superceded old run-webkit-tests (diff)
3:52 AM Writing Reftests edited by Konstantin Tokarev
NWRT has superceded old run-webkit-tests (diff)
3:30 AM Changeset in webkit [202730] by fred.wang@free.fr
  • 2 edits in trunk/LayoutTests

Fix error in r202729

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-01

  • platform/ios-simulator/TestExpectations: Revert unintentional change of horizontal-munderover.
2:52 AM Changeset in webkit [202729] by fred.wang@free.fr
  • 4 edits in trunk/LayoutTests

Reorganize and improve comments for MathML test expectations on ios and mac.

Unreviewed test gardening.

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-01

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
12:47 AM Changeset in webkit [202728] by commit-queue@webkit.org
  • 35 edits in trunk

Add a runtime flag for DOM iterators
https://bugs.webkit.org/show_bug.cgi?id=159300

Patch by Youenn Fablet <youennf@gmail.com> on 2016-07-01
Reviewed by Alex Christensen.

Source/JavaScriptCore:

  • runtime/CommonIdentifiers.h:

Source/WebCore:

  • Modules/fetch/FetchHeaders.idl: Making iterator runtime-enabled.
  • bindings/generic/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setDOMIteratorEnabled):
(WebCore::RuntimeEnabledFeatures::domIteratorEnabled):

  • bindings/scripts/CodeGeneratorJS.pm:

(ToMethodName): Fixing dOM -> dom casing issue.
(GenerateImplementation): Using addIterableProperties new method.
(addIterableProperties): Activating property addition according runtime flag if iterator is rnutime flagged.

  • bindings/scripts/IDLParser.pm:

(parseOptionalIterableInterface): Adding extendedAttributes to iterable.

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjPrototype::finishCreation):

  • bindings/scripts/test/TestNode.idl: Making iterator runtime-enabled.
  • bindings/scripts/test/TestObj.idl: Ditto.
  • css/FontFaceSet.idl: Ditto.
  • dom/NodeList.idl: Ditto.

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences DOMIteratorEnabled]):
(-[WebPreferences setDOMIteratorEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit/win:

  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::domIteratorEnabled):
(WebPreferences::setDOMIteratorEnabled):
(WebView::notifyPreferencesChanged):

  • WebPreferencesreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):

  • Scripts/webkitperl/FeatureList.pm:
  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::beginTesting):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setDOMIteratorEnabled):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
12:29 AM Changeset in webkit [202727] by fred.wang@free.fr
  • 25 edits in trunk/Source/WebCore

Eliminate trailing whitespace in MathML code
https://bugs.webkit.org/show_bug.cgi?id=159091

Patch by Frederic Wang <fwang.igalia.com> on 2016-07-01
Reviewed by Alex Christensen.

No new tests, behavior is unchanged.

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::RenderMathMLBlock::baselinePosition):
(WebCore::RenderMathMLBlock::paint):
(WebCore::parseMathMLNamedSpace):

  • rendering/mathml/RenderMathMLBlock.h:
  • rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::updateFromElement):
(WebCore::RenderMathMLFenced::addChild):

  • rendering/mathml/RenderMathMLFenced.h:
  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::styleDidChange):
(WebCore::RenderMathMLFraction::paint):

  • rendering/mathml/RenderMathMLFraction.h:
  • rendering/mathml/RenderMathMLMath.h:
  • rendering/mathml/RenderMathMLMenclose.h:
  • rendering/mathml/RenderMathMLOperator.cpp:
  • rendering/mathml/RenderMathMLOperator.h:
  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::paint):

  • rendering/mathml/RenderMathMLScripts.cpp:
  • rendering/mathml/RenderMathMLSpace.cpp:
  • rendering/mathml/RenderMathMLSpace.h:
  • rendering/mathml/RenderMathMLToken.h:
  • rendering/mathml/RenderMathMLUnderOver.cpp:
  • rendering/mathml/RenderMathMLUnderOver.h:
12:06 AM Changeset in webkit [202726] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Small cleanup: Remove unused functions RenderObject::isRenderMathML*Wrapper
https://bugs.webkit.org/show_bug.cgi?id=159333

Patch by Frederic Wang <fwang@igalia.com> on 2016-07-01
Reviewed by Alex Christensen.

After the refactoring of RenderMathMLRoot and RenderMathMLScripts, the anonymous flexbox
wrappers used in the old layout implementation have been removed. We thus remove the
corresponding isRender* function from RenderObject.

No new tests, behavior is unchanged.

  • rendering/RenderObject.h:

(WebCore::RenderObject::isRenderMathMLRootWrapper): Deleted.
(WebCore::RenderObject::isRenderMathMLScriptsWrapper): Deleted.

Jun 30, 2016:

11:58 PM Changeset in webkit [202725] by akling@apple.com
  • 10 edits in trunk/Source

[Mac] Get rid of the old timey rubber-banding linen pattern.
<https://webkit.org/b/159329>

Reviewed by Benjamin Poulain.

Source/WebCore:

Remove the "ScrollingOverhang" custom GraphicsLayer appearance since that was only used to
install the old timey linen pattern behind the web content.

We now always just set the overhang area's background color to the document background color.

This fixes an issue where we could end up loading the linen pattern and keeping it in memory
despite never actually showing it on screen.

  • platform/ScrollbarTheme.h:

(WebCore::ScrollbarTheme::setUpOverhangAreasLayerContents): Deleted.

  • platform/graphics/GraphicsLayer.cpp:
  • platform/graphics/GraphicsLayer.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::updateCustomAppearance):

  • platform/mac/ScrollbarThemeMac.h:
  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::linenBackgroundColor): Deleted.
(WebCore::ScrollbarThemeMac::setUpOverhangAreaBackground): Deleted.
(WebCore::ScrollbarThemeMac::removeOverhangAreaBackground): Deleted.
(WebCore::ScrollbarThemeMac::setUpOverhangAreasLayerContents): Deleted.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
(WebCore::RenderLayerCompositor::setRootExtendedBackgroundColor):

Source/WebKit2:

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::updateCustomAppearance):

10:23 PM Changeset in webkit [202724] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

Source/WebKit2:
Add SPI to allow restoring session state without navigation in WKPage
https://bugs.webkit.org/show_bug.cgi?id=159326

Patch by Tina Liu <iting_liu@apple.com> on 2016-06-30
Reviewed by Brady Eidson.

  • UIProcess/API/C/WKPage.cpp:

(restoreFromSessionState):
Added a helper function that takes a bool parameter to specify whether
to navigate or not when restoring from the session state.
(WKPageRestoreFromSessionState):
Calling restoreFromSessionState, passing navigate = true.
(WKPageRestoreFromSessionStateWithoutNavigation):
Ditto but passing navigate = false.

  • UIProcess/API/C/WKPagePrivate.h:

Tools:
Add an API test for WKPageRestoreFromSessionStateWithoutNavigation.
https://bugs.webkit.org/show_bug.cgi?id=159326

Patch by Tina Liu <iting_liu@apple.com> on 2016-06-30
Reviewed by Brady Eidson.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/RestoreSessionStateWithoutNavigation.cpp: Added.

(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::didChangeBackForwardListForPage):
(TestWebKitAPI::setPageLoaderClient):
Set the page loader client and register for didFinishLoadForFrame and
didChangeBackForwardList callbacks.
(TestWebKitAPI::createSessionStateData):
Load a webpage ("simple.html") and return the session state for this page.
(TestWebKitAPI::TEST):
Restore the page session state with that of "simple.html" without navigation.
Verify that the committed URL is NULL since there's no navigation involved.
Verify that the current item in the back forward list, which should be what
we restored from the session state, has the expected URL.

6:29 PM Changeset in webkit [202723] by Chris Dumez
  • 12 edits in trunk/Source

[iOS] WebContent processes do not exit promptly
https://bugs.webkit.org/show_bug.cgi?id=159301
<rdar://problem/26965488>

Reviewed by Anders Carlsson.

WebContent processes do not exit promptly, they hang around for 10 seconds
until the watchdog forcefully calls exit().

This patch addresses the issue by asking XPC to exit when clean. It also
fixes 2 XPC transactions that were leaking so that XPC can become clean.

  • DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:

(DatabaseServiceInitializer):

  • NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:

(NetworkServiceInitializer):

  • PluginProcess/EntryPoint/mac/XPCService/PluginServiceEntryPoint.mm:

(PluginServiceInitializer):

  • WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:

(WebContentServiceInitializer):
Add extra priorityBoostMessage parameter which is then passed along to
ChildProcess via initialization parameters. ChildProcess is now in
charge of retaining the message for as long as it needs the priority
boost. In particular, ChildProcess now takes care of releasing the
boost message before existing to avoid leaking an XPC transaction.

  • Shared/ChildProcess.cpp:

(WebKit::ChildProcess::initialize):
Retain priorityBoostMessage as a data member.

(WebKit::ChildProcess::stopRunLoop):
(WebKit::ChildProcess::platformStopRunLoop):

  • Shared/ios/ChildProcessIOS.mm:

(WebKit::ChildProcess::platformStopRunLoop):
On iOS, call XPCServiceExit() to exit instead of RunLoop::main().stop()
which did not work.

  • Shared/ChildProcess.h:
  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:

(WebKit::XPCServiceInitializer):
Set priorityBoostMessage on ChildProcessInitializationParameters.

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceExit):
Add XPCServiceExit() function which destroys the priority boost
message, calls xpc_transaction_end() to balance the
xpc_transaction_begin() in XPCServiceInitializer() and then call
xpc_transaction_exit_clean() to ask XPC to exit when clean.

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceEventHandler):
Leaking the "pre-bootstrap" event for priority boosting would cause us to
leak an XPC transaction, which would prevent XPC from becoming clean and
exiting. Instead, we now pass it along to the initialization function.
We then pass it to ChildProcess which manages the lifetime of this message
instead of leaking it.

5:13 PM Changeset in webkit [202722] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Unreviewed build fix.

  • Localizations/en.lproj/localizedStrings.js:

Add "Area" localized string.

5:13 PM Changeset in webkit [202721] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.38.4

New tag.

5:07 PM Changeset in webkit [202720] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping flaky inspector/debugger/break-on-* tests
https://bugs.webkit.org/show_bug.cgi?id=159272

Unreviewed test gardening.

  • platform/mac/TestExpectations:
5:03 PM Changeset in webkit [202719] by jiewen_tan@apple.com
  • 5 edits in trunk/Source

Create a generic "linked-on-or-after" check for new CSP Rules
https://bugs.webkit.org/show_bug.cgi?id=159322
<rdar://problem/27117220>

Reviewed by Brent Fulgham.

Source/WebCore:

Create a generic "linked-on-or-after" check for new CSP Rules and cleanup
quirks for Ecobee, Quora and XtraMat.

  • platform/RuntimeApplicationChecks.h:
  • platform/RuntimeApplicationChecks.mm:

(WebCore::IOSApplication::isEcobee): Deleted.
(WebCore::IOSApplication::isQuora): Deleted.
(WebCore::IOSApplication::isXtraMath): Deleted.

Source/WebKit/mac:

  • WebView/WebView.mm:

(shouldAllowContentSecurityPolicySourceStarToMatchAnyProtocol):

4:48 PM Changeset in webkit [202718] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Moving flaky expectation for inspector/codemirror/prettyprinting-css-rules.html from mac-wk1 to mac.
https://bugs.webkit.org/show_bug.cgi?id=153460

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
4:24 PM Changeset in webkit [202717] by commit-queue@webkit.org
  • 24 edits
    4 adds in trunk

Web Inspector: Wrong function name next to scope
https://bugs.webkit.org/show_bug.cgi?id=158210
<rdar://problem/26543093>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-30
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Add DebuggerLocation. A helper for describing a unique location.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setConstantRegisters):
When compiled with debug info, add a SymbolTable rare data pointer
back to the CodeBlock. This will be used later to get JSScope debug
info if Web Inspector pauses.

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

(JSC::SymbolTable::cloneScopePart):
(JSC::SymbolTable::prepareForTypeProfiling):
(JSC::SymbolTable::uniqueIDForVariable):
(JSC::SymbolTable::uniqueIDForOffset):
(JSC::SymbolTable::globalTypeSetForOffset):
(JSC::SymbolTable::globalTypeSetForVariable):
Rename rareData and include a CodeBlock pointer.

(JSC::SymbolTable::rareDataCodeBlock):
(JSC::SymbolTable::setRareDataCodeBlock):
Setter and getter for the rare data. It should only be set once.

(JSC::SymbolTable::visitChildren):
Visit the rare data code block if we have one.

  • runtime/JSSymbolTableObject.h:
  • runtime/JSSymbolTableObject.cpp:

(JSC::JSSymbolTableObject::deleteProperty):
(JSC::JSSymbolTableObject::getOwnNonIndexPropertyNames):
Give JSSymbolTable its own class info. JSWithScope was unexpectedly
inheriting from JSSymbolTable since it did not have its own and
was using JSScope's class info. Also do a bit of cleanup.

  • debugger/DebuggerLocation.cpp: Added.

(JSC::DebuggerLocation::DebuggerLocation):

  • debugger/DebuggerLocation.h: Added.

(JSC::DebuggerLocation::DebuggerLocation):
Construction from a ScriptExecutable.

  • runtime/JSScope.cpp:

(JSC::JSScope::symbolTable):

  • runtime/JSScope.h:
  • debugger/DebuggerScope.h:
  • debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::name):
(JSC::DebuggerScope::location):
Name and location for a scope. This uses:
JSScope -> SymbolTable -> CodeBlock -> Executable

  • inspector/protocol/Debugger.json:
  • inspector/InjectedScriptSource.js:

(InjectedScript.CallFrameProxy.prototype._wrapScopeChain):
(InjectedScript.CallFrameProxy._createScopeJson):

  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::valueForScopeType):
(Inspector::valueForScopeLocation):
(Inspector::JSJavaScriptCallFrame::scopeDescriptions):
(Inspector::JSJavaScriptCallFrame::scopeType): Deleted.

  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFramePrototype.cpp:

(Inspector::JSJavaScriptCallFramePrototype::finishCreation):
(Inspector::jsJavaScriptCallFramePrototypeFunctionScopeDescriptions):
(Inspector::jsJavaScriptCallFramePrototypeFunctionScopeType): Deleted.
Simplify this code to build the objects we will send across the protocol
to descript a Scope.

Source/WebInspectorUI:

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
Include new payload data in the construction call.
All the new data is optional, so we gracefully handle
legacy backends.

  • UserInterface/Models/ScopeChainNode.js:

(WebInspector.ScopeChainNode):
(WebInspector.ScopeChainNode.prototype.get type):
(WebInspector.ScopeChainNode.prototype.get objects):
(WebInspector.ScopeChainNode.prototype.get name):
(WebInspector.ScopeChainNode.prototype.get location):
(WebInspector.ScopeChainNode.prototype.get hash):
Hash is a rough (name:sourceId:line:column) string for quick comparisons.

(WebInspector.ScopeChainNode.prototype.makeLocalScope):
Make this an action you take on a scope, to avoid having to
do it at construction time, or making it a generic setting.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
This was wrong before. Move the work to CallFrame
and change it to be correct.

  • UserInterface/CallFrame.js:

(WebInspector.CallFrame.prototype.mergedScopeChain):

This transforms the scope chain for a call frame from:

scope1 scope2 scope3 scope4 scope5 scope6 scope7

foo foo foo bar bar - -

Block Closure Closure Closure Closure GLE GBL

To:

scope1 scope2&3 scope4&5 scope6 scope7

foo foo* bar* - -

Block Local Closure GLE GBL

Doing a few things:

  • Merge the first two Closure scopes sharing a location. These are the "var" and "let" Closure scopes in a function, and it is better to present these together in the UI.
  • Mark the first Closure scope within a function (*). When this is displayed in the UI, we can provide the name of the function: "Closure Scope (name)", and we even have location information that we can use to display a goto arrow if needed.
  • Make the first Closure scope the Local scope if it matches the Call Frame's function name. This lets us display the section as "Local Variables".

LayoutTests:

  • inspector/debugger/paused-scopes-expected.txt: Added.
  • inspector/debugger/paused-scopes.html: Added.
  • inspector/debugger/resources/paused-scopes.js: Added.

Test dumps the call frames and scope chains for each call frame
when pausing at different locations in a program. Outputting
the hashes we can see even identically named functions have
different hashes because their location is different.

  • inspector/model/scope-chain-node.html:

Make the test more stable on debug builds which run slower.

4:12 PM Changeset in webkit [202716] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

WebContent crash due to RELEASE_ASSERT(!m_inLoadPendingImages) in StyleResolver::~StyleResolver()
https://bugs.webkit.org/show_bug.cgi?id=159307
<rdar://problem/26184868>

Reviewed by Andreas Kling.

Pseudo elements are resolved in RenderTreeUpdater (instead of Style::TreeResolver). Their resolution may trigger
resource loads which can cause synchronous layout (when failing synchronously) and lead to destruction of the
the style resolver in post layout task.

No known reliable way to test this.

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::commit):

Use PostResolutionCallbackDisabler in RenderTreeUpdater similarly to Style::TreeResolver. This prevents
post layout tasks from running synchronously and closes this particular crash path.

3:54 PM Changeset in webkit [202715] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.7.6

New tag.

3:35 PM Changeset in webkit [202714] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

missing exception checks in arrayProtoFuncReverse
https://bugs.webkit.org/show_bug.cgi?id=159319
<rdar://problem/27083696>

Reviewed by Filip Pizlo.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncToString):
(JSC::arrayProtoFuncReverse):

3:29 PM Changeset in webkit [202713] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: add pixel area column to layout timeline view
https://bugs.webkit.org/show_bug.cgi?id=148677
<rdar://problem/22518762>

Reviewed by Timothy Hatcher.

The view can simply add the column. LayoutTimelineDataGridNode
already includes area data and cell formatting.

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView):

3:18 PM Changeset in webkit [202712] by commit-queue@webkit.org
  • 3 edits
    8 adds in trunk

Drawing an SVG image into a <canvas> that is not in the DOM draws the wrong region
https://bugs.webkit.org/show_bug.cgi?id=159276

Patch by Antoine Quint <Antoine Quint> on 2016-06-30
Reviewed by Dean Jackson.

Source/WebCore:

In the event where the <img> element that we are passing to CanvasRenderingContext2D.drawImage()
points to an SVG resource, we ensure that the container for the SVG image is sized to match the
HTML element. The necessity for setting this container size, explained in webkit.org/b/148845,
is that we must ensure a cached image does not have an outdated container size.

Tests: svg/as-image/img-with-svg-resource-in-dom-and-drawImage.html

svg/as-image/img-with-svg-resource-in-dom-no-size-and-drawImage.html
svg/as-image/img-with-svg-resource-not-in-dom-and-drawImage.html
svg/as-image/img-with-svg-resource-not-in-dom-no-size-and-drawImage.html

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::drawImage):

LayoutTests:

Adding a series of new tests to check we correctly respect mismatching source and
destination rectangles with SVG images as sources, both with the source <img> element
being present and absent from the DOM, and explicit sizes being set or not set.

  • svg/as-image/img-with-svg-resource-in-dom-and-drawImage-expected.html: Added.
  • svg/as-image/img-with-svg-resource-in-dom-and-drawImage.html: Added.
  • svg/as-image/img-with-svg-resource-in-dom-no-size-and-drawImage-expected.html: Added.
  • svg/as-image/img-with-svg-resource-in-dom-no-size-and-drawImage.html: Added.
  • svg/as-image/img-with-svg-resource-not-in-dom-and-drawImage-expected.html: Added.
  • svg/as-image/img-with-svg-resource-not-in-dom-and-drawImage.html: Added.
  • svg/as-image/img-with-svg-resource-not-in-dom-no-size-and-drawImage-expected.html: Added.
  • svg/as-image/img-with-svg-resource-not-in-dom-no-size-and-drawImage.html: Added.
3:14 PM Changeset in webkit [202711] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: the last normal tab cannot be closed with "Close Tab" context menu item
https://bugs.webkit.org/show_bug.cgi?id=159317
<rdar://problem/27042491>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBarItem.js:

(WebInspector.TabBarItem.prototype._handleContextMenuEvent):
(WebInspector.TabBarItem): fix the expression that controls whether the item is disabled.

3:06 PM Changeset in webkit [202710] by sbarati@apple.com
  • 2 edits
    3 adds in trunk/Source/JavaScriptCore

get_by_id_with_this does not trigger a to_this in caller.
https://bugs.webkit.org/show_bug.cgi?id=159226

Reviewed by Keith Miller.

This is a bug if the caller is in sloppy mode and the callee is in strict
mode. This can't happen with ES6 classes because they're all in strict mode,
but it can happen with method syntax on an object literal. The caller must
to_this on |this| when it knows that it performs super property accesses.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • tests/stress/super-property-access-object-literal-to-this-2.js: Added.

(assert):
(test):
(let.o1.get foo):
(let.o2.a):
(let.o2.aa):

  • tests/stress/super-property-access-object-literal-to-this.js: Added.

(assert):
(test):
(let.o1.get foo):
(let.o2.a):
(let.o2.aa):
(let.o2.b):
(let.o2.bb):

  • tests/stress/super-property-access-to-this.js: Added.

(assert):
(test):
(Base.prototype.get foo):
(Base):
(Child.prototype.a):
(Child.prototype.b):
(Child):

2:50 PM Changeset in webkit [202709] by dino@apple.com
  • 2 edits in trunk/Websites/webkit.org

Tab pointed out a typo that made the overdamped case fail.

  • demos/spring/spring.js:

(SpringSolver.prototype.solve):

2:29 PM Changeset in webkit [202708] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.38.2.2/Source

Versioning.

2:28 PM Changeset in webkit [202707] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.38.2.2

New tag.

2:23 PM Changeset in webkit [202706] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.38.2.100/Source

Versioning.

2:22 PM Changeset in webkit [202705] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.38.2.100

New tag.

2:20 PM Changeset in webkit [202704] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

getUserMedia() exposed, but not functional
https://bugs.webkit.org/show_bug.cgi?id=158393
<rdar://problem/26642259>

Reviewed by Dean Jackson.

Set default value of the Media Stream runtime flag to false on Mac OS X and iOS until the
browser support is in place.

  • bindings/generic/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures): Disable media stream by default
on Mac OS X and iOS.

  • bindings/generic/RuntimeEnabledFeatures.h:
2:20 PM Changeset in webkit [202703] by bshafiei@apple.com
  • 1 delete in tags/Safari-602.1.38.2.100

Delete tag.

2:19 PM Changeset in webkit [202702] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Add "spring" to transition-timing-function value autocompletion
https://bugs.webkit.org/show_bug.cgi?id=159313
<rdar://problem/27114269>

Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSKeywordCompletions.js:
2:18 PM Changeset in webkit [202701] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.38.2.100

New tag.

2:17 PM Changeset in webkit [202700] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r202329): WebInspectorProxy's WKPagePolicyClient callbacks are not being called
https://bugs.webkit.org/show_bug.cgi?id=159308
<rdar://problem/27111764>

Reviewed by Tim Horton.

Adopt WKPageNavigationClient and ditch WKPolicyClient and WKPageLoaderClient.
After r202329, it's not possible to set a WKPolicyClient for a WKPage/WebPageProxy that backs a WKWebView.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::isMainOrTestInspectorPage): Take a WebCore::ResourceRequest.
(WebKit::processDidCrash): Deleted.
(WebKit::webProcessDidCrash): Rename to match new client callback name.
(WebKit::decidePolicyForNavigationAction): Rework this to take new argument types.
(WebKit::WebInspectorProxy::eagerlyCreateInspectorPage):
Install a WKPageNavigationClient.

1:51 PM Changeset in webkit [202699] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.38-branch/Source

Versioning.

1:44 PM Changeset in webkit [202698] by Ryan Haddad
  • 18 edits in trunk/Source/WebCore

Unreviewed, rolling out r202676.
https://bugs.webkit.org/show_bug.cgi?id=159314

This change caused storage/websql tests to crash on Mac and
iOS WK1 (Requested by ryanhaddad on #webkit).

Reverted changeset:

"Purge PassRefPtr in Modules/webdatabase"
https://bugs.webkit.org/show_bug.cgi?id=159255
http://trac.webkit.org/changeset/202676

Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-30

1:29 PM Changeset in webkit [202697] by dino@apple.com
  • 2 edits in trunk/Websites/webkit.org

Fixed a typo in the link to the other version.

  • blog-files/color-gamut/index.html:
1:17 PM Changeset in webkit [202696] by Chris Dumez
  • 5 edits in trunk/Source/WebKit2

[iOS] Process suspension is prevented for 30 seconds after closing a tab
https://bugs.webkit.org/show_bug.cgi?id=159280
<rdar://problem/27014867>

Reviewed by Gavin Barraclough.

When closing a tab, ConnectionTerminationWatchdog takes a background
assertion on behalf of the WebContent process and only releases it
after 30 seconds, allowing for the WebContent process to exit cleanly
without worrying about getting suspended too early.

However, the child process normally exits much sooner than this and
we end up holding a process assertion for no reason for a full 30
seconds anyway. This patch addresses the issue by registering an
invalidation handler with the BKSProcessAssertion and releasing our
our assertion in such case. The invalidation handler gets called
as soon as the child process exits.

  • Platform/spi/ios/AssertionServicesSPI.h:
  • UIProcess/ProcessAssertion.cpp:

(WebKit::ProcessAssertion::ProcessAssertion):

  • UIProcess/ProcessAssertion.h:

(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::validity):

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::~ProcessAssertion):
(WebKit::ProcessAndUIAssertion::updateRunInBackgroundCount):
(WebKit::ProcessAndUIAssertion::ProcessAndUIAssertion):
(WebKit::ProcessAssertion::setState): Deleted.

12:15 PM Changeset in webkit [202695] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit2

Keep track of when a WKWebView is blank before the initial non-empty layout
https://bugs.webkit.org/show_bug.cgi?id=159217
<rdar://problem/26071766>

Reviewed by Beth Dakin.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setIsBlankBeforeFirstNonEmptyLayout:]):
(-[WKWebView _didFirstVisuallyNonEmptyLayoutForMainFrame]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):

12:10 PM Changeset in webkit [202694] by commit-queue@webkit.org
  • 10 edits
    2 adds in trunk

[iOS] Media controls are too cramped with small video
https://bugs.webkit.org/show_bug.cgi?id=158815
<rdar://problem/26824238>

Patch by Antoine Quint <Antoine Quint> on 2016-06-30
Reviewed by Eric Carlson.

Source/WebCore:

In updateLayoutForDisplayedWidth(), we try to ensure a minimum width is guaranteed
for the progress indicator. However, we were not accounting for the width used by
the current and remaining time labels on either side of it, so we would incorrectly
conclude that we were guaranteeing the minimum time and yield incorrect layouts since
we were trying to fit more buttons than we had room for.

In order to correctly compute the available width for the progress indicator, we now
have clones of the current and remaining time labels, hidden from video and VoiceOver,
that we update along with the originals. The same styles apply to both clones and
originals, so we may measure the clones to determine the space used by the time labels.
The reason we need to use clones is that if the time labels had previously been hidden
from view, precisely because there was not enough space to display them along with the
progress indicator, then trying to obtain metrics from them would yield 0 since they had
"display: none" styles applied. In order to avoid extra layouts and possible flashing, we
use the clones so that we never have to toggle the "display" property of the originals
just to obtain their measurements.

As a result of this change, we adjust the constant used to set the minimum required
width available to display the progress indicator after all other essential controls
and labels have been measured. That constant used to account for the width of the
time labels, and this is no longer correct.

Test: media/video-controls-drop-and-restore-timeline.html

  • Modules/mediacontrols/mediaControlsApple.css:

(::-webkit-media-controls-time-remaining-display.clone):

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller):
(Controller.prototype.createTimeClones):
(Controller.prototype.removeTimeClass):
(Controller.prototype.addTimeClass):
(Controller.prototype.updateDuration):
(Controller.prototype.updateLayoutForDisplayedWidth):
(Controller.prototype.updateTime):
(Controller.prototype.updateControlsWhileScrubbing):

  • Modules/mediacontrols/mediaControlsiOS.css:

(::-webkit-media-controls-time-remaining-display.clone):

  • Modules/mediacontrols/mediaControlsiOS.js:

LayoutTests:

Adjust the output of a couple of tests to account for the time label clones, ensure the video
is wide enough to always have its timeline visible for tests that rely on the timeline being
visible to drag and seek, and finally add a new test.

  • media/controls-drag-timebar.html:
  • media/media-controls-drag-timeline-set-controls-property.html:
  • media/video-controls-drop-and-restore-timeline-expected.txt: Added.
  • media/video-controls-drop-and-restore-timeline.html: Added.
  • platform/mac-yosemite/http/tests/media/hls/video-controls-live-stream-expected.txt:
  • platform/mac/http/tests/media/hls/video-controls-live-stream-expected.txt:
11:46 AM Changeset in webkit [202693] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

We need to to_this when an inner arrow function uses 'this'
https://bugs.webkit.org/show_bug.cgi?id=159290
<rdar://problem/27058322>

Reviewed by Geoffrey Garen.

We put the |this| value into the closure object when there
is an arrow function that uses |this|. However, an arrow function
using |this| wasn't causing the creator of the closure that
holds |this| to to_this its value before putting it in the
closure. That's a huge bug because it means some arrow functions
can capture the raw |this| value, which might be a JSLexicalEnvironment.
This patch fixes this by adding an easy to check to see if any
inner arrow functions use |this|, and if any do, it will to_this
the |this| value.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • tests/stress/to-this-before-arrow-function-closes-over-this-that-starts-as-lexical-environment.js: Added.

(assert):
(obj):
(foo.capture):
(foo.wrapper.let.x.):
(foo2.capture):
(foo2.wrapper.let.x.):
(foo2.wrapper.bar):

11:19 AM Changeset in webkit [202692] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Removing duplicated line from Mac TestExpectations file.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:18 AM Changeset in webkit [202691] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.39/Source/WebKit/mac

Merged r202685. rdar://problem/27092107

11:15 AM Changeset in webkit [202690] by barraclough@apple.com
  • 3 edits in trunk/Source/WebKit2

Cleanup ProcessAssertion RunInBackground management
https://bugs.webkit.org/show_bug.cgi?id=159284

Reviewed by Chris Dumez.

Factor out code that handles taking a background assertion on the UI app into
ProcessAndUIAssertion::updateRunInBackgroundCount helper.

This patch just cleanup to enable a futher fix.

  • UIProcess/ProcessAssertion.h:

(WebKit::ProcessAssertion::state):

  • Added ProcessAndUIAssertion::updateRunInBackgroundCount
  • Added ProcessAndUIAssertion::m_isHoldingBackgroundAssertionOnApp
  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAndUIAssertion::updateRunInBackgroundCount):

  • helper to manage calls to incrementNeedsToRunInBackgroundCount/decrementNeedsToRunInBackgroundCount

(WebKit::ProcessAndUIAssertion::ProcessAndUIAssertion):

  • call updateRunInBackgroundCount

(WebKit::ProcessAndUIAssertion::~ProcessAndUIAssertion):

changed to use m_isHoldingBackgroundAssertionOnApp

(WebKit::ProcessAndUIAssertion::setState):

  • call updateRunInBackgroundCount
11:13 AM Changeset in webkit [202689] by fpizlo@apple.com
  • 10 edits
    2 adds in trunk

Generators violate bytecode liveness validation
https://bugs.webkit.org/show_bug.cgi?id=159279

Reviewed by Yusuke Suzuki.
PerformanceTests:

Add Basic to our test harness.

Also made some cosmetic changes to the benchmark harness.

  • ES6SampleBench/Basic/basic-tests.yaml: Added.
  • ES6SampleBench/Basic/stress-test.js: Added.

(preciseTime):

  • ES6SampleBench/driver.js:

(Driver):
(Driver.prototype.start):
(Driver.prototype.reportError):

  • ES6SampleBench/glue.js:
  • ES6SampleBench/index.html:

Source/JavaScriptCore:


Fix a liveness bug found by Basic. The problem is that resume's intended liveness rule is:
"live-in is just the token argument", but the liveness analysis thought that the rule was
"live-in is live-out minus defs plus live-at-catch". Clearly these two rules are quite
different. The way this sort of worked before is that we would define the defs of resume
as being equal to our prediction of what the live-outs would be. We did this in the hope
that we would subtract all live-outs. But, this misses the live-at-catch part. So, this
change adds another hack to neutralize live-at-catch.

This would make a lot more sense if we wrote a new liveness analysis that was just for
generator conversion. It could reuse BytecodeUseDef but otherwise it would be a new thing.
It would be easy to write crazy rules for save/resume in such an analysis, especially if
that analysis rewrote the bytecode. We could then just have an op_yield that is a no-op.
We would just record the live-outs of op_yield and use that for rewriting the code in terms
of a switch statement.

  • bytecode/BytecodeLivenessAnalysis.cpp:

(JSC::stepOverInstruction):
(JSC::BytecodeLivenessAnalysis::dumpResults):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

Tools:


Add Basic to our test harness.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

11:06 AM Changeset in webkit [202688] by BJ Burg
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix the macOS Sierra Release configuration after r202642.

  • platform/audio/mac/MediaSessionManagerMac.mm:

(WebCore::MediaSessionManagerMac::updateNowPlayingInfo):
Add missing UNUSED_PARAM for when logging is not enabled.

10:49 AM Changeset in webkit [202687] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/shrink-wrap/rect-shrink-wrap.html as flaky on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=159275

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
10:48 AM Changeset in webkit [202686] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win][Debug] Assertion fails in TestWTF.
https://bugs.webkit.org/show_bug.cgi?id=159299

Reviewed by Alex Christensen.

The assert in the & operator in the UniqueRef class fails, because the instance has been moved.
The Windows version of the UNUSED_PARAM macro is getting the address of the parameter, causing
the assertion failure. Since the variable is actually used, there is no need to use the
UNUSED_PARAM macro.

  • TestWebKitAPI/Tests/WTF/UniqueRef.cpp:

(TestWebKitAPI::TEST):

10:47 AM Changeset in webkit [202685] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Mail crashes on launch at WebCore::PaymentCoordinator::~PaymentCoordinator() + 20
https://bugs.webkit.org/show_bug.cgi?id=159306
rdar://problem/27092107

Reviewed by Tim Horton.

  • WebView/WebView.mm:

(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Create a WebPaymentCoordinatorClient. Remove an unneeded #import.

(-[WebView _commonInitializationWithFrameName:groupName:]):
Remove an unneeded #import.

10:31 AM Changeset in webkit [202684] by Ryan Haddad
  • 21 edits
    5 deletes in trunk

Unreviewed, rolling out r202659.
https://bugs.webkit.org/show_bug.cgi?id=159305

The test for this change times out on mac-wk2 debug and caused
an existing test to crash. (Requested by ryanhaddad on
#webkit).

Reverted changeset:

"Web Inspector: Wrong function name next to scope"
https://bugs.webkit.org/show_bug.cgi?id=158210
http://trac.webkit.org/changeset/202659

Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-30

10:16 AM Changeset in webkit [202683] by commit-queue@webkit.org
  • 5 edits in trunk

[JSC] Date.setYear() misses timeClip()
https://bugs.webkit.org/show_bug.cgi?id=159289

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-30
Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • runtime/DatePrototype.cpp:

(JSC::dateProtoFuncSetYear):

LayoutTests:

  • js/date-timeClip-large-values-expected.txt:
  • js/script-tests/date-timeClip-large-values.js:

The failures are caused by bugs related to GregorianDateTime.
The last test case is the one covering this patch.

9:19 AM Changeset in webkit [202682] by commit-queue@webkit.org
  • 8 edits
    2 deletes in trunk

Unreviewed, rolling out r202679.
https://bugs.webkit.org/show_bug.cgi?id=159302

Still causing timeouts on media/controls-drag-timebar.html
(Requested by ap on #webkit).

Reverted changeset:

"[iOS] Media controls are too cramped with small video"
https://bugs.webkit.org/show_bug.cgi?id=158815
http://trac.webkit.org/changeset/202679

9:14 AM Changeset in webkit [202681] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

LayoutTests intermittently failing to run due to issues starting Web Platform Test server
https://bugs.webkit.org/show_bug.cgi?id=159166
<rdar://problem/27051759>

Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-30
Reviewed by Alexey Proskuryakov.

LayoutTests/imported/w3c:

Pregenerating certificates.

  • resources/_wpt_certs/.gitignore: Added.
  • resources/_wpt_certs/localhost.key: Added.
  • resources/_wpt_certs/localhost.pem: Added.
  • resources/config.json:

Tools:

Setting the certificate directory to the copied config.json.

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(WebPlatformTestServer._copy_webkit_test_files):

8:26 AM Changeset in webkit [202680] by Yusuke Suzuki
  • 45 edits
    1 copy
    47 adds in trunk

[JSC] Implement isFinite / isNaN in JS and make DFG ToNumber accept non number values
https://bugs.webkit.org/show_bug.cgi?id=154022

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

We aim at optimizing @toInteger operation.
While it still has an unoptimized part[1], this patch should be a first step.

We introduce the @toNumber builtin intrinsic operation.
This converts the given value to the JS number by emitting op_to_number bytecode.
Previously @toInteger called C++ @Number constructor for that purpose.

And in DFG, op_to_number is converted to DFG ToNumber node.
During DFG, we attempt to convert this to edge filtering and Identity, but if we fail,
we just fall back to calling the C++ function.

To utilize ToNumber in user-land side, we add a path attempting to convert Number constructor calls
to ToNumber DFG nodes. This conversion is useful because Number(value) is used to convert a value to a number in JS.

Before this patch, we emit simple edge filtering (NumberUse) instead of emitting DFG node like ToNumber for op_to_number.
But emitting ToNumber is useful, because in the case of Number(value), considering value may not be a number is reasonable.

By leveraging @toNumber operation, we rewrite Number.{isFinite, isNaN}, global.{isFinite, isNaN} and @toInteger.

ToNumber DFG node has a value profiling. This profiling is leveraged to determine the result number type of the ToNumber operation.
This value profiling is provided from either NumberConstructor's call operation or op_to_number.

The results (with the added performance tests) show that, while existing cases are performance neutral, the newly added cases gain the performance benefit.
And ASMBench/n-body.c also shows stable ~2% progression.

[1]: https://bugs.webkit.org/show_bug.cgi?id=153738

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/BuiltinNames.h:
  • builtins/GlobalObject.js:

(globalPrivate.isFinite):
(globalPrivate.isNaN):
(globalPrivate.toInteger): Deleted.
(globalPrivate.toLength): Deleted.
(globalPrivate.isDictionary): Deleted.
(globalPrivate.speciesGetter): Deleted.
(globalPrivate.speciesConstructor): Deleted.

  • builtins/GlobalOperations.js: Copied from Source/JavaScriptCore/builtins/GlobalObject.js.

(globalPrivate.toInteger):
(globalPrivate.toLength):
(globalPrivate.isDictionary):
(globalPrivate.speciesGetter):
(globalPrivate.speciesConstructor):

  • builtins/NumberConstructor.js: Added.

(isFinite):
(isNaN):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.json:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finishCreation):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitUnaryOp):
(JSC::BytecodeGenerator::emitUnaryOpProfiled):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitToNumber):

  • bytecompiler/NodesCodegen.cpp:

(JSC::BytecodeIntrinsicNode::emit_intrinsic_toNumber):
(JSC::UnaryPlusNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::propagate):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::attemptToInlineCall):
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
(JSC::DFG::ByteCodeParser::parseBlock):
We use getPrediction() to retrieve the heap prediction from the to_number bytecode.
According to the benchmark results, choosing getPredictionWithoutOSRExit() causes performance regression (1.5%) in kraken stanford-crypto-aes.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):

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

Always on the heap prediction.

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
As of 64bit version, we carefully manage the register reuse. The largest difference between 32bit and 64bit is
branchIfNotNumber() requires the temporary register. We should not use the result registers for that since
it may be reuse the argument registers and it can break the argument registers before using them to call the operation.
Currently, we allocate the additional temporary register for that scratch register.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
Reuse the argument register for the result if possible. And manually decrement the use count in the middle of the node.
This is similar technique used in ToPrimitive. Typically, the child of ToNumber is only used by this ToNumber node since
we would like to perform the type conversion onto this child node here. So this careful register reuse effectively removes
the spills to call the operation. The example of the actually emitted code is the following.

76:<!2:loc11> ToNumber(Untyped:@68, JS|MustGen|UseAsOther, DoubleimpurenanTopEmpty, R:World, W:Heap, Exits, ClobbersExit, bc#48) predicting DoubleimpurenanTopEmpty

0x7f986d5fe693: test %rax, %r14
0x7f986d5fe696: jz 0x7f986d5fe6a1
0x7f986d5fe69c: jmp 0x7f986d5fe6d1
0x7f986d5fe6a1: mov %rax, %rsi
0x7f986d5fe6a4: mov %rbp, %rdi
0x7f986d5fe6a7: mov $0x2, 0x24(%rbp)
0x7f986d5fe6ae: mov $0x7f98711ea5f0, %r11
0x7f986d5fe6b8: call *%r11
0x7f986d5fe6bb: mov $0x7f982d3f72d0, %r11
0x7f986d5fe6c5: mov (%r11), %r11
0x7f986d5fe6c8: test %r11, %r11
0x7f986d5fe6cb: jnz 0x7f986d5fe88c

It effectively removes the unnecessary spill to call the operation!

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileToNumber):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfNumber):
(JSC::AssemblyHelpers::branchIfNotNumber):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_to_number):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_to_number):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/Nodes.h:

(JSC::UnaryOpNode::opcodeID):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncIsNaN): Deleted.
(JSC::globalFuncIsFinite): Deleted.

  • runtime/JSGlobalObjectFunctions.h:
  • runtime/MathCommon.h:

(JSC::maxSafeInteger):
(JSC::minSafeInteger):

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):
(JSC::numberConstructorFuncIsFinite): Deleted.
(JSC::numberConstructorFuncIsNaN): Deleted.

  • runtime/NumberConstructor.h:
  • tests/stress/Number-isNaN-basics.js: Added.

(numberIsNaNOnInteger):
(testNumberIsNaNOnIntegers):
(verifyNumberIsNaNOnIntegerWithOtherTypes):
(numberIsNaNOnDouble):
(testNumberIsNaNOnDoubles):
(verifyNumberIsNaNOnDoublesWithOtherTypes):
(numberIsNaNNoArguments):
(numberIsNaNTooManyArguments):
(testNumberIsNaNOnConstants):
(numberIsNaNStructTransition):
(Number.isNaN):

  • tests/stress/global-is-finite.js: Added.

(shouldBe):

  • tests/stress/global-is-nan.js: Added.

(shouldBe):

  • tests/stress/global-isNaN-basics.js: Added.

(isNaNOnInteger):
(testIsNaNOnIntegers):
(verifyIsNaNOnIntegerWithOtherTypes):
(isNaNOnDouble):
(testIsNaNOnDoubles):
(verifyIsNaNOnDoublesWithOtherTypes):
(verifyIsNaNOnCoercedTypes):
(isNaNNoArguments):
(isNaNTooManyArguments):
(testIsNaNOnConstants):
(isNaNTypeCoercionSideEffects):
(i.value.isNaNTypeCoercionSideEffects.valueOf):
(isNaNStructTransition):
(isNaN):

  • tests/stress/number-is-finite.js: Added.

(shouldBe):
(test2):
(test3):

  • tests/stress/number-is-nan.js: Added.

(shouldBe):
(test2):
(test3):

  • tests/stress/to-number-basics.js: Added.

(shouldBe):

  • tests/stress/to-number-convert-identity-without-execution.js: Added.

(shouldBe):
(object.valueOf):
(valueOf):

  • tests/stress/to-number-int52.js: Added.

(shouldBe):
(object.valueOf):

  • tests/stress/to-number-intrinsic-convert-to-identity-without-execution.js: Added.

(shouldBe):
(object.valueOf):
(valueOf):

  • tests/stress/to-number-intrinsic-int52.js: Added.

(shouldBe):
(object.valueOf):

  • tests/stress/to-number-intrinsic-object-without-execution.js: Added.

(shouldBe):
(object.valueOf):

  • tests/stress/to-number-intrinsic-value-profiling.js: Added.

(shouldBe):
(object.valueOf):

  • tests/stress/to-number-object-without-execution.js: Added.

(shouldBe):
(object.valueOf):

  • tests/stress/to-number-object.js: Added.

(shouldBe):
(test12):
(object1.valueOf):
(test2):
(test22):
(object2.valueOf):
(test3):
(test32):
(object3.valueOf):

  • tests/stress/to-number-value-profiling.js: Added.

(shouldBe):
(object.valueOf):

LayoutTests:

  • js/regress/Number-isNaN-expected.txt: Added.
  • js/regress/Number-isNaN.html: Added.
  • js/regress/global-isNaN-expected.txt: Added.
  • js/regress/global-isNaN.html: Added.
  • js/regress/script-tests/Number-isNaN.js: Added.
  • js/regress/script-tests/global-isNaN.js: Added.
  • js/regress/script-tests/many-foreach-calls.js:

(i.4.forEach):
(i.array.forEach): Deleted.

  • js/regress/script-tests/to-number-constructor-number-string-number-string.js: Added.

(test):

  • js/regress/script-tests/to-number-constructor-only-number.js: Added.

(test):

  • js/regress/script-tests/to-number-constructor-only-string.js: Added.

(test):

  • js/regress/script-tests/to-number-constructor-string-number-string-number.js: Added.

(test):

  • js/regress/script-tests/to-number-number-string-number-string.js: Added.

(test):

  • js/regress/script-tests/to-number-only-number.js: Added.

(test):

  • js/regress/script-tests/to-number-only-string.js: Added.

(test):

  • js/regress/script-tests/to-number-string-number-string-number.js: Added.

(test):

  • js/regress/to-number-constructor-number-string-number-string-expected.txt: Added.
  • js/regress/to-number-constructor-number-string-number-string.html: Added.
  • js/regress/to-number-constructor-only-number-expected.txt: Added.
  • js/regress/to-number-constructor-only-number.html: Added.
  • js/regress/to-number-constructor-only-string-expected.txt: Added.
  • js/regress/to-number-constructor-only-string.html: Added.
  • js/regress/to-number-constructor-string-number-string-number-expected.txt: Added.
  • js/regress/to-number-constructor-string-number-string-number.html: Added.
  • js/regress/to-number-number-string-number-string-expected.txt: Added.
  • js/regress/to-number-number-string-number-string.html: Added.
  • js/regress/to-number-only-number-expected.txt: Added.
  • js/regress/to-number-only-number.html: Added.
  • js/regress/to-number-only-string-expected.txt: Added.
  • js/regress/to-number-only-string.html: Added.
  • js/regress/to-number-string-number-string-number-expected.txt: Added.
  • js/regress/to-number-string-number-string-number.html: Added.
8:09 AM Changeset in webkit [202679] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

[iOS] Media controls are too cramped with small video
https://bugs.webkit.org/show_bug.cgi?id=158815
<rdar://problem/26824238>

Patch by Antoine Quint <Antoine Quint> on 2016-06-30
Reviewed by Eric Carlson.

Source/WebCore:

In updateLayoutForDisplayedWidth(), we try to ensure a minimum width is guaranteed
for the progress indicator. However, we were not accounting for the width used by
the current and remaining time labels on either side of it, so we would incorrectly
conclude that we were guaranteeing the minimum time and yield incorrect layouts since
we were trying to fit more buttons than we had room for.

In order to correctly compute the available width for the progress indicator, we now
have clones of the current and remaining time labels, hidden from video and VoiceOver,
that we update along with the originals. The same styles apply to both clones and
originals, so we may measure the clones to determine the space used by the time labels.
The reason we need to use clones is that if the time labels had previously been hidden
from view, precisely because there was not enough space to display them along with the
progress indicator, then trying to obtain metrics from them would yield 0 since they had
"display: none" styles applied. In order to avoid extra layouts and possible flashing, we
use the clones so that we never have to toggle the "display" property of the originals
just to obtain their measurements.

As a result of this change, we adjust the constant used to set the minimum required
width available to display the progress indicator after all other essential controls
and labels have been measured. That constant used to account for the width of the
time labels, and this is no longer correct.

Test: media/video-controls-drop-and-restore-timeline.html

  • Modules/mediacontrols/mediaControlsApple.css:

(::-webkit-media-controls-time-remaining-display.clone):

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller):
(Controller.prototype.createTimeClones):
(Controller.prototype.removeTimeClass):
(Controller.prototype.addTimeClass):
(Controller.prototype.updateDuration):
(Controller.prototype.updateLayoutForDisplayedWidth):
(Controller.prototype.updateTime):
(Controller.prototype.updateControlsWhileScrubbing):

  • Modules/mediacontrols/mediaControlsiOS.css:

(::-webkit-media-controls-time-remaining-display.clone):

  • Modules/mediacontrols/mediaControlsiOS.js:

LayoutTests:

Adjust the output of this test to account for the time label clones and add a new test.

  • media/video-controls-drop-and-restore-timeline-expected.txt: Added.
  • media/video-controls-drop-and-restore-timeline.html: Added.
  • platform/mac-yosemite/http/tests/media/hls/video-controls-live-stream-expected.txt:
  • platform/mac/http/tests/media/hls/video-controls-live-stream-expected.txt:
7:26 AM Changeset in webkit [202678] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac] Crash registering AVFoundation media engine
https://bugs.webkit.org/show_bug.cgi?id=159269
<rdar://problem/27017656>

Reviewed by Brent Fulgham.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::mediaEngineVectorLock): New, return the static Lock.
(WebCore::haveMediaEnginesVector): Wrap the naked bool.
(WebCore::buildMediaEnginesVector): Assert that the lock is locked.
(WebCore::installedMediaEngines): Hold the lock while checking/rebuilding the vector.
(WebCore::MediaPlayer::resetMediaEngines): Hold the lock while clearing the vector.

Use SOFT_LINK_CLASS_FOR_SOURCE instead of SOFT_LINK_CLASS because the former uses dispatch_once
to ensure that class loading is thread safe.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
(WebCore::assetCacheForPath):
(WebCore::MediaPlayerPrivateAVFoundationObjC::originsInMediaCache):
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCache):
(WebCore::MediaPlayerPrivateAVFoundationObjC::clearMediaCacheForOrigins):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createOpenGLVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
(-[WebCoreAVFPullDelegate setCallback:]):
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]):
(-[WebCoreAVFPullDelegate outputSequenceWasFlushed:]):

6:37 AM Changeset in webkit [202677] by Carlos Garcia Campos
  • 8 edits in trunk/Source/WebCore

[image-decoders] Use final and override in ImageDecoder subclasses
https://bugs.webkit.org/show_bug.cgi?id=159291

Reviewed by Antonio Gomes.

  • platform/image-decoders/bmp/BMPImageDecoder.h:
  • platform/image-decoders/gif/GIFImageDecoder.h:
  • platform/image-decoders/ico/ICOImageDecoder.cpp:

(WebCore::ICOImageDecoder::frameSizeAtIndex):

  • platform/image-decoders/ico/ICOImageDecoder.h:
  • platform/image-decoders/jpeg/JPEGImageDecoder.h:
  • platform/image-decoders/png/PNGImageDecoder.h:
  • platform/image-decoders/webp/WEBPImageDecoder.h:
1:14 AM Changeset in webkit [202676] by Gyuyoung Kim
  • 18 edits in trunk/Source/WebCore

Purge PassRefPtr in Modules/webdatabase
https://bugs.webkit.org/show_bug.cgi?id=159255

Reviewed by Benjamin Poulain.

As a step to remove PassRefPtr use, this patch cleans it up in Modules/webdatabase.

Additionally unnecessary spaces and tabs are removed too.

  • Modules/webdatabase/ChangeVersionWrapper.cpp:
  • Modules/webdatabase/DOMWindowWebDatabase.h:
  • Modules/webdatabase/Database.cpp:

(WebCore::Database::Database):
(WebCore::Database::~Database):
(WebCore::Database::scheduleTransaction):
(WebCore::Database::runTransaction):

  • Modules/webdatabase/Database.h:
  • Modules/webdatabase/DatabaseAuthorizer.cpp:

(WebCore::DatabaseAuthorizer::allowRead):

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):

  • Modules/webdatabase/DatabaseManager.h:
  • Modules/webdatabase/DatabaseTask.cpp:

(WebCore::DatabaseTransactionTask::DatabaseTransactionTask):

  • Modules/webdatabase/DatabaseTask.h:
  • Modules/webdatabase/SQLCallbackWrapper.h:

(WebCore::SQLCallbackWrapper::SQLCallbackWrapper):

  • Modules/webdatabase/SQLResultSetRowList.h:
  • Modules/webdatabase/SQLStatement.cpp:

(WebCore::SQLStatement::SQLStatement):
(WebCore::SQLStatement::sqlError):
(WebCore::SQLStatement::sqlResultSet):

  • Modules/webdatabase/SQLStatement.h:
  • Modules/webdatabase/SQLTransaction.h:
  • Modules/webdatabase/SQLTransactionBackend.cpp:

(WebCore::SQLTransactionBackend::create):
(WebCore::SQLTransactionBackend::SQLTransactionBackend):
(WebCore::SQLTransactionBackend::transactionError):

  • Modules/webdatabase/SQLTransactionBackend.h:
12:32 AM Changeset in webkit [202675] by Carlos Garcia Campos
  • 6 edits
    6 moves in trunk/Source

[Coordinated Graphics] Move CompositingCoordinator from platform to WebKit2 layer
https://bugs.webkit.org/show_bug.cgi?id=159209

Reviewed by Žan Doberšek.

Source/WebCore:

Remove CompositingCoordinator and its helper classes from the platform layer.

  • platform/TextureMapper.cmake:

Source/WebKit2:

Move CompositingCoordinator and its helper classes to the WebKit2 layer.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.cpp: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/AreaAllocator.cpp.

(WebKit::AreaAllocator::AreaAllocator):
(WebKit::AreaAllocator::~AreaAllocator):
(WebKit::AreaAllocator::expand):
(WebKit::AreaAllocator::expandBy):
(WebKit::AreaAllocator::release):
(WebKit::AreaAllocator::overhead):
(WebKit::AreaAllocator::roundAllocation):
(WebKit::GeneralAreaAllocator::GeneralAreaAllocator):
(WebKit::GeneralAreaAllocator::~GeneralAreaAllocator):
(WebKit::GeneralAreaAllocator::freeNode):
(WebKit::GeneralAreaAllocator::expand):
(WebKit::fitsWithin):
(WebKit::GeneralAreaAllocator::allocate):
(WebKit::GeneralAreaAllocator::allocateFromNode):
(WebKit::GeneralAreaAllocator::splitNode):
(WebKit::GeneralAreaAllocator::updateLargestFree):
(WebKit::GeneralAreaAllocator::release):
(WebKit::GeneralAreaAllocator::overhead):

  • WebProcess/WebPage/CoordinatedGraphics/AreaAllocator.h: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/AreaAllocator.h.

(WebKit::nextPowerOfTwo):
(WebKit::AreaAllocator::size):
(WebKit::AreaAllocator::minimumAllocation):
(WebKit::AreaAllocator::setMinimumAllocation):
(WebKit::AreaAllocator::margin):
(WebKit::AreaAllocator::setMargin):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/CompositingCoordinator.cpp.

(WebKit::CompositingCoordinator::CompositingCoordinator):
(WebKit::CompositingCoordinator::~CompositingCoordinator):
(WebKit::CompositingCoordinator::setRootCompositingLayer):
(WebKit::CompositingCoordinator::setViewOverlayRootLayer):
(WebKit::CompositingCoordinator::sizeDidChange):
(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::timestamp):
(WebKit::CompositingCoordinator::syncDisplayState):
(WebKit::CompositingCoordinator::nextAnimationServiceTime):
(WebKit::CompositingCoordinator::clearPendingStateChanges):
(WebKit::CompositingCoordinator::initializeRootCompositingLayerIfNeeded):
(WebKit::CompositingCoordinator::createRootLayer):
(WebKit::CompositingCoordinator::syncLayerState):
(WebKit::CompositingCoordinator::createImageBackingIfNeeded):
(WebKit::CompositingCoordinator::createImageBacking):
(WebKit::CompositingCoordinator::updateImageBacking):
(WebKit::CompositingCoordinator::clearImageBackingContents):
(WebKit::CompositingCoordinator::removeImageBacking):
(WebKit::CompositingCoordinator::flushPendingImageBackingChanges):
(WebKit::CompositingCoordinator::notifyAnimationStarted):
(WebKit::CompositingCoordinator::notifyFlushRequired):
(WebKit::CompositingCoordinator::paintContents):
(WebKit::CompositingCoordinator::createGraphicsLayer):
(WebKit::CompositingCoordinator::deviceScaleFactor):
(WebKit::CompositingCoordinator::pageScaleFactor):
(WebKit::CompositingCoordinator::createUpdateAtlas):
(WebKit::CompositingCoordinator::removeUpdateAtlas):
(WebKit::CompositingCoordinator::visibleContentsRect):
(WebKit::CompositingCoordinator::mainContentsLayer):
(WebKit::CompositingCoordinator::setVisibleContentsRect):
(WebKit::CompositingCoordinator::deviceOrPageScaleFactorChanged):
(WebKit::CompositingCoordinator::detachLayer):
(WebKit::CompositingCoordinator::commitScrollOffset):
(WebKit::CompositingCoordinator::renderNextFrame):
(WebKit::CompositingCoordinator::purgeBackingStores):
(WebKit::CompositingCoordinator::paintToSurface):
(WebKit::CompositingCoordinator::scheduleReleaseInactiveAtlases):
(WebKit::CompositingCoordinator::releaseInactiveAtlasesTimerFired):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/CompositingCoordinator.h.

(WebKit::CompositingCoordinator::clearRootLayer):
(WebKit::CompositingCoordinator::rootLayer):
(WebKit::CompositingCoordinator::state):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.cpp: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.cpp.

(WebKit::UpdateAtlasSurfaceClient::UpdateAtlasSurfaceClient):
(WebKit::UpdateAtlas::UpdateAtlas):
(WebKit::UpdateAtlas::~UpdateAtlas):
(WebKit::UpdateAtlas::buildLayoutIfNeeded):
(WebKit::UpdateAtlas::didSwapBuffers):
(WebKit::UpdateAtlas::paintOnAvailableBuffer):

  • WebProcess/WebPage/CoordinatedGraphics/UpdateAtlas.h: Renamed from Source/WebCore/platform/graphics/texmap/coordinated/UpdateAtlas.h.

(WebKit::UpdateAtlas::size):
(WebKit::UpdateAtlas::supportsAlpha):
(WebKit::UpdateAtlas::addTimeInactive):
(WebKit::UpdateAtlas::isInactive):
(WebKit::UpdateAtlas::isInUse):

Jun 29, 2016:

11:28 PM Changeset in webkit [202674] by commit-queue@webkit.org
  • 16 edits in trunk/Source/WebCore

Pass SecurityOrigin as references in CORS check code
https://bugs.webkit.org/show_bug.cgi?id=159263

Patch by Youenn Fablet <youenn@apple.com> on 2016-06-29
Reviewed by Alex Christensen.

No change of behavior.

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::cachedImageSet):

  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::cachedImage):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestScript):

  • loader/CrossOriginAccessControl.cpp:

(WebCore::updateRequestForAccessControl):
(WebCore::createAccessControlPreflightRequest):
(WebCore::passesAccessControlCheck):

  • loader/CrossOriginAccessControl.h:
  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::validatePreflightResponse):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::isAllowedRedirect):
(WebCore::DocumentThreadableLoader::securityOrigin):

  • loader/DocumentThreadableLoader.h:
  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):

  • loader/LinkLoader.cpp:

(WebCore::preloadIfNeeded):

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::checkCrossOriginAccessControl):

  • loader/TextTrackLoader.cpp:

(WebCore::TextTrackLoader::load):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::passesAccessControlCheck):

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setAsPotentiallyCrossOrigin):

10:57 PM Changeset in webkit [202673] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix the debug build after r202667

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSTypedArrayViewPrototype::finishCreation):
The putDirect was missing the Accessor flag for the GetterSetter.

10:10 PM Changeset in webkit [202672] by benjamin@webkit.org
  • 7 edits in trunk/LayoutTests

Attempt to fix constructor-length.html

I did a rebaseline of constructor-length.html.
I should have updated the test instead.

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-29

  • js/dom/constructor-length.html:
  • platform/efl/js/dom/constructor-length-expected.txt:
  • platform/gtk/js/dom/constructor-length-expected.txt:
  • platform/ios-simulator/js/dom/constructor-length-expected.txt:
  • platform/mac/js/dom/constructor-length-expected.txt:
  • platform/win/js/dom/constructor-length-expected.txt:
9:49 PM Changeset in webkit [202671] by adam.bergkvist@ericsson.com
  • 11 edits
    1 move in trunk

WebRTC: Implement MediaEndpointPeerConnection::setConfiguration()
https://bugs.webkit.org/show_bug.cgi?id=159254

Reviewed by Eric Carlson.

Source/WebCore:

Implement MediaEndpointPeerConnection::setConfiguration() which is the
MediaEndpointPeerConnection implementation of RTCPeerConnection.setConfiguration() [1].

[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-rtcpeerconnection-setconfiguration

Testing: Updated existing test.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::setConfiguration):
Implemented.

  • Modules/mediastream/RTCConfiguration.cpp:

(WebCore::RTCConfiguration::initialize):

  • Modules/mediastream/RTCConfiguration.h:

Use shared enums.

  • Modules/mediastream/RTCConfiguration.idl:

Remove 'None'/'Public' IceTransportPolicy enum value (removed from WebRTC 1.0).

  • platform/mediastream/MediaEndpointConfiguration.cpp:

(WebCore::MediaEndpointConfiguration::MediaEndpointConfiguration):

  • platform/mediastream/MediaEndpointConfiguration.h:

Use shared enums.
(WebCore::MediaEndpointConfiguration::create):

  • platform/mediastream/PeerConnectionStates.h: Renamed from Source/WebCore/Modules/mediastream/PeerConnectionStates.h.

Make shared enums accessible to platform objects (currently MediaEndpointConfiguration).

LayoutTests:

Test configuring an RTCPeerConnection object via the constructor and setConfiguration() and
check the resulting configuration with getConfiguration().

  • fast/mediastream/RTCPeerConnection-getConfiguration-expected.txt:
  • fast/mediastream/RTCPeerConnection-getConfiguration.html:

Remove 'requestIdentity' tests (dictionary member removed from WebRTC 1.0). Add tests for
'bundlePolicy'.

  • platform/gtk/TestExpectations:

Unskip above test.

9:46 PM Changeset in webkit [202670] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(200114): Netflix app does not see ChromeCast
https://bugs.webkit.org/show_bug.cgi?id=159287

Reviewed by Benjamin Poulain.

Change set 200114 changed the behavior of how we check for whether or not we
wrap Objective C init methods in JavaScript constructors. The prior method
checked the version of JavaScriptCore that was linked with the application.
If the application was not directly linked with JavaScriptCore the prior
method indicated that we shouldn't create constructors. The new method uses
the SDK the application was compiled with. Using the new method, an
application compiled with iOS SDK 8.0 or greater would create constructors
and not export init methods to JavaScript. The problem is that an existing
application that hasn't been recompiled will get a different answer using
the new method. We need to come up with a method that works in a compatible
way with existing programs, but provides a newly compiled program with the
"is built with SDK N or greater" check.

Added back the prior check of the version of JavaScriptCore the program was
directly linked against. However we only use this check if we directly linked
with JavaScriptCore. Otherwise we fall through to check against the SDK the
program was built with. Changed the iOS SDK version we check
against to be the new version of iOS, iOS 10.

This provides compatible behavior for existing programs. It may be the case
that some of those programs may require changes when they are rebuilt with the
iOS 10 SDK or later.

  • API/JSWrapperMap.mm:

(supportsInitMethodConstructors):

9:46 PM Changeset in webkit [202669] by dino@apple.com
  • 1 edit in trunk/Websites/webkit.org/demos/spring/index.html

Add a link to the proposal.

  • demos/spring/index.html:
9:39 PM Changeset in webkit [202668] by dino@apple.com
  • 2 edits
    1 add in trunk/Websites/webkit.org

Add the UI JavaScript library to make
other browsers happy.

  • demos/spring/dat.gui.min.js: Added.
  • demos/spring/index.html:
9:24 PM Changeset in webkit [202667] by commit-queue@webkit.org
  • 9 edits in trunk

[JSC] Minor TypedArray fixes
https://bugs.webkit.org/show_bug.cgi?id=159286

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-29
Reviewed by Keith Miller.

Source/JavaScriptCore:

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::finishCreation):
See https://tc39.github.io/ecma262/#sec-%typedarray%

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::typedArrayViewPrivateFuncLength):
See https://tc39.github.io/ecma262/#sec-get-%typedarray%.prototype.length

(JSC::typedArrayViewProtoGetterFuncToStringTag):
Yep, that's odd.
See https://tc39.github.io/ecma262/#sec-get-%typedarray%.prototype-@@tostringtag

(JSC::JSTypedArrayViewPrototype::finishCreation):
See the last paragraph of https://tc39.github.io/ecma262/#sec-ecmascript-standard-built-in-objects

LayoutTests:

  • js/script-tests/typedarray-constructors.js:
  • js/script-tests/typedarray-prototype.js:
  • js/typedarray-constructors-expected.txt:
  • js/typedarray-prototype-expected.txt:
9:19 PM Changeset in webkit [202666] by Joseph Pecoraro
  • 5 edits in trunk

Web Inspector: API View of Native DOM APIs looks poor (TypeErrors for native getters)
https://bugs.webkit.org/show_bug.cgi?id=158334
<rdar://problem/26615366>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype._getProperties):
(InjectedScript.prototype._propertyDescriptors):
Do not create fake value property descriptors for native accessors
unless requested. This means, getProperties for a native prototype
should return accessors for native accessors just like it does
for normal non-native accessors (getters/setters).

(InjectedScript.prototype.getProperties):
Do not produce fake value accessors for native accessors.

(InjectedScript.prototype.getDisplayableProperties):
(InjectedScript.RemoteObject.prototype._generatePreview):
Do produce fake value accessors for native accessors.

LayoutTests:

  • inspector/runtime/getProperties-expected.txt:
  • inspector/runtime/getProperties.html:

Improve output for accessors now that getProperties
returns real accessor descriptors for native accessors
instead of fake value descriptors.

9:17 PM Changeset in webkit [202665] by dino@apple.com
  • 1 edit
    3 adds in trunk/Websites/webkit.org

Demo and JS implementation of our spring() animation
timing function.

  • demos/spring/index.html: Added.
  • demos/spring/spring.js: Added.

(SpringSolver):
(SpringSolver.prototype.solve):

8:55 PM Changeset in webkit [202664] by sbarati@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

JSGlobalLexicalEnvironment needs a toThis implementation
https://bugs.webkit.org/show_bug.cgi?id=159285

Reviewed by Mark Lam.

This was a huge oversight of my original implementation. It gave users
of the language direct access to the JSGlobalLexicalEnvironment object.

  • runtime/JSGlobalLexicalEnvironment.cpp:

(JSC::JSGlobalLexicalEnvironment::isConstVariable):
(JSC::JSGlobalLexicalEnvironment::toThis):

  • runtime/JSGlobalLexicalEnvironment.h:

(JSC::JSGlobalLexicalEnvironment::isEmpty):

  • tests/stress/global-lexical-environment-to-this.js: Added.

(assert):
(let.f):
(let.fStrict):

7:34 PM Changeset in webkit [202663] by dino@apple.com
  • 2 edits in trunk/Websites/webkit.org

Small change to wording, and link to the interactive version.

  • blog-files/color-gamut/index.html:
7:09 PM Changeset in webkit [202662] by Hunseop Jeong
  • 2 edits in trunk/Source/WebCore

Unreviewed, CMake build fix - 2.

  • PlatformMac.cmake:
6:03 PM Changeset in webkit [202661] by Hunseop Jeong
  • 4 edits in trunk/Source

Source/WebCore:
Unreviewed, CMake build fix.

  • PlatformMac.cmake:

Source/WebKit2:
Unreviewed, CMake build fix.

  • PlatformMac.cmake:
5:12 PM Changeset in webkit [202660] by jer.noble@apple.com
  • 4 edits
    4 adds in trunk

Unprefix webkit-playsinline.
https://bugs.webkit.org/show_bug.cgi?id=159283

Reviewed by Eric Carlson.

Tests: media/video-playsinline.html

media/video-webkit-playsinline.html

Unprefix the webkit-playsinline content attribute, as an unprefixed version
was added to the HTML spec by <https://github.com/whatwg/html/pull/1444>.
The new 'playsinline' content attribute reflects to a new DOM property of
the same name.

  • html/HTMLAttributeNames.in:
  • html/HTMLVideoElement.idl:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):

4:59 PM Changeset in webkit [202659] by Joseph Pecoraro
  • 21 edits
    5 adds in trunk

Web Inspector: Wrong function name next to scope
https://bugs.webkit.org/show_bug.cgi?id=158210
<rdar://problem/26543093>

Reviewed by Brian Burg.

Source/JavaScriptCore:

Add DebuggerLocation. A helper for describing a unique location.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::setConstantRegisters):
When compiled with debug info, add a SymbolTable rare data pointer
back to the CodeBlock. This will be used later to get JSScope debug
info if Web Inspector pauses.

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

(JSC::SymbolTable::cloneScopePart):
(JSC::SymbolTable::prepareForTypeProfiling):
(JSC::SymbolTable::uniqueIDForVariable):
(JSC::SymbolTable::uniqueIDForOffset):
(JSC::SymbolTable::globalTypeSetForOffset):
(JSC::SymbolTable::globalTypeSetForVariable):
Rename rareData and include a CodeBlock pointer.

(JSC::SymbolTable::rareDataCodeBlock):
(JSC::SymbolTable::setRareDataCodeBlock):
Setter and getter for the rare data. It should only be set once.

(JSC::SymbolTable::visitChildren):
Visit the rare data code block if we have one.

  • debugger/DebuggerLocation.cpp: Added.

(JSC::DebuggerLocation::DebuggerLocation):

  • debugger/DebuggerLocation.h: Added.

(JSC::DebuggerLocation::DebuggerLocation):
Construction from a ScriptExecutable.

  • runtime/JSScope.cpp:

(JSC::JSScope::symbolTable):

  • runtime/JSScope.h:
  • debugger/DebuggerScope.h:
  • debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::name):
(JSC::DebuggerScope::location):
Name and location for a scope. This uses:
JSScope -> SymbolTable -> CodeBlock -> Executable

  • inspector/protocol/Debugger.json:
  • inspector/InjectedScriptSource.js:

(InjectedScript.CallFrameProxy.prototype._wrapScopeChain):
(InjectedScript.CallFrameProxy._createScopeJson):

  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::valueForScopeType):
(Inspector::valueForScopeLocation):
(Inspector::JSJavaScriptCallFrame::scopeDescriptions):
(Inspector::JSJavaScriptCallFrame::scopeType): Deleted.

  • inspector/JSJavaScriptCallFrame.h:
  • inspector/JSJavaScriptCallFramePrototype.cpp:

(Inspector::JSJavaScriptCallFramePrototype::finishCreation):
(Inspector::jsJavaScriptCallFramePrototypeFunctionScopeDescriptions):
(Inspector::jsJavaScriptCallFramePrototypeFunctionScopeType): Deleted.
Simplify this code to build the objects we will send across the protocol
to descript a Scope.

Source/WebInspectorUI:

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
Include new payload data in the construction call.
All the new data is optional, so we gracefully handle
legacy backends.

  • UserInterface/Models/ScopeChainNode.js:

(WebInspector.ScopeChainNode):
(WebInspector.ScopeChainNode.prototype.get type):
(WebInspector.ScopeChainNode.prototype.get objects):
(WebInspector.ScopeChainNode.prototype.get name):
(WebInspector.ScopeChainNode.prototype.get location):
(WebInspector.ScopeChainNode.prototype.get hash):
Hash is a rough (name:sourceId:line:column) string for quick comparisons.

(WebInspector.ScopeChainNode.prototype.makeLocalScope):
Make this an action you take on a scope, to avoid having to
do it at construction time, or making it a generic setting.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
This was wrong before. Move the work to CallFrame
and change it to be correct.

  • UserInterface/CallFrame.js:

(WebInspector.CallFrame.prototype.mergedScopeChain):

This transforms the scope chain for a call frame from:

scope1 scope2 scope3 scope4 scope5 scope6 scope7

foo foo foo bar bar - -

Block Closure Closure Closure Closure GLE GBL

To:

scope1 scope2&3 scope4&5 scope6 scope7

foo foo* bar* - -

Block Local Closure GLE GBL

Doing a few things:

  • Merge the first two Closure scopes sharing a location. These are the "var" and "let" Closure scopes in a function, and it is better to present these together in the UI.
  • Mark the first Closure scope within a function (*). When this is displayed in the UI, we can provide the name of the function: "Closure Scope (name)", and we even have location information that we can use to display a goto arrow if needed.
  • Make the first Closure scope the Local scope if it matches the Call Frame's function name. This lets us display the section as "Local Variables".

LayoutTests:

  • inspector/debugger/paused-scopes-expected.txt: Added.
  • inspector/debugger/paused-scopes.html: Added.
  • inspector/debugger/resources/paused-scopes.js: Added.

Test dumps the call frames and scope chains for each call frame
when pausing at different locations in a program. Outputting
the hashes we can see even identically named functions have
different hashes because their location is different.

4:28 PM Changeset in webkit [202658] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix null dereferencing after r201441
https://bugs.webkit.org/show_bug.cgi?id=159282
rdar://problem/27082559

Reviewed by Andreas Kling.

No new tests. This is reproducible when dragging from regular to high-DPI displays,
and we don't have testing infrastructure for simulating that.

  • css/MediaQueryMatcher.cpp:

(WebCore::MediaQueryMatcher::styleResolverChanged):
MediaQueryListListener::queryChanged can mutate the Vector of listeners while we are iterating it.
Copy the Vector of listeners and iterate the copy so we don't go out of bounds.

4:05 PM Changeset in webkit [202657] by BJ Burg
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught Exception page never shows if exception is thrown while processing a protocol event
https://bugs.webkit.org/show_bug.cgi?id=159182

Reviewed by Joseph Pecoraro.

Since we catch exceptions raised during the handling of protocol responses and events, there
is no way for these exceptions to trigger the global exception handler that shows the Uncaught
Exception Reporter sheet. We should show these in the sheet because it makes them get fixed faster.

Add a new entry point, WebInspector.reportInternalError, that takes an error or string and
a free-form map of strings to strings for storing additional information such as message data.
Pass the error and any other relevant details to this entry point, which decides whether to
show the uncaught exception reporter or quietly log the error to Inspector2 console.

In future patches, I would like to do the following once the common errors are fixed:

  • enable reporting via Uncaught Exception Reporter for all engineering builds
  • move internal console.error call sites to use WebInspector.reportInternalError
  • UserInterface/Base/Main.js: Add reportInternalError, which redirects to the uncaught

exception reporter sheet or does console.error. It also adds a console.assert that could
cause the debugger to pause if desired.

  • UserInterface/Debug/UncaughtExceptionReporter.css:

(.sheet-container): Make the report scrollable now that we could potentially show a lot of text.

  • UserInterface/Debug/UncaughtExceptionReporter.js:

(handleError): Also pass along the 'details' poperty.
(formattedEntry): Refactor the code so it additionally prints out the keys and values of
the 'details' property. It does not do any coercions, so callers must convert values to strings.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass.prototype._dispatchResponse): Inlined a function.
(InspectorBackendClass.prototype._dispatchResponseToCallback):
(InspectorBackendClass.prototype._dispatchEvent):
Report uncaught exceptions via WebInspector.reportInternalError.

(InspectorBackendClass.prototype._reportProtocolError): Deleted, inlined into the single use site.

4:01 PM Changeset in webkit [202656] by Antti Koivisto
  • 11 edits
    2 adds in trunk/Source/WebCore

Factor pending CSS resources into a struct
https://bugs.webkit.org/show_bug.cgi?id=159268

Reviewed by Andreas Kling.

To fix resource loading related re-entrancy issues in StyleResolver we should move the triggering of
resource loads outside the style resolver. The first step for that is to capture pending resources to a struct.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSCursorImageValue.cpp:

(WebCore::CSSCursorImageValue::cachedImage):
(WebCore::CSSCursorImageValue::cachedOrPendingImage):

  • css/CSSCursorImageValue.h:
  • css/CSSGradientValue.cpp:

(WebCore::GradientStop::GradientStop):
(WebCore::CSSGradientValue::gradientWithStylesResolved):

  • css/CSSGradientValue.h:

(WebCore::CSSGradientValue::loadSubimages):
(WebCore::CSSGradientValue::CSSGradientValue):

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::cachedImageSet):
(WebCore::CSSImageSetValue::cachedOrPendingImageSet):

  • css/CSSImageSetValue.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::State::setParentStyle):
(WebCore::StyleResolver::State::ensurePendingResources):
(WebCore::isAtShadowBoundary):
(WebCore::StyleResolver::cachedOrPendingFromValue):
(WebCore::StyleResolver::generatedOrPendingFromValue):
(WebCore::StyleResolver::setOrPendingFromValue):
(WebCore::StyleResolver::cursorOrPendingFromValue):
(WebCore::filterOperationForType):
(WebCore::StyleResolver::createFilterOperations):
(WebCore::StyleResolver::loadPendingResources):
(WebCore::StyleResolver::MatchedProperties::MatchedProperties):
(WebCore::StyleResolver::loadPendingSVGDocuments): Deleted.
(WebCore::StyleResolver::loadPendingImage): Deleted.
(WebCore::StyleResolver::loadPendingShapeImage): Deleted.
(WebCore::StyleResolver::loadPendingImages): Deleted.

  • css/StyleResolver.h:

(WebCore::StyleResolver::rootElementStyle):
(WebCore::StyleResolver::element):
(WebCore::StyleResolver::document):
(WebCore::StyleResolver::documentSettings):
(WebCore::StyleResolver::State::setApplyPropertyToVisitedLinkStyle):
(WebCore::StyleResolver::State::applyPropertyToRegularStyle):
(WebCore::StyleResolver::State::applyPropertyToVisitedLinkStyle):
(WebCore::StyleResolver::State::setFontDirty):
(WebCore::StyleResolver::State::fontDirty):
(WebCore::StyleResolver::State::useSVGZoomRules):
(WebCore::StyleResolver::State::takePendingResources):
(WebCore::StyleResolver::State::cssToLengthConversionData):
(WebCore::StyleResolver::State::cascadeLevel):
(WebCore::StyleResolver::State::setCascadeLevel):
(WebCore::StyleResolver::state):
(WebCore::StyleResolver::State::pendingImageProperties): Deleted.
(WebCore::StyleResolver::State::filtersWithPendingSVGDocuments): Deleted.

  • style/StylePendingResources.cpp: Added.

(WebCore::Style::loadPendingImage):
(WebCore::Style::loadPendingImages):
(WebCore::Style::loadPendingSVGFilters):
(WebCore::Style::loadPendingResources):

Move the functions for triggering the resource loads from StyleResolver.

  • style/StylePendingResources.h: Added.

Add struct for pending resources.

3:41 PM Changeset in webkit [202655] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Add "type" and "paymentPass" properties in PaymentMethod
https://bugs.webkit.org/show_bug.cgi?id=159278
rdar://problem/26999112

Reviewed by Dean Jackson.

  • Modules/applepay/cocoa/PaymentMethodCocoa.mm:

(WebCore::toString):
(WebCore::toDictionary):

3:34 PM Changeset in webkit [202654] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

We don't emit TDZ checks for call_eval
https://bugs.webkit.org/show_bug.cgi?id=159277
<rdar://problem/27018801>

Reviewed by Benjamin Poulain.

This is a problem if you're trying to call a TDZ variable
that is named 'eval'.

  • bytecompiler/NodesCodegen.cpp:

(JSC::EvalFunctionCallNode::emitBytecode):

  • tests/stress/variable-named-eval-under-tdz.js: Added.

(shouldThrowTDZ):
(test):
(test.foo):
(throw.new.Error):

3:18 PM Changeset in webkit [202653] by Beth Dakin
  • 2 edits
    1 add in trunk/Source/WebKit2

Add media_icon to WebKit2
https://bugs.webkit.org/show_bug.cgi?id=159273
-and corresponding-
rdar://problem/27087714

Reviewed by Dean Jackson.

  • Resources/mediaIcon.pdf: Added.
  • WebKit2.xcodeproj/project.pbxproj:
3:15 PM Changeset in webkit [202652] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.38.3

New tag.

3:04 PM Changeset in webkit [202651] by bshafiei@apple.com
  • 1 delete in tags/Safari-602.1.38.2.2

Delete tag.

3:00 PM Changeset in webkit [202650] by mark.lam@apple.com
  • 8 edits in trunk

Add support for collecting cumulative LLINT stats via a JSC_llintStatsFile option.
https://bugs.webkit.org/show_bug.cgi?id=159274

Reviewed by Keith Miller.

Source/JavaScriptCore:

  • jsc.cpp:

(main):

  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):
(JSC::LLInt::Data::finalizeStats):
(JSC::LLInt::compareStats):
(JSC::LLInt::Data::dumpStats):
(JSC::LLInt::Data::ensureStats):
(JSC::LLInt::Data::loadStats):
(JSC::LLInt::Data::resetStats):
(JSC::LLInt::Data::saveStats):

  • llint/LLIntData.h:

(JSC::LLInt::Data::opcodeStats):

  • runtime/Options.cpp:

(JSC::Options::isAvailable):
(JSC::recomputeDependentOptions):
(JSC::Options::initialize):

  • runtime/Options.h:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(DumpRenderTreeMain):

2:54 PM Changeset in webkit [202649] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking perf/rel-list-remove.html as flaky on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=156561

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
2:48 PM Changeset in webkit [202648] by sbarati@apple.com
  • 5 edits in trunk

Destructuring variable declaration is missing a validation of the syntax of a sub production when there is a rhs
https://bugs.webkit.org/show_bug.cgi?id=159267

Reviewed by Mark Lam.

Source/JavaScriptCore:

We were parsing something without checking if it had a syntax error.
This is wrong for many reasons, but it could actually cause a crash
in a debug build if you parsed particular programs.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseVariableDeclarationList):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:
2:23 PM Changeset in webkit [202647] by n_wang@apple.com
  • 4 edits
    2 adds in trunk

AX: Crash in WebCore::Document::focusNavigationStartingNode(WebCore::FocusDirection) const + 128
https://bugs.webkit.org/show_bug.cgi?id=159240

Reviewed by Ryosuke Niwa.

Source/WebCore:

This crash is caused by passing an empty node to ElementTraversal::previous(Node&). When the
focusNavigationStartingNode has been removed and it has no next sibling, we should fallback
to itself for calculating the next focused element.

Test: fast/events/remove-focus-navigation-starting-point-crash.html

  • dom/Document.cpp:

(WebCore::Document::focusNavigationStartingNode):

LayoutTests:

  • fast/events/remove-focus-navigation-starting-point-crash-expected.txt: Added.
  • fast/events/remove-focus-navigation-starting-point-crash.html: Added.
  • platform/ios-simulator/TestExpectations:
1:59 PM Changeset in webkit [202646] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking animations/multiple-backgrounds.html as flaky on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=150942

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
1:17 PM Changeset in webkit [202645] by Ryan Haddad
  • 3 edits
    3 deletes in trunk

Unreviewed, rolling out r202617.

The LayoutTest from this change crashes under GuardMalloc

Reverted changeset:

"Throw exceptions for invalid number of channels for
ConvolverNode"
https://bugs.webkit.org/show_bug.cgi?id=159238
http://trac.webkit.org/changeset/202617

1:14 PM Changeset in webkit [202644] by andersca@apple.com
  • 7 edits in trunk/Source

Rename addressFields to contactFields
https://bugs.webkit.org/show_bug.cgi?id=159271
rdar://problem/27086955

Reviewed by Beth Dakin.

Source/WebCore:

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::createContactFields):
(WebCore::isValidPaymentRequestPropertyName):
(WebCore::createPaymentRequest):
(WebCore::createAddressFields): Deleted.

  • Modules/applepay/PaymentRequest.h:

(WebCore::PaymentRequest::requiredBillingContactFields):
(WebCore::PaymentRequest::setRequiredBillingContactFields):
(WebCore::PaymentRequest::requiredShippingContactFields):
(WebCore::PaymentRequest::setRequiredShippingContactFields):
(WebCore::PaymentRequest::requiredBillingAddressFields): Deleted.
(WebCore::PaymentRequest::setRequiredBillingAddressFields): Deleted.
(WebCore::PaymentRequest::requiredShippingAddressFields): Deleted.
(WebCore::PaymentRequest::setRequiredShippingAddressFields): Deleted.

Source/WebKit2:

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<PaymentRequest>::encode):
(IPC::ArgumentCoder<PaymentRequest>::decode):
(IPC::ArgumentCoder<PaymentRequest::ContactFields>::encode):
(IPC::ArgumentCoder<PaymentRequest::ContactFields>::decode):
(IPC::ArgumentCoder<PaymentRequest::AddressFields>::encode): Deleted.
(IPC::ArgumentCoder<PaymentRequest::AddressFields>::decode): Deleted.

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKAddressField):
(WebKit::toPKPaymentRequest):

12:54 PM Changeset in webkit [202643] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, third attempt to fix ASAN build for r202599

  • platform/text/TextCodecReplacement.cpp:

(WebCore::TextCodecReplacement::decode):

12:29 PM Changeset in webkit [202642] by jer.noble@apple.com
  • 9 edits
    1 move
    8 adds in trunk/Source

Adopt MediaRemote.
https://bugs.webkit.org/show_bug.cgi?id=159250

Reviewed by Eric Carlson.

Source/WebCore:

Adopt MediaRemote and use the framework to implement MediaSessionManageMac
and RemoteCommandListenerMac.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/RemoteCommandListener.cpp:
  • platform/audio/PlatformMediaSessionManager.cpp:
  • platform/audio/cocoa/MediaSessionManagerCocoa.cpp: Renamed from Source/WebCore/platform/audio/mac/MediaSessionManagerMac.cpp.

(PlatformMediaSessionManager::updateSessionState):

  • platform/audio/mac/MediaSessionManagerMac.h: Added.
  • platform/audio/mac/MediaSessionManagerMac.mm: Added.

(WebCore::PlatformMediaSessionManager::sharedManager):
(WebCore::PlatformMediaSessionManager::sharedManagerIfExists):
(WebCore::MediaSessionManagerMac::MediaSessionManagerMac):
(WebCore::MediaSessionManagerMac::~MediaSessionManagerMac):
(WebCore::MediaSessionManagerMac::sessionWillBeginPlayback):
(WebCore::MediaSessionManagerMac::removeSession):
(WebCore::MediaSessionManagerMac::sessionWillEndPlayback):
(WebCore::MediaSessionManagerMac::clientCharacteristicsChanged):
(WebCore::MediaSessionManagerMac::nowPlayingEligibleSession):
(WebCore::MediaSessionManagerMac::updateNowPlayingInfo):

  • platform/cocoa/SoftLinking.h:
  • platform/mac/MediaRemoteSoftLink.cpp: Added.
  • platform/mac/MediaRemoteSoftLink.h: Added.
  • platform/mac/RemoteCommandListenerMac.h: Added.

(WebCore::RemoteCommandListenerMac::createWeakPtr):

  • platform/mac/RemoteCommandListenerMac.mm: Added.

(WebCore::RemoteCommandListener::create):
(WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac):
(WebCore::RemoteCommandListenerMac::~RemoteCommandListenerMac):

  • platform/spi/mac/MediaRemoteSPI.h: Added.

Source/WebKit2:

Add a sandbox exception allowing access to the mediaremoted XPC service.

  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

Add USE_MEDIAREMOTE.

  • wtf/Platform.h:
12:22 PM Changeset in webkit [202641] by jer.noble@apple.com
  • 5 edits in trunk

Cannot clear a MediaSource SourceBuffer in Safari 9 and WebKit nightly
https://bugs.webkit.org/show_bug.cgi?id=159230

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/media-source/media-source-remove.html (modified)

Move to using a MediaTime directly (rather than as a double) to add
and removed buffered ranges. Also, drop the use of the "microsecond"
fudge factor when adding buffered ranges.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::removeSamplesFromTrackBuffer):
(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

LayoutTests:

  • media/media-source/media-source-remove.html:
  • media/media-source/media-source-remove-expected.txt:
12:19 PM Changeset in webkit [202640] by commit-queue@webkit.org
  • 4 edits in trunk

WKWebView should ask WKNavigationDelegate about bad ssl certificates
https://bugs.webkit.org/show_bug.cgi?id=159176
Source/WebKit2:

rdar://problem/26864882

Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-29
Reviewed by Sam Weinig.

This can be tested manually by visiting a site in MiniBrowser that has invalid ssl certificates, but we don't have proper ssl testing yet.
Before this change, we would just open the site as if nothing were invalid, now we call the WKNavigationDelegate's didReceiveAuthenticationChallenge
like we did before using NSURLSession, and we do not open the page, also like we did before using NSURLSession.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
When using NSURLConnection and responding to canAuthenticateAgainstProtectionSpace with YES,
we get an NSURLAuthenticationChallenge when a bad ssl certificate is encountered in the handshake.
When using NSURLSession, we want to call webView:didReceiveAuthenticationChallenge:completionHandler: in this case.
The default implementation of NavigationState::NavigationClient::canAuthenticateAgainstProtectionSpace returns true
if there is an implementation of webView:didReceiveAuthenticationChallenge:completionHandler: in its WKNavigationDelegate.
Internal clients can implement _webView:canAuthenticateAgainstProtectionSpace:
and Safari uses canHandleHTTPSServerTrustEvaluation, so it will be unaffected.

Tools:

Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-29
Reviewed by Sam Weinig.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController webView:didFinishLoadingNavigation:]):
(-[WK2BrowserWindowController webView:didReceiveAuthenticationChallenge:completionHandler:]):
(-[WK2BrowserWindowController webView:didFailNavigation:withError:]):

11:49 AM Changeset in webkit [202639] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.38.2.2/Source

Versioning.

11:48 AM Changeset in webkit [202638] by Beth Dakin
  • 8 edits
    3 deletes in trunk/Source/WebKit2

Delete WKElementInfo since it's not used
https://bugs.webkit.org/show_bug.cgi?id=159265

Reviewed by Sam Weinig.

  • Shared/API/Cocoa/WebKit.h:
  • UIProcess/API/Cocoa/WKElementInfo.h: Removed.
  • UIProcess/API/Cocoa/WKElementInfo.mm: Removed.
  • UIProcess/API/Cocoa/WKElementInfoInternal.h: Removed.
  • UIProcess/API/Cocoa/WKPreviewElementInfo.h:
  • UIProcess/API/Cocoa/WKPreviewElementInfo.mm:

(-[WKPreviewElementInfo _initWithLinkURL:]):
(-[WKPreviewElementInfo copyWithZone:]):
(-[WKPreviewElementInfo linkURL]):

  • UIProcess/API/Cocoa/WKPreviewElementInfoInternal.h:
  • UIProcess/API/Cocoa/_WKContextMenuElementInfo.h:
  • UIProcess/API/Cocoa/_WKContextMenuElementInfo.mm:

(-[_WKContextMenuElementInfo copyWithZone:]):

  • WebKit2.xcodeproj/project.pbxproj:
11:45 AM Changeset in webkit [202637] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.38.2.2

New tag.

11:43 AM Changeset in webkit [202636] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, second attempt to fix ASAN build for r202599

  • platform/text/TextCodecReplacement.cpp:
11:40 AM Changeset in webkit [202635] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, first attempt to fix ASAN build for r202599

  • platform/text/TextCodecReplacement.cpp:
11:36 AM Changeset in webkit [202634] by commit-queue@webkit.org
  • 11 edits
    2 adds in trunk

Web Inspector: Show Shadow Root type in DOM Tree
https://bugs.webkit.org/show_bug.cgi?id=159236
<rdar://problem/27068521>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-29
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/protocol/DOM.json:

Include optional shadowRootType property for DOMNodes.

Source/WebCore:

Test: inspector/dom/shadowRootType.html

  • inspector/InspectorDOMAgent.cpp:

(WebCore::shadowRootType):
(WebCore::InspectorDOMAgent::buildObjectForNode):
Set the shadowRootType property when a node is a ShadowRoot.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:

"Shadow Content (type)" string.

  • UserInterface/Models/DOMNode.js:

(WebInspector.DOMNode):
(WebInspector.DOMNode.prototype.shadowRoots):
(WebInspector.DOMNode.prototype.shadowRootType):
Initialize state and add accessors.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.shadowRootTypeDisplayName):
(WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
Better string when an element is a Shadow Root.

  • UserInterface/Views/DOMTreeElementPathComponent.js:

(WebInspector.DOMTreeElementPathComponent):
Better to check the Shadow Root type.

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom .html-fragment.shadow):
Opacity looks poor when there is a selection. Switch to gray.

LayoutTests:

  • inspector/dom/shadowRootType-expected.txt: Added.
  • inspector/dom/shadowRootType.html: Added.
11:25 AM Changeset in webkit [202633] by commit-queue@webkit.org
  • 15 edits
    2 deletes in trunk/Source/JavaScriptCore

Unreviewed, rolling out r202627.
https://bugs.webkit.org/show_bug.cgi?id=159266

patch is broken on arm (Requested by keith_miller on #webkit).

Reverted changeset:

"LLInt should support other types of prototype GetById
caching."
https://bugs.webkit.org/show_bug.cgi?id=158083
http://trac.webkit.org/changeset/202627

11:17 AM Changeset in webkit [202632] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:16 AM Changeset in webkit [202631] by commit-queue@webkit.org
  • 6 edits
    3 adds in trunk

[JSC] Fix small issues of TypedArray prototype
https://bugs.webkit.org/show_bug.cgi?id=159248

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-29
Reviewed by Saam Barati.

Source/JavaScriptCore:

First, TypedArray's toString and Array's toString
should be the same function.
I moved the function to GlobalObject and each array type
gets it as needed.

Then TypedArray length was supposed to be configurable.
I removed the "DontDelete" flag accordingly.

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::arrayProtoToStringFunction):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSTypedArrayViewPrototype::finishCreation):

LayoutTests:

  • js/script-tests/typedarray-prototype.js: Added.
  • js/typedarray-prototype-expected.txt: Added.
  • js/typedarray-prototype.html: Added.
11:11 AM Changeset in webkit [202630] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.39

New tag.

10:42 AM Changeset in webkit [202629] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Replace MPAudioVideoRoutingActionSheet with MPAVRoutingSheet.
https://bugs.webkit.org/show_bug.cgi?id=159161
<rdar://problem/26017691>

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-06-29
Reviewed by Sam Weinig.

Source/WebCore:

Replace MPAudioVideoRoutingActionSheet SPI with MPAVRoutingSheet SPI.

  • platform/spi/ios/MediaPlayerSPI.h:

Source/WebKit2:

MPAudioVideoRoutingActionSheet is being replaced by MPAVRoutingSheet,
with only minor changes to the interface.

  • UIProcess/ios/forms/WKAirPlayRoutePicker.mm:

(-[WKAirPlayRoutePicker dealloc]):
(-[WKAirPlayRoutePicker showAirPlayPickerIPhone:]):

10:36 AM Changeset in webkit [202628] by commit-queue@webkit.org
  • 4 edits in trunk

WebRTC: ice-char can not contain '=' characters for credentials
https://bugs.webkit.org/show_bug.cgi?id=159207

Patch by Alejandro G. Castro <alex@igalia.com> on 2016-06-29
Reviewed by Eric Carlson.

Source/WebCore:

Avoid a general calculation to get a base64 without padding which
was wrong in the randomString function. Because each parameter
using the function requires a different setup depending of the
specification and this is not a general API, it is a better
solution to calculate and store the sizes we want to use, comment
them and test them, considering we use base64 to generate the
strings we just need to avoid padding.

Existing test modified to match the correct behavior.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::randomString): Now the size is the one passed.
(WebCore::MediaEndpointPeerConnection::MediaEndpointPeerConnection):
Used different valid values following the sdp parser in each case.

LayoutTests:

Modified the parser to make the regexp similar to the one we have
in WebCore.

  • fast/mediastream/resources/sdp-utils.js:

(printComparableSessionDescription):

9:53 AM Changeset in webkit [202627] by commit-queue@webkit.org
  • 15 edits
    2 adds in trunk/Source/JavaScriptCore

LLInt should support other types of prototype GetById caching.
https://bugs.webkit.org/show_bug.cgi?id=158083

Recently, we started supporting prototype load caching for get_by_id
in the LLInt. This patch is expading the caching strategy to enable
cache the prototype accessor and custom acessors.

Similarly to the get_by_id_proto_load bytecode, we are adding new
bytecodes called get_by_id_proto_accessor that uses the calculated
offset of a object to call a getter function and get_by_id_proto_custom
that stores the pointer to the custom function and call them directly
from LowLevelInterpreter.

Patch by Caio Lima <Caio Lima> on 2016-06-29
Reviewed by Keith Miller

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::printGetByIdOp):
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finalizeLLIntInlineCaches):

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFromLLInt):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::setupGetByIdPrototypeCache):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
9:50 AM Changeset in webkit [202626] by ddkilzer@apple.com
  • 4 edits
    2 adds in trunk

Crash when 'input' event handler for input[type=color] changes the input type
<https://webkit.org/b/159262>
<rdar://problem/27020404>

Reviewed by Daniel Bates.

Source/WebCore:

Fix based on a Blink change (patch by <tkent@chromium.org>):
<https://chromium.googlesource.com/chromium/src.git/+/a17cb3ecef49a078657524cdeaba33ad2083646c>

Test: fast/forms/color/color-type-change-on-input-crash.html

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::didChooseColor): Add EventQueueScope
before setValueFromRenderer() to fix the bug.

  • html/HTMLInputElement.h:

(WebCore::HTMLInputElement::setValueFromRenderer): Add comment
about how to use this method.

LayoutTests:

Test based on a Blink change (patch by <tkent@chromium.org>):
<https://chromium.googlesource.com/chromium/src.git/+/a17cb3ecef49a078657524cdeaba33ad2083646c>

  • fast/forms/color/color-type-change-on-input-crash-expected.txt: Added.
  • fast/forms/color/color-type-change-on-input-crash.html: Added.
9:18 AM Changeset in webkit [202625] by adam.bergkvist@ericsson.com
  • 10 edits in trunk

WebRTC: Misc MediaStreamEvent fixes: Update build flag and remove PassRefPtr usage
https://bugs.webkit.org/show_bug.cgi?id=159132

Reviewed by Eric Carlson.

Source/WebCore:

Use the WEB_RTC build flag instead of MEDIA_STREAM since this event is related to
RTCPeerConnection. Also remove PassRefPtr usage.

Updated existing expected results.

  • Modules/mediastream/MediaStreamEvent.cpp:

(WebCore::MediaStreamEvent::create):
(WebCore::MediaStreamEvent::MediaStreamEvent):

  • Modules/mediastream/MediaStreamEvent.h:
  • Modules/mediastream/MediaStreamEvent.idl:
  • dom/EventNames.in:

LayoutTests:

Update skip lists and expected results to not expect the MediaStreamEvent constructor in
the global scope (it's under the WEB_RTC build flag).

  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:

(all above) Remove expected results associated with MediaStreamEvent constructor.

  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:

Skip MediaStreamEvent constructor test on ports that dont't build with WEB_RTC yet.

9:10 AM Changeset in webkit [202624] by adam.bergkvist@ericsson.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(r202337) [WebRTC] Crash when loading html5test.com
https://bugs.webkit.org/show_bug.cgi?id=159145

Reviewed by Eric Carlson.

MediaEndpointPeerConnection uses an implementation of the MediaEndpoint interface to
interact with the port's WebRTC backend. A mock (MockMediaEndpoint) is used for testing.
This change adds an "empty" MediaEndpoint implementation that simplifies the case when a
port builds and tests with MediaEndpointPeerConnection/MockMediaEndpoint, but doesn't have
a "real" MediaEndpoint implementation yet (to use with MiniBrowser).

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::MediaEndpointPeerConnection):

  • platform/mediastream/MediaEndpoint.cpp:

(WebCore::EmptyRealtimeMediaSource::create):
(WebCore::EmptyRealtimeMediaSource::EmptyRealtimeMediaSource):
(WebCore::EmptyMediaEndpoint::EmptyMediaEndpoint):
(WebCore::createMediaEndpoint):

6:14 AM Changeset in webkit [202623] by clopez@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Fix the expectations for crypto/subtle tests after r202535.
https://bugs.webkit.org/show_bug.cgi?id=159260

Unreviewed.

  • platform/gtk/TestExpectations: Skip properly the crypto/subtle tests.
5:21 AM Changeset in webkit [202622] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK] Add missing install dependency after r202619
https://bugs.webkit.org/show_bug.cgi?id=156716

Unreviewed.

  • gtk/install-dependencies: Missed to add the GLES headers that are needed for building mesa on Debian.
5:16 AM Changeset in webkit [202621] by Carlos Garcia Campos
  • 14 edits in trunk/Source/WebKit2

Too much duplicated code in LayerTreeHosts implementations
https://bugs.webkit.org/show_bug.cgi?id=159144

Reviewed by Žan Doberšek.

There's some code common and duplicated in all current LayerTreeHosts implementations (Gtk, Coordinated, and
ThreadedCoordinated). The thing is even worse in the case of ThreadedCoordinated and Coordinated, where the
former is actually a special case of the later, and it seems like code was copy pasted and then modified to add
ThreadedCoordinated specific code. The problem of that approach, apart from the code duplication, is that common
parts end up diverging too. This patch moves the common parts to the base class LayerTreeHost and makes
ThreadedCoordinatedLayerTreeHost inherit from CoordinatedLayerTreeHost, to share the common code and simply add
the specific one.

  • PlatformGTK.cmake:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::scheduleLayerFlush):
(WebKit::CoordinatedLayerTreeHost::setViewOverlayRootLayer):
(WebKit::CoordinatedLayerTreeHost::setRootCompositingLayer):
(WebKit::CoordinatedLayerTreeHost::invalidate):
(WebKit::CoordinatedLayerTreeHost::sizeDidChange):
(WebKit::CoordinatedLayerTreeHost::layerFlushTimerFired):
(WebKit::CoordinatedLayerTreeHost::commitSceneState):
(WebKit::CoordinatedLayerTreeHost::createCoordinatedSurface):
(WebKit::CoordinatedLayerTreeHost::cancelPendingLayerFlush): Deleted.
(WebKit::CoordinatedLayerTreeHost::forceRepaint): Deleted.
(WebKit::CoordinatedLayerTreeHost::forceRepaintAsync): Deleted.
(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer): Deleted.
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged): Deleted.
(WebKit::CoordinatedLayerTreeHost::pageBackgroundTransparencyChanged): Deleted.
(WebKit::CoordinatedLayerTreeHost::graphicsLayerFactory): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost):
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange):
(WebKit::ThreadedCoordinatedLayerTreeHost::setVisibleContentsRect):
(WebKit::ThreadedCoordinatedLayerTreeHost::commitSceneState):
(WebKit::ThreadedCoordinatedLayerTreeHost::create): Deleted.
(WebKit::ThreadedCoordinatedLayerTreeHost::scrollNonCompositedContents): Deleted.
(WebKit::ThreadedCoordinatedLayerTreeHost::contentsSizeChanged): Deleted.
(WebKit::ThreadedCoordinatedLayerTreeHost::didChangeViewportProperties): Deleted.
(WebKit::ThreadedCoordinatedLayerTreeHost::didScaleFactorChanged): Deleted.
(WebKit::ThreadedCoordinatedLayerTreeHost::setNativeSurfaceHandleForCompositing): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::layerHostDidFlushLayers):

  • WebProcess/WebPage/DrawingAreaImpl.h:
  • WebProcess/WebPage/LayerTreeHost.cpp:

(WebKit::LayerTreeHost::~LayerTreeHost):
(WebKit::LayerTreeHost::setLayerFlushSchedulingEnabled):
(WebKit::LayerTreeHost::pauseRendering):
(WebKit::LayerTreeHost::resumeRendering):
(WebKit::LayerTreeHost::invalidate):

  • WebProcess/WebPage/LayerTreeHost.h:

(WebKit::LayerTreeHost::layerTreeContext):
(WebKit::LayerTreeHost::setShouldNotifyAfterNextScheduledLayerFlush):
(WebKit::LayerTreeHost::setNonCompositedContentsNeedDisplay):
(WebKit::LayerTreeHost::setNonCompositedContentsNeedDisplayInRect):
(WebKit::LayerTreeHost::scrollNonCompositedContents):
(WebKit::LayerTreeHost::graphicsLayerFactory):
(WebKit::LayerTreeHost::contentsSizeChanged):
(WebKit::LayerTreeHost::didChangeViewportProperties):
(WebKit::LayerTreeHost::setNativeSurfaceHandleForCompositing):
(WebKit::LayerTreeHost::setViewOverlayRootLayer):
(WebKit::LayerTreeHost::forceRepaintAsync): Deleted.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::invalidate):
(WebKit::LayerTreeHostGtk::setViewOverlayRootLayer):
(WebKit::LayerTreeHostGtk::LayerTreeHostGtk): Deleted.
(WebKit::LayerTreeHostGtk::setRootCompositingLayer): Deleted.
(WebKit::LayerTreeHostGtk::setNonCompositedContentsNeedDisplay): Deleted.
(WebKit::LayerTreeHostGtk::scrollNonCompositedContents): Deleted.
(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing): Deleted.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
4:52 AM Changeset in webkit [202620] by alex
  • 2 edits in trunk/Source/WebCore

Fix assertion in debug build when creating the SocketStreamHandle object.

We have to call relaxAdoptionRequirement to avoid the assertion
when protecting the non-adopted SocketStreamHandle we are
creating. Update to r202370.

Rubber-stamped by Carlos Garcia Campos.

  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):

3:52 AM RebaselineServer edited by Konstantin Tokarev
NWRT has superceded old run-webkit-tests (diff)
3:47 AM WikiStart edited by Konstantin Tokarev
Fixed typo momory -> memory (diff)
3:31 AM Changeset in webkit [202619] by clopez@igalia.com
  • 9 edits
    3 adds in trunk

[GTK][Wayland] Implement support for running the layout tests under a (virtualized) Wayland environment.
https://bugs.webkit.org/show_bug.cgi?id=156716

Reviewed by Carlos Garcia Campos and Michael Catanzaro.

Tools:

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py: Allow to run the layout tests on Wayland by passing --wayland

(parse_args):

  • Scripts/webkitpy/port/gtk.py:

(GtkPort.init):
(GtkPort._driver_class):
(GtkPort.setup_environ_for_server): Set the softgl renderer (now with EGL support) for the wayland tests.
(GtkPort._search_paths): When running inside the wayland environment, use ${port}-wayland as an additional
platform directory for storing the wayland specific layout test results and expectations for ${port}.
For example, the file LayoutTests/platform/gtk-wayland/TestExpectations will be used as the most specific
test expectations file on the GTK port when running the tests with the --wayland command line switch.
Baseline search path: gtk-wayland -> gtk -> wk2 -> generic.

  • Scripts/webkitpy/port/westondriver.py: Run the weston display server inside Xvfb.

(WestonDriver.check_driver):
(WestonDriver.init):
(WestonDriver._start):

  • Scripts/webkitpy/port/westondriver_unittest.py: Fix unittests for the new Weston inside Xvfb driver.

(WestonXvfbDriverDisplayTest):
(WestonXvfbDriverDisplayTest.init):
(WestonXvfbDriverDisplayTest._xvfb_run):
(WestonDriverTest.make_driver):
(WestonDriverTest.test_start):

  • gtk/install-dependencies: Add the new dependencies that are required for either building weston,

or to satisfy the pkg-config check of the new added modules in JHBuild.

  • gtk/jhbuild.modules: For building weston new enough on Debian Jessie we also need to build wayland

and libinput. Declare a pkg-config entry on all this modules to avoid building them if the ones
provided by the system are already new enough.
Switch the Mesa software rasterizer from a Xlib based GLX renderer to a DRI based EGL/GLX one.
It was the only way to get the software EGL rasterizer working without depending on user drivers.
Due to this the Mesa build now depends on a modern enough libdrm, so we also use JHBuild pkg-config
feature to avoid building libdrm when the one provided by the system is new enough.

  • gtk/jhbuildrc:
  • gtk/patches/xserver-search-for-DRI-drivers-at-LIBGL_DRIVERS_PATH-environ.patch: Added.

Xorg had no support for searching the DRI drivers on a custom path at runtime.
This patch implements support for that reusing the same variable that we use with Mesa to set the
custom path for the DRI drivers path.

LayoutTests:

  • platform/gtk-wayland/TestExpectations: Added. Add initial Wayland specific test expectations.
3:28 AM Changeset in webkit [202618] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WebRTC][OWR] Bump gst-plugins-openwebrtc jhbuild version to get scream fixes
https://bugs.webkit.org/show_bug.cgi?id=159256

Patch by Alejandro G. Castro <alex@igalia.com> on 2016-06-29
Reviewed by Philippe Normand.

We need the last fixes in the repository to make the scream queue
work with apprtc.

  • gtk/jhbuild.modules:
3:19 AM Changeset in webkit [202617] by ddkilzer@apple.com
  • 3 edits
    3 adds in trunk

Throw exceptions for invalid number of channels for ConvolverNode
<https://webkit.org/b/159238>
<rdar://problem/27020410>

Reviewed by Brent Fulgham.

Source/WebCore:

Fix based on a Blink change (patch by <rtoy@chromium.org>):
<https://chromium.googlesource.com/chromium/src.git/+/0cc26bbb7175aec77910d0b47faf9f8c8a640fe5>

Test: webaudio/convolver-channels.html

  • Modules/webaudio/ConvolverNode.cpp:

(WebCore::ConvolverNode::setBuffer): Throw an exception for
anything but 1, 2 or 4 channels.

LayoutTests:

Test based on a Blink change (patch by <rtoy@chromium.org>):
<https://chromium.googlesource.com/chromium/src.git/+/0cc26bbb7175aec77910d0b47faf9f8c8a640fe5>

compatibility.js based on a Blink change (patch by <Raymond Toy>):
<https://chromium.googlesource.com/chromium/src.git/+/f846f5a461d1fcdbe5152898576c125058079ed1>

  • webaudio/convolver-channels-expected.txt: Added.
  • webaudio/convolver-channels.html: Added.
  • webaudio/resources/compatibility.js: Added.
12:23 AM Changeset in webkit [202616] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

REGRESSION(r198782, r201043): [image-decoders] Flickering with some animated gif
https://bugs.webkit.org/show_bug.cgi?id=159089

Reviewed by Antonio Gomes.

There's some flickering when loading big enough animated gifs running the animation in a loop. The first time it
loads everything is fine, but after the first loop iteration there are several flickering effects, once every
time the animation finishes and some others happening in the middle of the animation loop. The flickering
happens because we fail to render some of the frames, and it has two diferent causes:

  • In r198782, ImageDecoder::createFrameImageAtIndex(), was modified to check first if the image is empty to

return early, and then try to get the frame image from the decoder. This is the aone causing the flickering
always on the first frame after one iteration. It happens because ImageDecoder::size() is always empty at that
point. The first time doesn't happen because the gif is loaded and BitmapImage calls isSizeAvailable() from
BitmapImage::dataChanged(). The isSizeAvailable call makes the gif decoder calculate the size. But for the next
iterations, frames are cached and BitmapImage already has the decoded data so isSizeAvailable is not called
again. When createFrameImageAtIndex() is called again for the first frame, size is empty until the gif decoder
creates the reader again, which happens when frameBufferAtIndex() is called, so after that the size is
available. So, we could call isSizeAvailable before checking the size, or simply do the check after the
frameBufferAtIndex() call as we used to do.

  • In r201043 BitmapImage::destroyDecodedDataIfNecessary() was fixed to use the actual bytes used by the frame

in order to decide whether to destroy decoded data or not. This actually revealed a bug, it didn't happen before
because we were never destroying frames before. The bug is in the gif decoder that doesn't correctly handle the
case of destroying only some of the frames from the buffer cache. The gif decoder is designed to always process the
frames in order, the reader keeps an index of the currently processed frame, so when some frames are read from the
cache, and then we ask the decoder for a not cached frame, the currently processed frame is not in sync with the
actual frame we are asking for, and we end do not processing any frame at all.

  • platform/image-decoders/ImageDecoder.cpp:

(WebCore::ImageDecoder::createFrameImageAtIndex): Check the size after calling frameBufferAtIndex().

  • platform/image-decoders/gif/GIFImageDecoder.cpp:

(WebCore::GIFImageDecoder::clearFrameBufferCache): Delete the reader when clearing the cache since it's out of sync.

Jun 28, 2016:

11:33 PM Changeset in webkit [202615] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

[GStreamer] Adaptive streaming issues
https://bugs.webkit.org/show_bug.cgi?id=144040

Reviewed by Philippe Normand.

There are multiple deadlocks in the web process when HLS content is loaded by GStreamer. It happens because gst
is using several threads to download manifest, fragments, monitor the downloads, etc. To download the fragments
and manifest it always creates the source element in a separate thread, something that is not actually expected
to happen in WebKit source element. Our source element is always scheduling tasks (start, stop, need-data,
enough-data and seek) to the main thread, and those downloads that use the ResourceHandleStreamingClient
(there's no player associated) also happen in the main thread, because libsoup calls all its async callbacks in
the main thread. So, the result is that it can happen that we end up blocking the main thread in a lock until
the download finishes, but the download never finishes because tasks are scheduled in the main thread that is
blocked in a lock. This can be prevented by always using a secondary thread for downloads made by
ResourceHandleStreamingClient, using its own run loop with a different GMainContext so that libsoup sends
callbacks to the right thread. We also had to refactor the tasks a bit, leaving the thread safe parts to be run
in the calling thread always, and only scheduling to the main thread in case of not using
ResourceHandleStreamingClient and only for the non thread safe parts.
This patch also includes r200455 that was rolled out, but it was a perfectly valid workaround for GST bug.

  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp:

(WTF::ensureGRef): Consume the floating ref if needed.

  • platform/graphics/gstreamer/GRefPtrGStreamer.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webkit_web_src_init): Check if object is being created in the main thread.
(webKitWebSrcStop): Stop the media resource loader in the main thread and the resource handle streaming in the
current thread.
(webKitWebSrcStart): Start the media resource loader in the main thread and the resource handle streaming in
the current thread.
(webKitWebSrcChangeState): Call webKitWebSrcStart and webKitWebSrcStop in the current thread.
(webKitWebSrcNeedData): Update status in the current thread and notify the media resource loader in the main thread.
(webKitWebSrcEnoughData): Ditto.
(webKitWebSrcSeek): Ditto.
(webKitWebSrcSetMediaPlayer): Add an assert to ensure that source elements used by WebKit are always created in
the main thread.
(ResourceHandleStreamingClient::ResourceHandleStreamingClient): Use a secondary thread to do the download.
(ResourceHandleStreamingClient::~ResourceHandleStreamingClient): Stop the secondary thread.
(ResourceHandleStreamingClient::setDefersLoading): Notify the secondary thread.

11:25 PM Changeset in webkit [202614] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebCore

Remove ThreadableLoaderOptions origin
https://bugs.webkit.org/show_bug.cgi?id=159221

Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-28
Reviewed by Sam Weinig.

No change of behavior.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadResourceSynchronously): Adding origing parameter.
(WebCore::DocumentThreadableLoader::create): Ditto.
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Ditto.
(WebCore::DocumentThreadableLoader::redirectReceived): Setting m_origin.
(WebCore::DocumentThreadableLoader::securityOrigin): Checking m_origin.

  • loader/DocumentThreadableLoader.h: Adding m_origin member.
  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): Removing origin.
(WebCore::ThreadableLoaderOption::isolatedCopy): Deleted.

  • loader/ThreadableLoader.h: Removing origin parameter and isolatedCopy function.
  • loader/WorkerThreadableLoader.cpp:

(WebCore::LoaderTaskOptions::LoaderTaskOptions): Structure to pass loader task options from one thread to another.
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):

  • page/EventSource.cpp:

(WebCore::EventSource::connect): Removing setting of the origin.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously): Ditto.
(WebCore::WorkerScriptLoader::loadAsynchronously): Ditto.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest): Ditto.

10:55 PM Changeset in webkit [202613] by fpizlo@apple.com
  • 2 edits
    8 adds in trunk/PerformanceTests

ES6SampleBench should have a harness
https://bugs.webkit.org/show_bug.cgi?id=159246

Reviewed by Saam Barati.

This adds a simple web harness for ES6SampleBench. It runs Air and Basic 10 times for 200
iterations each and reports three metrics:

First iteration: the time it takes for the first iteration to run. This is the first
iteration after the benchmark is loaded into the iframe, so it's representative of what
would happen if one of these workloads only ran for a short time.

Worst 2%: of the last 199 iterations, the average of the worst 2% iterations. If code like
any of these workloads was used in an important event handler, you'd want that code to run
well in the worst case in addition to having great throughput.

Steady state: the total of the last 199 iterations. This is representative of what would
happen if you ran code like this for a long time.

The total score is the geomean of the firstIteration/worstCase/steadyState numbers of the
two benchmarks.

The harness does statistics using Student's T-distribution confidence intervals.

  • ES6SampleBench/Basic/benchmark.js:

(Benchmark):

  • ES6SampleBench/air_benchmark.js: Added.
  • ES6SampleBench/basic_benchmark.js: Added.
  • ES6SampleBench/driver.js: Added.

(Driver):
(Driver.prototype.addBenchmark):
(Driver.prototype.start):
(Driver.prototype.reportResult):
(Driver.prototype.reportError):
(Driver.prototype._recomputeSummary.Geomean):
(Driver.prototype._recomputeSummary.Geomean.prototype.add):
(Driver.prototype._recomputeSummary.Geomean.prototype.get result):
(Driver.prototype._recomputeSummary):
(Driver.prototype._iterate):
(Driver.prototype._updateIterations):

  • ES6SampleBench/glue.js: Added.
  • ES6SampleBench/index.html: Added.
  • ES6SampleBench/results.js: Added.

(Results):
(Results.prototype.get benchmark):
(Results.prototype.reset):
(Results.prototype.reportRunning):
(Results.prototype.reportDone):
(Results.prototype.reportResult.averageAbovePercentile):
(Results.prototype.reportResult):
(Results.prototype.reportError):

  • ES6SampleBench/stats.js: Added.

(Stats):
(Stats.prototype.reset):
(Stats.prototype.add):
(Stats.prototype.get numIterations):
(Stats.prototype.valueForIteration):
(Stats.get result.tDist):
(Stats.prototype.get result):
(Stats.prototype.toString):
(Stats.prototype._update):

  • ES6SampleBench/style.css: Added.

(body):
(body, th, tr):
(h1, h2, h3, h4):
(h1):
(h2):
(h3):
(hr):
(address):
(img):
(.underline):
(ol.loweralpha):
(ol.upperalpha):
(ol.lowerroman):
(ol.upperroman):
(ol.arabic):
(.banner-link:link, .banner-link:visited):
(:link, :visited):
(h4 :link, h4 :visited, h5 :link, h5 :visited, h6 :link, h6 :visited):
(.anchor:link, .anchor:visited):
(* > .anchor:link, * > .anchor:visited):
(span:hover .anchor):
(a.forbidden, span.forbidden):
(a.missing:hover):
(a.closed:link, a.closed:visited, span.closed):
(pre):
(div.code):
(div.code pre):
(dt):
(dd):
(dd:last-child):
(.site-logo):
(.site-logo .tagline):
(table):
(#contents):
(p):
(p:last-child):
(th):
(td):

10:04 PM Changeset in webkit [202612] by Ryan Haddad
  • 4 edits in trunk/Source/WebKit2

Unreviewed, rolling out r202586 and r202595.
https://bugs.webkit.org/show_bug.cgi?id=159247

These changes broke the iOS build (Requested by ryanhaddad on
#webkit).

Reverted changesets:

"Keep track of when a WKWebView is blank before the initial
non-empty layout"
https://bugs.webkit.org/show_bug.cgi?id=159217
http://trac.webkit.org/changeset/202586

"Try to fix the build."
http://trac.webkit.org/changeset/202595

Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-28

9:49 PM Changeset in webkit [202611] by commit-queue@webkit.org
  • 89 edits in trunk

Unreviewed, rolling out r202580.
https://bugs.webkit.org/show_bug.cgi?id=159245

Caused all WKTR tests to fail on GuardMalloc and Production
only for unknown reasons, investigating offline. (Requested by
brrian on #webkit).

Reverted changeset:

"RunLoop::Timer should use constructor templates instead of
class templates"
https://bugs.webkit.org/show_bug.cgi?id=159153
http://trac.webkit.org/changeset/202580

9:31 PM Changeset in webkit [202610] by fred.wang@free.fr
  • 1 edit
    3 adds in trunk/LayoutTests

AX: Add accessibility tests for MathML operators
https://bugs.webkit.org/show_bug.cgi?id=124836

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-28
Reviewed by Joanmarie Diggs.

We add one test to verify the (sub)roles of MathML operators with various fence and separator
properties. These properties can be set via an explicit attribute or read from the operator
dictionary.

  • accessibility/math-mo-fences-and-separators.html: Added.
  • platform/gtk/accessibility/math-mo-fences-and-separators-expected.txt: Added.
  • platform/mac/accessibility/math-mo-fences-and-separators-expected.txt: Added.
9:17 PM Changeset in webkit [202609] by ddkilzer@apple.com
  • 23 edits in trunk/LayoutTests

Enhance shouldNotThrow()/shouldThrow() to accept functions and a descriptive message
<https://webkit.org/b/159232>

Reviewed by Brent Fulgham.

Based on a Blink change (patch by <hongchan@chromium.org>):
<https://src.chromium.org/viewvc/blink?view=revision&revision=192204>

Currently, shouldNotThrow() and shouldThrow() take the following
arguments:

shouldNotThrow(evalString)
shouldThrow(evalString, expectedExceptionString)

The challenges with this design are:

1) The 'evalString' must capture every variable that it

needs, which means the code can be long, and concatenated
into a single line. It would be really nice to be able
to use an (anonymous) function to capture variables
instead.

2) The 'evalString' is literally printed out in the test

results, which isn't always the most descriptive. A
descriptive message would make it clearer what failed.

3) When changing a shouldThrow() into a shouldNotThrow()

or copying/pasting code, it's possible to forget to
remove 'expectedExceptionString' from the function call.

This patch changes the methods to take the following arguments:

shouldNotThrow(evalString|function [, message])
shouldThrow(evalString|function, expectedExceptionString [, message])

If 'function' is passed in, then it is invoked instead of
evaluated, and 'message' replaces the literal code in the
pass/fail output.

This patch also adds the global 'didFailSomeTests' variable to
js-test.js, which already exists in js-test-pre.js. This was
added to js-test-pre.js in r153203 by Oliver Hunt to
LayoutTests/fast/js/resources/js-test-pre.js.

  • fast/canvas/webgl/canvas-supports-context-expected.txt:
  • fast/canvas/webgl/gl-bind-attrib-location-before-compile-test-expected.txt:
  • fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
  • fast/dom/getElementsByClassName/ASCII-case-insensitive-expected.txt:
  • storage/indexeddb/cursor-basics-expected.txt:
  • storage/indexeddb/cursor-basics-private-expected.txt:
  • Update expected results to include "Some tests fail." since some subtests actually do fail during these tests.
  • fast/css/parsing-css-lang.html:
  • fast/css/parsing-css-matches-1.html:
  • fast/css/parsing-css-matches-2.html:
  • fast/css/parsing-css-matches-3.html:
  • fast/css/parsing-css-matches-4.html:
  • fast/css/parsing-css-not-1.html:
  • fast/css/parsing-css-not-2.html:
  • fast/css/parsing-css-not-3.html:
  • fast/css/parsing-css-not-4.html:
  • fast/css/parsing-css-nth-child-of-1.html:
  • fast/css/parsing-css-nth-child-of-2.html:
  • fast/css/parsing-css-nth-last-child-of-1.html:
  • fast/css/parsing-css-nth-last-child-of-2.html:
  • js/script-tests/arrowfunction-supercall.js:
  • Remove expectedExceptionString from shouldNotThrow() calls after they were changed from shouldThrow() calls.
  • resources/js-test-pre.js:

(shouldNotThrow): Change to invoke first argument if it is a
function, else use eval() as before. Use second argurment in
place of first argument (if set) when printing results. NOTE:
Care was taken not to add any lines of code to prevent changes
to test results.
(shouldThrow): Ditto. Reformat code.

  • resources/js-test.js: Declare 'didFailSomeTests'.

(testFailed): Set 'didFailSomeTests' to true when a test fails.
(shouldNotThrow): Same changes as js-test-pre.js.
(shouldThrow): Ditto.
(isSuccessfullyParsed): Output a message if 'didFailSomeTests'
is true.

9:06 PM Changeset in webkit [202608] by keith_miller@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

We should not crash there is a finally inside a for-in loop
https://bugs.webkit.org/show_bug.cgi?id=159243
<rdar://problem/27018910>

Reviewed by Benjamin Poulain.

Previously we would swap the m_forInContext with an empty vector
then attempt to shrink the size of m_forInContext by the amount
we expected. This meant that if there was more than one ForInContext
on the stack and we wanted to pop exactly one off we would crash.
This patch makes ForInContexts RefCounted so they can be duplicated
into other vectors. It also has ForInContexts copy the entire stack
rather than do the swap that we did before. This makes ForInContexts
work the same as the other contexts.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitComplexPopScopes):
(JSC::BytecodeGenerator::pushIndexedForInScope):
(JSC::BytecodeGenerator::pushStructureForInScope):

  • bytecompiler/BytecodeGenerator.h:
  • tests/stress/finally-for-in.js: Added.

(repeat):
(createSimple):

9:03 PM Changeset in webkit [202607] by benjamin@webkit.org
  • 5 edits in trunk/Source/WebCore

Rename ChildrenAffectedByActive to StyleAffectedByActive
https://bugs.webkit.org/show_bug.cgi?id=159187

Reviewed by Antti Koivisto.

Flags named "ChildrenAffectedBy" are used when the invalidation
of children is so crazy that we invalidate the whole parent subtree instead.

That's not the case for :active. It is a straightforward element invalidation.
Consequently, the property is renamed to StyleAffectedByActive.

  • dom/Element.cpp:

(WebCore::Element::setActive):
(WebCore::Element::setStyleAffectedByActive):
(WebCore::Element::hasFlagsSetDuringStylingOfChildren):
(WebCore::Element::rareDataStyleAffectedByActive):
(WebCore::Element::setChildrenAffectedByActive): Deleted.
(WebCore::Element::rareDataChildrenAffectedByActive): Deleted.

  • dom/Element.h:

(WebCore::Element::styleAffectedByActive):
(WebCore::Element::childrenAffectedByActive): Deleted.

  • dom/ElementRareData.h:

(WebCore::ElementRareData::styleAffectedByActive):
(WebCore::ElementRareData::setStyleAffectedByActive):
(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::resetDynamicRestyleObservations):
(WebCore::ElementRareData::childrenAffectedByActive): Deleted.
(WebCore::ElementRareData::setChildrenAffectedByActive): Deleted.

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelations):

8:56 PM Changeset in webkit [202606] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Use a regex to check if a test step is for JavaScriptCore
https://bugs.webkit.org/show_bug.cgi?id=159224

Patch by Srinivasan Vijayaraghavan <svijayaraghavan@apple.com> on 2016-06-28
Reviewed by Geoffrey Garen.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotCombinedQueueView.js:

(BuildbotCombinedQueueView.prototype.update): Replace array membership test with regex test.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:

(BuildbotIteration.prototype._parseData): Replace array membership test with regex test.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotTesterQueueView.js:

(BuildbotTesterQueueView.prototype.appendBuilderQueueStatus): Replace array membership test with regex test.

8:53 PM Changeset in webkit [202605] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Unreviewed, rolling out r202598.
https://bugs.webkit.org/show_bug.cgi?id=159244

broke the build. (Requested by keith_miller on #webkit).

Reverted changeset:

"Try to fix the build."
http://trac.webkit.org/changeset/202598

7:26 PM Changeset in webkit [202604] by msaboff@apple.com
  • 2 edits in trunk/Tools

btjs no longer accepts optional frame count argument
https://bugs.webkit.org/show_bug.cgi?id=159235

Reviewed by Saam Barati.

Fix the detection of optional backtrace-depth parameter to use the length
of the command.

  • lldb/lldb_webkit.py:

(btjs):

7:07 PM Changeset in webkit [202603] by jonlee@apple.com
  • 2 edits in trunk/Tools

Update animometer.plan

Rubber-stamped by Said Abou-Hallawa.

  • Scripts/webkitpy/benchmark_runner/data/plans/animometer.plan: Update to r202601.
7:06 PM Changeset in webkit [202602] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Assertion failure or crash when accessing let-variable in TDZ with eval with a function in it that returns let variable
https://bugs.webkit.org/show_bug.cgi?id=158796
<rdar://problem/26984659>

Reviewed by Michael Saboff.

There was a bug where some functions inside of an eval were
omitting a necessary TDZ check. This obviously leads to bad
things because a variable under TDZ is the null pointer.
The eval's bytecode was generated with the correct TDZ set, but
it created all its functions before pushing that TDZ set onto
the stack. That's a mistake. Those functions need to be created with
that TDZ set. The solution is simple, the TDZ set that the eval
is created with needs to be pushed onto the TDZ stack before
the eval creates any functions.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • tests/stress/variable-under-tdz-eval-tricky.js: Added.

(assert):
(throw.new.Error):
(assert.try.underTDZ):

6:52 PM Changeset in webkit [202601] by jonlee@apple.com
  • 4 edits
    2 copies in trunk/PerformanceTests

Update focus test
https://bugs.webkit.org/show_bug.cgi?id=159242
rdar://problem/27070007

Reviewed by Dean Jackson.
Provisionally reviewed by Said Abou-Hallawa.

Move previous test to dom suite, and update the test for better reporting of frame rate, although
it uses a different rendering path.

  • Animometer/resources/debug-runner/tests.js: Add to dom suite.
  • Animometer/tests/dom/focus.html: Copied from PerformanceTests/Animometer/tests/master/focus.html.
  • Animometer/tests/dom/resources/focus.js: Copied from PerformanceTests/Animometer/tests/master/resources/focus.js.
  • Animometer/tests/master/focus.html: Remove center element.
  • Animometer/tests/master/resources/focus.js: Use narrower size range with smaller particles. Remove the

container elements. Inline getBlurValue and getOpacityValue since they are only called once.

6:37 PM Changeset in webkit [202600] by dino@apple.com
  • 1 edit
    1 add in trunk/Websites/webkit.org

Add a more interactive version of the demo.

  • blog-files/color-gamut/comparison.html: Added.
6:04 PM Changeset in webkit [202599] by jiewen_tan@apple.com
  • 14 edits
    4 adds in trunk

Implement "replacement" codec
https://bugs.webkit.org/show_bug.cgi?id=159180
<rdar://problem/26015178>

Reviewed by Brent Fulgham.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/nodes/Document-characterSet-normalization-expected.txt:

Source/WebCore:

Test: fast/encoding/charset-replacement.html

Add support for "replacement" codec according to the spec:
https://encoding.spec.whatwg.org/#replacement
According to the spec, encoding labels {"csiso2022kr", "hz-gb-2312", "iso-2022-cn",
"iso-2022-cn-ext", "iso-2022-kr"} are used to conduct certain attacks that abuse
a mismatch between encodings supported on the server and the client. Therefore,
they are grouped under the "replacement" codec, which does the following things
to prevent those attacks.
1) Decode: terminates with a single U+FFFD.
2) Encode: treated as UTF-8.

Furthermore, the "replacement" codec is a specification convenience to group those
vulnerable encoding labels. Therefore, it should not be able to use directly.

This change is based on the following Blink changes:
https://codereview.chromium.org/265973003, and
https://codereview.chromium.org/261013007.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/text/TextAllInOne.cpp:
  • platform/text/TextCodecReplacement.cpp: Added.

(WebCore::TextCodecReplacement::create):
(WebCore::TextCodecReplacement::TextCodecReplacement):
(WebCore::TextCodecReplacement::registerEncodingNames):
(WebCore::TextCodecReplacement::registerCodecs):
(WebCore::TextCodecReplacement::decode):

  • platform/text/TextCodecReplacement.h: Added.
  • platform/text/TextEncoding.cpp:

(WebCore::TextEncoding::TextEncoding):

  • platform/text/TextEncodingRegistry.cpp:

(WebCore::isReplacementEncoding):
(WebCore::extendTextCodecMaps):

  • platform/text/TextEncodingRegistry.h:

LayoutTests:

  • fast/encoding/char-decoding-expected.txt:
  • fast/encoding/char-decoding.html:
  • fast/encoding/char-encoding-expected.txt:
  • fast/encoding/char-encoding.html:
  • fast/encoding/charset-replacement-expected.txt: Added.
  • fast/encoding/charset-replacement.html: Added.
5:47 PM Changeset in webkit [202598] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2
  • UIProcess/API/Cocoa/WKWebView.mm:

(convertSystemLayoutDirection):
(-[WKWebView _setIsBlankBeforeFirstNonEmptyLayout:]):
(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
5:38 PM Changeset in webkit [202597] by msaboff@apple.com
  • 5 edits in trunk

REGRESSION (r200946): Improper backtracking from last alternative in sticky patterns
https://bugs.webkit.org/show_bug.cgi?id=159233

Reviewed by Mark Lam.

Source/JavaScriptCore:

Jump to fail exit code when the last alternative of a sticky pattern fails.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::backtrack):

LayoutTests:

Updated tests.

  • js/regexp-sticky-expected.txt:
  • js/script-tests/regexp-sticky.js:
5:18 PM Changeset in webkit [202596] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/images/composited-animated-gif-outside-viewport.html as flaky on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=157592

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
5:12 PM BadContent edited by Lucas Forschler
(diff)
4:07 PM Changeset in webkit [202595] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Try to fix the build.

  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/API/Cocoa/WKWebViewInternal.h:
3:16 PM Changeset in webkit [202594] by fpizlo@apple.com
  • 2 edits in trunk/Tools

Unreviewed, fix JSC tests. Air.js moved, and the harness needs to know.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

3:12 PM Changeset in webkit [202593] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fixed tile height for mobile phone-sized viewports.
https://bugs.webkit.org/show_bug.cgi?id=159228

Reviewed by Timothy Hatcher.

Prevents cutoff text for featured tiles and prevents overlapping text and controls on the Twitter tile for phone-sized viewports.

  • wp-content/themes/webkit/style.css:

(.twitter-tile.text-only .tile-content):
(.tile):

3:11 PM Changeset in webkit [202592] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Remove incorrect comments in HTMLCanvasElement
https://bugs.webkit.org/show_bug.cgi?id=159229

Reviewed by Sam Weinig.

These comments are wrong.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::probablySupportsContext):
(WebCore::HTMLCanvasElement::getContext): Deleted.

3:09 PM Changeset in webkit [202591] by fpizlo@apple.com
  • 2 edits
    2 moves
    1 add in trunk/PerformanceTests

Move Air.js and Basic into ES6SampleBench

Rubber stamped by Geoffrey Garen.

We want to group our ES6 benchmarks together, and eventually, we want to give them a
common harness.

  • Air.js: Removed.
  • Air.js/README.md: Removed.
  • Air.js/airjs-tests.yaml: Removed.
  • Air.js/all.js: Removed.
  • Air.js/allocate_stack.js: Removed.
  • Air.js/arg.js: Removed.
  • Air.js/basic_block.js: Removed.
  • Air.js/benchmark.js: Removed.
  • Air.js/code.js: Removed.
  • Air.js/custom.js: Removed.
  • Air.js/frequented_block.js: Removed.
  • Air.js/insertion_set.js: Removed.
  • Air.js/inst.js: Removed.
  • Air.js/liveness.js: Removed.
  • Air.js/make_dist.sh: Removed.
  • Air.js/opcode.js: Removed.
  • Air.js/payload-airjs-ACLj8C.js: Removed.
  • Air.js/payload-gbemu-executeIteration.js: Removed.
  • Air.js/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
  • Air.js/payload-typescript-scanIdentifier.js: Removed.
  • Air.js/reg.js: Removed.
  • Air.js/stack_slot.js: Removed.
  • Air.js/stress-test.js: Removed.
  • Air.js/strip-hash.rb: Removed.
  • Air.js/symbols.js: Removed.
  • Air.js/test.html: Removed.
  • Air.js/test.js: Removed.
  • Air.js/tmp.js: Removed.
  • Air.js/tmp_base.js: Removed.
  • Air.js/util.js: Removed.
  • Basic: Removed.
  • Basic/ast.js: Removed.
  • Basic/basic.js: Removed.
  • Basic/benchmark.js: Removed.
  • Basic/caseless_map.js: Removed.
  • Basic/lexer.js: Removed.
  • Basic/number.js: Removed.
  • Basic/parser.js: Removed.
  • Basic/random.js: Removed.
  • Basic/state.js: Removed.
  • Basic/test.html: Removed.
  • Basic/test.js: Removed.
  • Basic/util.js: Removed.
  • ES6SampleBench: Added.
  • ES6SampleBench/Air: Copied from PerformanceTests/Air.js.
  • ES6SampleBench/Basic: Copied from PerformanceTests/Basic.
  • Skipped:
2:35 PM Changeset in webkit [202590] by ggaren@apple.com
  • 4 edits in trunk/Source/WebCore

CrashTracer beneath JSC::MarkedBlock::specializedSweep
https://bugs.webkit.org/show_bug.cgi?id=159223

Reviewed by Saam Barati.

This crash is caused by a media element re-entering JS during the GC
sweep phase.

In theory, other CachedResourceClients in the DOM might also trigger
similar bugs, but our data only implicates the media elements, so this
fix targets them.

  • html/HTMLDocument.h: Document has no reason to inherit from

CachedResourceClient. I found this becuase I had to search for all
CachedResourceClients in researching this patch.

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::invalidate): Delay our call to
stopLoading because it might re-enter JS, and we might have been called
by the GC sweep phase destroying a media element.

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::invalidate): Ditto.

2:33 PM Changeset in webkit [202589] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

REGRESSION (r188730): Web Inspector: Warning icons incorrectly positioned in CSS Rules sidebar
https://bugs.webkit.org/show_bug.cgi?id=157869
<rdar://problem/26356520>

Reviewed by Timothy Hatcher.

Before r188730, CSS text always had a line break as a prefix. r188730 started trimming text.
This patch keeps trimming unnecessary whitespace but brings back required line break prefix.

  • UserInterface/Models/CSSStyleDeclaration.js:

(WebInspector.CSSStyleDeclaration.prototype.set text):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

Make PrefixWhitespace and SuffixWhitespace public.

(WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContent):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateTextMarkers):
Remove an if conditional as it's always true.

2:30 PM Changeset in webkit [202588] by sbarati@apple.com
  • 29 edits in trunk/Source

some Watchpoints' ::fireInternal method will call operations that might GC where the GC will cause the watchpoint itself to destruct
https://bugs.webkit.org/show_bug.cgi?id=159198
<rdar://problem/26302360>

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

Firing a watchpoint may cause a GC to happen. This GC could destroy various
Watchpoints themselves while they're in the process of firing. It's not safe
for most Watchpoints to be destructed while they're in the middle of firing.
This GC could also destroy the WatchpointSet itself, and it's not in a safe
state to be destroyed. WatchpointSet::fireAllWatchpoints now defers gc for a
while. This prevents a GC from destructing any Watchpoints while they're
in the process of firing. This bug was being hit by the stress GC bots
because we would destruct a particular Watchpoint while it was firing,
and then we would access its field after it had already been destroyed.
This was causing all kinds of weird symptoms. Also, this was easier to
catch when running with guard malloc because the first access after
destruction would lead to a crash.

  • bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp:

(JSC::AdaptiveInferredPropertyValueWatchpointBase::fire):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecode/VariableWriteFireDetail.cpp:

(JSC::VariableWriteFireDetail::dump):
(JSC::VariableWriteFireDetail::touch):

  • bytecode/VariableWriteFireDetail.h:
  • bytecode/Watchpoint.cpp:

(JSC::WatchpointSet::add):
(JSC::WatchpointSet::fireAllSlow):
(JSC::WatchpointSet::fireAllWatchpoints):
(JSC::InlineWatchpointSet::add):
(JSC::InlineWatchpointSet::fireAll):
(JSC::InlineWatchpointSet::inflateSlow):

  • bytecode/Watchpoint.h:

(JSC::WatchpointSet::startWatching):
(JSC::WatchpointSet::fireAll):
(JSC::WatchpointSet::touch):
(JSC::WatchpointSet::invalidate):
(JSC::WatchpointSet::isBeingWatched):
(JSC::WatchpointSet::offsetOfState):
(JSC::WatchpointSet::addressOfSetIsNotEmpty):
(JSC::InlineWatchpointSet::startWatching):
(JSC::InlineWatchpointSet::fireAll):
(JSC::InlineWatchpointSet::invalidate):
(JSC::InlineWatchpointSet::touch):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

  • dfg/DFGOperations.cpp:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • jit/JITOperations.cpp:
  • jsc.cpp:

(WTF::Masquerader::create):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/ArrayBufferNeuteringWatchpoint.cpp:

(JSC::ArrayBufferNeuteringWatchpoint::fireAll):

  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::clear):

  • runtime/InferredType.cpp:

(JSC::InferredType::willStoreValueSlow):
(JSC::InferredType::makeTopSlow):
(JSC::InferredType::set):
(JSC::InferredType::removeStructure):
(JSC::InferredType::InferredStructureWatchpoint::fireInternal):

  • runtime/InferredValue.cpp:

(JSC::InferredValue::notifyWriteSlow):
(JSC::InferredValue::ValueCleanup::finalizeUnconditionally):

  • runtime/InferredValue.h:

(JSC::InferredValue::notifyWrite):
(JSC::InferredValue::invalidate):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::haveABadTime):

  • runtime/JSSymbolTableObject.h:

(JSC::symbolTablePutTouchWatchpointSet):
(JSC::symbolTablePutInvalidateWatchpointSet):

  • runtime/Structure.cpp:

(JSC::Structure::didCachePropertyReplacement):
(JSC::Structure::startWatchingInternalProperties):
(JSC::DeferredStructureTransitionWatchpointFire::~DeferredStructureTransitionWatchpointFire):
(JSC::DeferredStructureTransitionWatchpointFire::add):
(JSC::Structure::didTransitionFromThisStructure):
(JSC::Structure::prototypeForLookup):

  • runtime/StructureInlines.h:

(JSC::Structure::didReplaceProperty):
(JSC::Structure::propertyReplacementWatchpointSet):

  • runtime/SymbolTable.h:

(JSC::SymbolTableEntry::isDontEnum):
(JSC::SymbolTableEntry::disableWatching):

  • runtime/VM.cpp:

(JSC::VM::addImpureProperty):
(JSC::enableProfilerWithRespectToCount):

Source/WebCore:

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::fireFrameClearedWatchpointsForWindow):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • bindings/scripts/test/JS/JSTestEventTarget.h:

(WebCore::JSTestEventTarget::create):

2:27 PM Changeset in webkit [202587] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline http/tests/media/video-auth.html for WK2
https://bugs.webkit.org/show_bug.cgi?id=159195

Unreviewed test gardening.

  • platform/wk2/http/tests/media/video-auth-expected.txt:
2:10 PM Changeset in webkit [202586] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit2

Keep track of when a WKWebView is blank before the initial non-empty layout
https://bugs.webkit.org/show_bug.cgi?id=159217
<rdar://problem/26071766>

Reviewed by Beth Dakin.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setIsBlankBeforeFirstNonEmptyLayout:]):
(-[WKWebView _didFirstVisuallyNonEmptyLayoutForMainFrame]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::didFirstVisuallyNonEmptyLayoutForMainFrame):

2:03 PM Changeset in webkit [202585] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JSRopeString should use release asserts, not debug asserts, about substring bounds
https://bugs.webkit.org/show_bug.cgi?id=159227

Reviewed by Saam Barati.

According to my experiments this change costs nothing. That's not surprising since the
most common way to construct a rope these days is inlined into the JIT, which does its own
safety checks. This makes us crash sooner rather than corrupting memory.

  • runtime/JSString.h:
2:02 PM Changeset in webkit [202584] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Move the user gesture requirement to the ApplePaySession constructor
https://bugs.webkit.org/show_bug.cgi?id=159225
rdar://problem/26507267

Reviewed by Tim Horton.

By doing this, clients can do pre-validation before showing the sheet, while we still maintain the user gesture requirement.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::create):
(WebCore::ApplePaySession::begin): Deleted.

1:19 PM Changeset in webkit [202583] by commit-queue@webkit.org
  • 7 edits in trunk

Iterable interfaces should have their related prototype @@iterator property writable
https://bugs.webkit.org/show_bug.cgi?id=159211
Source/WebCore:

<rdar://problem/26950766>

Patch by Youenn Fablet <youenn@apple.com> on 2016-06-28
Reviewed by Chris Dumez.

Updating @@iterator property according http://heycam.github.io/webidl/#es-iterator.

Covered by updated test.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Removing ReadOnly flag from @@iterator property of iterable interfaces.

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodePrototype::finishCreation): Rebasing expectation.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjPrototype::finishCreation): Ditto.

LayoutTests:

Patch by Youenn Fablet <youenn@apple.com> on 2016-06-28
Reviewed by Chris Dumez.

  • fast/dom/nodeListIterator-expected.txt:
  • fast/dom/nodeListIterator.html: Overriding NodeList @@iterator by Array one and checking everything is fine.
12:50 PM Changeset in webkit [202582] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

"Total amount is too big" error message is displaying on clicking Pay button
https://bugs.webkit.org/show_bug.cgi?id=159219
rdar://problem/26722110

Reviewed by Tim Horton.

Match the PassKit max amount.

  • Modules/applepay/PaymentRequestValidator.cpp:

(WebCore::PaymentRequestValidator::validateTotal):

12:31 PM Changeset in webkit [202581] by andersca@apple.com
  • 12 edits
    1 copy in trunk/Source

PaymentMerchantSession should wrap a PKPaymentMerchantSession
https://bugs.webkit.org/show_bug.cgi?id=159218
rdar://problem/26872118

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::completeMerchantValidation):
Use PaymentMerchantSession::fromJS.

(WebCore::createMerchantSession): Deleted.

  • Modules/applepay/PaymentCoordinator.h:

PaymentMerchantSession is now a class.

  • Modules/applepay/PaymentCoordinatorClient.h:

PaymentMerchantSession is now a class.

  • Modules/applepay/PaymentMerchantSession.h:

(WebCore::PaymentMerchantSession::PaymentMerchantSession):
(WebCore::PaymentMerchantSession::~PaymentMerchantSession):
(WebCore::PaymentMerchantSession::pkPaymentMerchantSession):
Store a PKPaymentMerchantSession in a RetainPtr inside the PaymentMerchantSession object.

  • Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm:

(WebCore::PaymentMerchantSession::fromJS):
Convert the JS object to a PKPaymentMerchantSession and return a PaymentMerchantSession that wraps it.

  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • bindings/js/Dictionary.h:

(WebCore::Dictionary::initializerObject):
Add new getter.

Source/WebKit2:

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<WebCore::PaymentMerchantSession>::encode):
(IPC::ArgumentCoder<WebCore::PaymentMerchantSession>::decode):
Use NSCoder.

  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:

PaymentMerchantSession is now a class.

  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in:

PaymentMerchantSession is now a class.

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCompleteMerchantValidation):
Just get the underlying PKPaymentMerchantSession from the PaymentMerchantSession object.
(WebKit::toPKPaymentMerchantSession): Deleted.

12:10 PM Changeset in webkit [202580] by BJ Burg
  • 89 edits in trunk

RunLoop::Timer should use constructor templates instead of class templates
https://bugs.webkit.org/show_bug.cgi?id=159153

Reviewed by Alex Christensen.

Source/JavaScriptCore:

Remove the RunLoop::Timer class template argument, and pass its constructor
a reference to this instead of a pointer to this.

  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask):

Source/WebCore:

Remove the RunLoop::Timer class template argument, and pass its constructor
a reference to this instead of a pointer to this.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::WebMediaSessionManager):

  • Modules/mediasession/WebMediaSessionManager.h:
  • page/WheelEventTestTrigger.cpp:

(WebCore::WheelEventTestTrigger::WheelEventTestTrigger):

  • page/WheelEventTestTrigger.h:
  • page/mac/TextIndicatorWindow.h:
  • page/mac/TextIndicatorWindow.mm:

(WebCore::TextIndicatorWindow::TextIndicatorWindow):

  • platform/MainThreadSharedTimer.h:
  • platform/cocoa/ScrollController.h:
  • platform/cocoa/ScrollController.mm:

(WebCore::ScrollController::ScrollController):

  • platform/glib/MainThreadSharedTimerGLib.cpp:

(WebCore::MainThreadSharedTimer::MainThreadSharedTimer):

  • platform/graphics/MediaPlaybackTargetPicker.cpp:

(WebCore::MediaPlaybackTargetPicker::MediaPlaybackTargetPicker):

  • platform/graphics/MediaPlaybackTargetPicker.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(VideoRenderRequestScheduler::VideoRenderRequestScheduler):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

(WebCore::TextureMapperPlatformLayerProxy::TextureMapperPlatformLayerProxy):
(WebCore::TextureMapperPlatformLayerProxy::activateOnCompositingThread):

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:
  • platform/mock/MediaPlaybackTargetPickerMock.cpp:

(WebCore::MediaPlaybackTargetPickerMock::MediaPlaybackTargetPickerMock):

  • platform/mock/MediaPlaybackTargetPickerMock.h:
  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource):

  • platform/mock/MockRealtimeVideoSource.h:
  • platform/network/ResourceHandleInternal.h:

(WebCore::ResourceHandleInternal::ResourceHandleInternal):

Source/WebKit2:

Remove the RunLoop::Timer class template argument, and pass its constructor
a reference to this instead of a pointer to this.

  • NetworkProcess/Downloads/soup/DownloadSoup.cpp:
  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):

  • PluginProcess/PluginControllerProxy.cpp:

(WebKit::PluginControllerProxy::PluginControllerProxy):

  • PluginProcess/PluginControllerProxy.h:
  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::PluginProcess):

  • PluginProcess/PluginProcess.h:
  • Shared/ChildProcess.cpp:

(WebKit::ChildProcess::ChildProcess):

  • Shared/ChildProcess.h:
  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
  • UIProcess/API/Cocoa/APISerializedScriptValueCocoa.mm:

(API::SharedJSContext::SharedJSContext):

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(_WebKitWebViewBasePrivate::_WebKitWebViewBasePrivate):

  • UIProcess/DrawingAreaProxy.cpp:

(WebKit::DrawingAreaProxy::DrawingAreaProxy):

  • UIProcess/DrawingAreaProxy.h:
  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::DrawingAreaProxyImpl):

  • UIProcess/DrawingAreaProxyImpl.h:
  • UIProcess/Plugins/gtk/PluginInfoCache.cpp:

(WebKit::PluginInfoCache::PluginInfoCache):

  • UIProcess/Plugins/gtk/PluginInfoCache.h:
  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::ProcessThrottler):

  • UIProcess/ProcessThrottler.h:
  • UIProcess/ResponsivenessTimer.cpp:

(WebKit::ResponsivenessTimer::ResponsivenessTimer):

  • UIProcess/ResponsivenessTimer.h:
  • UIProcess/ViewGestureController.cpp:

(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::SnapshotRemovalTracker::SnapshotRemovalTracker):

  • UIProcess/VisitedLinkStore.cpp:

(WebKit::VisitedLinkStore::VisitedLinkStore):

  • UIProcess/VisitedLinkStore.h:
  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::WebInspectorProxy):

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::m_hiddenPageThrottlingTimer):

  • UIProcess/WebProcessPool.h:
  • UIProcess/gtk/GestureController.cpp:

(WebKit::GestureController::DragGesture::DragGesture):
(WebKit::GestureController::ZoomGesture::ZoomGesture):

  • UIProcess/gtk/GestureController.h:
  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:

(WebKit::WebPopupMenuProxyGtk::WebPopupMenuProxyGtk):

  • UIProcess/gtk/WebPopupMenuProxyGtk.h:
  • UIProcess/mac/ViewGestureController.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::WebLoaderStrategy):

  • WebProcess/Network/WebLoaderStrategy.h:
  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:

(WebKit::NPRuntimeObjectMap::NPRuntimeObjectMap):

  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.h:
  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::NetscapePlugin):
(WebKit::NetscapePlugin::Timer::Timer):

  • WebProcess/Plugins/Netscape/NetscapePlugin.h:
  • WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:

(WebKit::NetscapePluginStream::NetscapePluginStream):

  • WebProcess/Plugins/Netscape/NetscapePluginStream.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::PluginView):

  • WebProcess/Plugins/PluginView.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:

(WebKit::CoordinatedDrawingArea::CoordinatedDrawingArea):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost):

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::DrawingAreaImpl):

  • WebProcess/WebPage/DrawingAreaImpl.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::RenderFrameScheduler::RenderFrameScheduler):

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):

Source/WTF:

Refactor RunLoop::Timer to align with WebCore::Timer. Use a constructor
template instead of a class template. Store a bound std::function rather than
a templated member and function. Add a constructor that takes a std::function.

  • wtf/RunLoop.h:

(WTF::RunLoop::Timer::Timer):
(WTF::RunLoop::Timer::fired):

Tools:

Remove the RunLoop::Timer class template argument, and pass its constructor
a reference to this instead of a pointer to this.

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::TestRunner):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • TestWebKitAPI/Tests/WTF/RunLoop.cpp:

(TestWebKitAPI::TEST):

11:25 AM Changeset in webkit [202579] by jer.noble@apple.com
  • 5 edits in trunk

Cross-domain video loads do not prompt for authorization.
https://bugs.webkit.org/show_bug.cgi?id=159195
<rdar://problem/26234612>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/media/video-auth.html (modified)

We should prompt for authorization when a cross-origin <video> is embedded
in a web page.

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource):

LayoutTests:

Add a cross-origin authorization sub-test.

  • http/tests/media/video-auth.html:
  • http/tests/media/video-auth-expected.txt:
11:20 AM Changeset in webkit [202578] by rniwa@webkit.org
  • 6 edits in trunk

REGRESSION(r201471): FormClient.textFieldDidEndEditing is no longer called when a text field is removed
https://bugs.webkit.org/show_bug.cgi?id=159199
Source/WebCore:

<rdar://problem/26748189>

Reviewed by Alexey Proskuryakov.

The bug was caused by HTMLInputElement's endEditing no longer getting called due to the behavior change.
Preserve the WebKit2 API semantics by manually calling HTMLInputElement::endEditing in setFocusedElement.

Tests: WebKit2TextFieldDidBeginAndEndEditing

  • dom/Document.cpp:

(WebCore::Document::setFocusedElement):

Tools:

Reviewed by Alexey Proskuryakov.

Added a test case for removing a text field. Also fixed the flakiness and re-enabled it on Mac.

  • TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp:
  • TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing_Bundle.cpp:
  • TestWebKitAPI/Tests/WebKit2/input-focus-blur.html: Focus a div upfront to avoid the flakiness from

an input element getting automatically focused on Mac.

11:12 AM Changeset in webkit [202577] by Jon Davis
  • 2 edits
    1 add in trunk/Websites/webkit.org

Fixed Open Graph meta data and image entries.
https://bugs.webkit.org/show_bug.cgi?id=159167.

Reviewed by Timothy Hatcher.

This patch addresses Open Graph meta data issues:

  • Added a high-resolution PNG of the WebKit logo because Facebook doesn't support SVG images
  • Uses the first image of a page or post if not featured image is set
  • Article date/time information should not be given for the homepage
  • Added Facebook admins as per the Facebook Open Graph debugger
  • wp-content/plugins/social-meta.php:
  • wp-content/themes/webkit/images/ogimage.png: Added.
11:08 AM Changeset in webkit [202576] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2] Add some logging related to NetworkProcess suspension
https://bugs.webkit.org/show_bug.cgi?id=159178

Reviewed by Andreas Kling.

Add some logging related to NetworkProcess suspension to help debug
suspension issues.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::cancelPrepareToSuspend):
(WebKit::NetworkProcess::processDidResume):

11:08 AM Changeset in webkit [202575] by Chris Dumez
  • 5 edits in trunk/Source/WebKit2

Add some more UIProcess-side logging related to process assertions
https://bugs.webkit.org/show_bug.cgi?id=159188

Reviewed by Andreas Kling.

Add some more UIProcess-side logging related to process assertions
to help debug process suspension issues.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::updateAssertionNow):
(WebKit::ProcessThrottler::updateAssertion):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateActivityToken):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::fetchWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteData):
(WebKit::WebProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::WebProcessProxy::didSetAssertionState):

11:07 AM Changeset in webkit [202574] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2] Do not suppress navigation snapshotting on session restore if we are not navigating right away
https://bugs.webkit.org/show_bug.cgi?id=159216
<rdar://problem/27058360>

Reviewed by Andreas Kling.

Do not suppress navigation snapshotting on session restore if we are not navigating
right away. The snapshot we already have may be outdated by the time we actually
navigate (e.g. Because the user scrolled) so we don't want to suppress snapshotting
in this case.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::restoreFromSessionState):

10:23 AM Changeset in webkit [202573] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking fast/multicol/fixed-stack.html as failing on ios-simulator

Unreviewed test gardening.

  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-simulator/TestExpectations:
10:01 AM Changeset in webkit [202572] by fred.wang@free.fr
  • 5 edits in trunk

Phrasing content should be accepted in <mo> elements
https://bugs.webkit.org/show_bug.cgi?id=130245

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-28
Reviewed by Brent Fulgham.

Source/WebCore:

After r202420, the RenderMathMLOperator element no longer messes with anonymous block and
text nodes. Hence it is now safe to allow foreign content inside <mo>.

We extend foreign-element-in-token.html to cover the mo case.

  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::childShouldCreateRenderer): Remove the early return for <mo> so
that it accepts phrasing content children.

LayoutTests:

  • mathml/presentation/foreign-element-in-token.html: Copy test cases to

check <mo> elements too.

  • mathml/presentation/foreign-element-in-token-expected.txt: Add the

expectations for <mo>.

9:53 AM Changeset in webkit [202571] by ap@apple.com
  • 2 edits
    2 moves
    1 add in trunk/LayoutTests

Sierra test expectation gardening.

  • platform/mac-elcapitan/fast/canvas: Added.
  • platform/mac-elcapitan/fast/canvas/canvas-strokePath-gradient-shadow-expected.txt: Copied from platform/mac/fast/canvas/canvas-strokePath-gradient-shadow-expected.txt.
  • platform/mac-elcapitan/fast/canvas/canvas-strokeRect-gradient-shadow-expected.txt: Copied from platform/mac/fast/canvas/canvas-strokeRect-gradient-shadow-expected.txt.
  • platform/mac/fast/canvas/canvas-strokePath-gradient-shadow-expected.txt: Removed.
  • platform/mac/fast/canvas/canvas-strokeRect-gradient-shadow-expected.txt: Removed.

Sierra matches cross-platform expectations.

  • platform/mac/TestExpectations: Removed expectations for fast/canvas/canvas-strokeRect-alpha-shadow.html
9:45 AM Changeset in webkit [202570] by andersca@apple.com
  • 10 edits in trunk/Source

WebKit::WebPaymentCoordinator leak
https://bugs.webkit.org/show_bug.cgi?id=159168
rdar://problem/26929772

Reviewed by Beth Dakin.

Source/WebCore:

  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::~PaymentCoordinator):
Call paymentCoordinatorDestroyed().

  • Modules/applepay/PaymentCoordinatorClient.h:

Rename mainFrameDestroyed to paymentCoordinatorDestroyed().

  • loader/EmptyClients.cpp:

Source/WebKit/mac:

Update for WebCore changes.

  • WebCoreSupport/WebPaymentCoordinatorClient.h:
  • WebCoreSupport/WebPaymentCoordinatorClient.mm:

(WebPaymentCoordinatorClient::paymentCoordinatorDestroyed):
(WebPaymentCoordinatorClient::mainFrameDestroyed): Deleted.

Source/WebKit2:

Update for WebCore changes.

  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::paymentCoordinatorDestroyed):
(WebKit::WebPaymentCoordinator::mainFrameDestroyed): Deleted.

  • WebProcess/ApplePay/WebPaymentCoordinator.h:
8:36 AM Changeset in webkit [202569] by fred.wang@free.fr
  • 4 edits in trunk/Source/WebCore

Remove anonymous in renderName for all MathML renderers but RenderMathMLOperator
https://bugs.webkit.org/show_bug.cgi?id=159114

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-28
Reviewed by Martin Robinson.

After r202420, the only anonymous MathML renderers are the RenderMathMLOperators created by
the mfenced element. Hence we remove the special case for anonymous in the renderName
implementation of most MathML renderers.

No new tests, behavior unchanged.

  • rendering/mathml/RenderMathMLRow.h:
  • rendering/mathml/RenderMathMLSpace.h:
  • rendering/mathml/RenderMathMLToken.h:
8:33 AM Changeset in webkit [202568] by commit-queue@webkit.org
  • 6 edits in trunk

Web Inspector: selectElement.options shows unexpected entries in console (named indexes beyond collection length)
https://bugs.webkit.org/show_bug.cgi?id=159192

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-28
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype.arrayIndexPropertyNames):
Start with an empty array because we just push valid indexes.

(InjectedScript.prototype._propertyDescriptors):
Avoid the >100 length requirement, and always treat the
array-like objects the same. The frontend currently
doesn't show named indexes for arrays anyways, so they
would have been unused.

LayoutTests:

  • inspector/model/remote-object-get-properties-expected.txt:
  • inspector/model/remote-object-get-properties.html:
  • inspector/runtime/getProperties-expected.txt:
8:32 AM Changeset in webkit [202567] by pvollan@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[Win] Skip failing INTL test.
https://bugs.webkit.org/show_bug.cgi?id=159141

Reviewed by Brent Fulgham.

INTL is not enabled on Windows.

  • tests/stress/intl-constructors-with-proxy.js:

(shouldBe):

8:12 AM Changeset in webkit [202566] by BJ Burg
  • 7 edits in trunk

Web Inspector: QuickConsole should update its selection when RuntimeManager.defaultExecutionContextIdentifier changes
https://bugs.webkit.org/show_bug.cgi?id=159183

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

Currently, the UI listens for state changes in the Frame tree to decide when to reset
the selected execution context back to its default value. This is no good, because this
should happen even if we have no UI (i.e., testing models only). The UI should simply
display changes to the model rather than driving them based on other model changes.

Move the logic to reset the execution context into RuntimeManager. When the selected
context changes, an event is fired which causes the QuickConsole to rebuild its path components.

  • UserInterface/Controllers/RuntimeManager.js:

(WebInspector.RuntimeManager):
(WebInspector.RuntimeManager.prototype.set defaultExecutionContextIdentifier):
Fire an event when the execution context actually changes.

(WebInspector.RuntimeManager.prototype._frameExecutionContextsCleared):
Added. If the selected context was cleared, reset back to default.

  • UserInterface/Models/Frame.js:

(WebInspector.Frame.prototype.clearExecutionContexts):
Include the contexts that were cleared so clients can match against them.

  • UserInterface/Views/QuickConsole.js:

(WebInspector.QuickConsole):
Use the proper constant name. Both the old and new names evaluated to undefined.
No need to keep track of the selected path component, it will always match the
defaultExecutionContextIdentifier in RuntimeManager.

(WebInspector.QuickConsole.prototype.get selectedExecutionContextIdentifier):
(WebInspector.QuickConsole.prototype.set selectedExecutionContextIdentifier):
Forward to RuntimeManager. This name is less awkward for the UI code that manages selections.

(WebInspector.QuickConsole.prototype._executionContextPathComponentsToDisplay):
Special-case for the main frame execution context.

(WebInspector.QuickConsole.prototype._framePageExecutionContextsChanged):
Remove indirection.

(WebInspector.QuickConsole.prototype._frameExecutionContextsCleared):
Fix the guard to handle undefined execution contexts in the case where it represents the main frame (undefined).

(WebInspector.QuickConsole.prototype._defaultExecutionContextChanged):
Rebuild when the model changes.

(WebInspector.QuickConsole.prototype._pathComponentSelected): Simplify.
(WebInspector.QuickConsole.prototype.get executionContextIdentifier):
(WebInspector.QuickConsole.prototype._removeExecutionContextPathComponentForFrame):
Move the fallback selection behavior into RuntimeManager.

(WebInspector.QuickConsole.prototype._updateExecutionContextPathComponentForFrame): Deleted.
This has been dead code ever since we removed iOS 6 legacy support.

LayoutTests:

Add a new test case for reverting to the top-level execution context when the selected context is destroyed.

  • inspector/runtime/change-execution-context-identifier-expected.txt:
  • inspector/runtime/change-execution-context-identifier.html:
8:10 AM Changeset in webkit [202565] by adam.bergkvist@ericsson.com
  • 6 edits in trunk

WebRTC: Robustify 'this' type check in RTCPeerConnection JS built-ins
https://bugs.webkit.org/show_bug.cgi?id=158831

Reviewed by Youenn Fablet.

Source/WebCore:

Use @operations slot in RTCPeerConnection type check.

Updated results of existing test.

  • Modules/mediastream/RTCPeerConnection.js:

(initializeRTCPeerConnection):
Initialize @operations slot in constructor.

  • Modules/mediastream/RTCPeerConnectionInternals.js:

(isRTCPeerConnection):
Use @operations slot in type check.

LayoutTests:

  • fast/mediastream/RTCPeerConnection-js-built-ins-check-this-expected.txt:

Flip some result lines from FAIL to PASS. Clean out unnecessary tests (third set).

8:05 AM Changeset in webkit [202564] by fred.wang@free.fr
  • 4 edits in trunk/LayoutTests

Remove flakiness expectations for mathml/wbr-in-mroot-crash.html
https://bugs.webkit.org/show_bug.cgi?id=130353

Unreviewed gardening.

The flakiness seemed to be due to the timeout of mathml/very-large-stretchy-operators.html.
The latter was fixed in r202489, so we update the test expectations.

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-28

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator-wk2/TestExpectations:
7:43 AM Changeset in webkit [202563] by fred.wang@free.fr
  • 4 edits in trunk/LayoutTests

Increase opacity of stretched operators in mo-stacked-glyphs.html
https://bugs.webkit.org/show_bug.cgi?id=159201

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-28
Reviewed by Martin Robinson.

The reftest mo-stacked-glyphs.html fails with small pixel differences invisible at the naked
eyes. We increase opacity of stretched operators in that test to reduce these differences and
make the test pass.

  • mathml/presentation/mo-stacked-glyphs-expected.html: Increase opacity of stretched operators.
  • mathml/presentation/mo-stacked-glyphs.html: Ditto.
  • platform/gtk/TestExpectations: Remove failure expectation.
7:16 AM Changeset in webkit [202562] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

AX: Remove dead code in AccessibilityRenderObject::textUnderElement
https://bugs.webkit.org/show_bug.cgi?id=159205

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-28
Reviewed by Joanmarie Diggs.

RenderMathMLOperator used to destroy its descendants and to replace them with an anonymous
text node wrapped inside anonymous blocks. After r202420, it just behaves as any other token
elements. Hence we remove the code in AccessibilityRenderObject::textUnderElement that was
used to handle this specific render tree structure.

No new tests, already covered by accessibility/math-text.html.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::textUnderElement): Remove dead code for RenderText and RenderMathMLOperator.

7:10 AM Changeset in webkit [202561] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] Update expectations for subtle crypto layout tests

Unreviewed.

  • platform/gtk/TestExpectations:
6:32 AM WebKitGTK/2.12.x edited by clopez@igalia.com
(diff)
6:31 AM WebKitGTK/2.12.x edited by clopez@igalia.com
(diff)
6:25 AM Changeset in webkit [202560] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

THUMB2 support not correctly detected on Fedora with GCC 6.1.
https://bugs.webkit.org/show_bug.cgi?id=159083

Patch by Tomas Popela <tpopela@redhat.com> on 2016-06-28
Reviewed by Carlos Garcia Campos.

On Fedora 24 with GCC 6.1. the thumb2 and thumb are not
defined so the detection of THUMB2 support will fail. Look also
whether the ARM_ARCH_ISA_THUMB is defined to fix the THUMB2
detection.

  • wtf/Platform.h:
4:49 AM Changeset in webkit [202559] by pvollan@apple.com
  • 22 edits in trunk

[Win] Custom elements tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=159139

Reviewed by Alex Christensen.

.:

Enable custom element API on Windows.

  • Source/cmake/OptionsWin.cmake:

Source/WebCore:

Fix compile errors after enabling custom element API.

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):

  • dom/CustomElementDefinitions.cpp:

(WebCore::CustomElementDefinitions::addElementDefinition):

  • dom/Document.cpp:

(WebCore::createHTMLElementWithNameValidation):
(WebCore::createFallbackHTMLElement):

  • dom/Element.cpp:

(WebCore::Element::attributeChanged):

  • dom/LifecycleCallbackQueue.cpp:

(WebCore::LifecycleQueueItem::LifecycleQueueItem):
(WebCore::LifecycleCallbackQueue::enqueueElementUpgrade):
(WebCore::LifecycleCallbackQueue::enqueueAttributeChangedCallback):

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::insertHTMLElementOrFindCustomElementInterface):
(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface):

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::CustomElementConstructionData::CustomElementConstructionData):
(WebCore::HTMLTreeBuilder::insertGenericHTMLElement):

  • html/parser/HTMLTreeBuilder.h:

Source/WebKit/win:

Add preference for enabling custom element API.

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::customElementsEnabled):
(WebPreferences::setCustomElementsEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

Enable custom element API when running tests.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):

LayoutTests:

Update test expectations for passing custom elements tests.

  • platform/win/TestExpectations:
4:26 AM Changeset in webkit [202558] by Philippe Normand
  • 4 edits in trunk

[GStreamer] usec rounding is wrong during accurate seeking
https://bugs.webkit.org/show_bug.cgi?id=90734

Reviewed by Carlos Garcia Campos.

Use floor() to round the microseconds value, this is more robust
than roundf.

  • platform/graphics/gstreamer/GStreamerUtilities.cpp:

(WebCore::toGstClockTime):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::playbackPosition):

4:24 AM Changeset in webkit [202557] by Philippe Normand
  • 6 edits in trunk/LayoutTests

[GTK] Web audio tests failing since GStreamer 1.6 upgrade
https://bugs.webkit.org/show_bug.cgi?id=158927

Unreviewed GTK rebaseline of webaudio tests.

  • platform/gtk/TestExpectations:
  • platform/gtk/webaudio/codec-tests/aac/vbr-128kbps-44khz-expected.wav:
  • platform/gtk/webaudio/codec-tests/vorbis/vbr-128kbps-44khz-expected.wav:
  • platform/gtk/webaudio/codec-tests/vorbis/vbr-70kbps-44khz-expected.wav:
  • platform/gtk/webaudio/codec-tests/vorbis/vbr-96kbps-44khz-expected.wav:
3:20 AM Changeset in webkit [202556] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] improved duration query support in the HTTP source element
https://bugs.webkit.org/show_bug.cgi?id=159204

Reviewed by Carlos Garcia Campos.

When we have the Content-Length value it is possible to infer the TIME
duration in most cases by performing a convert query in the downstream
elements. This is especially useful when the duration query wasn't
managed by the sinks and thus reached the source element.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcQueryWithParent):

3:15 AM Changeset in webkit [202555] by jh718.park@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix build break since r202502 - 2
https://bugs.webkit.org/show_bug.cgi?id=159194

Reviewed by Gyuyoung Kim.

Fix about the error message below.
error: control reaches end of non-void function [-Werror=return-type]

  • b3/B3TypeMap.h: add #pragma GCC diagnostic ignored "-Wreturn-type".
12:17 AM Changeset in webkit [202554] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

http/tests/media/hls/video-controller-getStartDate.html is failing on non-PDT time-based computers
https://bugs.webkit.org/show_bug.cgi?id=159134

Patch by Youenn Fablet <youenn@apple.com> on 2016-06-28
Reviewed by Alex Christensen.

  • http/tests/media/hls/video-controller-getStartDate-expected.txt: Converting date to UTC string before making the comparison.
  • http/tests/media/hls/video-controller-getStartDate.html: Rebasing.
12:10 AM Changeset in webkit [202553] by jh718.park@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix build break since r202502
https://bugs.webkit.org/show_bug.cgi?id=159194

Reviewed by Alex Christensen.

Fix about the error message below.
error: control reaches end of non-void function [-Werror=return-type]

  • b3/B3TypeMap.h:

(JSC::B3::TypeMap::at): add missing ASSERT_NOT_REACHED().

12:09 AM Changeset in webkit [202552] by Hunseop Jeong
  • 13 edits
    10 adds in trunk/LayoutTests

Unreviewed EFL Gardening on 28th Jun.

  • platform/efl/accessibility/aria-hidden-negates-no-visibility-expected.txt: Added.
  • platform/efl/accessibility/aria-labelledby-overrides-aria-label-expected.txt: Added.
  • platform/efl/accessibility/aria-labelledby-overrides-label-expected.txt: Added.
  • platform/efl/accessibility/aria-option-role-expected.txt: Added.
  • platform/efl/accessibility/aria-role-on-label-expected.txt: Added.
  • platform/efl/accessibility/aria-switch-text-expected.txt:
  • platform/efl/accessibility/auto-fill-crash-expected.txt: Added.
  • platform/efl/accessibility/empty-image-with-title-expected.txt: Added.
  • platform/efl/accessibility/form-control-value-settable-expected.txt: Added.
  • platform/efl/accessibility/image-link-expected.txt:
  • platform/efl/accessibility/image-map1-expected.txt:
  • platform/efl/accessibility/image-map2-expected.txt:
  • platform/efl/accessibility/image-with-alt-and-map-expected.txt:
  • platform/efl/accessibility/img-fallsback-to-title-expected.txt:
  • platform/efl/accessibility/math-fenced-expected.txt: Added.
  • platform/efl/accessibility/math-foreign-content-expected.txt: Added.
  • platform/efl/accessibility/math-multiscript-attributes-expected.txt:
  • platform/efl/accessibility/math-text-expected.txt:
  • platform/efl/accessibility/media-element-expected.txt:
  • platform/efl/accessibility/meter-element-expected.txt:
  • platform/efl/accessibility/radio-button-title-label-expected.txt:
  • platform/efl/accessibility/table-detection-expected.txt:
12:04 AM Changeset in webkit [202551] by commit-queue@webkit.org
  • 15 edits in trunk/Source/WebCore

Binding generator should generate accessors for constructors safely accessed from JS builtin
https://bugs.webkit.org/show_bug.cgi?id=159087

Patch by Youenn Fablet <youenn@apple.com> on 2016-06-28
Reviewed by Alex Christensen.

Removed constructor private slots direct additions in JSDOMGlobalObject.
Added support for generating the code that will do that.
Advantage of the implementation:

  • Private slots will expose constructors that are also publically visible (previously workers had some private slots filled with WebRTC constructors).
  • Private slots no longer require the creation of the constructors at window creation time.

Although PublicIdentifier and PrivateIdentifier are both added where needed, the binding generator does not
support the case of a constructor accessible only privately.

Covered by existing test set and adding binding test.

  • Modules/mediastream/MediaStream.idl: Marked as PublicIdentifier/PrivateIdentifier.
  • Modules/mediastream/MediaStreamTrack.idl: Ditto.
  • Modules/mediastream/RTCIceCandidate.idl: Ditto.
  • Modules/mediastream/RTCSessionDescription.idl: Ditto.
  • Modules/streams/ReadableStream.idl: Ditto.
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals): Removed unneeded additions.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Added support for private slots for interface constructors marked as
PrivateIdentifier.

  • bindings/scripts/preprocess-idls.pl:

(GenerateConstructorAttribute): Make PublicIdentifier/PrivateIdentifier copied interface attributes.

  • bindings/scripts/test/GObject/WebKitDOMTestGlobalObject.cpp:

(webkit_dom_test_global_object_set_property):
(webkit_dom_test_global_object_get_property):
(webkit_dom_test_global_object_class_init):
(webkit_dom_test_global_object_get_public_and_private_attribute):
(webkit_dom_test_global_object_set_public_and_private_attribute):

  • bindings/scripts/test/GObject/WebKitDOMTestGlobalObject.h:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::finishCreation):
(WebCore::jsTestGlobalObjectPublicAndPrivateAttribute):
(WebCore::setJSTestGlobalObjectPublicAndPrivateAttribute):

  • bindings/scripts/test/ObjC/DOMTestGlobalObject.h:
  • bindings/scripts/test/ObjC/DOMTestGlobalObject.mm:

(-[DOMTestGlobalObject publicAndPrivateAttribute]):
(-[DOMTestGlobalObject setPublicAndPrivateAttribute:]):

  • bindings/scripts/test/TestGlobalObject.idl:
12:03 AM Changeset in webkit [202550] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.7.5.1/Source

Versioning.

12:01 AM Changeset in webkit [202549] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.7.5.1

New tag.

Jun 27, 2016:

11:53 PM Changeset in webkit [202548] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.38.2.1/Source

Versioning.

11:52 PM Changeset in webkit [202547] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.38.2.1

New tag.

11:44 PM Changeset in webkit [202546] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

REGRESSION?(r202466): http/tests/security/canvas-remote-read-remote-video-redirect.html failing on Sierra
https://bugs.webkit.org/show_bug.cgi?id=159172
<rdar://problem/27030025>

Reviewed by Brent Fulgham.

Add a hasSingleSecurityOrigin property to WebCoreNSURLSession that gets updated each time one of that
sessions' tasks receieves a response or a redirect request. Check that property from the MediaPlayerPrivate.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin):

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession updateHasSingleSecurityOrigin:]):
(-[WebCoreNSURLSession dataTaskWithRequest:]):
(-[WebCoreNSURLSession dataTaskWithURL:]):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]):
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:]):

11:38 PM Changeset in webkit [202545] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

CMake build fix.

  • PlatformMac.cmake:
11:22 PM Changeset in webkit [202544] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, rebaseline test on iOS after r202539.

  • platform/ios-simulator/fast/dom/event-handler-attributes-expected.txt:
11:11 PM Changeset in webkit [202543] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test commit. Please ignore.

11:09 PM Changeset in webkit [202542] by commit-queue@webkit.org
  • 14 edits in trunk

Remove didFailAccessControlCheck ThreadableLoaderClient callback
https://bugs.webkit.org/show_bug.cgi?id=159149

Patch by Youenn Fablet <youenn@apple.com> on 2016-06-27
Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt:

Source/WebCore:

Adding an AccessControl ResourceError type.
Replacing didFailAccessControlCheck callback by a direct call to didFail with an error of type AccessControl.

Making CrossOriginPreflightChecker always return an AccessControl error. Previously some errors created below
were passed directly to threadable loader clients.

When doing preflight on unauthorized web sites, WTR/DRT will trigger a cancellation error which was translating into an abort event in XMLHttpRequest.
This patch is changing the error type to AccessControl, which translates into an error event in XMLHttpReauest.

This change of behavior is seen in imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred.htm.
No other observable change of behavior should be expected.

  • inspector/InspectorNetworkAgent.cpp: Computing error message in didFail according the error type.
  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::validatePreflightResponse): Setting preflightFailure error type to AccessControl.
(WebCore::CrossOriginPreflightChecker::notifyFinished): Ditto.
(WebCore::CrossOriginPreflightChecker::doPreflight): Ditto.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest): Replacing didFailAccessControlCheck
callback by a direct call to didFail with an error of type AccessControl.
(WebCore::reportContentSecurityPolicyError): Ditto.
(WebCore::reportCrossOriginResourceSharingError): Ditto.
(WebCore::DocumentThreadableLoader::didReceiveResponse): Ditto.
(WebCore::DocumentThreadableLoader::preflightFailure): Calling didFail directly.

  • loader/ThreadableLoaderClient.h: Removing didFailAccessControlCheck.
  • loader/ThreadableLoaderClientWrapper.h: Ditto.
  • loader/WorkerThreadableLoader.cpp: Ditto.
  • loader/WorkerThreadableLoader.h: Ditto.
  • page/EventSource.cpp:

(WebCore::EventSource::didFail): Removing didFailAccessControlCheck and putting handling code in didFail.

  • page/EventSource.h:
  • platform/network/ResourceErrorBase.cpp:

(WebCore::ResourceErrorBase::setType): Softening the assertion to cover the case of migration to AccessControl.

  • platform/network/ResourceErrorBase.h: Adding AccessControl error type.

(WebCore::ResourceErrorBase::isAccessControl):

11:07 PM Changeset in webkit [202541] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Mark some tests as image failures.

These tests started to fail with the render server snapshotting enabled in r202532.

  • platform/ios-simulator-wk2/TestExpectations:
10:56 PM Changeset in webkit [202540] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Fix TestWebKitAPI crash introduced in r202532.

WebPageProxy::forceRepaint() could trigger a call to the didForceRepaintCallback()
after the WebPageProxy had been invalidated, causing a null de-ref of m_drawingArea.
Fix by checking for error and isValid().

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::forceRepaint):

10:10 PM Changeset in webkit [202539] by Chris Dumez
  • 9 edits in trunk

HTMLElement / SVGElement should implement GlobalEventHandlers, not Element
https://bugs.webkit.org/show_bug.cgi?id=159191
<rdar://problem/27019299>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline test now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

HTMLElement / SVGElement should implement GlobalEventHandlers, not Element:

Firefox and Chrome behave as per the specification.

Fixing this also fixes rendering on http://survey123.arcgis.com/.

No new tests, covered by existing tests that were rebaselined.

  • dom/Element.idl:
  • html/HTMLElement.idl:
  • svg/SVGElement.idl:

LayoutTests:

  • fast/dom/event-handler-attributes-expected.txt:

Rebaseline tests now that more checks are passing.

  • js/dom/dom-static-property-for-in-iteration-expected.txt:

Rebaseline test now that enumeration order is different.

9:04 PM Changeset in webkit [202538] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[macOS] Test gardening: Generic font families should not map to fonts which aren't installed
https://bugs.webkit.org/show_bug.cgi?id=159111
<rdar://problem/25807529>

Unreviewed.

Osaka-Mono does not come preinstalled on macOS Sierra. However, many Japanese users
will have the font installed. Before setting the generic font family, we should check
to see if the font is present.

  • page/cocoa/SettingsCocoa.mm:

(WebCore::osakaMonoIsInstalled):
(WebCore::Settings::initializeDefaultFontFamilies):

8:25 PM Changeset in webkit [202537] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Don't keep all newly created potential custom elements alive when the feature is disabled
https://bugs.webkit.org/show_bug.cgi?id=159113

Reviewed by Daniel Bates.

Don't keep all HTML unknown elements which has a valid custom element alive when the feature is turned off.

Ideally we want to conform to the behavior in the Custom Elements specification and only upgrade an element
that is inserted into the document. We'll implement that later.

  • dom/Document.cpp:

(WebCore::createHTMLElementWithNameValidation):

7:58 PM Changeset in webkit [202536] by Simon Fraser
  • 7 edits
    4 adds in trunk

[iOS] -webkit-overflow-scrolling: touch prevents repaint with RTL
https://bugs.webkit.org/show_bug.cgi?id=159186
rdar://problem/26659341

Reviewed by Zalan Bujtas.
Source/WebCore:

There were two issues with repaints in -webkit-overflow-scrolling:touch scrolling
layers.

First, if the scrolled contents were inline (e.g. a <span>), then repaints were
broken because RenderInline didn't call shouldApplyClipAndScrollPositionForRepaint().
Fix by making shouldApplyClipAndScrollPositionForRepaint() a member function of RenderBox
and calling it from RenderBox::computeRectForRepaint() and RenderInline::clippedOverflowRectForRepaint().

Second, repaints were broken in RTL because RenderLayerBacking::setContentsNeedDisplayInRect()
confused scroll offset and scroll position; it needs to subtract scrollPosition.

Finally renamed to applyCachedClipAndScrollOffsetForRepaint() to applyCachedClipAndScrollPositionForRepaint()
to make it clear that it uses scrollPosition, not scrollOffset.

Tests: compositing/scrolling/touch-scrolling-repaint-spans.html

compositing/scrolling/touch-scrolling-repaint.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::applyCachedClipAndScrollPositionForRepaint):
(WebCore::RenderBox::shouldApplyClipAndScrollPositionForRepaint):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::RenderBox::applyCachedClipAndScrollOffsetForRepaint): Deleted.
(WebCore::shouldApplyContainersClipAndOffset): Deleted.

  • rendering/RenderBox.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clippedOverflowRectForRepaint):
(WebCore::RenderInline::computeRectForRepaint):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::computeRectForRepaint):

LayoutTests:

  • compositing/scrolling/touch-scrolling-repaint-expected.html: Added.
  • compositing/scrolling/touch-scrolling-repaint-spans-expected.html: Added.
  • compositing/scrolling/touch-scrolling-repaint-spans.html: Added.
  • compositing/scrolling/touch-scrolling-repaint.html: Added.
7:47 PM Changeset in webkit [202535] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK][EFL] Disable subtle-crypto in FeatureList.pm
https://bugs.webkit.org/show_bug.cgi?id=155073

Reviewed by Daniel Bates.

  • Scripts/webkitperl/FeatureList.pm:
7:38 PM Changeset in webkit [202534] by dino@apple.com
  • 12 edits in trunk/Websites/webkit.org

Updated content for the color blog post.

  • blog-files/color-gamut/Iceland-P3.jpg:
  • blog-files/color-gamut/Iceland-oog.jpg:
  • blog-files/color-gamut/Iceland-sRGB.jpg:
  • blog-files/color-gamut/Italy-P3.jpg:
  • blog-files/color-gamut/Italy-sRGB.jpg:
  • blog-files/color-gamut/Sunset-P3.jpg:
  • blog-files/color-gamut/Sunset-sRGB.jpg:
  • blog-files/color-gamut/YellowFlower-P3.jpg:
  • blog-files/color-gamut/YellowFlower-oog.jpg:
  • blog-files/color-gamut/YellowFlower-sRGB.jpg:
  • blog-files/color-gamut/index.html:
7:00 PM Changeset in webkit [202533] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r202436.
https://bugs.webkit.org/show_bug.cgi?id=159190

We don't need to make this change. (Requested by thorton on
#webkit).

Reverted changeset:

"Do not use iOS specific telephone detection on macOS."
https://bugs.webkit.org/show_bug.cgi?id=159096
http://trac.webkit.org/changeset/202436

6:44 PM Changeset in webkit [202532] by Simon Fraser
  • 9 edits in trunk

[iOS] Make DumpRenderTree and WebKitTestRunner in the simulator use render server snapshotting
https://bugs.webkit.org/show_bug.cgi?id=159077

Reviewed by Tim Horton.

Source/WebKit2:

Fix WebPageProxy::forceRepaint() to correctly wait for the next commit from the web process,
which is necessary for UI-side compositing.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::forceRepaint):

Tools:

Re-enable render server snapshotting for iOS WTR via the change in InjectedBundlePage.cpp.

Fix WebPageProxy::forceRepaint() to correctly wait for the next commit from the web process,
which is necessary for UI-side compositing.

Add some null checks to fix issues when the WKWebView gets resized to be empty, which
seems to happen for some tests that call window.resizeTo().

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::dump): Deleted.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::dumpResults):

  • WebKitTestRunner/cg/TestInvocationCG.cpp:

(WTR::createCGContextFromImage):
(WTR::computeMD5HashStringForContext):
(WTR::TestInvocation::dumpPixelsAndCompareWithExpected):

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::windowSnapshotImage):

LayoutTests:

fast/harness/snapshot-captures-compositing.html passes now.

  • platform/ios-simulator-wk2/TestExpectations:
6:13 PM Changeset in webkit [202531] by benjamin@webkit.org
  • 6 edits
    12 adds in trunk

Adopt the iOS TouchEventHandler API for cases that must have synchronous dispatch
https://bugs.webkit.org/show_bug.cgi?id=159179
rdar://problem/27006387

Reviewed by Simon Fraser.

Source/WebCore:

Tests: fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state.html

fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state.html
fast/events/touch/ios/block-without-overflow-scroll-scrolling-state.html
fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block.html
fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document.html
fast/events/touch/ios/drag-block-without-overflow-scroll.html

  • dom/Document.cpp:

(WebCore::Document::prepareForDestruction):
(WebCore::Document::removeAllEventListeners):

  • dom/Node.cpp:

(WebCore::Node::willBeDeletedFrom):
(WebCore::tryAddEventListener):
(WebCore::tryRemoveEventListener):

  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::registerForTouchEvents):
(WebCore::SliderThumbElement::unregisterForTouchEvents):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::registerAsTouchEventListenerForScrolling):
(WebCore::RenderLayer::unregisterAsTouchEventListenerForScrolling):

LayoutTests:

Several of those tests expose existing bugs with overflow scrolling.
They are not using PASS/FAIL at the moment, just dump the called listeners.

  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state-expected.txt: Added.
  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-block-scrolling-state.html: Added.
  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state-expected.txt: Added.
  • fast/events/touch/ios/block-without-overflow-scroll-and-passive-observer-on-document-scrolling-state.html: Added.
  • fast/events/touch/ios/block-without-overflow-scroll-scrolling-state-expected.txt: Added.
  • fast/events/touch/ios/block-without-overflow-scroll-scrolling-state.html: Added.
  • fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block-expected.txt: Added.
  • fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-block.html: Added.
  • fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document-expected.txt: Added.
  • fast/events/touch/ios/drag-block-without-overflow-scroll-and-passive-observer-on-document.html: Added.
  • fast/events/touch/ios/drag-block-without-overflow-scroll-expected.txt: Added.
  • fast/events/touch/ios/drag-block-without-overflow-scroll.html: Added.
6:00 PM Changeset in webkit [202530] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Windows build.

  • bindings/js/SerializedScriptValue.h:

WTF

5:55 PM Changeset in webkit [202529] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk

Web Inspector: When modifying sessionStorage, localStorage gets updated
https://bugs.webkit.org/show_bug.cgi?id=159181
<rdar://problem/27043447>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-27
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Test/Test.js:

(WebInspector.loaded):
Add registration for StorageManager and StorageObserver.

Source/WebKit2:

  • WebProcess/Storage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
This should be dispatching storage events.

LayoutTests:

  • inspector/storage/domStorage-events-expected.txt: Added.
  • inspector/storage/domStorage-events.html: Added.

Add a new test for DOMStorage domain events. Ensures that sessionStorage
and localStorage events are dispatched for the appropriate DOMStorageObject.

5:42 PM Changeset in webkit [202528] by keith_miller@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Fix bad assert in StructureRareData::setObjectToStringValue
https://bugs.webkit.org/show_bug.cgi?id=159171
<rdar://problem/26987355>

Reviewed by Mark Lam.

We should not have expected the generateConditionsForPrototypePropertyHit would succeed.
There are many reasons it might fail including that there is a proxy somewhere on the
prototype chain of the object.

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::setObjectToStringValue):

  • tests/stress/object-toString-with-proxy.js: Added.

(get target):

5:36 PM Changeset in webkit [202527] by Ryan Haddad
  • 4 edits in trunk/Source/WebCore

Unreviewed, rolling out r202520.
https://bugs.webkit.org/show_bug.cgi?id=159185

This change broke the 32-bit El Capitan build (Requested by
ryanhaddad on #webkit).

Reverted changeset:

"REGRESSION?(r202466): http/tests/security/canvas-remote-read-
remote-video-redirect.html failing on Sierra"
https://bugs.webkit.org/show_bug.cgi?id=159172
http://trac.webkit.org/changeset/202520

Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-27

5:36 PM Changeset in webkit [202526] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

[Cocoa] Test gardening for the system font in macOS Sierra and iOS 10
https://bugs.webkit.org/show_bug.cgi?id=159175
<rdar://problem/26478081>

Unreviewed.

  • fast/text/trak-optimizeLegibility.html:
5:34 PM Changeset in webkit [202525] by achristensen@apple.com
  • 5 edits
    3 deletes in trunk

Fix flakiness on Sierra after r202511
https://bugs.webkit.org/show_bug.cgi?id=159071

Source/WebKit2:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSession::clearCredentials):
Replacing the NSURLSessions immediately caused assertions because the tasks are not always all stopped immediately when tearing down a test.
Stopping an NSURLSession needs to be done asynchronously. I'll try a different testing technique for r202511.

LayoutTests:

  • http/tests/xmlhttprequest/sync-delegate-callbacks-expected.txt: Removed.
  • http/tests/xmlhttprequest/sync-delegate-callbacks.html: Removed.
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wk2/http/tests/xmlhttprequest/sync-delegate-callbacks-expected.txt: Removed.
5:33 PM Changeset in webkit [202524] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit/mac

REGRESSION (r189052): Clipping occurs when using context menu to Look Up words within the Dictionary app
https://bugs.webkit.org/show_bug.cgi?id=159184
<rdar://problem/26370206>

Reviewed by Beth Dakin.

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _lookUpInDictionaryFromMenu:]):

  • WebView/WebImmediateActionController.h:
  • WebView/WebImmediateActionController.mm:

(+[WebImmediateActionController _dictionaryPopupInfoForRange:inFrame:withLookupOptions:indicatorOptions:transition:]):
(-[WebImmediateActionController _animationControllerForText]):
(dictionaryPopupInfoForRange): Deleted.
WebImmediateActionController's code to make a DictionaryPopupInfo and TextIndicator
from a Range in WebKit1 is much better than WebHTMLView's; use it in both cases.

5:26 PM Changeset in webkit [202523] by Gyuyoung Kim
  • 2 edits in trunk/Tools

[EFL] Support to build on Debian linux
https://bugs.webkit.org/show_bug.cgi?id=159123

Reviewed by Antonio Gomes.

  • efl/install-dependencies: Install libgnutls28-dev.
5:23 PM Changeset in webkit [202522] by BJ Burg
  • 6 edits
    4 adds in trunk

Web Inspector: RuntimeManager should not use view object WebInspector.quickConsole
https://bugs.webkit.org/show_bug.cgi?id=128092
<rdar://problem/15966526>

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

This is a layering violation which makes it harder to use RuntimeManager.evaluateInInspectedWindow
from a testing context where the QuickConsole view does not exist.

Store the selected execution context identifier on RuntimeManager and use it
when doing subsequent evaluations that act on the currently selected frame.

  • UserInterface/Controllers/RuntimeManager.js:

(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
(WebInspector.RuntimeManager.prototype.saveResult):
Use local state.

(WebInspector.RuntimeManager.prototype.get defaultExecutionContextIdentifier):
(WebInspector.RuntimeManager.prototype.set defaultExecutionContextIdentifier):
Added.

(WebInspector.RuntimeManager):

  • UserInterface/Models/ExecutionContext.js:

(WebInspector.ExecutionContext):
Move the symbolic name for the top level execution context to RuntimeManager.

  • UserInterface/Test/Test.js:

(WebInspector.loaded): No need to stub out WebInspector.QuickConsole any more.

  • UserInterface/Views/QuickConsole.js:

(WebInspector.QuickConsole.prototype._framePageExecutionContextsChanged):
(WebInspector.QuickConsole.prototype._removeExecutionContextPathComponentForFrame):
(WebInspector.QuickConsole.prototype._updateExecutionContextPathComponentForFrame):
(WebInspector.QuickConsole.prototype._pathComponentSelected):
For now, set RuntimeManager's selected execution context whenever we set the
selected path component. In a future patch, we should invert the dependency and have
the selected component change whenever RuntimeManager.defaultExecutionContext changes.

LayoutTests:

Add some really basic coverage for RuntimeManager.defaultExecutionContextIdentifier
and using it in RuntimeManager.evaluateInInspectedWindow.

  • inspector/runtime/change-execution-context-identifier-expected.txt: Added.
  • inspector/runtime/change-execution-context-identifier.html: Added.
  • inspector/runtime/resources/change-execution-context-identifier-subframe.html: Added.
4:59 PM Changeset in webkit [202521] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Set a default image for sharing webkit.org links via social.
https://bugs.webkit.org/show_bug.cgi?id=159167

Reviewed by Timothy Hatcher.

  • wp-content/plugins/social-meta.php:
4:56 PM Changeset in webkit [202520] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

REGRESSION?(r202466): http/tests/security/canvas-remote-read-remote-video-redirect.html failing on Sierra
https://bugs.webkit.org/show_bug.cgi?id=159172
<rdar://problem/27030025>

Reviewed by Brent Fulgham.

Add a hasSingleSecurityOrigin property to WebCoreNSURLSession that gets updated each time one of that
sessions' tasks receieves a response or a redirect request. Check that property from the MediaPlayerPrivate.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin):

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession updateHasSingleSecurityOrigin:]):
(-[WebCoreNSURLSession dataTaskWithRequest:]):
(-[WebCoreNSURLSession dataTaskWithURL:]):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]):
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:]):

4:26 PM Changeset in webkit [202519] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Crashing at an unreachable code trap in FTL should give more information
https://bugs.webkit.org/show_bug.cgi?id=159177

Reviewed by Saam Barati.

This stuffs information into registers so that we have some chance of seeing what happened
by looking at the register dumps.

  • assembler/AbortReason.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::ftlUnreachable):
(JSC::FTL::DFG::LowerDFGToB3::compileBlock):
(JSC::FTL::DFG::LowerDFGToB3::crash):

3:26 PM Changeset in webkit [202518] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Clean up resetting reachability in B3/Air
https://bugs.webkit.org/show_bug.cgi?id=159170

Reviewed by Geoffrey Garen.

When I fixed bug 159165, I took the brute force approach. I still used the
B3::resetReachability() method, and changed the callback to record the set of deleted values
instead of deleting them eagerly. But this means tracking the set of deleted values, even
though resetReachability() already internally tracks the set of deleted blocks. You can find
out if a value is deleted by asking if its owning block was deleted.

So, this change refactors B3::resetReachability() into a new helper called
B3::recomputePredecessors(). This new helper skips the block deletion step, and lets the
client delete blocks. This lets Air delete blocks the same way that it did before, and it
lets B3 use the isBlockDead() method (which is a glorified proxy for
block->predecessors().isEmpty()) to track which values are deleted. This allows B3 to turn
Upsilons that point to dead Phis into Nops before deleting the blocks.

This shouldn't affect performance or anything real. It just makes the code cleaner.

  • b3/B3BasicBlockUtils.h:

(JSC::B3::updatePredecessorsAfter):
(JSC::B3::recomputePredecessors):
(JSC::B3::isBlockDead):
(JSC::B3::resetReachability): Deleted.

  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::resetReachability):
(JSC::B3::Procedure::invalidateCFG):

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::resetReachability):
(JSC::B3::Air::Code::dump):

3:20 PM Changeset in webkit [202517] by benjamin@webkit.org
  • 5 edits
    14 adds in trunk

Fix style invalidation for :active when the activated node has no renderer
https://bugs.webkit.org/show_bug.cgi?id=159125

Reviewed by Antti Koivisto.

Source/WebCore:

Same old bug: a style invalidation path was depending
on the style.

Here we really need both flags. An element can have
childrenAffectedByActive() false and renderStyle->affectedByActive() true
if it was subject to style sharing.

The element state "childrenAffectedByActive" should be renamed
"styleAffectedByActive" since it is not a parent invalidation flag.
That will be done separately.

Tests: fast/css/pseudo-active-on-labeled-control-without-renderer.html

fast/css/pseudo-active-style-sharing-1.html
fast/css/pseudo-active-style-sharing-2.html
fast/css/pseudo-active-style-sharing-3.html
fast/css/pseudo-active-style-sharing-4.html
fast/css/pseudo-active-style-sharing-5.html
fast/css/pseudo-active-style-sharing-6.html

  • dom/Element.cpp:

(WebCore::Element::setActive):

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelationsToRenderStyle):

LayoutTests:

There was no bug with style sharing but I wanted that covered anyway.
Style sharing depends on 2 flags which is uncommon.
There was no test coverage whatsoever, breaking it did not fail any test.

  • fast/css/pseudo-active-on-labeled-control-without-renderer-expected.txt: Added.
  • fast/css/pseudo-active-on-labeled-control-without-renderer.html: Added.
  • fast/css/pseudo-active-style-sharing-1-expected.txt: Added.
  • fast/css/pseudo-active-style-sharing-1.html: Added.
  • fast/css/pseudo-active-style-sharing-2-expected.txt: Added.
  • fast/css/pseudo-active-style-sharing-2.html: Added.
  • fast/css/pseudo-active-style-sharing-3-expected.txt: Added.
  • fast/css/pseudo-active-style-sharing-3.html: Added.
  • fast/css/pseudo-active-style-sharing-4-expected.txt: Added.
  • fast/css/pseudo-active-style-sharing-4.html: Added.
  • fast/css/pseudo-active-style-sharing-5-expected.txt: Added.
  • fast/css/pseudo-active-style-sharing-5.html: Added.
  • fast/css/pseudo-active-style-sharing-6-expected.txt: Added.
  • fast/css/pseudo-active-style-sharing-6.html: Added.
3:13 PM Changeset in webkit [202516] by jdiggs@igalia.com
  • 3 edits
    3 adds in trunk

AX: REGRESSION (r202063): ARIA role attribute is being ignored for label element
https://bugs.webkit.org/show_bug.cgi?id=159162

Reviewed by Chris Fleizach.

Source/WebCore:

createFromRenderer() was creating an AccessibilityLabel for any HTMLLabelElement which
lacked an explicitly-handled ARIA role. We should instead create an AccessibilityLabel
when there is no ARIA role.

Test: accessibility/aria-role-on-label.html

  • accessibility/AXObjectCache.cpp:

(WebCore::createFromRenderer):

LayoutTests:

This regression was caught by a GTK-specific layout test. Adding a cross-platform
test for additional coverage.

  • accessibility/aria-role-on-label.html: Added.
  • platform/gtk/accessibility/aria-role-on-label-expected.txt: Added.
  • platform/mac/accessibility/aria-role-on-label-expected.txt: Added.
2:50 PM Changeset in webkit [202515] by BJ Burg
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: CRASH in backend at Inspector::HeapFrontendDispatcher::garbageCollected + 552 when closing frontend/inspected page
https://bugs.webkit.org/show_bug.cgi?id=159075
<rdar://problem/26094341>

Reviewed by Filip Pizlo.

This change caused JSC stress tests to all hit an assertion in RunLoop.
We should use RunLoop::current() to create the RunLoop::Timer since JSC-only
clients like testapi and jsc don't ever call initializeMainRunLoop().

  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask):

2:45 PM Changeset in webkit [202514] by Ryan Haddad
  • 8 edits
    2 deletes in trunk

Unreviewed, rolling out r202505.
https://bugs.webkit.org/show_bug.cgi?id=159169

The test added with this change is flaky and it caused an
existing test to time out on El Capitan. (Requested by
ryanhaddad on #webkit).

Reverted changeset:

"[iOS] Media controls are too cramped with small video"
https://bugs.webkit.org/show_bug.cgi?id=158815
http://trac.webkit.org/changeset/202505

Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-27

2:44 PM Changeset in webkit [202513] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Add :focus-within to the status page

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-27

  • features.json:

I forgot to update the json file when landing the feature.

2:36 PM Changeset in webkit [202512] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

B3::Procedure::resetReachability() can create dangling references from Upsilons to Phis
https://bugs.webkit.org/show_bug.cgi?id=159165

Reviewed by Mark Lam.

You can delete an unreachable block that has a Phi but some prior block may still have an
Upsilon pointing to that Phi. This can happen if the Upsilon precedes a Check that always
exits or it can happen if we remove some successor of a block and this block had an Upsilon
for one of the removed successors. These things are valid IR even if they are not canonical.
Our policy for not-canonical-but-valid IR is that the compiler should still emit valid code
in the end.

The solution is to have Procedure::resetReachability() turn those Upsilons into Nops.

  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::resetReachability): Fix the bug.

  • b3/B3Validate.h:
  • b3/testb3.cpp:

(JSC::B3::testResetReachabilityDanglingReference): Add a test. This always crashes prior to this change.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::killUnreachableBlocks): Add a FIXME about a possible similar bug.

1:59 PM Changeset in webkit [202511] by commit-queue@webkit.org
  • 32 edits
    3 adds in trunk

Send canAuthenticateAgainstProtectionSpace calls from NetworkProcess directly to UIProcess
https://bugs.webkit.org/show_bug.cgi?id=159071

Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-27
Reviewed by Brady Eidson.

Source/WebKit2:

When CFNetwork asks the NetworkProcess if we can authenticate against this protection space, we used to ask
the WebProcess, which would call ResourceLoader::canAuthenticateAgainstProtectionSpace which would ask the FrameLoaderClient,
which would synchronously ask the UIProcess. Going directly from the NetworkProcess to the UIProcess gives us many advantages:

  1. It reduces IPC because we ask fewer loads.
  2. It reduces synchronous IPC because we are not using the same code path as WebKit1 any more.
  3. It allows us to check if the NetworkProcess is still valid in sendToNetworkingProcess, possibly fixing rdar://problem/26825408
  4. It allows us to ask the UIProcess when we get authentication challenges for synchronous xhr.

I added a new test http/tests/xmlhttprequest/sync-delegate-callbacks.html to verify the change in behavior of synchronous xhr.
In order to make this test not flaky on platforms using NSURLSession, we clear the NSURLSessions used by WebKitTestRunner
to make sure that the TLS session cache is cleared so we get NSURLAuthenticationChallenges corresponding to the NSURLConnection
canAuthenticateAgainstProtectionSpace callback when we initiate the first HTTPS connection to 127.0.0.1 with this session.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::canAuthenticateAgainstProtectionSpaceAsync):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::clearCachedCredentials):
(WebKit::NetworkProcess::ensurePrivateBrowsingSession):
(WebKit::NetworkProcess::cancelDownload):
(WebKit::NetworkProcess::canAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcess::continueCanAuthenticateAgainstProtectionSpaceDownload):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::canAuthenticateAgainstProtectionSpaceAsync):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/NetworkResourceLoader.messages.in:
  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSession::networkStorageSession):
(WebKit::NetworkSession::clearCredentials):
(WebKit::NetworkSession::dataTaskForIdentifier):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::canAuthenticateAgainstProtectionSpace):
(WebKit::DownloadProxy::willSendRequest):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::logSampledDiagnosticMessageWithValue):
(WebKit::NetworkProcessProxy::canAuthenticateAgainstProtectionSpace):
(WebKit::NetworkProcessProxy::sendProcessWillSuspendImminently):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::backForwardClear):
(WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpace):
(WebKit::WebPageProxy::didReceiveAuthenticationChallenge):
(WebKit::WebPageProxy::canAuthenticateAgainstProtectionSpaceInFrame): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResource):
(WebKit::WebResourceLoader::isAlwaysOnLoggingAllowed):
(WebKit::WebResourceLoader::canAuthenticateAgainstProtectionSpace): Deleted.

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::canAuthenticateAgainstProtectionSpace):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::clearCachedCredentials):
(WebKit::WebProcess::focusedWebPage):

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setHandlesAuthenticationChallenges):
(WTR::TestRunner::setShouldLogCanAuthenticateAgainstProtectionSpace):
(WTR::TestRunner::setAuthenticationUsername):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::TestController):
(WTR::TestController::resetStateToConsistentValues):
(WTR::TestController::didFinishNavigation):
(WTR::TestController::canAuthenticateAgainstProtectionSpace):
(WTR::TestController::didReceiveAuthenticationChallenge):
(WTR::TestController::didCommitNavigation):

  • WebKitTestRunner/TestController.h:

(WTR::TestController::setBlockAllPlugins):
(WTR::TestController::setShouldLogHistoryClientCallbacks):
(WTR::TestController::setShouldLogCanAuthenticateAgainstProtectionSpace):
(WTR::TestController::isCurrentInvocation):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
Added output so we can see when canAuthenticateAgainstProtectionSpace is called from the test expectations.

LayoutTests:

  • http/tests/xmlhttprequest/sync-delegate-callbacks-expected.txt: Added.
  • http/tests/xmlhttprequest/sync-delegate-callbacks.html: Added.
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wk2/http/tests/xmlhttprequest/sync-delegate-callbacks-expected.txt: Added.
1:52 PM Changeset in webkit [202510] by ap@apple.com
  • 1 edit
    1 delete in trunk/LayoutTests

Remove OS X Mavericks test results

Rubber-stamped by Lucas Forschler.

  • platform/mac-mavericks: Removed.
1:37 PM Changeset in webkit [202509] by eric.carlson@apple.com
  • 5 edits in trunk

[Mac] PiP placeholder should remain visible when 'controls' attribute is removed
https://bugs.webkit.org/show_bug.cgi?id=159158
<rdar://problem/26727435>

Reviewed by Jer Noble.

Source/WebCore:

No new tests, existing test updated.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.shouldHaveControls): Always return true when in PiP or AirPlay mode.

LayoutTests:

  • media/controls/picture-in-picture-expected.txt: Updated.
  • media/controls/picture-in-picture.html: Ditto.
12:52 PM Changeset in webkit [202508] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add comment to Module feature in features.json
https://bugs.webkit.org/show_bug.cgi?id=159159

Reviewed by Saam Barati.

  • features.json:
12:17 PM Changeset in webkit [202507] by oliver@apple.com
  • 3 edits in trunk/Source/WebCore

Update ATS WebContent exception for more robust framework information
https://bugs.webkit.org/show_bug.cgi?id=159151

Reviewed by Alex Christensen.

We found some unexpected poor interaction with AVFoundation in the existing
CFNetwork SPI. This new SPI is more solid and let's us provide more useful
information while also being more future proof against new frameworks and
ATS modes.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::createNSURLConnection):

12:11 PM Changeset in webkit [202506] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WTF

Remove now unused WTF::findNextLineStart
https://bugs.webkit.org/show_bug.cgi?id=159157

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-27
Reviewed by Mark Lam.

Unused after r202498.

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::findNextLineStart): Deleted.

  • wtf/text/StringImpl.h:

(WTF::findNextLineStart): Deleted.

  • wtf/text/WTFString.h:

(WTF::String::findNextLineStart): Deleted.

12:06 PM Changeset in webkit [202505] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk

[iOS] Media controls are too cramped with small video
https://bugs.webkit.org/show_bug.cgi?id=158815
<rdar://problem/26824238>

Patch by Antoine Quint <Antoine Quint> on 2016-06-27
Reviewed by Dean Jackson.

Source/WebCore:

In updateLayoutForDisplayedWidth(), we try to ensure a minimum width is guaranteed
for the progress indicator. However, we were not accounting for the width used by
the current and remaining time labels on either side of it, so we would incorrectly
conclude that we were guaranteeing the minimum time and yield incorrect layouts since
we were trying to fit more buttons than we had room for.

In order to correctly compute the available width for the progress indicator, we now
have clones of the current and remaining time labels, hidden from video and VoiceOver,
that we update along with the originals. The same styles apply to both clones and
originals, so we may measure the clones to determine the space used by the time labels.
The reason we need to use clones is that if the time labels had previously been hidden
from view, precisely because there was not enough space to display them along with the
progress indicator, then trying to obtain metrics from them would yield 0 since they had
"display: none" styles applied. In order to avoid extra layouts and possible flashing, we
use the clones so that we never have to toggle the "display" property of the originals
just to obtain their measurements.

As a result of this change, we adjust the constant used to set the minimum required
width available to display the progress indicator after all other essential controls
and labels have been measured. That constant used to account for the width of the
time labels, and this is no longer correct.

Test: media/video-controls-drop-and-restore-timeline.html

  • Modules/mediacontrols/mediaControlsApple.css:

(::-webkit-media-controls-time-remaining-display.clone):

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller):
(Controller.prototype.createTimeClones):
(Controller.prototype.removeTimeClass):
(Controller.prototype.addTimeClass):
(Controller.prototype.updateDuration):
(Controller.prototype.updateLayoutForDisplayedWidth):
(Controller.prototype.updateTime):
(Controller.prototype.updateControlsWhileScrubbing):

  • Modules/mediacontrols/mediaControlsiOS.css:

(::-webkit-media-controls-time-remaining-display.clone):

  • Modules/mediacontrols/mediaControlsiOS.js:

LayoutTests:

Adjust the output of this test to account for the time label clones and add a new test.

  • media/video-controls-drop-and-restore-timeline-expected.txt: Added.
  • media/video-controls-drop-and-restore-timeline.html: Added.
  • platform/mac-yosemite/http/tests/media/hls/video-controls-live-stream-expected.txt:
  • platform/mac/http/tests/media/hls/video-controls-live-stream-expected.txt:
12:06 PM Changeset in webkit [202504] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Discounted items are displayed with positive values
https://bugs.webkit.org/show_bug.cgi?id=159160
rdar://problem/26980772

Reviewed by Dean Jackson.

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toDecimalNumber):
Add new helper function. Correctly compute the mantissa.

(WebKit::toPKPaymentSummaryItem):
(WebKit::toPKShippingMethod):
Use toDecimalNumber.

11:52 AM Changeset in webkit [202503] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Update features.json for ES6 completed features.
https://bugs.webkit.org/show_bug.cgi?id=159152

Reviewed by Mark Lam.

  • features.json:
11:35 AM Changeset in webkit [202502] by fpizlo@apple.com
  • 12 edits
    2 adds in trunk/Source/JavaScriptCore

B3 should not use Nops when deleting unreachable code
https://bugs.webkit.org/show_bug.cgi?id=159120
rdar://problem/26500743

Reviewed by Michael Saboff.

Prior to this change, transformations that obviated the need for some value could choose
from these ways to kill it:

  • replaceWithIdentity() if we're replacing with another value.
  • replaceWithNop() if the type is Void or if we know that we'll fix any users of this value.
  • deleteValue() if the code is unreachable.


The bug here is that reduceStrength() was being clever about how to get rid of a value.
reduceStrength() may find a Check that must always exit. The goal is to remove any code
dominated by the Check. But it would be awkward to eagerly delete all of the blocks
dominated by this one. So this code took a much simpler approach: it would
replaceWithNop() for all of the values in this block after the Check and it would replace
the terminal with Oops.

But this corrupts the IR in a subtle way: some of those values may have been non-Void but
now they are Nops so they are Void. reduceStrength() will not yet realize that the blocks
dominated by the one with the Check are unreachable, so it will run all sorts of
optimizations on those blocks. This could have probably manifested as many different kinds
of badness, but the way I found out about this issue was through a crash in
IntRange::top(Type) when inlined into ReduceStrength::rangeFor(). We'd die in a switch
statement over a child's type.

We could fix this by making rangeFor() tolerate Void. But I think that this would be
dangerous. There could easily be other places in reduceStrength() that assume that value's
children are non-Void. So, this change fixes the Check optimization and adds mechanisms to
prevent other optimizations from breaking the children-are-not-Void rule.

This introduces two high-level changes:

  • It's no longer legal to replaceWithNop() if the value is not Void. This change alone would cause reduceStrength() to instacrash in its Check optimization. Almost all other uses of replaceWithNop() were already following this rule, so they were fine. One other place was using replaceWithNop() on non-Void values after arranging for them to no longer have any parents. That was changed to call replaceWithNopIgnoringType(), which doesn't have any type assertions.


  • For reduceStrength() there is a new Value::replaceWithBottom() method that works with Void or non-Void and behaves like you would want replaceWithNop() to behave: if you know that the code is unreachable then it produces something that is guaranteed to be deleted by later optimizations, and if it's not unreachable, then it's guaranteed to be compiled to something harmless and cheap. This means replacing the value with an identity that points to a bottom constant (the 0 for whatever type we have), or just replacing it with Nop if it's Void.


This also adds a test case for the reason why we do this: we may have two blocks, where
the first block unconditionally exits while dominating the second block. The second block
references values in the part of the first block that is unreachable. In trunk, this test
would assert in ReduceStrength::rangeFor() because the CheckAdd in the second block would
reference a Nop in the first block.

This fixes a high volume crash in ReduceStrength::rangeFor(). This crash was very
confusing. Even though we were crashing at a RELEASE_ASSERT_NOT_REACHED() in a switch
statement in IntRange::top(Type), clang was merging that trap with the trap it used for
Vector OOB. The top of the stack in crash dumps looked like:

JSC::B3::(anonymous namespace)::ReduceStrength::rangeFor(JSC::B3::Value*, unsigned int) + 4477 (Vector.h:655)


Where Vector.h:655 is:

OverflowHandler::overflowed();

But this crash was not at Vector.h:655. It was at B3ReduceStrength.cpp:121. The two lines
are both traps, so they got merged despite differences in debug info. This bug would have
been so much easier to fix if I had the right line number.

  • b3/B3BottomProvider.h: Added. This is a utility for creating bottom values.

(JSC::B3::BottomProvider::BottomProvider):
(JSC::B3::BottomProvider::operator()):

  • b3/B3InsertionSet.cpp: Optimized adding bottom values a bit. We will no longer create pointless duplicates.

(JSC::B3::InsertionSet::insertBottom):
(JSC::B3::InsertionSet::execute):
(JSC::B3::InsertionSet::bottomForType):

  • b3/B3InsertionSet.h:
  • b3/B3MoveConstants.cpp: Use replaceWithNopIgnoringType() because we *know* that we can replaceWithNop even for non-Void.
  • b3/B3Procedure.h:
  • b3/B3ReduceStrength.cpp: Use replaceWithBottom().
  • b3/B3ReduceStrength.h:
  • b3/B3TypeMap.h: I figured if I wrote type-casing code like this once then I'd never want to write it again.
  • b3/B3Value.cpp:

(JSC::B3::Value::replaceWithIdentity):
(JSC::B3::Value::replaceWithNop):
(JSC::B3::Value::replaceWithNopIgnoringType):

  • b3/B3Value.h:
  • b3/B3ValueInlines.h:

(JSC::B3::Value::replaceWithBottom): This is the new method of killing unreachable code.
(JSC::B3::Value::as):

  • b3/testb3.cpp: Add new tests!

(JSC::B3::testLateRegister):
(JSC::B3::testReduceStrengthCheckBottomUseInAnotherBlock):
(JSC::B3::zero):
(JSC::B3::run):

11:30 AM Changeset in webkit [202501] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

11:29 AM Changeset in webkit [202500] by bshafiei@apple.com
  • 5 edits in branches/safari-601-branch/Source

Versioning.

11:28 AM Changeset in webkit [202499] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

No error message when passing an invalid API version to ApplePaySession constructor
https://bugs.webkit.org/show_bug.cgi?id=159154

Reviewed by Tim Horton.

Log an error message if the version is not supported. Also, check for version 0 since that is also not supported.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::create):

11:18 AM Changeset in webkit [202498] by Joseph Pecoraro
  • 5 edits in trunk

REGRESSION: Web Inspector: Text search broken in resources with <CR>
https://bugs.webkit.org/show_bug.cgi?id=159110
<rdar://problem/27008485>

Reviewed by Brian Burg.

Source/JavaScriptCore:

  • inspector/ContentSearchUtilities.cpp:

(Inspector::ContentSearchUtilities::lineEndings):
The frontend moved to only treated newlines as line endings in
the TextEditor. The backend however was looking for many
different types of line endings (\r\n, \r, \n). This caused
the line endings to ultimately differ between the frontend
and the backend, so the frontend couldn't find the lines that
the backend was claiming search results were on. Change the
backend to only look for \n line endings.

LayoutTests:

  • inspector/debugger/searchInContent-linebreaks-expected.txt:
  • inspector/debugger/searchInContent-linebreaks.html:

Now that the backend responds with lines that end in \n, this test changes
the number of line results. The frontend interprets this correctly.

10:57 AM Changeset in webkit [202497] by jdiggs@igalia.com
  • 11 edits
    6 adds in trunk

AX: Anonymous RenderMathMLOperators are not exposed to the accessibility tree
https://bugs.webkit.org/show_bug.cgi?id=139582
<rdar://problem/26938849>

Reviewed by Chris Fleizach.

This is based on a patch by Frederic Wang <fwang@igalia.com>.

Source/WebCore:

WebCore assigns the generic MathElementRole AccessibilityRole to elements
which are expected to be included in the accessibility tree. This assignment
is based on the AccessibilityRenderObject's node being a MathMLElement. The
anonymous RenderMathMLOperators fail that test.

From the perspective of accessibility support, these operators function
like MathMLElements. Furthermore, both WebCore and the platforms rely
upon MathElementRole to identify accessible MathML objects. The simplest
fix is to have AccessibilityRenderObject::isMathElement() treat anonymous
MathML operators as if they were MathMLElements.

Now that these operators are being exposed, we need to handle them in
AccessibilityRenderObject::textUnderElement() which assumes that anonymous
objects either have nodes or have children with nodes. And crashes when
that fails to be the case. Making RenderMathMLOperator::textContent()
public and then using it to get the text under anonymous operators solves
this problem. We also assign StaticTextRole to these operators on the Mac
because the default platform mapping of MathElementRole is GroupRole, which
made sense when we had a child RenderText object holding the operator.

Lastly, AccessibilityRenderObject::isIgnoredElementWithinMathTree() no
longer needs to special-case anonymous operators because they now have
MathElementRole.

Tests: accessibility/math-fenced.html

accessibility/math-foreign-content.html

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isAnonymousMathOperator):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::textUnderElement):
(WebCore::AccessibilityRenderObject::stringValue):
(WebCore::AccessibilityRenderObject::isMathElement):
(WebCore::AccessibilityRenderObject::isAnonymousMathOperator):
(WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):

  • accessibility/AccessibilityRenderObject.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper role]):

  • rendering/mathml/RenderMathMLMath.h:
  • rendering/mathml/RenderMathMLOperator.h:

(WebCore::RenderMathMLOperator::textContent):

LayoutTests:

One of the things making it difficult to tell that the operators were not
exposed on the Mac is the fact that the operator text is present. But the
operator text is simply a StaticTextRole object corresponding to the
RenderText descendant of the operator. Furthermore, on the Mac, accessible
math operators have subroles which are missing from the StaticTextRole
object which is exposed. In order to make issues like this more obvious,
add an option to include the subrole to dumpAccessibilityTree() and use it
in the new math-fenced.html.

This change also fixes the mfenced in mac/mathml-elements.html that was
broken after r202420. We enable it again and update the expectations of
that test because the operators are now in the accessibility tree.

We also add a new test to verify the render tree of foreign content in
MathML formulas.

  • accessibility/mac/mathml-elements-expected.txt: Updated.
  • accessibility/mac/mathml-elements.html: Re-enable the mfenced test.
  • accessibility/math-fenced.html: Added.
  • accessibility/math-foreign-content.html: Added.
  • platform/gtk/accessibility/math-fenced-expected.txt: Added.
  • platform/gtk/accessibility/math-foreign-content-expected.txt: Added.
  • platform/mac/accessibility/math-fenced-expected.txt: Added.
  • platform/mac/accessibility/math-foreign-content-expected.txt: Added.
  • resources/accessibility-helper.js: Add option to include subrole in tree.

(dumpAccessibilityTree):

10:57 AM Changeset in webkit [202496] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Remove flaky expectation for imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/event_loadeddata.html
https://bugs.webkit.org/show_bug.cgi?id=150956

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:53 AM Changeset in webkit [202495] by adam.bergkvist@ericsson.com
  • 4 edits in trunk/LayoutTests

WebRTC: Unskip RTCPeerConnection-AddRemoveStream test
https://bugs.webkit.org/show_bug.cgi?id=159133

Reviewed by Eric Carlson.

Unskip RTCPeerConnection-AddRemoveStream test (on GTK+ port). RTCPeerConnection implements
the legacy MediaStream-based API as JS built-ins so we can run this test again.

  • fast/mediastream/RTCPeerConnection-AddRemoveStream-expected.txt:
  • fast/mediastream/RTCPeerConnection-AddRemoveStream.html:
  • platform/gtk/TestExpectations:
10:52 AM Changeset in webkit [202494] by adam.bergkvist@ericsson.com
  • 1 edit
    1 delete in trunk/Source/WebCore

WebRTC: Remove unused RTCOfferAnswerOptionsPrivate.h
https://bugs.webkit.org/show_bug.cgi?id=159130

Reviewed by Eric Carlson.

Remove unused RTCOfferAnswerOptionsPrivate.h file.

  • platform/mediastream/RTCOfferAnswerOptionsPrivate.h: Removed.
10:50 AM Changeset in webkit [202493] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Crash in layout test /media/video-buffered-range-contains-currentTime.html
https://bugs.webkit.org/show_bug.cgi?id=159109
<rdar://problem/26535750>

Reviewed by Alex Christensen.

Guard against a dealloc race condition by holding a retain on the session
until the task's _resource:loadFinishedWithError: completes, including
main thread callbacks.

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask _resource:loadFinishedWithError:]):

10:50 AM Changeset in webkit [202492] by BJ Burg
  • 3 edits in trunk/Source/JavaScriptCore

Web Inspector: CRASH in backend at Inspector::HeapFrontendDispatcher::garbageCollected + 552 when closing frontend/inspected page
https://bugs.webkit.org/show_bug.cgi?id=159075
<rdar://problem/26094341>

Reviewed by Timothy Hatcher.

Move the asynchronous work to a task class that can be cancelled when the
heap agent is reset, disabled or destroyed.

  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask):
(Inspector::SendGarbageCollectionEventsTask::addGarbageCollection):
(Inspector::SendGarbageCollectionEventsTask::reset):
(Inspector::SendGarbageCollectionEventsTask::timerFired):
Added. This holds onto GarbageCollectionData that needs to be sent asynchronously.
It uses the RunLoop variant of Timer and can queue multiple collections to be sent.
The data vector is guarded with a lock so that garbageCollected() can safely add
collection data from a non-main thread while the main thread sends out events.

(Inspector::InspectorHeapAgent::InspectorHeapAgent):
(Inspector::InspectorHeapAgent::~InspectorHeapAgent):
(Inspector::InspectorHeapAgent::disable):
Reset the task when disabling or tearing down the agent so the timer doesn't fire after destruction.

(Inspector::InspectorHeapAgent::didGarbageCollect):
Add the collection data to the task, which will dispatch an event for it asynchronously.

  • inspector/agents/InspectorHeapAgent.h:
10:44 AM Changeset in webkit [202491] by fred.wang@free.fr
  • 5 edits in trunk/LayoutTests

Update TestExpectations for some dynamic MathML tests
https://bugs.webkit.org/show_bug.cgi?id=159142

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-27
Reviewed by Brent Fulgham.

  • TestExpectations: Enable this test again after r199980.
  • platform/efl/TestExpectations: This is already claimed to pass in the platform independent TestExpectations.
  • platform/gtk/TestExpectations: Ditto.
  • platform/ios-simulator/TestExpectations: This test passes after the refactoring of RenderMathMLOperator.
10:38 AM Changeset in webkit [202490] by msaboff@apple.com
  • 7 edits in trunk

ES6 Change: Unify handling of RegExp CharacterClassEscapes \w and \W and Word Asserts \b and \B
https://bugs.webkit.org/show_bug.cgi?id=158505

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This change makes it so that the CharacterClassEscape \w matches the inverse of
\W and vice versa for unicode, ignore case RegExp's.

Before this change, both /\w/ui and /\W/ui RegExp's would match the characters
k, K, s, S, \u017f (Latin Small Letter Long S) and \u212a (Kelvin Sign).
This was due to how the ES6 standard defined matching of character classes
specifically that the abstract operation "Canonicalize()" is called for the
character to be matched AND for the characters in the character class we are
matching against. This change is to make \W always be the inverse of \w.
It is still the case that the characters that match against \w changes
depending on a regular expression's flags.

The only real changes occur for regular expressions with both the unicode and
ignore case flags set. Updated the character class generator to make
nonwordUnicodeIgnoreCaseChar not include k, K, s, S, \u017f and \u212a.
Changed BytecodePattern.wordcharCharacterClass to use the correct
word character class for the flags. Simplfied character class set up in
in the pattern to use m_pattern.wordUnicodeIgnoreCaseCharCharacterClass and
invert as appropriate when unicode and ignore case are both set.

  • create_regex_tables:
  • yarr/YarrInterpreter.h:

(JSC::Yarr::BytecodePattern::BytecodePattern):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::atomBuiltInCharacterClass):

LayoutTests:

Updated and added test cases.

  • js/regexp-unicode-expected.txt:
  • js/script-tests/regexp-unicode.js:
10:36 AM Changeset in webkit [202489] by fred.wang@free.fr
  • 8 edits in trunk

Set an upper limit for the size or number of pieces of stretchy operators
https://bugs.webkit.org/show_bug.cgi?id=155434

Source/WebCore:

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-27
Reviewed by Brent Fulgham.

Stretchy MathML operators can currently use an arbitrary number of extension glyphs to cover
a target size. This may result in hangs if large stretch sizes are requested. This change
only allow at most the 128 first extensions to be painted by the MathOperator class, which
should really be enough for mathematical formulas used in practice.

No new tests, already tested by very-large-stretchy-operators.

  • rendering/mathml/MathOperator.cpp: Add a new kMaximumExtensionCount constant.

(WebCore::MathOperator::fillWithVerticalExtensionGlyph): Limit the number of step in this loop to kMaximumExtensionCount.
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Ditto.

LayoutTests:

Update test expectations for very-large-stretchy-operators.

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-27
Reviewed by Brent Fulgham.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
10:33 AM Changeset in webkit [202488] by fred.wang@free.fr
  • 2 edits in trunk/Source/WebCore

Small refactoring MathMLInlineContainerElement::createElementRenderer
https://bugs.webkit.org/show_bug.cgi?id=159131

Reviewed by Brent Fulgham.

Many of the MathML renderer classes have been merged during the MathML refactoring. We
simplify how instances are created in MathMLInlineContainerElement::createElementRenderer
by removing duplicate createRenderer calls.

No new tests, behavior unchanged.

  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::createElementRenderer):

9:48 AM Changeset in webkit [202487] by keith_miller@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

DFGByteCodeParsing does not handle calling the Object constructor with no arguments correctly
https://bugs.webkit.org/show_bug.cgi?id=159117
<rdar://problem/26996781>

Reviewed by Saam Barati.

DFGByteCodeParsing always assumed there would be an argument to the Object constructor.
This is clearly not always the case and we should be able to handle it.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):

  • tests/stress/indirect-call-object-constructor-with-no-arguments.js: Added.

(let.foo.Object.test):

9:01 AM Changeset in webkit [202486] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip two LayoutTests that rely on mouse events on ios-simulator

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
8:10 AM WebKitGTK/Gardening/Calendar edited by jfernandez@igalia.com
(diff)
7:47 AM Changeset in webkit [202485] by jfernandez@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening. Added Failure Test Expectations because of r194502 and r194513.
https://bugs.webkit.org/show_bug.cgi?id=159147

  • platform/gtk/TestExpectations:
7:23 AM WebKitGTK/Gardening/Calendar edited by jfernandez@igalia.com
(diff)
3:57 AM Changeset in webkit [202484] by commit-queue@webkit.org
  • 5 edits in trunk/Source

[GTK][EFL] Build with threaded compositor enabled is broken
https://bugs.webkit.org/show_bug.cgi?id=159138

Patch by Miguel Gomez <magomez@igalia.com> on 2016-06-27
Reviewed by Carlos Garcia Campos.

Source/WebCore:

No need to set the device scale. The compositor buffer is only used for the accelerated
canvas scenario, and the device scale is always 1 there.
This change was introduced in r202421.

Covered by existing tests.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBufferData::createCompositorBuffer):

Source/WebKit2:

Replace the usage of NoncopyableFunction with Function, to follow the changes in r202439.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::CompositingRunLoop::performTask):
(WebKit::CompositingRunLoop::performTaskSync):

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
2:22 AM Changeset in webkit [202483] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/form-control-infrastructure/ is failing on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=159136

Unreviewed.

Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-27

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/form-control-infrastructure/form-expected.txt: Added.
2:21 AM Changeset in webkit [202482] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

[GStreamer] top/bottom black bars added needlessly in fullscreen
https://bugs.webkit.org/show_bug.cgi?id=158980

Patch by Philippe Normand <philn@igalia.com> on 2016-06-27
Reviewed by Carlos Garcia Campos.

The natural video size calculation depends on the validity of the
current sample, so whenever the first sample reached the sink it's a
good idea to reflect this on the player which will update its natural
size accordingly.

Fixes an issue where black borders were added on top and bottom of
fullscreen video.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

2:01 AM Changeset in webkit [202481] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win] The test fast/events/wheel-event-outside-body.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=159129

Reviewed by Alex Christensen.

Implement the function mouseScrollBy in the Windows event sender.

  • DumpRenderTree/win/EventSender.cpp:

(mouseScrollBy):
(mouseScrollByWithWheelAndMomentumPhasesCallback):

1:28 AM Changeset in webkit [202480] by commit-queue@webkit.org
  • 21 edits in trunk

Remove didFailRedirectCheck ThreadableLoaderClient callback
https://bugs.webkit.org/show_bug.cgi?id=159085

Patch by Youenn Fablet <youenn@apple.com> on 2016-06-27
Reviewed by Daniel Bates.

Source/WebCore:

Removing didFailRedirectCheck and using didFailAccessControlCheck instead.
The change in behavior is that additional error messages are outputted in the console.
These messages give additional debugging information.

Covered by rebased tests.

  • Modules/fetch/FetchLoader.cpp: Removing didFailRedirectCheck.
  • Modules/fetch/FetchLoader.h: Ditto.
  • inspector/InspectorNetworkAgent.cpp: Ditto.
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived): Calling didFailAccessControlCheck with information on failing
URL.
(WebCore::DocumentThreadableLoader::loadRequest): Ditto.

  • loader/ThreadableLoaderClient.h: Removing didFailRedirectCheck.
  • loader/ThreadableLoaderClientWrapper.h: Ditto.
  • loader/WorkerThreadableLoader.cpp: Ditto.
  • loader/WorkerThreadableLoader.h: Ditto.
  • page/EventSource.cpp: Ditto.
  • page/EventSource.h: Ditto.
  • workers/WorkerScriptLoader.cpp: Ditto.
  • workers/WorkerScriptLoader.h: Ditto.
  • xml/XMLHttpRequest.cpp: Ditto.
  • xml/XMLHttpRequest.h: Ditto.

LayoutTests:

  • http/tests/security/contentSecurityPolicy/connect-src-eventsource-redirect-to-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-redirect-to-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:

Jun 26, 2016:

10:10 PM Changeset in webkit [202479] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebCore

[EFL] Fix build warning when using geoclue2
https://bugs.webkit.org/show_bug.cgi?id=159128

Reviewed by Antonio Gomes.

EFL port has handled build warning as error. So EFL port
hasn't been built when we use geoclue2 library because a generated geoclue2 file
has unused-parameter build warning. To fix it this patch set to ignore the build warning
in the generated geoclue2 file.

  • PlatformEfl.cmake:
6:29 PM Changeset in webkit [202478] by Chris Dumez
  • 3 edits
    2 adds in trunk

Regression: HTMLOptionsCollection's named properties have precedence over indexed properties
https://bugs.webkit.org/show_bug.cgi?id=159058
<rdar://problem/26988542>

Reviewed by Ryosuke Niwa.

Source/WebCore:

HTMLOptionsCollection's named properties had precedence over indexed properties,
which is wrong as per:
http://heycam.github.io/webidl/#getownproperty-guts

The reason is that there was a named property getter defined on HTMLOptionsCollection
but no indexed property getter. As a result, HTMLOptionsCollection would fall back to
using HTMLCollection's indexed property getter but HTMLOptionsCollection's named getter
would take precedence. This patch defines an indexed property getter on
HTMLOptionsCollection to fix the problem.

Ideally, HTMLOptionsCollection would have no indexed / named property getters and would
entirely rely on the ones from HTMLCollection. However, our bindings generator currently
has trouble with this and requires HTMLOptionsCollection to have a named getter.

Test: fast/dom/HTMLSelectElement/options-indexed-getter-precedence.html

  • html/HTMLOptionsCollection.idl:

LayoutTests:

Add layout test coverage.

  • fast/dom/HTMLSelectElement/options-indexed-getter-precedence-expected.txt: Added.
  • fast/dom/HTMLSelectElement/options-indexed-getter-precedence.html: Added.
3:31 PM Changeset in webkit [202477] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.38-branch/Source

Versioning.

3:25 PM WebKitGTK/Gardening/Calendar edited by jfernandez@igalia.com
(diff)
3:22 PM Changeset in webkit [202476] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.38.2

New tag.

2:57 PM Changeset in webkit [202475] by jfernandez@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening.

Several hidpi tests pass now thanks to r202421.

2:34 PM WebKitGTK/Gardening/Calendar edited by jfernandez@igalia.com
(diff)
11:02 AM Changeset in webkit [202474] by mmaxfield@apple.com
  • 9 edits
    4 adds
    3 deletes in trunk/LayoutTests

[macOS] Font-related test gardening for macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=159106
<rdar://problem/25807529>

Unreviewed.

  • fast/ruby/bopomofo-letter-spacing.html:
  • fast/ruby/bopomofo-rl.html:
  • fast/ruby/bopomofo.html:
  • svg/W3C-SVG-1.1/text-fonts-01-t.svg:
  • svg/text/text-fonts-01-t.svg:
10:21 AM Changeset in webkit [202473] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.38-branch/Source/WebCore

Merged r202472. rdar://problem/27014649

9:25 AM Changeset in webkit [202472] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Regression(r202262): Infinite loop under searchForLinkRemovingExistingDDLinks()
https://bugs.webkit.org/show_bug.cgi?id=159122
<rdar://problem/27014649>

Reviewed by Ryosuke Niwa.

Infinite loop under searchForLinkRemovingExistingDDLinks() because the
value returned by NodeTraversal::next() was ignored and the node iterator
was never updated.

  • editing/cocoa/DataDetection.mm:

(WebCore::searchForLinkRemovingExistingDDLinks):

3:04 AM Changeset in webkit [202471] by commit-queue@webkit.org
  • 157 edits
    1 copy
    108 adds in trunk/LayoutTests

Refreshing WPT tests up to 12b7800
https://bugs.webkit.org/show_bug.cgi?id=158872

Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-26
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • resources/ImportExpectations:
  • resources/TestRepositories:
  • resources/web-platform-tests-modules.json:
  • web-platform-tests/XMLHttpRequest/open-url-bogus-expected.txt:
  • web-platform-tests/XMLHttpRequest/open-url-bogus.htm:
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-4-expected.txt:
  • web-platform-tests/XMLHttpRequest/resources/init.htm:
  • web-platform-tests/XMLHttpRequest/send-entity-body-document-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-usp-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-usp.js:
  • web-platform-tests/XMLHttpRequest/w3c-import.log:
  • web-platform-tests/common/form-submission.py: Added.
  • web-platform-tests/common/w3c-import.log:
  • web-platform-tests/dom/events/Event-defaultPrevented-expected.txt:
  • web-platform-tests/dom/events/Event-defaultPrevented.html:
  • web-platform-tests/dom/events/w3c-import.log:
  • web-platform-tests/dom/historical-expected.txt:
  • web-platform-tests/dom/historical.html:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/interfaces.html:
  • web-platform-tests/dom/lists/w3c-import.log:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
  • web-platform-tests/dom/nodes/DOMImplementation-createDocument.html:
  • web-platform-tests/dom/nodes/Document-characterSet-normalization-expected.txt:
  • web-platform-tests/dom/nodes/Document-characterSet-normalization.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_bmp-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_bmp.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_css-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_css.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_01.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_datauri_02.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_gif-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_gif.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_html-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_html.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_javascripturi-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_javascripturi.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_jpg-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_jpg.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_01-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_01.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_02-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_mimeheader_02.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_png-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_png.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_txt-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_txt.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_xml-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/contenttype_xml.html:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/createDocument-expected.txt:
  • web-platform-tests/dom/nodes/Document-contentType/contentType/createDocument.html:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElement-namespace.html:
  • web-platform-tests/dom/nodes/Element-classlist-expected.txt:
  • web-platform-tests/dom/nodes/Element-classlist.html:
  • web-platform-tests/dom/nodes/Node-cloneNode.html:
  • web-platform-tests/dom/nodes/remove-unscopable-expected.txt:
  • web-platform-tests/dom/nodes/remove-unscopable.html:
  • web-platform-tests/dom/nodes/w3c-import.log:
  • web-platform-tests/domparsing/DOMParser-parseFromString-html-expected.txt:
  • web-platform-tests/domparsing/DOMParser-parseFromString-html.html:
  • web-platform-tests/domparsing/OWNERS:
  • web-platform-tests/domparsing/w3c-import.log:
  • web-platform-tests/fetch/api/redirect/redirect-method.js:
  • web-platform-tests/fetch/api/redirect/w3c-import.log:
  • web-platform-tests/fetch/api/request/request-cache-expected.txt:
  • web-platform-tests/fetch/api/request/request-cache.html:
  • web-platform-tests/fetch/api/request/request-error-expected.txt:
  • web-platform-tests/fetch/api/request/request-error.html:
  • web-platform-tests/fetch/api/request/request-init-001.sub-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-001.sub.html:
  • web-platform-tests/fetch/api/request/request-init-003.sub-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-003.sub.html:
  • web-platform-tests/fetch/api/request/resources/cache.py:
  • web-platform-tests/fetch/api/request/resources/get-host-info.sub.js: Added.
  • web-platform-tests/fetch/api/request/resources/w3c-import.log:
  • web-platform-tests/fetch/api/resources/utils.js:
  • web-platform-tests/fetch/api/resources/w3c-import.log:
  • web-platform-tests/fetch/api/response/response-cancel-stream-expected.txt:
  • web-platform-tests/fetch/api/response/response-cancel-stream.html:
  • web-platform-tests/fetch/api/response/response-consume-stream.html:
  • web-platform-tests/fetch/api/response/response-stream-disturbed-4.html:
  • web-platform-tests/fetch/api/response/response-stream-disturbed-5.html:
  • web-platform-tests/fetch/api/response/w3c-import.log:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/w3c-import.log:
  • web-platform-tests/html/dom/elements-embedded.js:
  • web-platform-tests/html/dom/elements-metadata.js:
  • web-platform-tests/html/dom/elements-tabular.js:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/dom/interfaces.html:
  • web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • web-platform-tests/html/dom/reflection-embedded.html:
  • web-platform-tests/html/dom/reflection-forms-expected.txt:
  • web-platform-tests/html/dom/reflection-forms.html:
  • web-platform-tests/html/dom/reflection-grouping-expected.txt:
  • web-platform-tests/html/dom/reflection-grouping.html:
  • web-platform-tests/html/dom/reflection-metadata-expected.txt:
  • web-platform-tests/html/dom/reflection-metadata.html:
  • web-platform-tests/html/dom/reflection-misc-expected.txt:
  • web-platform-tests/html/dom/reflection-misc.html:
  • web-platform-tests/html/dom/reflection-obsolete-expected.txt:
  • web-platform-tests/html/dom/reflection-obsolete.html:
  • web-platform-tests/html/dom/reflection-sections-expected.txt:
  • web-platform-tests/html/dom/reflection-sections.html:
  • web-platform-tests/html/dom/reflection-tabular-expected.txt:
  • web-platform-tests/html/dom/reflection-tabular.html:
  • web-platform-tests/html/dom/reflection-text-expected.txt:
  • web-platform-tests/html/dom/reflection-text.html:
  • web-platform-tests/html/dom/w3c-import.log:
  • web-platform-tests/html/resources/common.js:
  • web-platform-tests/html/semantics/document-metadata/the-base-element/w3c-import.log:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-rellist-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-rellist.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/kind-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/kind.html:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/kind-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrack/kind.html:
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/sizes-iframed.sub.html:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validate.html:
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/form-expected.txt:
  • web-platform-tests/html/semantics/forms/form-control-infrastructure/form.html:
  • web-platform-tests/html/semantics/forms/form-submission-0/w3c-import.log:
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange-expected.txt:
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange.html:
  • web-platform-tests/html/semantics/forms/the-input-element/checkbox.html:
  • web-platform-tests/html/semantics/forms/the-input-element/radio.html:
  • web-platform-tests/html/semantics/forms/the-input-element/selection-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/selection.html:
  • web-platform-tests/html/semantics/forms/the-label-element/label-attributes-expected.txt:
  • web-platform-tests/html/semantics/forms/the-label-element/label-attributes.html:
  • web-platform-tests/html/semantics/interfaces-expected.txt:
  • web-platform-tests/html/semantics/interfaces.html:
  • web-platform-tests/html/semantics/interfaces.js:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/checked.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/default.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/dir-expected.txt:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/dir.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/dir01.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/disabled.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/enabled.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/focus.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/indeterminate.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/link.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/readwrite-readonly.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/required-optional.html:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/utils.js:
  • web-platform-tests/html/semantics/selectors/pseudo-classes/valid-invalid.html:
  • web-platform-tests/html/semantics/tabular-data/the-table-element/table-rows.html:
  • web-platform-tests/lint.whitelist:
  • web-platform-tests/service-workers/cache-storage/script-tests/cache-storage-match.js:
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/close.https.html: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/registration-attribute.https.html: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/close-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/registration-attribute-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/unregister-controlling-worker.html: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/unregister-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/update-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/update-worker.py: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/w3c-import.log: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https.html: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https.html: Added.
  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/w3c-import.log: Added.
  • web-platform-tests/service-workers/service-worker/activate-event-after-install-state-change.https.html: Added.
  • web-platform-tests/service-workers/service-worker/activation-after-registration.https.html: Added.
  • web-platform-tests/service-workers/service-worker/active.https.html: Added.
  • web-platform-tests/service-workers/service-worker/appcache-ordering-main.https.html: Added.
  • web-platform-tests/service-workers/service-worker/claim-not-using-registration.https.html: Added.
  • web-platform-tests/service-workers/service-worker/claim-using-registration.https.html: Added.
  • web-platform-tests/service-workers/service-worker/clients-get-cross-origin.https.html: Added.
  • web-platform-tests/service-workers/service-worker/clients-get.https.html: Added.
  • web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https.html: Added.
  • web-platform-tests/service-workers/service-worker/clients-matchall-include-uncontrolled.https.html: Added.
  • web-platform-tests/service-workers/service-worker/clients-matchall.https.html: Added.
  • web-platform-tests/service-workers/service-worker/controller-on-load.https.html: Added.
  • web-platform-tests/service-workers/service-worker/controller-on-reload.https.html: Added.
  • web-platform-tests/service-workers/service-worker/extendable-event-async-waituntil.https.html: Added.
  • web-platform-tests/service-workers/service-worker/extendable-event-waituntil.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-cache.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-csp.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-after-navigation-within-page.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-async-respond-with.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-network-error.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-redirect.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-stops-propagation.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-frame-resource.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-header-visibility.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-outscope.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-css-base-url.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-css-images.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-fallback.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-no-freshness-headers.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-redirect.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-resources.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-request-xhr.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-response-xhr.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-waits-for-activate.https.html: Added.
  • web-platform-tests/service-workers/service-worker/getregistration.https.html: Added.
  • web-platform-tests/service-workers/service-worker/getregistrations.https.html: Added.
  • web-platform-tests/service-workers/service-worker/indexeddb.https.html: Added.
  • web-platform-tests/service-workers/service-worker/install-event-type.https.html: Added.
  • web-platform-tests/service-workers/service-worker/installing.https.html: Added.
  • web-platform-tests/service-workers/service-worker/interfaces.https.html: Added.
  • web-platform-tests/service-workers/service-worker/invalid-blobtype.https.html: Added.
  • web-platform-tests/service-workers/service-worker/invalid-header.https.html: Added.
  • web-platform-tests/service-workers/service-worker/multiple-register.https.html: Added.
  • web-platform-tests/service-workers/service-worker/multiple-update.https.html: Added.
  • web-platform-tests/service-workers/service-worker/navigate-window.https.html: Added.
  • web-platform-tests/service-workers/service-worker/navigation-redirect.https.html: Added.
  • web-platform-tests/service-workers/service-worker/onactivate-script-error.https.html: Added.
  • web-platform-tests/service-workers/service-worker/oninstall-script-error.https.html: Added.
  • web-platform-tests/service-workers/service-worker/performance-timeline.https.html: Added.
  • web-platform-tests/service-workers/service-worker/postmessage-msgport-to-client.https.html: Added.
  • web-platform-tests/service-workers/service-worker/postmessage-to-client.https.html: Added.
  • web-platform-tests/service-workers/service-worker/postmessage.https.html: Added.
  • web-platform-tests/service-workers/service-worker/ready.https.html: Added.
  • web-platform-tests/service-workers/service-worker/referer.https.html: Added.
  • web-platform-tests/service-workers/service-worker/register-closed-window.https.html: Added.
  • web-platform-tests/service-workers/service-worker/register-default-scope.https.html: Added.
  • web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https.html: Added.
  • web-platform-tests/service-workers/service-worker/register-wait-forever-in-install-worker.https.html: Added.
  • web-platform-tests/service-workers/service-worker/registration-end-to-end.https.html: Added.
  • web-platform-tests/service-workers/service-worker/registration-events.https.html: Added.
  • web-platform-tests/service-workers/service-worker/registration-iframe.https.html: Added.
  • web-platform-tests/service-workers/service-worker/registration-service-worker-attributes.https.html: Added.
  • web-platform-tests/service-workers/service-worker/registration.https.html: Added.
  • web-platform-tests/service-workers/service-worker/rejections.https.html: Added.
  • web-platform-tests/service-workers/service-worker/request-end-to-end.https.html: Added.
  • web-platform-tests/service-workers/service-worker/resource-timing.https.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/404.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/appcache-ordering.install.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/appcache-ordering.is-appcached.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/appcache-ordering.is-appcached.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/appcache-ordering.manifest: Added.
  • web-platform-tests/service-workers/service-worker/resources/blank.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/claim-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/clients-get-frame.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/clients-get-other-origin.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/clients-get-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/clients-matchall-client-types-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/clients-matchall-client-types-shared-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/clients-matchall-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/dummy-shared-worker-interceptor.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/dummy-worker-interceptor.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/dummy-worker-script.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/dummy.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/dummy.txt: Added.
  • web-platform-tests/service-workers/service-worker/resources/empty-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/empty.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/end-to-end-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/events-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/extendable-event-async-waituntil.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/extendable-event-waituntil.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fail-on-fetch-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-access-control-login.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-access-control.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-canvas-tainting-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-cors-xhr-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-csp-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-csp-iframe.html.sub.headers: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-event-after-navigation-within-page-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-event-async-respond-with-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-event-network-error-controllee-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-event-network-error-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-event-redirect-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-event-respond-with-stops-propagation-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-event-test-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-header-visibility-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-mixed-content-iframe-inscope-to-inscope.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-mixed-content-iframe-inscope-to-outscope.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-mixed-content-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-css-base-url-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-css-base-url-style.css: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-css-base-url-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-fallback-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-fallback-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-no-freshness-headers-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-no-freshness-headers-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-redirect-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-iframe.https.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-resources-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-iframe.https.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-request-xhr-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-response-xhr-iframe.https.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-response-xhr-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-rewrite-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-waits-for-activate-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/frame-for-getregistrations.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/get-host-info.sub.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/indexeddb-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/install-event-type-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/interfaces-worker.sub.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/interfaces.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/invalid-blobtype-iframe.https.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/invalid-blobtype-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/invalid-chunked-encoding-with-flush.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/invalid-chunked-encoding.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/invalid-header-iframe.https.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/invalid-header-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/load_worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/loaded.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/malformed-worker.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/mime-type-worker.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/navigate-window-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/navigation-redirect-other-origin.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/navigation-redirect-out-scope.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope1.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/navigation-redirect-scope2.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/navigation-redirect-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/onactivate-throw-error-from-nested-event-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/onactivate-throw-error-then-cancel-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/onactivate-throw-error-then-prevent-default-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/onactivate-throw-error-with-empty-onerror-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/onactivate-throw-error-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/oninstall-throw-error-from-nested-event-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/oninstall-throw-error-then-cancel-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/oninstall-throw-error-then-prevent-default-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/oninstall-throw-error-with-empty-onerror-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/oninstall-throw-error-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/other.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/override_assert_object_equals.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/performance-timeline-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/postmessage-msgport-to-client-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/postmessage-to-client-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/postmessage-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/redirect.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/referer-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/register-closed-window-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/registration-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/reject-install-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/request-end-to-end-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/request-headers.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/resource-timing-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/resource-timing-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/service-worker-csp-worker.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/shared-worker-controlled.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/shared-worker-import.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/silence.oga: Added.
  • web-platform-tests/service-workers/service-worker/resources/simple-intercept-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/simple.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/simple.txt: Added.
  • web-platform-tests/service-workers/service-worker/resources/skip-waiting-installed-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/skip-waiting-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/square.png: Added.
  • web-platform-tests/service-workers/service-worker/resources/success.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/test-helpers.sub.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/testharness-helpers.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/unregister-controller-page.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/update-nocookie-worker.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/update-recovery-worker.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/update-worker.py: Added.
  • web-platform-tests/service-workers/service-worker/resources/update/update-after-oneday.https.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/update/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/fetch/api/request/resources/w3c-import.log.
  • web-platform-tests/service-workers/service-worker/resources/w3c-import.log: Added.
  • web-platform-tests/service-workers/service-worker/resources/wait-forever-in-install-worker.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/websocket.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/worker-interception-iframe.https.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/worker-load-interceptor.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/worker-testharness.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/xhr.js: Added.
  • web-platform-tests/service-workers/service-worker/service-worker-csp-connect.https.html: Added.
  • web-platform-tests/service-workers/service-worker/service-worker-csp-default.https.html: Added.
  • web-platform-tests/service-workers/service-worker/service-worker-csp-script.https.html: Added.
  • web-platform-tests/service-workers/service-worker/serviceworkerobject-scripturl.https.html: Added.
  • web-platform-tests/service-workers/service-worker/shared-worker-controlled.https.html: Added.
  • web-platform-tests/service-workers/service-worker/skip-waiting-installed.https.html: Added.
  • web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https.html: Added.
  • web-platform-tests/service-workers/service-worker/skip-waiting-without-client.https.html: Added.
  • web-platform-tests/service-workers/service-worker/skip-waiting-without-using-registration.https.html: Added.
  • web-platform-tests/service-workers/service-worker/skip-waiting.https.html: Added.
  • web-platform-tests/service-workers/service-worker/state.https.html: Added.
  • web-platform-tests/service-workers/service-worker/synced-state.https.html: Added.
  • web-platform-tests/service-workers/service-worker/uncontrolled-page.https.html: Added.
  • web-platform-tests/service-workers/service-worker/unregister-controller.https.html: Added.
  • web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https.html: Added.
  • web-platform-tests/service-workers/service-worker/unregister-then-register.https.html: Added.
  • web-platform-tests/service-workers/service-worker/unregister.https.html: Added.
  • web-platform-tests/service-workers/service-worker/update-after-navigation-fetch-event.https.html: Added.
  • web-platform-tests/service-workers/service-worker/update-after-oneday.https.html: Added.
  • web-platform-tests/service-workers/service-worker/update-recovery.https.html: Added.
  • web-platform-tests/service-workers/service-worker/update.https.html: Added.
  • web-platform-tests/service-workers/service-worker/w3c-import.log: Added.
  • web-platform-tests/service-workers/service-worker/waiting.https.html: Added.
  • web-platform-tests/service-workers/service-worker/websocket.https.html: Added.
  • web-platform-tests/service-workers/service-worker/worker-interception.https.html: Added.
  • web-platform-tests/service-workers/service-worker/xhr.https.html: Added.
  • web-platform-tests/streams/OWNERS: Added.
  • web-platform-tests/streams/byte-length-queuing-strategy.https.html:
  • web-platform-tests/streams/count-queuing-strategy.https.html:
  • web-platform-tests/streams/readable-streams/bad-strategies.https.html:
  • web-platform-tests/streams/readable-streams/bad-underlying-sources.https.html:
  • web-platform-tests/streams/readable-streams/brand-checks.https.html:
  • web-platform-tests/streams/readable-streams/cancel.https.html:
  • web-platform-tests/streams/readable-streams/count-queuing-strategy-integration.https.html:
  • web-platform-tests/streams/readable-streams/garbage-collection.https.html:
  • web-platform-tests/streams/readable-streams/general.https.html:
  • web-platform-tests/streams/readable-streams/general.js:
  • web-platform-tests/streams/readable-streams/pipe-through.https.html:
  • web-platform-tests/streams/readable-streams/readable-stream-reader.https.html:
  • web-platform-tests/streams/readable-streams/tee.https.html:
  • web-platform-tests/streams/readable-streams/templated.https.html:
  • web-platform-tests/streams/w3c-import.log:

LayoutTests:

  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-embedded-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/reflection-forms-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/form-control-infrastructure/form-expected.txt: Added.
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
  • platform/wk2/imported/w3c/web-platform-tests/html/semantics/document-metadata/styling/LinkStyle-expected.txt:

Jun 25, 2016:

9:34 PM Changeset in webkit [202470] by benjamin@webkit.org
  • 5 edits
    4 adds in trunk

The active state of elements can break when focus changes
https://bugs.webkit.org/show_bug.cgi?id=159112

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-25
Reviewed by Antti Koivisto.

Source/WebCore:

The pseudo class :active was behaving weirdly when used
with label elements with an associated form element.
The form element would get the :active state on the first click
then no longer get the state until the focus changes.

What was happenning is setFocusedElement() was clearing active
for some unknown reason. When you really do that on an active element,
you end up in an inconsistent state where no invalidation works.

The two tests illustrates 2 ways this breaks.

The test "pseudo-active-on-labeled-element-not-canceled-by-focus" clicks
several time on a lable element. The first time, the input element gets
the focus. The second time, it already has the focus, setFocusedElement()
clears :active before finding the focusable element and end up clearing
the active state on a target in the active chain.

The test "pseudo-active-with-programmatic-focus.html" shows how to invalidate
arbitrary elements using JavaScript. This can cause severely broken active
chains where invalidation never cleans some ancestors.

Tests: fast/css/pseudo-active-on-labeled-element-not-canceled-by-focus.html

fast/css/pseudo-active-with-programmatic-focus.html

  • dom/Document.cpp:

(WebCore::Document::setFocusedElement): Deleted.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMouseDoubleClickEvent):
This is WebKit1 specific. The double click event was dispatching
the mouseUp and Click with after doing an Active hit test.
This causes us to have :active state in and after mouseUp in WebKit1.

LayoutTests:

  • fast/css/pseudo-active-on-labeled-element-not-canceled-by-focus-expected.txt: Added.
  • fast/css/pseudo-active-on-labeled-element-not-canceled-by-focus.html: Added.
  • fast/css/pseudo-active-with-programmatic-focus-expected.txt: Added.
  • fast/css/pseudo-active-with-programmatic-focus.html: Added.
12:07 PM Changeset in webkit [202469] by fpizlo@apple.com
  • 4 edits in trunk/Tools

REGRESSION: Weak symbol warning when linking TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=159104

Reviewed by Dan Bernstein.

This uses a better approach to turn on -fvisility=hidden. All of the other projects set
this flag in xcconfig, using "GCC_SYMBOLS_PRIVATE_EXTERN = YES;".

  • TestWebKitAPI/Configurations/TestWTFLibrary.xcconfig: Use GCC_SYMBOLS_PRIVATE_EXTERN here.
  • TestWebKitAPI/Configurations/TestWebKitAPILibrary.xcconfig: Use GCC_SYMBOLS_PRIVATE_EXTERN here.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Revert r202461.
2:00 AM Changeset in webkit [202468] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win] The test fast/events/wheel-event-destroys-frame.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=159086

Reviewed by Alex Christensen.

Implement required wheel event function in event sender.

  • DumpRenderTree/win/EventSender.cpp:

(mouseScrollByWithWheelAndMomentumPhasesCallback):

12:07 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)

Jun 24, 2016:

7:33 PM Changeset in webkit [202467] by dino@apple.com
  • 3 edits
    13 adds in trunk/Websites/webkit.org

More examples for the wide-gamut demo.

  • blog-files/color-gamut/Iceland-P3.jpg: Added.
  • blog-files/color-gamut/Iceland-oog.jpg: Added.
  • blog-files/color-gamut/Iceland-sRGB.jpg: Added.
  • blog-files/color-gamut/Italy-P3.jpg: Added.
  • blog-files/color-gamut/Italy-oog.jpg: Added.
  • blog-files/color-gamut/Italy-sRGB.jpg: Added.
  • blog-files/color-gamut/Sunset-AdobeRGB.jpg: Added.
  • blog-files/color-gamut/Sunset-P3.jpg: Added.
  • blog-files/color-gamut/Sunset-oog.jpg: Added.
  • blog-files/color-gamut/Sunset-sRGB.jpg: Added.
  • blog-files/color-gamut/Webkit-logo-sRGB.png:
  • blog-files/color-gamut/YellowFlower-P3.jpg: Added.
  • blog-files/color-gamut/YellowFlower-oog.jpg: Added.
  • blog-files/color-gamut/YellowFlower-sRGB.jpg: Added.
  • blog-files/color-gamut/index.html:
5:46 PM Changeset in webkit [202466] by jer.noble@apple.com
  • 4 edits in trunk

Consider exposing or hiding knowledge of a redirect from clients of WebCoreNSURLSession
https://bugs.webkit.org/show_bug.cgi?id=156722
<rdar://problem/25780035>

Reviewed by Alex Christensen.

Source/WebCore:

Fixes tests: http/tests/security/contentSecurityPolicy/audio-redirect-allowed2.html

http/tests/security/contentSecurityPolicy/video-redirect-allowed2.html

When receieving a NSURLResponse containing a redirected URL, AVFoundadtion will use the
URL in the response for subsequent requests. This violates the HTTP specification if the
redirect was temporary, and it also breaks two CSP tests by bypassing the redirect step
for subsequent requests.

Work around this behavior in AVFoundation by recreating the NSURLResponse with the original
request URL in the case of a temporary redirect.

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask resource:receivedResponse:]):
(-[WebCoreNSURLSessionDataTask resource:receivedRedirect:request:]):

LayoutTests:

Un-skip http/tests/security/contentSecurityPolicy/audio-redirect-allowed2.html &
http/tests/security/contentSecurityPolicy/video-redirect-allowed2.html.

  • platform/mac/TestExpectations:
5:40 PM Changeset in webkit [202465] by dino@apple.com
  • 1 edit in trunk/Websites/webkit.org/ChangeLog

Change something in the webkit.org directory in the hope
it will kick off a website update.

5:36 PM Changeset in webkit [202464] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r201171): CRASH at WebKit::WebInspectorProxy::open() + 31 when running inspector layout tests
https://bugs.webkit.org/show_bug.cgi?id=159070
<rdar://problem/26768628>

Reviewed by Joseph Pecoraro.

We have been seeing a few crashes underneath WebInspectorProxy::bringToFront() on the bots.
Previously, this code didn't use m_inspectorPage so there was nothing to null-dereference.

However, it doesn't make sense that we would hit the null dereference here:

  • The only caller of bringToFront() on the WebProcess side is InspectorController::show(). It only tries to bring to front if there is already a local frontend connection, which shouldn't be the case if m_inspectorPage is null.
  • It's guarded by m_underTest, which should have been set to true in createInspectorPage().

These clues lead me to believe that we may be improperly tearing down the inspector between tests.
For example, it seems possible that a local frontend connection is not being torn down, so
InspectorController never asks to create a inspector page when the next test calls showWebInspector.

Since this crash is not easy to reproduce, we don't have much to go on. For now, this patch
adds an early return in the case where m_inspectorPage is null when calling open().

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::open):

5:03 PM Changeset in webkit [202463] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

B3 should die sooner if a Value has the wrong number of children
https://bugs.webkit.org/show_bug.cgi?id=159108

Reviewed by Mark Lam.

I've been looking at a bug (rdar://problem/26500743) that's about a Vector OOB crash in
ReduceStrength::rangeFor(). The only Vector accesses are to Value::m_children, and all of
the accesses in rangeFor() are for child(0) or child(1) of binary arithmetic opcodes.
Clearly those should never go out-of-bounds.

Maybe we have horrible memory corruption. Or maybe some path creates a Value with the
wrong number of children, and that path is not tested by any of our tests. This patch adds
release assertions that will catch the latter.

I've tested this a lot. It's not a regression on our benchmarks.

  • b3/B3Opcode.h:
  • b3/B3Value.cpp:

(JSC::B3::Value::dumpMeta):
(JSC::B3::Value::typeFor):
(JSC::B3::Value::badOpcode):
(JSC::B3::Value::checkOpcode): Deleted.

  • b3/B3Value.h:
4:54 PM Changeset in webkit [202462] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

MSE gets confused by in-band text tracks
https://bugs.webkit.org/show_bug.cgi?id=159107
<rdar://problem/26871330>

Reviewed by Eric Carlson.

We can't currently handle text track samples in SourceBufferPrivateAVFObjC,
so don't pass them up to SourceBuffer.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):
(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):

4:49 PM Changeset in webkit [202461] by fpizlo@apple.com
  • 2 edits in trunk/Tools

REGRESSION: Weak symbol warning when linking TestWebKitAPI
https://bugs.webkit.org/show_bug.cgi?id=159104

Reviewed by Mark Lam.

The problem is that the tests were not compiled with -fvisibility=hidden like the rest of
WK.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
4:34 PM Changeset in webkit [202460] by mark.lam@apple.com
  • 6 edits
    5 adds in trunk

[JSC] Error prototypes are called on remote scripts.
https://bugs.webkit.org/show_bug.cgi?id=52192

Reviewed by Keith Miller.

Source/JavaScriptCore:

Added a sanitizedToString() to the Error instance object so that it can be used
to get an error string without invoking getters and proxies.

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::finishCreation):
(JSC::ErrorInstance::sanitizedToString):

  • runtime/ErrorInstance.h:

(JSC::ErrorInstance::createStructure):
(JSC::ErrorInstance::runtimeTypeForCause):
(JSC::ErrorInstance::clearRuntimeTypeForCause):

Source/WebCore:

Test: http/tests/security/regress-52192.html

Parsing errors are reported to the main script's window.onerror function. AFAIK,
both Chrome and Firefox have the error reporting mechanism use an internal
sanitized version of Error.prototype.toString() that will not invoke any getters
or proxies instead.

This patch fixes this issue by matching Chrome and Firefox's behavior.

Note: we did not choose to make error objects and prototypes read-only because
that was observed to have broken the web.
See https://bugs.chromium.org/p/chromium/issues/detail?id=69187#c73

Credit for reporting this issue goes to Daniel Divricean (http://divricean.ro).

  • bindings/js/JSDOMBinding.cpp:

(WebCore::reportException):

  • ForwardingHeaders/runtime/ErrorInstance.h: Added.

LayoutTests:

The added test will test the following combinations of factors:

  1. Explicitly throwing an error of each of the types of JS errors i.e. Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError.
  2. Validating that the error received in window.onerror does not leak any info.
  3. Validating that the 'name' and 'toString' getters set on the error prototype object does not get invoked for creating the error message to be passed to window.error.
  • http/tests/security/regress-52192-expected.txt: Added.
  • http/tests/security/regress-52192.html: Added.
  • http/tests/security/resources/regress-52192-syntax-error.js: Added.
  • http/tests/security/resources/regress-52192-throw-error.js: Added.

(catch):

4:01 PM Changeset in webkit [202459] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Media elements should not lose playback controls when muted by a user gesture
https://bugs.webkit.org/show_bug.cgi?id=159078
<rdar://problem/26925904>

Reviewed by Beth Dakin.

Rearrange canControlControlsManager() so that the muted check only occurs if
a user gesture is required.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canControlControlsManager):

3:52 PM Changeset in webkit [202458] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r202443.
https://bugs.webkit.org/show_bug.cgi?id=159105

Introduced memory corruption crashes (Requested by ap on
#webkit).

Reverted changeset:

"Web Inspector: CRASH in backend at
Inspector::HeapFrontendDispatcher::garbageCollected + 552 when
closing frontend/inspected page"
https://bugs.webkit.org/show_bug.cgi?id=159075
http://trac.webkit.org/changeset/202443

3:44 PM Changeset in webkit [202457] by dino@apple.com
  • 1 edit
    6 adds in trunk/Websites/webkit.org/blog-files/color-gamut

More examples for a blog post on color.

  • blog-files/color-gamut/Shoes-oog.jpg: Added.
  • blog-files/color-gamut/Shoes-sRGB.jpg: Added.
  • blog-files/color-gamut/Webkit-logo-P3.png: Added.
  • blog-files/color-gamut/Webkit-logo-oog.png: Added.
  • blog-files/color-gamut/Webkit-logo-sRGB.png: Added.
  • blog-files/color-gamut/index.html:
  • blog-files/color-gamut/shoes-AdobeRGB.jpg: Added.
3:39 PM Changeset in webkit [202456] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Update to test gardening in r202300

Unreviewed.

  • platform/mac/TestExpectations:
3:25 PM Changeset in webkit [202455] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

Vimeo.com videos do not get playback controls
https://bugs.webkit.org/show_bug.cgi?id=159082
<rdar://problem/26586630>

Reviewed by Eric Carlson.

When the HasAudioOrVideo media state changes, let the video controls recalculate
by calling videoControlsManagerDidChange().

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::isPlayingMediaDidChange):

3:25 PM Changeset in webkit [202454] by Beth Dakin
  • 7 edits in trunk/Source

Include enclosingListType in EditorState
https://bugs.webkit.org/show_bug.cgi?id=159102
-and corresponding-
rdar://problem/26932490

Reviewed by Enrica Casucci.

Source/WebCore:

Make HTMLOListElement.h and HTMLUListElement.h Private instead of Project.

  • WebCore.xcodeproj/project.pbxproj:

Export enclosingList(Node*)

  • editing/htmlediting.h:

Source/WebKit2:

  • Shared/EditorState.cpp:

(WebKit::EditorState::PostLayoutData::encode):
(WebKit::EditorState::PostLayoutData::decode):

  • Shared/EditorState.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::editorState):

3:00 PM Changeset in webkit [202453] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.38-branch/Source

Versioning.

2:59 PM Changeset in webkit [202452] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.38.1

New tag.

2:58 PM Changeset in webkit [202451] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Another Windows build fix.

  • platform/network/BlobRegistry.h:
2:54 PM Changeset in webkit [202450] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.38-branch/Source

Versioning.

2:54 PM Changeset in webkit [202449] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Rewrite the WebKit Nightly build download URLs to use the correct secure URL.
https://bugs.webkit.org/show_bug.cgi?id=159100.

Reviewed by Joseph Pecoraro.

  • wp-content/plugins/sync-nightly-builds.php:
2:33 PM Changeset in webkit [202448] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Yeat another Windows build fix.

  • dom/ActiveDOMCallbackMicrotask.h:
2:09 PM Changeset in webkit [202447] by Konstantin Tokarev
  • 6 edits
    1 delete in trunk/LayoutTests

Removed tests of STYLE_SCOPED which was removed in r156683.
https://bugs.webkit.org/show_bug.cgi?id=159098

Reviewed by Ryosuke Niwa.

  • fast/css/style-scoped/basic-attribute-expected.txt: Removed.
  • fast/css/style-scoped/basic-attribute.html: Removed.
  • fast/css/style-scoped/registering-expected.txt: Removed.
  • fast/css/style-scoped/registering-shadowroot-expected.txt: Removed.
  • fast/css/style-scoped/registering-shadowroot.html: Removed.
  • fast/css/style-scoped/registering.html: Removed.
  • fast/css/style-scoped/style-scoped-apply-author-styles-expected.txt: Removed.
  • fast/css/style-scoped/style-scoped-apply-author-styles.html: Removed.
  • fast/css/style-scoped/style-scoped-attach-expected.txt: Removed.
  • fast/css/style-scoped/style-scoped-attach.html: Removed.
  • fast/css/style-scoped/style-scoped-basic-expected.txt: Removed.
  • fast/css/style-scoped/style-scoped-basic.html: Removed.
  • fast/css/style-scoped/style-scoped-change-scoped-in-shadow-expected.txt: Removed.
  • fast/css/style-scoped/style-scoped-change-scoped-in-shadow.html: Removed.
  • fast/css/style-scoped/style-scoped-detach-expected.txt: Removed.
  • fast/css/style-scoped/style-scoped-detach.html: Removed.
  • fast/css/style-scoped/style-scoped-in-shadow-expected.txt: Removed.
  • fast/css/style-scoped/style-scoped-in-shadow.html: Removed.
  • fast/css/style-scoped/style-scoped-nested-expected.txt: Removed.
  • fast/css/style-scoped/style-scoped-nested.html: Removed.
  • fast/css/style-scoped/style-scoped-remove-scoped-expected.txt: Removed.
  • fast/css/style-scoped/style-scoped-remove-scoped.html: Removed.
  • fast/css/style-scoped/style-scoped-set-scoped-expected.txt: Removed.
  • fast/css/style-scoped/style-scoped-set-scoped.html: Removed.
  • fast/css/style-scoped/style-scoped-with-dom-operation-expected.txt: Removed.
  • fast/css/style-scoped/style-scoped-with-dom-operation.html: Removed.
  • fast/css/style-scoped/style-scoped-with-important-rule-expected.txt: Removed.
  • fast/css/style-scoped/style-scoped-with-important-rule.html: Removed.
  • platform/efl/TestExpectations: Don't skip fast/css/style-scoped.
  • platform/gtk/TestExpectations: Ditto.
  • platform/ios-simulator/TestExpectations: Ditto.
  • platform/mac/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
1:59 PM Changeset in webkit [202446] by fpizlo@apple.com
  • 2 edits
    13 adds in trunk/PerformanceTests

Add a ES6 generator benchmark
https://bugs.webkit.org/show_bug.cgi?id=159101

Rubber stamped by Keith Miller.

This adds a Basic interpreter loosely based on ECMA-55:

http://www.ecma-international.org/publications/files/ECMA-ST-WITHDRAWN/ECMA-55,%201st%20Edition,%20January%201978.pdf

It includes a lexer that is a generator, a parser that uses regular expressions, and an AST
walk interpreter where the walking functions for statements are generators that call each
other with yield*. This enables the interpreter to look like an AST walk even though it can
yield at INPUT and PRINT statements.

This also uses for-of, classes, Map, and WeakMap. It also uses deprecated-but-awesome RegExp
features like RegExp.lastMatch and RegExp.rightContext. I did it that way because this is
how I've always written lexers in dynamic languages; see offlineasm's lex() method in
parser.rb for example.

The benchmark runs a handful of simple Basic programs. The longest-running one computes
prime numbers.

Includes a command-line and web harness. On my machine it runs in 2-3 seconds.

  • Basic: Added.
  • Basic/ast.js: Added.

(Basic.NumberApply):
(Basic.Variable):
(Basic.Const):
(Basic.NumberPow):
(Basic.NumberMul):
(Basic.NumberDiv):
(Basic.NumberNeg):
(Basic.NumberAdd):
(Basic.NumberSub):
(Basic.StringVar):
(Basic.Equals):
(Basic.NotEquals):
(Basic.LessThan):
(Basic.GreaterThan):
(Basic.LessEqual):
(Basic.GreaterEqual):
(Basic.GoTo):
(Basic.GoSub):
(Basic.Def):
(Basic.Let):
(Basic.If):
(Basic.Return):
(Basic.Stop):
(Basic.On):
(sideState.shouldStop):
(Basic.For):
(Basic.Next):
(Basic.Print):
(Basic.Input):
(Basic.Read):
(Basic.Restore):
(Basic.Dim):
(Basic.Randomize):
(Basic.End):
(Basic.Program):

  • Basic/basic.js: Added.

(prepare):
(simulate):

  • Basic/benchmark.js: Added.

(Benchmark):
(Benchmark.prototype.runIteration.expect):
(Benchmark.prototype.runIteration):
(runBenchmark):

  • Basic/caseless_map.js: Added.

(CaselessMap):

  • Basic/lexer.js: Added.

(lex.consumeWhitespace):
(lex.consume):
(lex):

  • Basic/lexer_test.js: Added.
  • Basic/number.js: Added.

(NumberValue):
(NumberValue.prototype.get value):
(NumberValue.prototype.apply):
(NumberValue.prototype.leftApply):
(NumberValue.prototype.assign):
(NumberArray.):
(NumberArray):
(NumberArray.prototype.apply):
(NumberArray.prototype.leftApply):
(NumberFunction):
(NumberFunction.prototype.apply):
(NumberFunction.prototype.leftApply):
(NativeFunction):
(NativeFunction.prototype.apply):
(NativeFunction.prototype.leftApply):

  • Basic/parser.js: Added.

(parse):
(parse.pushToken):
(parse.peekToken):
(parse.consumeKind):
(parse.consumeToken):
(parse.parseVariable):
(parse.parseNumericExpression.parsePrimary):
(parse.parseNumericExpression.parseFactor):
(parse.parseNumericExpression.parseTerm):
(parse.parseNumericExpression):
(parse.parseConstant):
(parse.parseStringExpression):
(parse.isStringExpression):
(parse.parseRelationalExpression):
(parse.parseNonNegativeInteger):
(parse.parseGoToStatement):
(parse.parseGoSubStatement):
(parse.parseStatement):
(parse.parseStatements):

  • Basic/random.js: Added.

(createRNG):
(createRNGWithFixedSeed):
(createRNGWithRandomSeed):

  • Basic/state.js: Added.

(State):
(State.prototype.getValue):
(State.prototype.getSideState):
(State.prototype.abort):
(State.prototype.validate):

  • Basic/test.html: Added.
  • Basic/test.js: Added.
  • Basic/util.js: Added.

(this.performance.performance.now.currentTime):
(else.this.preciseTime.currentTime):
(else.currentTime):

  • Skipped: Make sure that we don't run Basic yet.
1:53 PM Changeset in webkit [202445] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Another Windows build fix.

  • page/FrameView.h:
1:49 PM Changeset in webkit [202444] by andersca@apple.com
  • 13 edits
    1 delete in trunk/Source

Inline more of the Apple Pay source code
https://bugs.webkit.org/show_bug.cgi?id=159099

Reviewed by Andreas Kling.

Source/WebCore:

  • page/Settings.h:

(WebCore::Settings::applePayEnabled):
(WebCore::Settings::setApplePayEnabled):
(WebCore::Settings::applePayCapabilityDisclosureAllowed):
(WebCore::Settings::setApplePayCapabilityDisclosureAllowed):

Source/WebKit2:

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.h: Removed.
  • Shared/WebCoreArgumentCoders.h:
  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _applePayCapabilityDisclosureAllowed]):
(-[WKPreferences _setApplePayCapabilityDisclosureAllowed:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _applePayEnabled]):
(-[WKWebViewConfiguration _setApplePayEnabled:]):
(-[WKWebViewConfiguration _paymentsEnabled]):
(-[WKWebViewConfiguration _setPaymentsEnabled:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::resetState):

  • UIProcess/WebPageProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_userInterfaceLayoutDirection):
(WebKit::WebPage::updatePreferences):

1:30 PM Changeset in webkit [202443] by BJ Burg
  • 3 edits in trunk/Source/JavaScriptCore

Web Inspector: CRASH in backend at Inspector::HeapFrontendDispatcher::garbageCollected + 552 when closing frontend/inspected page
https://bugs.webkit.org/show_bug.cgi?id=159075
<rdar://problem/26094341>

Reviewed by Joseph Pecoraro.

Move the asynchronous work to a task class that can be cancelled when the
heap agent is reset, disabled or destroyed.

  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::SendGarbageCollectionEventsTask::SendGarbageCollectionEventsTask):
(Inspector::SendGarbageCollectionEventsTask::addGarbageCollection):
(Inspector::SendGarbageCollectionEventsTask::reset):
(Inspector::SendGarbageCollectionEventsTask::timerFired):
Added. This holds onto GarbageCollection objects that need to be sent asynchronously.
It uses the RunLoop variant of Timer and can queue multiple pending objects to be sent.

(Inspector::InspectorHeapAgent::InspectorHeapAgent):
(Inspector::InspectorHeapAgent::~InspectorHeapAgent):
(Inspector::InspectorHeapAgent::disable):
Reset the task when disabling or tearing down the agent so the timer doesn't fire after destruction.

(Inspector::InspectorHeapAgent::didGarbageCollect):
Send the object to the task to be dispatched asynchronously.

  • inspector/agents/InspectorHeapAgent.h:
1:18 PM Changeset in webkit [202442] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Windows build fix.

  • platform/GenericTaskQueue.h:

(WebCore::TaskDispatcher::postTask):

1:17 PM Changeset in webkit [202441] by fred.wang@free.fr
  • 9 edits in trunk/Source/WebCore

Use auto* for MathML elements and renderers when possible
https://bugs.webkit.org/show_bug.cgi?id=159090

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-24
Reviewed by Alex Christensen.

No new tests, behavior is unchanged.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::attributeChanged):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::getSelectedActionChildAndIndex):
(WebCore::MathMLSelectElement::getSelectedActionChild):
(WebCore::MathMLSelectElement::getSelectedSemanticsChild):
(WebCore::MathMLSelectElement::updateSelectedChild):

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::isValid):

  • rendering/mathml/RenderMathMLMenclose.cpp:

(WebCore::RenderMathMLMenclose::layoutBlock):

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::isValid):

  • rendering/mathml/RenderMathMLRow.cpp:

(WebCore::RenderMathMLRow::firstLineBaseline):
(WebCore::RenderMathMLRow::computeLineVerticalStretch):
(WebCore::RenderMathMLRow::computePreferredLogicalWidths):
(WebCore::RenderMathMLRow::layoutRowItems):

  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::unembellishedOperator):
(WebCore::RenderMathMLScripts::getBaseAndScripts):
(WebCore::RenderMathMLScripts::computePreferredLogicalWidths):
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):
(WebCore::RenderMathMLScripts::layoutBlock):
(WebCore::RenderMathMLScripts::firstLineBaseline):

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::firstLineBaseline):
(WebCore::RenderMathMLUnderOver::isValid):
(WebCore::RenderMathMLUnderOver::over):

1:14 PM Changeset in webkit [202440] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Remove unused and static return value from InspectorStyle::populateAllProperties
https://bugs.webkit.org/show_bug.cgi?id=159069

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-24
Reviewed by Andreas Kling.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyle::populateAllProperties):

  • inspector/InspectorStyleSheet.h:
12:40 PM Changeset in webkit [202439] by andersca@apple.com
  • 65 edits
    1 move in trunk/Source

Rename NoncopyableFunction to Function
https://bugs.webkit.org/show_bug.cgi?id=158354

Reviewed by Chris Dumez.

Source/WebCore:

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::runTask):

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/webaudio/AudioDestinationNode.h:

(WebCore::AudioDestinationNode::resume):
(WebCore::AudioDestinationNode::suspend):
(WebCore::AudioDestinationNode::close):

  • Modules/webaudio/DefaultAudioDestinationNode.cpp:

(WebCore::DefaultAudioDestinationNode::resume):
(WebCore::DefaultAudioDestinationNode::suspend):
(WebCore::DefaultAudioDestinationNode::close):

  • Modules/webaudio/DefaultAudioDestinationNode.h:
  • dom/ActiveDOMCallbackMicrotask.cpp:

(WebCore::ActiveDOMCallbackMicrotask::ActiveDOMCallbackMicrotask):

  • dom/ActiveDOMCallbackMicrotask.h:
  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::Task::Task):

  • fileapi/AsyncFileStream.cpp:

(WebCore::callOnFileThread):
(WebCore::AsyncFileStream::perform):

  • fileapi/AsyncFileStream.h:
  • page/FrameView.cpp:

(WebCore::FrameView::queuePostLayoutCallback):
(WebCore::FrameView::flushPostLayoutTasksQueue):

  • page/FrameView.h:
  • page/scrolling/ScrollingThread.cpp:

(WebCore::ScrollingThread::dispatch):
(WebCore::ScrollingThread::dispatchBarrier):
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):

  • page/scrolling/ScrollingThread.h:
  • platform/GenericTaskQueue.cpp:

(WebCore::TaskDispatcher<Timer>::postTask):

  • platform/GenericTaskQueue.h:

(WebCore::TaskDispatcher::postTask):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::scheduleDeferredTask):

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::scheduleDeferredTask):

  • platform/mediastream/MediaStreamPrivate.h:
  • platform/mediastream/mac/AVMediaCaptureSource.h:
  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::AVMediaCaptureSource::scheduleDeferredTask):

  • style/StyleTreeResolver.cpp:

(WebCore::Style::postResolutionCallbackQueue):
(WebCore::Style::queuePostResolutionCallback):

  • style/StyleTreeResolver.h:

Source/WebKit:

  • Storage/StorageSyncManager.cpp:

(WebCore::StorageSyncManager::dispatch):

  • Storage/StorageSyncManager.h:
  • Storage/StorageThread.cpp:

(WebCore::StorageThread::dispatch):
(WebCore::StorageThread::terminate):

  • Storage/StorageThread.h:

Source/WebKit2:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::fetchDiskCacheEntries):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::clearDiskCacheEntries):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::traverse):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::runTaskInQueue):

  • NetworkProcess/cache/NetworkCacheStorage.h:

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CrossThreadTask.h:

(WTF::CrossThreadTask::CrossThreadTask):

  • wtf/Function.h: Renamed from Source/WTF/wtf/NoncopyableFunction.h.
  • wtf/FunctionDispatcher.h:
  • wtf/MainThread.cpp:

(WTF::functionQueue):
(WTF::dispatchFunctionsFromMainThread):
(WTF::callOnMainThread):

  • wtf/MainThread.h:
  • wtf/RunLoop.cpp:

(WTF::RunLoop::performWork):
(WTF::RunLoop::dispatch):

  • wtf/RunLoop.h:
  • wtf/WorkQueue.h:
  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):

  • wtf/efl/DispatchQueueWorkItemEfl.h:

(WorkItem::WorkItem):
(TimerWorkItem::create):
(TimerWorkItem::TimerWorkItem):

  • wtf/efl/WorkQueueEfl.cpp:

(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):

  • wtf/generic/RunLoopGeneric.cpp:

(WTF::RunLoop::TimerBase::ScheduledTask::create):
(WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask):
(WTF::RunLoop::dispatchAfter):

  • wtf/generic/WorkQueueGeneric.cpp:

(WorkQueue::dispatch):
(WorkQueue::dispatchAfter):

  • wtf/glib/RunLoopGLib.cpp:

(WTF::DispatchAfterContext::DispatchAfterContext):
(WTF::RunLoop::dispatchAfter):

  • wtf/win/WorkItemWin.cpp:

(WTF::WorkItemWin::WorkItemWin):
(WTF::WorkItemWin::create):
(WTF::HandleWorkItem::HandleWorkItem):
(WTF::HandleWorkItem::createByAdoptingHandle):

  • wtf/win/WorkItemWin.h:

(WTF::WorkItemWin::function):

  • wtf/win/WorkQueueWin.cpp:

(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):

12:26 PM Changeset in webkit [202438] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Use _CFHTTPCookieStorageGetDefault directly instead of NSHTTPCookieStorage to get default cookie storage
https://bugs.webkit.org/show_bug.cgi?id=159095
rdar://problem/26630073

Patch by Amir Alavi <aalavi@apple.com> on 2016-06-24
Reviewed by Brent Fulgham.

No new tests, it isn't possible to test this in a LayoutTest.

  • platform/network/mac/CookieJarMac.mm:

(WebCore::httpCookiesForURL): Get a CFHTTPCookieStorageRef when no cookie storage is provided to match the case when cookie storage is provided.

12:15 PM Changeset in webkit [202437] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Update test expectations for rdar://problem/27000853

  • platform/mac/TestExpectations:
11:52 AM Changeset in webkit [202436] by enrica@apple.com
  • 2 edits in trunk/Source/WebCore

Do not use iOS specific telephone detection on macOS.
https://bugs.webkit.org/show_bug.cgi?id=159096
rdar://problem/25870571

Reviewed by Anders Carlsson.

Adding platform guard.

  • platform/cocoa/TelephoneNumberDetectorCocoa.cpp:

(WebCore::TelephoneNumberDetector::phoneNumbersScanner):

11:51 AM Changeset in webkit [202435] by commit-queue@webkit.org
  • 44 edits
    48 deletes in trunk

Unreviewed, rolling out r202413.
https://bugs.webkit.org/show_bug.cgi?id=159097

Broke many JSC tests (Requested by ap on #webkit).

Reverted changeset:

"[JSC] Implement isFinite / isNaN in JS and make DFG ToNumber
accept non number values"
https://bugs.webkit.org/show_bug.cgi?id=154022
http://trac.webkit.org/changeset/202413

11:38 AM Changeset in webkit [202434] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r202429; AVStreamDataParser does not exist on iOS.

  • platform/spi/mac/AVFoundationSPI.h:
11:34 AM Changeset in webkit [202433] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

parser_unittests.pl should not hardcode list of tests
<https://webkit.org/b/159074>

Reviewed by Daniel Bates.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/parser_unittests.pl:

Update to read the list of tests from the 'resources' directory,
and instead map file extensions to subroutine names. Switch to
use File::Basename::fileparse() to get basename and file
extension for each test.
(readTestFiles): Added. Reads files from the directory passed
in and ignores: hidden files, anything that isn't a plain file,
and expected test results files.

11:31 AM Changeset in webkit [202432] by andersca@apple.com
  • 6 edits
    17 adds
    1 delete in trunk/Source/WebKit2

Move WebKit2 Apple Pay code to the open source repository
https://bugs.webkit.org/show_bug.cgi?id=159041

Reviewed by Sam Weinig.

  • DerivedSources.make:
  • Shared/Cocoa/WebCoreArgumentCodersCocoa.h: Added.
  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm: Added.
  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp: Added.
  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.h: Added.
  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in: Added.
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h: Added.
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm: Added.
  • UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm: Added.
  • UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm: Added.
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp: Added.
  • WebProcess/ApplePay/WebPaymentCoordinator.h: Added.
  • WebProcess/ApplePay/WebPaymentCoordinator.messages.in: Added.
11:21 AM Changeset in webkit [202431] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed build fix after r202429; Fix the type of the delegate property on AVStreamDataParser.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
  • platform/spi/mac/AVFoundationSPI.h:
11:19 AM Changeset in webkit [202430] by bshafiei@apple.com
  • 3 edits in branches/safari-602.1.38-branch/Source/WebKit2

Merged r202389. rdar://problem/26975138

10:46 AM Changeset in webkit [202429] by jer.noble@apple.com
  • 5 edits in trunk/Source/WebCore

[MSE] Adopt +[AVStreamDataParser outputMIMECodecParameterForInputMIMECodecParameter:]
https://bugs.webkit.org/show_bug.cgi?id=158312

Reviewed by Eric Carlson.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType):

Move the declaration of AVStreamDataParser into AVFoundationSPI.h:

  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:

(WebCore::CDMSessionAVStreamSession::update):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]):

  • platform/spi/mac/AVFoundationSPI.h:
10:34 AM Changeset in webkit [202428] by wilander@apple.com
  • 6 edits in trunk/LayoutTests

Make window.open layout tests for about: URLs work on iOS
https://bugs.webkit.org/show_bug.cgi?id=159072

Reviewed by Alex Christensen.

Fix two window.open layout tests for iOS. They previously used click events.
Now they instead turn off the popup blocker and just call window.open() on
the load event.

  • http/tests/dom/window-open-about-blank-and-access-document-expected.txt:
  • http/tests/dom/window-open-about-blank-and-access-document.html:
  • http/tests/dom/window-open-about-webkit-org-and-access-document-expected.txt:
  • http/tests/dom/window-open-about-webkit-org-and-access-document.html:
  • platform/ios-simulator/TestExpectations:

Removed the skipping of these two test cases.

10:32 AM Changeset in webkit [202427] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS, Mac] Assume a media file has audio during AirPlay
https://bugs.webkit.org/show_bug.cgi?id=159088
<rdar://problem/24616592>

Reviewed by Jer Noble.

No new tests, it isn't possible to test this in a LayoutTest.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Call

mediaSession->setCanProduceAudio(true) when AirPlay becomes active.

10:13 AM Changeset in webkit [202426] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2] PageConfiguration.m_relatedPage keeps WebPageProxy alive after its WebView has been destroyed
https://bugs.webkit.org/show_bug.cgi?id=159080
<rdar://problem/26982642>

Reviewed by Anders Carlsson.

PageConfiguration.m_relatedPage keeps WebPageProxy alive after its WebView has been destroyed.
This leads to WebPageProxy object leaks when the client keeps chaining related views.

In this patch, we null our the PageConfiguration's relatedPage in WebPageProxy::close()
to break the chain and make sure we only keep alive 1 relatedPage rather than a chain of
them.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::close):

10:12 AM Changeset in webkit [202425] by jer.noble@apple.com
  • 18 edits in trunk/Source

Playback controls refer to wrong element when playing multiple items in a page.
https://bugs.webkit.org/show_bug.cgi?id=159076
<rdar://problem/26953532>

Reviewed by Beth Dakin.

Source/WebCore:

Use a new method PlatformMediaSessionManager::currentSessionMatching() to get
the most recently active media element which qualifies for playback controls.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updatePlaybackControlsManager): Get the most recently active session.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canControlControlsManager): Make virtual; no longer takes an element.

  • html/MediaElementSession.h:

(isType): Allow downcasting from PlatformMediaSession -> MediaElementSession.

  • page/ChromeClient.h:
  • platform/audio/PlatformMediaSession.h:

(WebCore::PlatformMediaSession::canControlControlsManager): Defaults to false;

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::currentSessionMatching): Added.

  • platform/audio/PlatformMediaSessionManager.h:

Source/WebKit/mac:

clearPlaybackControlsManager() no longer takes a parameter.

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::clearPlaybackControlsManager):

  • WebView/WebView.mm:

(-[WebView _clearPlaybackControlsManager]): Renamed from _clearPlaybackControlsManagerForMediaElement:.

  • WebView/WebViewInternal.h:

Source/WebKit2:

clearPlaybackControlsManager() no longer takes a parameter.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::clearPlaybackControlsManager):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/cocoa/WebPlaybackSessionManager.h:
  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::setUpPlaybackControlsManager): Make sure to removeClientForContext()

if the old context refers to a live media element.

(WebKit::WebPlaybackSessionManager::clearPlaybackControlsManager):

10:05 AM Changeset in webkit [202424] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

IDB tests crashing attempting to register sandbox extensions for blob files.
https://bugs.webkit.org/show_bug.cgi?id=159094.

Reviewed by Sam Weinig.

Already tested by storage/indexeddb/modern/handle-user-delete.html

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::preregisterSandboxExtensionsIfNecessary): Check whether the IDBResultData actually contains

a getResult before trying to access it.

9:57 AM Changeset in webkit [202423] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Fixed the macOS build.

  • platform/spi/cocoa/DataDetectorsCoreSPI.h:
9:24 AM Changeset in webkit [202422] by mitz@apple.com
  • 5 edits in trunk/Source/WebCore

[iOS] Inline DataDetectorsAdditions.h
https://bugs.webkit.org/show_bug.cgi?id=159093

Reviewed by Anders Carlsson.

  • editing/cocoa/DataDetection.mm:

(WebCore::constructURLStringForResult): Use soft-linked constant directly.

  • platform/cocoa/DataDetectorsCoreSoftLink.h: Declare soft-linked constant.
  • platform/cocoa/DataDetectorsCoreSoftLink.mm: Define soft-linked constant.
  • platform/spi/cocoa/DataDetectorsCoreSPI.h: Declare constant.
9:05 AM Changeset in webkit [202421] by Yusuke Suzuki
  • 4 edits
    2 adds in trunk

[GTK][EFL] ImageBufferCairo should accept resolution factor
https://bugs.webkit.org/show_bug.cgi?id=157848

Reviewed by Martin Robinson.

Source/WebCore:

ImageBufferCairo ignored the resolution factor passed in its constructor.
This resolution factor is originally introduced for HiDPI Canvas,
and since HiDPI canvas is not enabled in the ports using Cairo,
the lack of this implementation does not cause any problems.
And now, HiDPI Canvas is removed from the tree.

However, WebKit CSS filter uses this path.
The missing implementation is required under the HiDPI environment.

Since Cairo surface can have the device scale factor transparently,
the operations onto the surface is correctly done in the logical coordinate system.
So all we need to handle carefully is the direct surface modification done
in filter effects.

In this patch, we extend the image buffer size according to the resolution factor,
as the same to the CoreGraphics' implementation (ImageBufferCG). And by setting the
device scale factor of the surface correctly, we ensure that the rest of the Cairo
painting stack works with the existing logical coordinate system. And in ImageBufferCairo,
we carefully handle the logical and backing store coordinate system.

The attached test applies the CSS filter onto the svg image. And we resize the image size,
and perform scrolling. It incurs the paint, and filter effect recalcuation.
In that path, the filter effect side assumes that the image buffer size is scaled with the
resolution factor. So without this patch, it incurs buffer overflow and leads WebProcess crash.

  • platform/graphics/IntPoint.h:

(WebCore::IntPoint::scale):

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBufferData::createCompositorBuffer):
(WebCore::ImageBuffer::ImageBuffer):
(WebCore::ImageBuffer::copyImage):
(WebCore::ImageBuffer::platformTransformColorSpace):
(WebCore::getImageData):
(WebCore::logicalUnit):
(WebCore::backingStoreUnit):
(WebCore::ImageBuffer::getUnmultipliedImageData):
(WebCore::ImageBuffer::getPremultipliedImageData):
(WebCore::ImageBuffer::putByteArray):
(WebCore::ImageBuffer::copyToPlatformTexture):

LayoutTests:

  • fast/hidpi/filters-and-image-buffer-resolution-expected.html: Added.
  • fast/hidpi/filters-and-image-buffer-resolution.html: Added.
7:39 AM Changeset in webkit [202420] by fred.wang@free.fr
  • 55 edits in trunk

Refactor RenderMathMLOperator and RenderMathMLToken to avoid using anonymous renderers.
https://bugs.webkit.org/show_bug.cgi?id=155018

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-24
Reviewed by Martin Robinson.

Source/WebCore:

No new tests, already covered by existing tests.

We use MathOperator for RenderMathMLOperator to avoid creating anonymous text nodes again
and again. We reimplement implicit mathvariant="italic" on single-char mi in a way that does
not rely on creating anonymous text nodes. Finally, we improve the determination/update of
when mathvariant is italic to avoid breaking foreign-mi-dynamic test.
The change in the render tree structure breaks mfenced accessibility support but that will
be fixed in follow-up patches. The simplifications made here will also allow to simplify the
accessibility code.

  • css/mathml.css:

(mo): Deleted. This flexbox rule is no longer needed.

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::RenderMathMLBlock::createAnonymousMathMLBlock): Deleted. We no longer need to
create anonymous renderer with this function.

  • rendering/mathml/RenderMathMLBlock.h: Delete createAnonymousMathMLBlock.
  • rendering/mathml/RenderMathMLOperator.cpp: Implement layout functions without relying on

flexbox or anonymous.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Handle the case of !useMathOperator()
for which we need to add extra operator spacing after the RenderMathMLToken layout.
(WebCore::RenderMathMLOperator::layoutBlock): Ditto.
(WebCore::RenderMathMLOperator::isChildAllowed): Deleted. We allow the non-anonymous text.
(WebCore::RenderMathMLOperator::rebuildTokenContent): No longer destroy and rebuild
anonymous wrapper. Remove updateStyle call.
(WebCore::RenderMathMLOperator::updateStyle): Deleted. We no longer need anonymous style for the spacing.

  • rendering/mathml/RenderMathMLOperator.h: Remove updateStyle() and isChildAllowed().

Make textContent() public so that it can be accessed from the accessibility code.

  • rendering/mathml/RenderMathMLToken.cpp: Reimplement implicit mathvariant="italic" by

painting MATHEMATICAL ITALIC characters instead of styling an anonymous wrapper.
(WebCore::RenderMathMLToken::RenderMathMLToken): Init m_mathVariantGlyph and m_mathVariantGlyphDirty
(WebCore::RenderMathMLToken::updateTokenContent): Set mathvariant glyph dirty when the content changes.
(WebCore::transformToItalic): Helper function to map latin and greek alphabets to their
MATHEMATICAL ITALIC counterpart.
(WebCore::RenderMathMLToken::computePreferredLogicalWidths): Implement this function to
handle the case where the mathvariant glyph is used.
(WebCore::RenderMathMLToken::updateMathVariantGlyph): Helper function to update the mathvariant glyph.
For now, we try and keep with the old (and limited) implementation: a mathvariant glyph may
only used for single-char <mi> without mathvariant attribute attached to it.
(WebCore::RenderMathMLToken::styleDidChange): Set the mathvariant glyph dirty when the style
changes.
(WebCore::RenderMathMLToken::updateFromElement): Remove updateStyle call and set mathvariant
glyph dirty.
(WebCore::RenderMathMLToken::firstLineBaseline): Implement this function to handle the case

where the mathvariant glyph is used.

(WebCore::RenderMathMLToken::layoutBlock): Ditto.
(WebCore::RenderMathMLToken::paint): Ditto.
(WebCore::RenderMathMLToken::paintChildren): Ditto.
(WebCore::RenderMathMLToken::addChild): Deleted. No need to bother with anonymous renderer
or style.
(WebCore::RenderMathMLToken::createWrapperIfNeeded): Deleted. Ditto.
(WebCore::RenderMathMLToken::updateStyle): Deleted. Ditto.

  • rendering/mathml/RenderMathMLToken.h: Update declarations of functions.

(WebCore::RenderMathMLToken::setMathVariantGlyphDirty): Helper function to indicate that the
mathvariant glyph will need to be updated.

LayoutTests:

We update the test expectations. Most of the adjustments are irrelevant visual
modifications (small shift and size differences) or due to changes in the renderer tree
structure (removal of anonymous, operator text appearing in the dumped text).
We disable the accessibility for mfenced for now, but this will be enabled again and improved
in follow-up accessibility patches.

  • platform/ios-simulator/TestExpectations: We disable two reftests that use a character from

the Mathematical Alphanumeric Symbols block as a reference, since iOS does not have
appropriate fonts pre-installed.

  • accessibility/mac/mathml-elements.html: Disable the mfenced test for now.
  • accessibility/mac/mathml-elements-expected.txt: Ditto.
  • accessibility/ios-simulator/math-expected.txt: Update the reference now that the text of

the operator appears in the render tree.

  • accessibility/mac/math-alttext-expected.txt: Ditto.
  • mathml/opentype/large-operators-italic-correction-expected.txt: Ditto.
  • mathml/opentype/large-operators-munderover-expected.txt: Ditto.
  • mathml/presentation/inferred-mrow-stretchy-expected.txt: Ditto.
  • mathml/presentation/mfrac-nested-expected.txt: Ditto.
  • mathml/presentation/stretchy-depth-height-expected.txt: Ditto.
  • mathml/presentation/stretchy-depth-height-symmetric-expected.txt: Ditto.
  • mathml/presentation/sup-nested-expected.txt: Ditto.
  • mathml/very-large-stretchy-operators-expected.txt: Ditto.
  • platform/mac/accessibility/math-text-expected.txt: Ditto.
  • platform/gtk/accessibility/math-text-expected.txt: Ditto.
  • fast/css/readonly-pseudoclass-common-element-expected.txt: Ditto.
  • fast/css/readwrite-pseudoclass-editable-expected.txt: Ditto.
  • imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-namespace-expected.txt: Ditto.
  • imported/w3c/web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-namespace-xhtml-expected.txt: Ditto.
  • mathml/presentation/attributes-background-color.html: Add some padding to workaround some

small rendering failures.

  • mathml/presentation/attributes-background-color-expected.html: Ditto.
  • mathml/presentation/attributes-display.html: Ditto.
  • mathml/presentation/attributes-display-expected.html: Ditto.
  • mathml/presentation/bug97990-expected.html: Ditto.
  • mathml/presentation/bug97990.html: Ditto.
  • mathml/presentation/attributes-mathvariant-expected.html: Update the reftest to use italic

characters from the Mathematical Alphanumeric Symbols.

  • mathml/presentation/tokenElements-mathvariant-expected.html: Ditto.
  • mathml/presentation/mo-whitespaces-expected.html: Adjust one edge case since we now only

collapse whitespace for operators that use MathOperator.

  • accessibility/math-multiscript-attributes-expected.txt: Small size/coordinate adjustment.
  • platform/gtk/accessibility/math-multiscript-attributes-expected.txt: Dottp.
  • platform/gtk/mathml/presentation/roots-expected.txt: Size/coordinate adjustment, removal

of anonymous renderers and use italic characters from the Mathematical Alphanumeric Symbols.

  • platform/gtk/mathml/presentation/roots-expected.png: Ditto.
  • platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/horizontal-expected.txt: Size/coordinate adjustment and

removal of anonymous renderers.

  • platform/gtk/mathml/opentype/horizontal-munderover-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/large-operators-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/vertical-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt: Ditto.
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/mac/mathml/opentype/large-operators-expected.txt: Ditto.
  • platform/mac/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Ditto.
  • platform/mac/mathml/opentype/vertical-expected.txt: Ditto.
12:39 AM Changeset in webkit [202419] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebCore

Unreviewed EFL build fix.

There is forward declaration build error on EFL port.

  • platform/graphics/texmap/coordinated/CompositingCoordinator.cpp: Include DOMWindow.h and Document.h.

Jun 23, 2016:

11:07 PM Changeset in webkit [202418] by Simon Fraser
  • 3 edits in trunk/Tools

Fix Windows build.

  • DumpRenderTree/cg/PixelDumpSupportCG.cpp:
  • DumpRenderTree/cg/PixelDumpSupportCG.h:
10:20 PM Changeset in webkit [202417] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit/win

[Win] The test accessibility/aria-labelledby-overrides-label.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=159057

Reviewed by Brent Fulgham.

The test expects the label to have a static text role, but currently it has a
group role.

  • AccessibleBase.cpp:

(MSAARole): Change the role of labels to static text.

9:51 PM Changeset in webkit [202416] by Gyuyoung Kim
  • 2 edits in trunk/Tools

[EFL] Change download path of libxslt

Unreviewed EFL build fix.

In Korea current download path can't be accessed. Change it.

  • efl/jhbuild.modules:
9:39 PM Changeset in webkit [202415] by commit-queue@webkit.org
  • 3 edits
    9 adds in trunk

OOM Assertion failure in Array.prototype.toString
https://bugs.webkit.org/show_bug.cgi?id=158793

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-23
Reviewed by Saam Barati.

Source/JavaScriptCore:

JSString::create() taking a StringImpl was using a signed integer
for the length of the string.
The problem is StringImpl uses an unsigned integer. When a large string
was passed to JSString, the signed integer would be negative and crash
JSString.

  • runtime/JSString.h:

(JSC::JSString::create):

LayoutTests:

  • js/script-tests/stringimpl-to-jsstring-on-large-strings-1.js: Added.

(string_appeared_here.createStrings):

  • js/script-tests/stringimpl-to-jsstring-on-large-strings-2.js: Added.

(string_appeared_here.createRegexp):
(catch):

  • js/script-tests/stringimpl-to-jsstring-on-large-strings-3.js: Added.

(string_appeared_here.createStrings):
(catch):

  • js/stringimpl-to-jsstring-on-large-strings-1-expected.txt: Added.
  • js/stringimpl-to-jsstring-on-large-strings-1.html: Added.
  • js/stringimpl-to-jsstring-on-large-strings-2-expected.txt: Added.
  • js/stringimpl-to-jsstring-on-large-strings-2.html: Added.
  • js/stringimpl-to-jsstring-on-large-strings-3-expected.txt: Added.
  • js/stringimpl-to-jsstring-on-large-strings-3.html: Added.
9:08 PM Changeset in webkit [202414] by beidson@apple.com
  • 14 edits
    7 adds in trunk

Retrieving Blobs from IndexedDB using cursors fails in WK2 (Sandboxing)
https://bugs.webkit.org/show_bug.cgi?id=158991

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/blob-cursor.html

  • platform/network/BlobDataFileReference.cpp:

(WebCore::BlobDataFileReference::startTrackingModifications): Deleted.

Source/WebKit2:

  • CMakeLists.txt:
  • WebKit2.xcodeproj/project.pbxproj:
  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::getSandboxExtensionsForBlobFiles):
(WebKit::DatabaseProcess::didGetSandboxExtensionsForBlobFiles):

  • DatabaseProcess/DatabaseProcess.h:
  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::handleGetResult): Handle creation of sandbox extensions

for any result that might contain blob values.

(WebKit::WebIDBConnectionToClient::didGetRecord):
(WebKit::WebIDBConnectionToClient::didOpenCursor):
(WebKit::WebIDBConnectionToClient::didIterateCursor):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.h:
  • Shared/Databases/IndexedDB/WebIDBResult.cpp: Added.

(WebKit::WebIDBResult::encode):
(WebKit::WebIDBResult::decode):

  • Shared/Databases/IndexedDB/WebIDBResult.h: Added.

(WebKit::WebIDBResult::WebIDBResult):
(WebKit::WebIDBResult::resultData):
(WebKit::WebIDBResult::handles):

  • Shared/SandboxExtension.h: Make SandboxExtension handles moveable.
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::preregisterSandboxExtensionsIfNecessary): Register sandbox extensions with the

Networking process for any result that might contain blob values.

(WebKit::WebIDBConnectionToServer::didGetRecord):
(WebKit::WebIDBConnectionToServer::didOpenCursor):
(WebKit::WebIDBConnectionToServer::didIterateCursor):
(WebKit::WebIDBConnectionToServer::didGetRecordWithSandboxExtensions): Deleted.

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.messages.in:

LayoutTests:

  • storage/indexeddb/modern/blob-cursor-expected.txt: Added.
  • storage/indexeddb/modern/blob-cursor.html: Added.
  • storage/indexeddb/modern/resources/blob-cursor.js: Added.
  • storage/indexeddb/modern/resources/blob-cursor1.html: Added.
  • storage/indexeddb/modern/resources/blob-cursor2.html: Added.
8:41 PM Changeset in webkit [202413] by Yusuke Suzuki
  • 44 edits
    1 copy
    47 adds in trunk

[JSC] Implement isFinite / isNaN in JS and make DFG ToNumber accept non number values
https://bugs.webkit.org/show_bug.cgi?id=154022

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

We aim at optimizing @toInteger operation.
While it still has an unoptimized part[1], this patch should be a first step.

We introduce the @toNumber builtin intrinsic operation.
This converts the given value to the JS number by emitting op_to_number bytecode.
Previously @toInteger called C++ @Number constructor for that purpose.

And in DFG, op_to_number is converted to DFG ToNumber node.
During DFG, we attempt to convert this to edge filtering and Identity, but if we fail,
we just fall back to calling the C++ function.

To utilize ToNumber in user-land side, we add a path attempting to convert Number constructor calls
to ToNumber DFG nodes. This conversion is useful because Number(value) is used to convert a value to a number in JS.

Before this patch, we emit simple edge filtering (NumberUse) instead of emitting DFG node like ToNumber for op_to_number.
But emitting ToNumber is useful, because in the case of Number(value), considering value may not be a number is reasonable.

By leveraging @toNumber operation, we rewrite Number.{isFinite, isNaN}, global.{isFinite, isNaN} and @toInteger.

ToNumber DFG node has a value profiling. This profiling is leveraged to determine the result number type of the ToNumber operation.
This value profiling is provided from either NumberConstructor's call operation or op_to_number.

The results (with the added performance tests) show that, while existing cases are performance neutral, the newly added cases gain the performance benefit.
And ASMBench/n-body.c also shows stable ~2% progression.

[1]: https://bugs.webkit.org/show_bug.cgi?id=153738

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/BuiltinNames.h:
  • builtins/GlobalObject.js:

(globalPrivate.isFinite):
(globalPrivate.isNaN):
(globalPrivate.toInteger): Deleted.
(globalPrivate.toLength): Deleted.
(globalPrivate.isDictionary): Deleted.
(globalPrivate.speciesGetter): Deleted.
(globalPrivate.speciesConstructor): Deleted.

  • builtins/GlobalOperations.js: Copied from Source/JavaScriptCore/builtins/GlobalObject.js.

(globalPrivate.toInteger):
(globalPrivate.toLength):
(globalPrivate.isDictionary):
(globalPrivate.speciesGetter):
(globalPrivate.speciesConstructor):

  • builtins/NumberConstructor.js: Added.

(isFinite):
(isNaN):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.json:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finishCreation):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitUnaryOp):
(JSC::BytecodeGenerator::emitUnaryOpProfiled):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitToNumber):

  • bytecompiler/NodesCodegen.cpp:

(JSC::BytecodeIntrinsicNode::emit_intrinsic_toNumber):
(JSC::UnaryPlusNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::attemptToInlineCall):
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
(JSC::DFG::ByteCodeParser::parseBlock):
We use getPrediction() to retrieve the heap prediction from the to_number bytecode.
According to the benchmark results, choosing getPredictionWithoutOSRExit() causes performance regression (1.5%) in kraken stanford-crypto-aes.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):

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

Alway rely on the heap prediction.

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
As of 64bit version, we carefully manage the register reuse. The largest difference between 32bit and 64bit is
branchIfNotNumber() requires the temporary register. We should not use the result registers for that since
it may be reuse the argument registers and it can break the argument registers before using them to call the operation.
Currently, we allocate the additional temporary register for that scratch register.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):
Reuse the argument register for the result if possible. And manually decrement the use count in the middle of the node.
This is similar technique used in ToPrimitive. Typically, the child of ToNumber is only used by this ToNumber node since
we would like to perform the type conversion onto this child node here. So this careful register reuse effectively removes
the spills to call the operation. The example of the actually emitted code is the following.

76:<!2:loc11> ToNumber(Untyped:@68, JS|MustGen|UseAsOther, DoubleimpurenanTopEmpty, R:World, W:Heap, Exits, ClobbersExit, bc#48) predicting DoubleimpurenanTopEmpty

0x7f986d5fe693: test %rax, %r14
0x7f986d5fe696: jz 0x7f986d5fe6a1
0x7f986d5fe69c: jmp 0x7f986d5fe6d1
0x7f986d5fe6a1: mov %rax, %rsi
0x7f986d5fe6a4: mov %rbp, %rdi
0x7f986d5fe6a7: mov $0x2, 0x24(%rbp)
0x7f986d5fe6ae: mov $0x7f98711ea5f0, %r11
0x7f986d5fe6b8: call *%r11
0x7f986d5fe6bb: mov $0x7f982d3f72d0, %r11
0x7f986d5fe6c5: mov (%r11), %r11
0x7f986d5fe6c8: test %r11, %r11
0x7f986d5fe6cb: jnz 0x7f986d5fe88c

It effectively removes the unnecessary spill to call the operation!

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileToNumber):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfNumber):
(JSC::AssemblyHelpers::branchIfNotNumber):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_to_number):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_to_number):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/Nodes.h:

(JSC::UnaryOpNode::opcodeID):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncIsNaN): Deleted.
(JSC::globalFuncIsFinite): Deleted.

  • runtime/JSGlobalObjectFunctions.h:
  • runtime/MathCommon.h:

(JSC::maxSafeInteger):
(JSC::minSafeInteger):

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):
(JSC::numberConstructorFuncIsFinite): Deleted.
(JSC::numberConstructorFuncIsNaN): Deleted.

  • runtime/NumberConstructor.h:
  • tests/stress/Number-isNaN-basics.js: Added.

(numberIsNaNOnInteger):
(testNumberIsNaNOnIntegers):
(verifyNumberIsNaNOnIntegerWithOtherTypes):
(numberIsNaNOnDouble):
(testNumberIsNaNOnDoubles):
(verifyNumberIsNaNOnDoublesWithOtherTypes):
(numberIsNaNNoArguments):
(numberIsNaNTooManyArguments):
(testNumberIsNaNOnConstants):
(numberIsNaNStructTransition):
(Number.isNaN):

  • tests/stress/global-is-finite.js: Added.

(shouldBe):

  • tests/stress/global-is-nan.js: Added.

(shouldBe):

  • tests/stress/global-isNaN-basics.js: Added.

(isNaNOnInteger):
(testIsNaNOnIntegers):
(verifyIsNaNOnIntegerWithOtherTypes):
(isNaNOnDouble):
(testIsNaNOnDoubles):
(verifyIsNaNOnDoublesWithOtherTypes):
(verifyIsNaNOnCoercedTypes):
(isNaNNoArguments):
(isNaNTooManyArguments):
(testIsNaNOnConstants):
(isNaNTypeCoercionSideEffects):
(i.value.isNaNTypeCoercionSideEffects.valueOf):
(isNaNStructTransition):
(isNaN):

  • tests/stress/number-is-finite.js: Added.

(shouldBe):
(test2):
(test3):

  • tests/stress/number-is-nan.js: Added.

(shouldBe):
(test2):
(test3):

  • tests/stress/to-number-basics.js: Added.

(shouldBe):

  • tests/stress/to-number-convert-identity-without-execution.js: Added.

(shouldBe):
(object.valueOf):
(valueOf):

  • tests/stress/to-number-int52.js: Added.

(shouldBe):
(object.valueOf):

  • tests/stress/to-number-intrinsic-convert-to-identity-without-execution.js: Added.

(shouldBe):
(object.valueOf):
(valueOf):

  • tests/stress/to-number-intrinsic-int52.js: Added.

(shouldBe):
(object.valueOf):

  • tests/stress/to-number-intrinsic-object-without-execution.js: Added.

(shouldBe):
(object.valueOf):

  • tests/stress/to-number-intrinsic-value-profiling.js: Added.

(shouldBe):
(object.valueOf):

  • tests/stress/to-number-object-without-execution.js: Added.

(shouldBe):
(object.valueOf):

  • tests/stress/to-number-object.js: Added.

(shouldBe):
(test12):
(object1.valueOf):
(test2):
(test22):
(object2.valueOf):
(test3):
(test32):
(object3.valueOf):

  • tests/stress/to-number-value-profiling.js: Added.

(shouldBe):
(object.valueOf):

LayoutTests:

  • js/regress/Number-isNaN-expected.txt: Added.
  • js/regress/Number-isNaN.html: Added.
  • js/regress/global-isNaN-expected.txt: Added.
  • js/regress/global-isNaN.html: Added.
  • js/regress/script-tests/Number-isNaN.js: Added.
  • js/regress/script-tests/global-isNaN.js: Added.
  • js/regress/script-tests/many-foreach-calls.js:

(i.4.forEach):
(i.array.forEach): Deleted.

  • js/regress/script-tests/to-number-constructor-number-string-number-string.js: Added.

(test):

  • js/regress/script-tests/to-number-constructor-only-number.js: Added.

(test):

  • js/regress/script-tests/to-number-constructor-only-string.js: Added.

(test):

  • js/regress/script-tests/to-number-constructor-string-number-string-number.js: Added.

(test):

  • js/regress/script-tests/to-number-number-string-number-string.js: Added.

(test):

  • js/regress/script-tests/to-number-only-number.js: Added.

(test):

  • js/regress/script-tests/to-number-only-string.js: Added.

(test):

  • js/regress/script-tests/to-number-string-number-string-number.js: Added.

(test):

  • js/regress/to-number-constructor-number-string-number-string-expected.txt: Added.
  • js/regress/to-number-constructor-number-string-number-string.html: Added.
  • js/regress/to-number-constructor-only-number-expected.txt: Added.
  • js/regress/to-number-constructor-only-number.html: Added.
  • js/regress/to-number-constructor-only-string-expected.txt: Added.
  • js/regress/to-number-constructor-only-string.html: Added.
  • js/regress/to-number-constructor-string-number-string-number-expected.txt: Added.
  • js/regress/to-number-constructor-string-number-string-number.html: Added.
  • js/regress/to-number-number-string-number-string-expected.txt: Added.
  • js/regress/to-number-number-string-number-string.html: Added.
  • js/regress/to-number-only-number-expected.txt: Added.
  • js/regress/to-number-only-number.html: Added.
  • js/regress/to-number-only-string-expected.txt: Added.
  • js/regress/to-number-only-string.html: Added.
  • js/regress/to-number-string-number-string-number-expected.txt: Added.
  • js/regress/to-number-string-number-string-number.html: Added.
8:34 PM Changeset in webkit [202412] by Simon Fraser
  • 4 edits in trunk

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

Tools:

Turn off CARenderServer snapshotting in WTR for now, because it doesn't reliably
snapshot the final state of the test in release builds.

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::dump):

LayoutTests:

Mark fast/harness/snapshot-captures-compositing.html as an image failure.

  • platform/ios-simulator-wk2/TestExpectations:
7:50 PM Changeset in webkit [202411] by Simon Fraser
  • 3 edits in trunk/Tools

Fix hardware builds, where USE(IOSURFACE) is true by #ifdeffing.

  • DumpRenderTree/ios/PixelDumpSupportIOS.mm:

(createBitmapContextFromWebView):

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::windowSnapshotImage):

7:47 PM Changeset in webkit [202410] by achristensen@apple.com
  • 30 edits in trunk/Source

Remove unused didCancelAuthenticationChallenge
https://bugs.webkit.org/show_bug.cgi?id=158819

Reviewed by David Kilzer.

Source/WebCore:

No change in behavior. This callback was deprecated in Yosemite. It is never called.

  • loader/EmptyClients.h:
  • loader/FrameLoaderClient.h:
  • loader/ResourceLoadNotifier.cpp:

(WebCore::ResourceLoadNotifier::didCancelAuthenticationChallenge): Deleted.

  • loader/ResourceLoadNotifier.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::didCancelAuthenticationChallenge): Deleted.

  • loader/ResourceLoader.h:
  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleClient.h:

(WebCore::ResourceHandleClient::didCancelAuthenticationChallenge): Deleted.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::didCancelAuthenticationChallenge): Deleted.

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]): Deleted.

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didCancelAuthenticationChallenge:]): Deleted.

  • platform/spi/cocoa/NSURLDownloadSPI.h:

Source/WebKit/ios:

  • DefaultDelegates/WebDefaultResourceLoadDelegate.m:

(-[WebDefaultResourceLoadDelegate webView:resource:didReceiveAuthenticationChallenge:fromDataSource:]):
(-[WebDefaultResourceLoadDelegate webView:resource:canAuthenticateAgainstProtectionSpace:forDataSource:]):
(-[WebDefaultResourceLoadDelegate webView:resource:didCancelAuthenticationChallenge:fromDataSource:]): Deleted.

Source/WebKit/mac:

  • Misc/WebDownload.mm:

(-[WebDownloadInternal download:didCancelAuthenticationChallenge:]): Deleted.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge): Deleted.

  • WebView/WebDelegateImplementationCaching.h:
  • WebView/WebView.mm:

(-[WebView _cacheResourceLoadDelegateImplementations]):

Source/WebKit/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge): Deleted.

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:

  • NetworkProcess/Downloads/mac/DownloadMac.mm:

(-[WKDownloadAsDelegate download:didCancelAuthenticationChallenge:]): Deleted.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didCancelAuthenticationChallenge): Deleted.

  • NetworkProcess/NetworkLoad.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidCancelAuthenticationChallenge): Deleted.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
7:44 PM Changeset in webkit [202409] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Add "shippingType" to the list of valid payment request properties
https://bugs.webkit.org/show_bug.cgi?id=159079
<rdar://problem/26988429>

Reviewed by Dean Jackson.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::isValidPaymentRequestPropertyName):

7:38 PM Changeset in webkit [202408] by benjamin@webkit.org
  • 29 edits
    14 adds in trunk

Specialize synchronous event tracking per event type
https://bugs.webkit.org/show_bug.cgi?id=158826

Reviewed by Simon Fraser.

Source/WebCore:

First, kudos to Rick Byers for all his helps on passive event dispatch.
The specs are pretty damn good and his help reviewing patches is very useful.

This patch change synchronous event dispatch to happen per event
instead of per sequence touchstart->touchend.

The big advantage of this is we can dispatch more events asynchronously.
For example, to handle a tap programmatically, you can limit the active listener
to the touchend event. The touchstart and touchmove are now dispatched asynchronously.

The implementation is a simple extension to EventTrackingRegions.
Instead of a single synchronous region, we have one region per event type.
When processing the events, we only need to send the events synchronously
if that particular event type has a synchronous region.

Note that EventDispatcher's touch event support already supports
mixing synchronous and asynchronous events. The events are always processed
in order even if asynchronous events are pending when a synchronous dispatch
happens.

Tests: fast/events/touch/ios/tap-with-active-listener-inside-document-with-passive-listener.html

fast/events/touch/ios/tap-with-active-listener-inside-window-with-passive-listener.html
fast/events/touch/ios/tap-with-active-touch-end-listener.html
fast/events/touch/ios/tap-with-passive-listener-inside-active-listener.html
fast/events/touch/ios/tap-with-passive-touch-end-listener.html
fast/events/touch/ios/tap-with-passive-touch-start-active-touch-end-listeners-on-elements.html
fast/events/touch/ios/tap-with-passive-touch-start-active-touch-move-listeners-on-elements.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/EventTarget.cpp:

(WebCore::EventTarget::hasActiveTouchEventListeners): Deleted.

  • dom/EventTarget.h:
  • page/DebugPageOverlays.cpp:

(WebCore::NonFastScrollableRegionOverlay::updateRegion):

  • page/Page.cpp:

(WebCore::Page::nonFastScrollableRects):

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame):

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::dumpProperties):

  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::eventTrackingTypeForPoint):

  • page/scrolling/ScrollingTree.h:
  • platform/EventTrackingRegions.cpp: Added.

(WebCore::EventTrackingRegions::trackingTypeForPoint):
(WebCore::EventTrackingRegions::isEmpty):
(WebCore::EventTrackingRegions::translate):
(WebCore::EventTrackingRegions::uniteSynchronousRegion):
(WebCore::EventTrackingRegions::unite):
(WebCore::operator==):

  • platform/EventTrackingRegions.h:

(WebCore::EventTrackingRegions::isEmpty): Deleted.
(WebCore::EventTrackingRegions::trackingTypeForPoint): Deleted.
(WebCore::operator==): Deleted.

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<EventTrackingRegions>::encode):
(IPC::ArgumentCoder<EventTrackingRegions>::decode):

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::eventTrackingTypeForPoint):

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::mergeTrackingTypes):
(WebKit::WebPageProxy::updateTouchEventTracking):
(WebKit::WebPageProxy::touchEventTrackingType):
(WebKit::WebPageProxy::handleTouchEventSynchronously):
(WebKit::WebPageProxy::handleTouchEventAsynchronously):
(WebKit::WebPageProxy::handleTouchEvent):
(WebKit::WebPageProxy::resetState):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::TouchEventTracking::isTrackingAnything):
(WebKit::WebPageProxy::TouchEventTracking::reset):

LayoutTests:

  • fast/events/touch/ios/tap-with-active-listener-inside-document-with-passive-listener-expected.txt: Added.
  • fast/events/touch/ios/tap-with-active-listener-inside-document-with-passive-listener.html: Added.
  • fast/events/touch/ios/tap-with-active-listener-inside-window-with-passive-listener-expected.txt: Added.
  • fast/events/touch/ios/tap-with-active-listener-inside-window-with-passive-listener.html: Added.
  • fast/events/touch/ios/tap-with-active-touch-end-listener-expected.txt: Added.
  • fast/events/touch/ios/tap-with-active-touch-end-listener.html: Added.
  • fast/events/touch/ios/tap-with-passive-listener-inside-active-listener.html: Added.
  • fast/events/touch/ios/tap-with-passive-touch-end-listener-expected.txt: Added.
  • fast/events/touch/ios/tap-with-passive-touch-end-listener.html: Added.
  • fast/events/touch/ios/tap-with-passive-touch-start-active-touch-end-listeners-on-elements-expected.txt: Added.
  • fast/events/touch/ios/tap-with-passive-touch-start-active-touch-end-listeners-on-elements.html: Added.
  • fast/events/touch/ios/tap-with-passive-touch-start-active-touch-move-listeners-on-elements-expected.txt: Added.
  • fast/events/touch/ios/tap-with-passive-touch-start-active-touch-move-listeners-on-elements.html: Added.
5:59 PM Changeset in webkit [202407] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

More attempting to fix external iOS builds.

  • platform/spi/cocoa/QuartzCoreSPI.h:
5:25 PM Changeset in webkit [202406] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Update TestExpectations for a couple video track tests.

  • platform/mac/TestExpectations:
5:12 PM Changeset in webkit [202405] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Try to fix the non-internal builds by defining CARenderServerBufferRef.

  • platform/spi/cocoa/QuartzCoreSPI.h:
5:08 PM Changeset in webkit [202404] by Simon Fraser
  • 12 edits
    2 adds in trunk

[iOS] Make DumpRenderTree and WebKitTestRunner in the simulator use render server snapshotting
https://bugs.webkit.org/show_bug.cgi?id=159077

Reviewed by Tim Horton.

Source/WebCore:

Add CARenderServer SPIs.

Test: fast/harness/snapshot-captures-compositing.html

  • platform/spi/cocoa/QuartzCoreSPI.h:

Tools:

Fix both DRT and WTR for iOS to use CARenderServerRenderLayerWithTransform() on the view's layer.
This allows them to capture compositing layers in snapshots, rather than doing a software paint,
thus enabling testing of more things.

  • DumpRenderTree/cg/PixelDumpSupportCG.cpp:

(createBitmapContext): Moved to this file to share it.

  • DumpRenderTree/cg/PixelDumpSupportCG.h:
  • DumpRenderTree/ios/PixelDumpSupportIOS.mm:

(createBitmapContextFromWebView):
(BitmapContext::createFromUIImage): Deleted.
(BitmapContext::pixelData): Deleted.
(BitmapContext::BitmapContext): Deleted.
(computeMD5HashStringForBitmapContext): Deleted.
(dumpBitmap): Deleted.

  • DumpRenderTree/mac/Configurations/DumpRenderTreeLibrary.xcconfig: Don't exclude PixelDumpSupportCG.cpp.
  • DumpRenderTree/mac/PixelDumpSupportMac.mm:

(createPagedBitmapContext):
(createBitmapContext): Deleted.

  • WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig: link with QuartzCore.
  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::dump): Deleted.

  • WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::windowSnapshotImage):

LayoutTests:

Test that fails if snapshotting doesn't correctly snapshot 3D transforms.

  • fast/harness/snapshot-captures-compositing-expected.html: Added.
  • fast/harness/snapshot-captures-compositing.html: Added.
5:00 PM Changeset in webkit [202403] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

4:28 PM Changeset in webkit [202402] by sbarati@apple.com
  • 8 edits
    1 add in trunk/Source/JavaScriptCore

DFGSpeculativeJIT's m_slowPathLambdas should restore the current node field and DFG OSR entry functions should use DeferGCForAWhile instead of DeferGC
https://bugs.webkit.org/show_bug.cgi?id=159064
<rdar://problem/26599119>

Reviewed by Filip Pizlo.

The DFG has a list of m_slowPathLambdas that are code generators it emits
amongst its slow paths. These lambdas, however, did not update the m_currentNode field.
This caused us to use whatever Node happened to be used as the currentNode at the time
we call the slowPathLambda. This means the wrong CallSiteIndex was stored into the call
frame when we made a call. This may lead to a crash if the CallSiteIndex corresponds to
the wrong CodeOrigin. For example, the wrong CodeOrigin could have an InlineCallFrame with
a calleeRecovery that will not be in sync with the current stack state. Trying
to recover that callee will often lead to a crash. The solution is to update
m_currentNode to the DFG::Node* it corresponds to when emitting these slowPathLambdas.

I found this bug because we were inside this bad state when calling an operation
that happened to have a DeferGC. When this DeferGC actually GCed, it would
take a StackTrace, which would lead to a crash because we were updating
ShadowChicken with vm.topCallFrame. It just so happened that the CallSiteIndex
in the call frame in this program corresponded to an InlineCallFrame with a calleeRecover.
However, this CallSiteIndex didn't correspond to the actual state of execution
of the program. I'm adding new options to make reproducing DeferGC related
bugs easier by making DeferGC force a GC according to some probability. To
always have DeferGC force a GC, you can set that probability to 1.

There is a second bug that I discovered after solving the above bug. We were
using DeferGC instead of DeferGCForAWhile in the OSR entry related functions
in the DFG. This would cause us to take a stack trace when the call frame was
in an inconsistent state. For example, the operation would call FTL::prepareOSREntry,
which would replace the DFG CodeBlock in the call frame with the FTL CodeBlock.
However, we wouldn't update the CallSiteIndex to correspond to an FTL CallSiteIndex.
This would lead to a crash when taking a stack trace. The solution is to prevent
stack traces from being taken when the program is in this state by using
DeferGCForAWhie instead of DeferGC.

  • dfg/DFGOperations.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::addSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::runSlowPathGenerators):

  • dfg/DFGSpeculativeJIT.h:
  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::collectIfNecessaryOrDefer):
(JSC::Heap::collectAccordingToDeferGCProbability):
(JSC::Heap::decrementDeferralDepthAndGCIfNeeded):
(JSC::Heap::markListSet):

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):
(JSC::Options::initialize):

  • runtime/Options.h:
  • tests/stress/slow-path-generator-updating-current-node-dfg.js: Added.

(foo):
(bar):

4:22 PM Changeset in webkit [202401] by BJ Burg
  • 3 edits in trunk/Source/WebCore

Web Inspector: add assertions to catch dangling frontends that persist between tests
https://bugs.webkit.org/show_bug.cgi?id=159073

Reviewed by Joseph Pecoraro.

Based on the analysis in https://webkit.org/b/159070, we suspect that some test
flakiness might be caused by dangling frontends from previous test cases. Add an
assertion that should catch any frontends that are attached to the inspected page's
backend. There should never be any frontends connected when a test first starts.

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::setIsUnderTest):

  • inspector/InspectorController.h:
3:52 PM Changeset in webkit [202400] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WTF

REGRESSION (r202380): iOS 9.x internal builds are broken

Follow-up fix for: Enable window.open() for existing versions of Secret Society
<https://webkit.org/b/159049>
<rdar://problem/26528349>

  • wtf/spi/darwin/dyldSPI.h: Define DYLD_IOS_VERSION_10_0 when

building on internal SDKs older than iOS 10.

3:46 PM Changeset in webkit [202399] by commit-queue@webkit.org
  • 26 edits
    4 adds in trunk

requestFrameAnimation() callback timestamp should be very close to Performance.now()
https://bugs.webkit.org/show_bug.cgi?id=159038

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-06-23
Reviewed by Simon Fraser.

Source/WebCore:

Pass the Performance.now() to requestFrameAnimation() callback. Do not add
the timeUntilOutput which is the difference between outputTime and now since
this addition makes us report a timestamp ahead in the future by almost 33ms.

A new function named "nowTimestamp()" is added to the DOMWindow class. It
calls Performance.now() if WEB_TIMING is enabled, otherwise it calls
monotonicallyIncreasingTime(). The returned timestamp is seconds and it is
relative to the document loading time.

The timestamp passing will be removed all the down till the callers of
ScriptedAnimationController::serviceScriptedAnimations(). The callers will
getting the now timestamp by calling DOMWindow::nowTimestamp().

Tests: animations/animation-callback-timestamp.html

animations/animation-multiple-callbacks-timestamp.html

  • dom/Document.cpp:

(WebCore::Document::monotonicTimestamp):
(WebCore::Document::serviceScriptedAnimations):

  • dom/Document.h:
  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::serviceScriptedAnimations):
(WebCore::ScriptedAnimationController::animationTimerFired):
(WebCore::ScriptedAnimationController::displayRefreshFired):

  • dom/ScriptedAnimationController.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::getVideoPlaybackQuality):

  • loader/DocumentLoadTiming.h:

(WebCore::DocumentLoadTiming::referenceWallTime):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::nowTimestamp):

  • page/DOMWindow.h:
  • page/FrameView.cpp:

(WebCore::FrameView::serviceScriptedAnimations):

  • page/FrameView.h:
  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
(WebCore::DisplayRefreshMonitor::displayDidRefresh):

  • platform/graphics/DisplayRefreshMonitor.h:

(WebCore::DisplayRefreshMonitor::setMonotonicAnimationStartTime): Deleted.

  • platform/graphics/DisplayRefreshMonitorClient.cpp:

(WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded):

  • platform/graphics/DisplayRefreshMonitorClient.h:
  • platform/graphics/GraphicsLayerUpdater.cpp:

(WebCore::GraphicsLayerUpdater::displayRefreshFired):

  • platform/graphics/GraphicsLayerUpdater.h:
  • platform/graphics/ios/DisplayRefreshMonitorIOS.h:
  • platform/graphics/ios/DisplayRefreshMonitorIOS.mm:

(-[WebDisplayLinkHandler handleDisplayLink:]):
(WebCore::DisplayRefreshMonitorIOS::displayLinkFired):
(WebCore::mediaTimeToCurrentTime): Deleted.

  • platform/graphics/mac/DisplayRefreshMonitorMac.cpp:

(WebCore::displayLinkCallback):
(WebCore::DisplayRefreshMonitorMac::displayLinkFired):

  • platform/graphics/mac/DisplayRefreshMonitorMac.h:
  • platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:

(WebCore::CompositingCoordinator::syncDisplayState):
(WebCore::CompositingCoordinator::nextAnimationServiceTime):

Source/WebKit2:

  • WebProcess/WebPage/Cocoa/RemoteLayerTreeDisplayRefreshMonitor.mm:

(WebKit::RemoteLayerTreeDisplayRefreshMonitor::didUpdateLayers):

LayoutTests:

  • animations/animation-callback-timestamp-expected.txt: Added.
  • animations/animation-callback-timestamp.html: Added.
  • animations/animation-multiple-callbacks-timestamp-expected.txt: Added.
  • animations/animation-multiple-callbacks-timestamp.html: Added.
2:28 PM Changeset in webkit [202398] by ddkilzer@apple.com
  • 1 edit
    1 delete in trunk/Source/WebCore

Remove unused HarfBuzzFaceCoreText.cpp
<https://webkit.org/b/159065>

Reviewed by Myles C. Maxfield.

  • platform/graphics/harfbuzz/HarfBuzzFaceCoreText.cpp: Removed.
1:55 PM Changeset in webkit [202397] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Failing baseline JIT compilation of a code block and then trying to compile it from OSR from DFG/FTL will corrupt the CodeBlock
https://bugs.webkit.org/show_bug.cgi?id=158806

Reviewed by Saam Barati.

If we try to compile a CodeBlock that we already tried compiling in the past then we need
to clean up the data structures that were partly filled in by the failed compile. That
causes some races, since the DFG may be trying to parse those data structures while we are
clearing them. This patch introduces such a clean-up (CodeBlock::resetJITData()) and fixes
the races.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::getStubInfoMap):
(JSC::CodeBlock::getCallLinkInfoMap):
(JSC::CodeBlock::getByValInfoMap):
(JSC::CodeBlock::getCallLinkInfoForBytecodeIndex):
(JSC::CodeBlock::resetJITData):
(JSC::CodeBlock::visitOSRExitTargets):
(JSC::CodeBlock::setSteppingMode):
(JSC::CodeBlock::addRareCaseProfile):
(JSC::CodeBlock::rareCaseProfileForBytecodeOffset):
(JSC::CodeBlock::rareCaseProfileCountForBytecodeOffset):
(JSC::CodeBlock::resultProfileForBytecodeOffset):
(JSC::CodeBlock::specialFastCaseProfileCountForBytecodeOffset):
(JSC::CodeBlock::couldTakeSpecialFastCase):
(JSC::CodeBlock::ensureResultProfile):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::getFromAllValueProfiles):
(JSC::CodeBlock::numberOfRareCaseProfiles):
(JSC::CodeBlock::numberOfResultProfiles):
(JSC::CodeBlock::numberOfArrayProfiles):
(JSC::CodeBlock::arrayProfiles):
(JSC::CodeBlock::addRareCaseProfile): Deleted.
(JSC::CodeBlock::specialFastCaseProfileCountForBytecodeOffset): Deleted.
(JSC::CodeBlock::couldTakeSpecialFastCase): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::methodOfGettingAValueProfileFor):

  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JITWorklist.cpp:

(JSC::JITWorklist::compileNow):

1:21 PM Changeset in webkit [202396] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.38-branch/Source/WebKit2

Merged r202393. rdar://problem/17665473

1:16 PM Changeset in webkit [202395] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/26952627.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:05 PM Changeset in webkit [202394] by commit-queue@webkit.org
  • 21 edits in trunk/Source

Web Inspector: Memory Timeline sometimes shows impossible value for bmalloc size (underflowed)
https://bugs.webkit.org/show_bug.cgi?id=158110
<rdar://problem/26498584>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-23
Reviewed by Andreas Kling.

Source/JavaScriptCore:

  • heap/Heap.cpp:

(JSC::Heap::willStartCollection):
(JSC::Heap::didFinishCollection):

  • heap/Heap.h:

(JSC::Heap::externalMemorySize):

  • heap/HeapInlines.h:

(JSC::Heap::reportExternalMemoryVisited):
Keep count of external memory we visit.

  • heap/SlotVisitor.h:
  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::reportExternalMemoryVisited):
Report external memory visited like we do extra memory, since
it will be some subset of extra memory that is external.

Source/WebCore:

IOSurface memory backing Canvas element buffers should be classified as "GC Owned",
but should not be considered a part of bmalloc. In fact, the actual memory cost is
external to the Web Content Process. The majority of extra memory reporters tend
to report extra memory that is also allocated in bmalloc. However, some report
non-bmalloc memory, such as the IOSurfaces here.

Continue to report the memory cost without changes to inform the Heap for garbage
collection. However, also keep better accounting of GCOwned memory that is external
to the process for better accounting for the Resource Usage overlay and Web Inspector
Memory timeline.

This is a bit of a game where we want to display the best possible number for
"GCOwned memory" in the tools, but some of that memory shows up in the other
regions (bmalloc, system malloc, etc). Already many sizes are estimates
(ReportExtraMemory, reportExtraMemory ignores small allocations), so we just focus
on getting the largest sources of allocations, such as Canvas IOSurfaces here,
into the right bucket. ResourceUsageThreadCocoa continues to subtract the "extra"
memory from bmalloc. So, we should address other large sources of "extra memory"
not in bmalloc. A likely candidate is HTMLMediaElement which uses the deprecated
reporting right now.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:

Add a way to report External memory, dependent on reporting Extra memory.

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::externalMemoryCost):

  • html/HTMLCanvasElement.h:
  • html/HTMLCanvasElement.idl:

Report external memory cost just like extra memory.

  • page/ResourceUsageData.cpp:

(WebCore::ResourceUsageData::ResourceUsageData):

  • page/ResourceUsageData.h:

(WebCore::MemoryCategoryInfo::totalSize):

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::RingBuffer::at):
(WebCore::appendDataToHistory):
(WebCore::ResourceUsageOverlay::platformDraw):

  • page/cocoa/ResourceUsageThreadCocoa.mm:

(WebCore::categoryForVMTag):
(WebCore::ResourceUsageThread::platformThreadBody):
Do not count the GCOwned External memory as dirty memory.
Include External memory output in the overlay.

  • inspector/InspectorMemoryAgent.cpp:

(WebCore::InspectorMemoryAgent::collectSample):
When sizing the JavaScript portion, include both the GC Owned
category's dirty and external memory. Ultimately we will
want this everywhere in case things change.

  • platform/graphics/ImageBuffer.cpp:

(WebCore::memoryCost):
(WebCore::externalMemoryCost):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::memoryCost):
(WebCore::ImageBuffer::externalMemoryCost):
Report IOSurface total bytes as extra memory and external memory
so that it can be tracked as GC Owned memory that is separate from
regular (bmalloc/other) in process memory.

12:58 PM Changeset in webkit [202393] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[iOS] A WebPageProxy in closed state should not be allowed to hold a process assertion
https://bugs.webkit.org/show_bug.cgi?id=159068
<rdar://problem/17665473>

Reviewed by Tim Horton.

A WebPageProxy in closed state should not be allowed to hold a process assertion. It
currently happens that WebPageProxy::close() gets called but that the WebPageProxy is
kept alive by Safari (e.g. In case of top-hit preloading). In such cases, we fail to
release the foreground process assertion that the WebPageProxy holds.

We should clear the foreground process assertion that the WebPageProxy holds as soon
as WebPageProxy::close() is called.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::close):

12:24 PM Changeset in webkit [202392] by Konstantin Tokarev
  • 3 edits in trunk/Tools

[jhbuild] Added libxslt module.
https://bugs.webkit.org/show_bug.cgi?id=159034

Unreviewed, followup for r202373.

  • efl/install-dependencies: Removed libxslt
  • gtk/install-dependencies: Ditto.
12:20 PM Changeset in webkit [202391] by bshafiei@apple.com
  • 12 edits in branches/safari-602.1.38-branch/Source

Merge patch for rdar://problem/26831566.

12:17 PM Changeset in webkit [202390] by ap@apple.com
  • 4 edits in trunk

Handle (0, 0) ranges from Lookup
https://bugs.webkit.org/show_bug.cgi?id=159062
rdar://problem/26960385

Reviewed by Tim Horton.

Source/WebCore:

  • editing/mac/DictionaryLookup.mm: (WebCore::DictionaryLookup::rangeAtHitTestResult):

Paper over <https://bugs.webkit.org/show_bug.cgi?id=159063>, which seems too involved
to fix now.

LayoutTests:

  • platform/mac/TestExpectations: Unmark the test that was broken due to this.
12:16 PM Changeset in webkit [202389] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit2

[OS X][WK2] Expand sandbox for new mach endpoints
https://bugs.webkit.org/show_bug.cgi?id=159040
<rdar://problem/25238336>

Reviewed by Alexey Proskuryakov.

Grant the WebContent and Networking processes the mach lookup capability for
various Security-related mach endpoints..

  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
12:12 PM Changeset in webkit [202388] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.38-branch/Source

Versioning.

12:11 PM Changeset in webkit [202387] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.38-branch/Source

Versioning.

12:07 PM Changeset in webkit [202386] by bshafiei@apple.com
  • 1 copy in branches/safari-602.1.38-branch

New Branch.

12:07 PM Changeset in webkit [202385] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.38

New tag.

11:52 AM Changeset in webkit [202384] by Joseph Pecoraro
  • 12 edits in trunk/Source

Web Inspector: first heap snapshot taken when a page is reloaded happens before the reload navigation
https://bugs.webkit.org/show_bug.cgi?id=158995
<rdar://problem/26923778>

Reviewed by Brian Burg.

Source/WebCore:

When the "Heap" instrument is included in the Timeline list
of instruments, defer starting it in an auto-capture scenario
until after the page does its first navigation.

AutoCapture on the backend happens when it is enabled at
the main resource starts loading. In that case it proceeds
through the following phases:

No Auto Capture:

None

Auto Capture:

BeforeLoad -> FirstNavigation -> AfterFirstNavigation

When toggling instruments for backend initiated capture
most instruments do not care and will just start/stop.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didCommitLoadImpl):
Inform the TimelineAgent that the main frame navigated.
Do this after informing the HeapAgent (so any potential
snapshot does not get cleared) and PageAgent (so the
frontend knows the page navigated before the agent starts).

  • inspector/InspectorTimelineAgent.h:
  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::internalStop):
(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
(WebCore::InspectorTimelineAgent::mainFrameNavigated):
Update the auto capture phase transitions.

(WebCore::InspectorTimelineAgent::toggleHeapInstrument):
Only start the heap agent during the None phase (console.profile)
or with the first navigation (auto capture page navigation).

Source/WebInspectorUI:

Let instruments decide to do work or not based on programmatic
(backend initiated) starts and stop.

Programmatic start can happen due to Auto Capture or console.profile.
Programmatic stop can happen due to console.profileEnd.

For example, this allows the frontend to avoid sending agents start/stop
messages when the backend would have already started/stopped the agents.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager):
(WebInspector.TimelineManager.prototype.startCapturing):
(WebInspector.TimelineManager.prototype.capturingStopped):
(WebInspector.TimelineManager.prototype.autoCaptureStarted):
(WebInspector.TimelineManager.prototype.programmaticCaptureStarted):
Call Recording.start/stop with a programmatic flag so the frontend
instruments can perform a more informed start/stop.

  • UserInterface/Models/TimelineRecording.js:

(WebInspector.TimelineRecording.prototype.start):
(WebInspector.TimelineRecording.prototype.stop):
Let the instruments decide to do work based on the start/stop
being initiated by the backend or not.

  • UserInterface/Models/HeapAllocationsInstrument.js:

(WebInspector.HeapAllocationsInstrument.prototype.startInstrumentation):
(WebInspector.HeapAllocationsInstrument.prototype.stopInstrumentation):

  • UserInterface/Models/Instrument.js:

(WebInspector.Instrument.startLegacyTimelineAgent):
(WebInspector.Instrument.prototype.startInstrumentation):
(WebInspector.Instrument.prototype.stopInstrumentation):
(WebInspector.Instrument):

  • UserInterface/Models/MemoryInstrument.js:

(WebInspector.MemoryInstrument.prototype.startInstrumentation):
(WebInspector.MemoryInstrument.prototype.stopInstrumentation):
(WebInspector.MemoryInstrument):

  • UserInterface/Models/NetworkInstrument.js:
  • UserInterface/Models/ScriptInstrument.js:

(WebInspector.ScriptInstrument.prototype.startInstrumentation):
(WebInspector.ScriptInstrument.prototype.stopInstrumentation):
(WebInspector.ScriptInstrument):
Avoid sending start/stop tracking messages when programmatic.
This still allows the instruments to do their own frontend tracking,
such as the Heap agent triggering periodic snapshots.

11:52 AM Changeset in webkit [202383] by Joseph Pecoraro
  • 24 edits
    3 copies in trunk/Source

Web Inspector: Snapshots should be cleared at some point
https://bugs.webkit.org/show_bug.cgi?id=157907
<rdar://problem/26373610>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • heap/HeapSnapshotBuilder.h:
  • heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::resetNextAvailableObjectIdentifier):
Provide a way to reset the object identifier counter.

  • inspector/agents/InspectorHeapAgent.h:
  • inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::clearHeapSnapshots):
Make clearHeapSnapshots protected, so it can be called from a
a PageHeapAgent on page navigations.

Source/WebCore:

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorAllInOne.cpp:

New specialized agent.

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):
Construct a specialized HeapAgent.

  • inspector/PageHeapAgent.h:
  • inspector/PageHeapAgent.cpp:

(WebCore::PageHeapAgent::PageHeapAgent):
(WebCore::PageHeapAgent::enable):
(WebCore::PageHeapAgent::disable):
(WebCore::PageHeapAgent::mainFrameNavigated):
Clear backend snapshots on page navigations.
Set the PageHeapAgent instrumenting agent on enable/disable.

  • inspector/InstrumentingAgents.cpp:

(WebCore::InstrumentingAgents::reset):

  • inspector/InstrumentingAgents.h:

(WebCore::InstrumentingAgents::pageHeapAgent):
(WebCore::InstrumentingAgents::setPageHeapAgent):
Active PageHeapAgent.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didCommitLoadImpl):
Inform the PageHeapAgent when the mainframe navigates.

Source/WebInspectorUI:

Invalidate HeapSnapshotProxy objects when the page navigates.
This allows us to clear our frontend data for the snapshots.
When a snapshot is invalidated, it is disabled in the UI.
This means you cannot select the snapshot or see content
views for the snapshot. If you are in a snapshot when it is
invalidated, you are taken out to the snapshot list.

  • UserInterface/Main.html:

New files.

  • UserInterface/Proxies/HeapSnapshotProxy.js:

(WebInspector.HeapSnapshotProxy):
(WebInspector.HeapSnapshotProxy.invalidateSnapshotProxies):
(WebInspector.HeapSnapshotProxy.prototype.get invalid):
(WebInspector.HeapSnapshotProxy.prototype._invalidate):
Keep track of valid snapshots, and provide a static method to invalidate them.

(WebInspector.HeapSnapshotProxy.prototype.updateForCollectionEvent):
(WebInspector.HeapSnapshotProxy.prototype.allocationBucketCounts):
(WebInspector.HeapSnapshotProxy.prototype.instancesWithClassName):
(WebInspector.HeapSnapshotProxy.prototype.update):
(WebInspector.HeapSnapshotProxy.prototype.nodeWithIdentifier):
UI should only act on valid snapshots.

  • UserInterface/Proxies/HeapSnapshotDiffProxy.js:

(WebInspector.HeapSnapshotDiffProxy.prototype.get invalid):
(WebInspector.HeapSnapshotDiffProxy.prototype.updateForCollectionEvent):
(WebInspector.HeapSnapshotDiffProxy.prototype.allocationBucketCounts):
(WebInspector.HeapSnapshotDiffProxy.prototype.instancesWithClassName):
(WebInspector.HeapSnapshotDiffProxy.prototype.update):
(WebInspector.HeapSnapshotDiffProxy.prototype.nodeWithIdentifier):
UI should only act on valid snapshots.

  • UserInterface/Proxies/HeapSnapshotWorkerProxy.js:

(WebInspector.HeapSnapshotWorkerProxy.prototype._mainResourceDidChange):
Invalidate and discard snapshots when the main frame navigates.

(WebInspector.HeapSnapshotWorkerProxy.prototype._handleMessage):
(WebInspector.HeapSnapshotWorkerProxy):

  • UserInterface/Workers/HeapSnapshot/HeapSnapshotWorker.js:

(HeapSnapshotWorker.prototype.clearSnapshots):
(HeapSnapshotWorker.prototype._handleMessage):
(HeapSnapshotWorker):
A message may come in for a snapshot before it has been cleared.
If that is the case, the object may not exist. Return an error so
that the callback can be deleted on the calling side.

  • UserInterface/Views/HeapAllocationsTimelineDataGridNodePathComponent.js:

(WebInspector.HeapAllocationsTimelineDataGridNodePathComponent.prototype.get previousSibling):
(WebInspector.HeapAllocationsTimelineDataGridNodePathComponent.prototype.get nextSibling):
(WebInspector.HeapAllocationsTimelineDataGridNodePathComponent):
Don't show invalid snapshots in page component picker.

  • UserInterface/Views/HeapAllocationsTimelineOverviewGraph.css:

(.timeline-overview-graph.heap-allocations > img.snapshot.invalid):

  • UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:

(WebInspector.HeapAllocationsTimelineDataGridNode):
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCellContent):
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCells):
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype._heapSnapshotInvalidated):
Give invalid snapshots an invalidated appearance in the snapshot list.

  • UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:

(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.layout):

  • UserInterface/Views/HeapAllocationsTimelineView.css:

(.timeline-view.heap-allocations > .data-grid tr.invalid):
(.timeline-view.heap-allocations > .data-grid:not(:focus, .force-focus) tr.selected.invalid):
Give invalid snapshots an invalidated appearance in the overview graph.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView):
(WebInspector.HeapAllocationsTimelineView.prototype.get selectionPathComponents):
(WebInspector.HeapAllocationsTimelineView.prototype.closed):
(WebInspector.HeapAllocationsTimelineView.prototype._heapSnapshotCollectionEvent.updateHeapSnapshotForEvent):
(WebInspector.HeapAllocationsTimelineView.prototype._heapSnapshotCollectionEvent):
(WebInspector.HeapAllocationsTimelineView.prototype._heapSnapshotInvalidated):
(WebInspector.HeapAllocationsTimelineView.prototype._updateCompareHeapSnapshotButton):
(WebInspector.HeapAllocationsTimelineView.prototype._dataGridNodeSelected):
Handle interactions when snapshots in the list are invalidated.

11:43 AM Changeset in webkit [202382] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

CSSComputedStyleDeclaration::length should recalculate styles if needed to provide the correct value
https://bugs.webkit.org/show_bug.cgi?id=159053
<rdar://problem/26638119>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-23
Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/css/variables/custom-property-computed-style-length-update.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::CSSComputedStyleDeclaration::length):

LayoutTests:

  • fast/css/variables/custom-property-computed-style-length-update-expected.txt: Added.
  • fast/css/variables/custom-property-computed-style-length-update.html: Added.
9:56 AM Changeset in webkit [202381] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Unreviewed, rolling out r201194.
https://bugs.webkit.org/show_bug.cgi?id=159059

Not needed for iOS (Requested by bfulgham on #webkit).

Reverted changeset:

"[OS X][WK2] Expand sandbox for new mach endpoints"
https://bugs.webkit.org/show_bug.cgi?id=157919
http://trac.webkit.org/changeset/201194

9:35 AM Changeset in webkit [202380] by wilander@apple.com
  • 9 edits in trunk/Source

Source/WebCore:
Enable window.open() for existing versions of Secret Society
https://bugs.webkit.org/show_bug.cgi?id=159049
<rdar://problem/26528349>

Reviewed by Andy Estes.

The Secret Society Hidden Mystery app has a broken version check treating iOS 10
as iOS 1 on iPads. Therefore it believes it can use window.open() in a tap
handler. We should allow the existing versions of the app to do this to not break
them.

No new tests. Tested manually in the app.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::allowPopUp):

Now checks with Settings whether it should allow a popup even though it is
not processing a user gesture.

  • page/Settings.in:

Added setting allowWindowOpenWithoutUserGesture.

  • platform/RuntimeApplicationChecks.h:
  • platform/RuntimeApplicationChecks.mm:

(WebCore::IOSApplication::isTheSecretSocietyHiddenMystery):

Added.

Source/WebKit/mac:
Enable window.open() for existing versions of Secret Society app
https://bugs.webkit.org/show_bug.cgi?id=159049
<rdar://problem/26528349>

Reviewed by Andy Estes.

The Secret Society Hidden Mystery app has a broken version check treating iOS 10
as iOS 1 on iPads. Therefore it believes it can use window.open() in a tap
handler. We should allow the existing versions of the app to do this to not break
them.

  • WebView/WebView.mm:

(shouldAllowWindowOpenWithoutUserGesture):

Added.

(shouldConvertInvalidURLsToBlank):

Changed hex number to constant DYLD_IOS_VERSION_10_0.

Source/WTF:
Enable window.open() for existing versions of Secret Society
https://bugs.webkit.org/show_bug.cgi?id=159049
<rdar://problem/26528349>

Reviewed by Andy Estes.

The Secret Society Hidden Mystery app has a broken version check treating iOS 10
as iOS 1 on iPads. Therefore it believes it can use window.open() in a tap
handler. We should allow the existing versions of the app to do this to not break
them.

  • wtf/spi/darwin/dyldSPI.h:

Added DYLD_IOS_VERSION_10_0.

9:03 AM Changeset in webkit [202379] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Only call sqlite3_initialize() when a SQLite database is actually being opened
https://bugs.webkit.org/show_bug.cgi?id=159033

Reviewed by Brady Eidson.

Only call sqlite3_initialize() when a SQLite database is actually being opened
instead of doing it unconditionally. sqlite3_initialize() was previously called
in the SQLiteDatabase constructor which gets called on WebContent process
initialization because a DatabaseTracker is constructed on initialization and
DatabaseTracker has a SQLiteDatabase data member.

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::initializeSQLiteIfNecessary):
(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::SQLiteDatabase): Deleted.

  • platform/sql/SQLiteDatabase.h:
8:10 AM Changeset in webkit [202378] by adam.bergkvist@ericsson.com
  • 2 edits in trunk/Source/WebCore

WebRTC: Align 'update ICE connection/gathering state' steps with the WebRTC 1.0 specification
https://bugs.webkit.org/show_bug.cgi?id=159054

Reviewed by Eric Carlson.

Add checks for same state and closed RTCPeerConnection in the 'update ICE connection state'
and 'update ICE gathering state' routines as described in [1].

[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#update-ice-gathering-state

No change in current behavior.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::updateIceGatheringState):
(WebCore::RTCPeerConnection::updateIceConnectionState):

8:05 AM Changeset in webkit [202377] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/Tools

[EFL] Bump gstreamer version from 1.6.3 to 1.8.0
https://bugs.webkit.org/show_bug.cgi?id=159050

Patch by Gyuyoung Kim <gyuyoung.kim@samsung.com> on 2016-06-23
Reviewed by Antonio Gomes.

To be sync with GTK port, this patch bumps gstreamer version for EFL port.

  • efl/jhbuild.modules:
  • efl/patches/gst-plugins-good-Revert-qtdemux-expose-streams-with-first-moof-for-fr.patch: Added.
  • efl/patches/gst-plugins-good-use-the-tfdt-decode-time.patch: Added.
6:52 AM Changeset in webkit [202376] by adam.bergkvist@ericsson.com
  • 12 edits
    2 adds in trunk

WebRTC: Add support for RTCPeerConnection legacy MediaStream-based API
https://bugs.webkit.org/show_bug.cgi?id=158940

Reviewed by Eric Carlson.

Source/WebCore:

Implement the legacy MediaStream-based RTCPeerConnection API as JS built-ins. The
getRemoteStreams() function and the 'addstream' event are partly implemented with native
code.

Test: fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask):
(WebCore::MediaEndpointPeerConnection::getRemoteStreams):
The getRemoteStreams() function and the 'addstream' event is backed up by native code.

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCPeerConnection.js:

(initializeRTCPeerConnection):
(getLocalStreams):
(getRemoteStreams):
(getStreamById):
(addStream):
(removeStream):
Legacy API implemented as JS built-ins.

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

Add test for RTCPeerConnection legacy MediaStream-based API.

  • fast/mediastream/RTCPeerConnection-legacy-stream-based-api-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-legacy-stream-based-api.html: Added.
  • platform/mac/TestExpectations:

Skip test for mac port (not building with WEB_RTC yet)

3:08 AM Changeset in webkit [202375] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

Update test expectations for passing accessibility tests after r202149,
and fix style issues in test expectations file.

  • platform/win/TestExpectations:
3:08 AM Changeset in webkit [202374] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.13.2

WebKitGTK+ 2.13.2

2:51 AM Changeset in webkit [202373] by Konstantin Tokarev
  • 3 edits in trunk/Tools

[jhbuild] Added libxslt module.
https://bugs.webkit.org/show_bug.cgi?id=159034

Reviewed by Michael Catanzaro.

  • efl/jhbuild.modules:
  • gtk/jhbuild.modules:
2:16 AM Changeset in webkit [202372] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.2 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.13.2.
1:50 AM Changeset in webkit [202371] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix the build with CSS Shapes disabled.

  • css/StyleBuilderConverter.h:
12:23 AM Changeset in webkit [202370] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[Soup] Clean up SocketStreamHandle soup implementation
https://bugs.webkit.org/show_bug.cgi?id=159024

Reviewed by Žan Doberšek.

Stop using a global HashMap to "acivate"/"deactivate" handles, and just take a reference of the handle and
pass the ownership to the callbacks, using a GCancellable to cancel all async operations.

  • platform/network/soup/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):
(WebCore::SocketStreamHandle::id): Deleted.

  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::connected):
(WebCore::SocketStreamHandle::connectedCallback):
(WebCore::SocketStreamHandle::readBytes):
(WebCore::SocketStreamHandle::readReadyCallback):
(WebCore::SocketStreamHandle::didFail):
(WebCore::SocketStreamHandle::platformSend):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::beginWaitingForSocketWritability):
(WebCore::SocketStreamHandle::writeReadyCallback):
(WebCore::getHandleFromId): Deleted.
(WebCore::deactivateHandle): Deleted.
(WebCore::activateHandle): Deleted.
(WebCore::SocketStreamHandle::~SocketStreamHandle): Deleted.
(WebCore::connectedCallback): Deleted.
(WebCore::readReadyCallback): Deleted.
(WebCore::writeReadyCallback): Deleted.

Jun 22, 2016:

11:44 PM Changeset in webkit [202369] by pvollan@apple.com
  • 3 edits in trunk/Tools

[Win] Use Windows api function to find top level parent.
https://bugs.webkit.org/show_bug.cgi?id=159021

Reviewed by Brent Fulgham.

Delete findTopLevelParent function, and use Win32 function GetAncestor instead.

  • DumpRenderTree/win/UIDelegate.cpp:

(UIDelegate::runModal):
(findTopLevelParent): Deleted.

  • MiniBrowser/win/PrintWebUIDelegate.cpp:

(PrintWebUIDelegate::runModal):
(findTopLevelParent): Deleted.

11:33 PM Changeset in webkit [202368] by pvollan@apple.com
  • 6 edits in trunk

[Win] The test storage/indexeddb/modern/handle-user-delete.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=158934

Reviewed by Brent Fulgham.

Source/WebKit/win:

Add a method to delete all indexed databases.

  • Interfaces/IWebDatabaseManager.idl:
  • WebDatabaseManager.cpp:

(WebDatabaseManager::QueryInterface):
(WebDatabaseManager::deleteAllIndexedDatabases):

  • WebDatabaseManager.h:

Tools:

DumpRenderTree should also delete indexed databases when clearAllDatabases() is called.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::clearAllDatabases):

11:10 PM Changeset in webkit [202367] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

REGRESSION(r201880): WebSockets based remote inspector is broken since r201880
https://bugs.webkit.org/show_bug.cgi?id=158613

Reviewed by Michael Catanzaro.

In r201880 SocketStreamHandleClient was modified to receive references instead of
pointers. WebSocketServerConnection also implements SocketStreamHandleClient but since it's doesn't use
override, it was unnoticed and not updated, so we ended up using the default empty implementation instead of
the WebSocketServerConnection one.

  • UIProcess/InspectorServer/WebSocketServerConnection.cpp:

(WebKit::WebSocketServerConnection::WebSocketServerConnection):
(WebKit::WebSocketServerConnection::setSocketHandle):
(WebKit::WebSocketServerConnection::shutdownNow):
(WebKit::WebSocketServerConnection::didCloseSocketStream):
(WebKit::WebSocketServerConnection::didReceiveSocketStreamData):
(WebKit::WebSocketServerConnection::didUpdateBufferedAmount):
(WebKit::WebSocketServerConnection::didFailSocketStream): Deleted.

  • UIProcess/InspectorServer/WebSocketServerConnection.h:
10:46 PM Changeset in webkit [202366] by sbarati@apple.com
  • 2 edits in trunk/Tools

run-javascriptcore-tests should have some environment variables for commonly used settings
https://bugs.webkit.org/show_bug.cgi?id=159047

Reviewed by Keith Miller.

This patch adds three environment variables that run-javascriptcore-tests
consults:

  • RUN_JAVASCRIPTCORE_TESTS_TESTAPI can be set to 'true' or 'false'. It determines if we should run the api tests or not.
  • RUN_JAVASCRIPTCORE_TESTS_BUILD can be set to 'true' or 'false'. It determines if we will perform a build or not before running the tests. to set the default should-build setting.
  • RUN_JAVASCRIPTCORE_TESTS_EXTRA_TESTS can be set to a directory or to a yaml file. If set, we will run the extra tests it refers to.

All the values in these environment variables will be overridden if an
option is explicitly passed in. For example, the following will run
the api tests:
RUN_JAVASCRIPTCORE_TESTS_TESTAPI=false run-javascriptcore-tests --testapi

  • Scripts/run-javascriptcore-tests:
9:01 PM Changeset in webkit [202365] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit2

[iOS][WK2] Expand sandbox to read voice services preferences
https://bugs.webkit.org/show_bug.cgi?id=159046
<rdar://problem/26926722>

Reviewed by Alexey Proskuryakov.

Expand the sandbox to permit read-only access to voice services preferences.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
8:24 PM Changeset in webkit [202364] by sbarati@apple.com
  • 9 edits
    2 adds in trunk

TypeProfiler and TypeProfilerLog don't play nicely with the concurrent JIT
https://bugs.webkit.org/show_bug.cgi?id=159037
<rdar://problem/26935349>

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

The primary focus of this patch is to make the concurrent
baseline JIT work with the type profiler. We were clearing
the type profiler log on the background baseline compiler
thread which lead to bad things happening. This patch fixes
this by processing the log before we launch the compile on
a background thread.

Secondly, I audited the type profiler code inside the DFG,
and found that we were doing some racy things. I haven't
seen any crashes because of these things, but it is possible
that they exist. We were grabbing a RefPtr to a TypeSet,
even though TypeSet was RefCounted and not ThreadSafeRefCounted.
This patch makes TypeSet ThreadSafeRefCounted. We were
also copying a StructureSet while the execution thread could
be augmenting the StructureSet. This patch puts changes to
TypeSet's StructureSet behind a ConcurrentJITLock.

I've also added two more large running tests that run with the
type profiler enabled. These are here just to catch any major bugs
in the type profiler implementation.

  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):
(JSC::JIT::privateCompile):
(JSC::JIT::privateCompileExceptionHandlers):
(JSC::JIT::doMainThreadPreparationBeforeCompile):
(JSC::JIT::frameRegisterCountFor):

  • jit/JIT.h:

(JSC::JIT::compile):

  • jit/JITWorklist.cpp:

(JSC::JITWorklist::Plan::Plan):
(JSC::JITWorklist::Plan::compileInThread):

  • runtime/TypeSet.cpp:

(JSC::TypeSet::addTypeInformation):
(JSC::TypeSet::invalidateCache):

  • runtime/TypeSet.h:

(JSC::TypeSet::create):
(JSC::TypeSet::isEmpty):
(JSC::TypeSet::seenTypes):
(JSC::TypeSet::structureSet):

  • tests/typeProfiler/deltablue-for-of.js: Added.
  • tests/typeProfiler/getter-richards.js: Added.

Tools:

Run typeProfiler.yaml tests under an additional CJIT enabled mode.

  • Scripts/run-jsc-stress-tests:
6:39 PM Changeset in webkit [202363] by keith_miller@apple.com
  • 20 edits
    1 add in trunk/Source/JavaScriptCore

We should have a DFG intrinsic that checks if a value is a TypedArrayView
https://bugs.webkit.org/show_bug.cgi?id=159048

Reviewed by Saam Barati.

This patch adds a new DFG Intrinsic that checks if a value is a TypedArrayView.
The intrinsic, IsTypedArrayView, works in the same way that the other Is<insert-type>
DFG nodes work. Additionally, a new builtin function isTypedArrayView has been added.
These changes are needed to fix regressions in %TypedArray%.prototype.subarray.

  • builtins/BuiltinNames.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileIsTypedArrayView):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileIsTypedArrayView):
(JSC::FTL::DFG::LowerDFGToB3::isTypedArrayView):

  • runtime/Intrinsic.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::typedArrayViewPrivateFuncIsTypedArrayView):

  • runtime/JSTypedArrayViewPrototype.h:
  • tests/stress/istypedarrayview-intrinsic.js: Added.

(makeFn):
(typedArrays.forEach):
(let.test):
(test):

6:13 PM Changeset in webkit [202362] by aakash_jain@apple.com
  • 88 edits in trunk/Tools

Fix style issues in webkitpy
https://bugs.webkit.org/show_bug.cgi?id=159019

Reviewed by Daniel Bates.

Fixed the formatting issues as reported by check-webkit-style in webkitpy.
There is no functionality change.
Only affected file names retained below for brevity.

  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver.py:
  • Scripts/webkitpy/benchmark_runner/browser_driver/browser_driver_factory.py:
  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:
  • Scripts/webkitpy/benchmark_runner/utils.py:
  • Scripts/webkitpy/common/checkout/changelog.py:
  • Scripts/webkitpy/common/checkout/changelog_unittest.py:
  • Scripts/webkitpy/common/checkout/checkout.py:
  • Scripts/webkitpy/common/checkout/checkout_mock.py:
  • Scripts/webkitpy/common/checkout/checkout_unittest.py:
  • Scripts/webkitpy/common/checkout/commitinfo.py:
  • Scripts/webkitpy/common/checkout/commitinfo_unittest.py:
  • Scripts/webkitpy/common/checkout/diff_parser_unittest.py:
  • Scripts/webkitpy/common/checkout/scm/scm.py:
  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
  • Scripts/webkitpy/common/config/committers_unittest.py:
  • Scripts/webkitpy/common/config/irc.py:
  • Scripts/webkitpy/common/config/ports.py:
  • Scripts/webkitpy/common/config/ports_unittest.py:
  • Scripts/webkitpy/common/config/urls.py:
  • Scripts/webkitpy/common/host_mock.py:
  • Scripts/webkitpy/common/net/bugzilla/bugzilla.py:
  • Scripts/webkitpy/common/net/bugzilla/bugzilla_unittest.py:
  • Scripts/webkitpy/common/net/buildbot/buildbot.py:
  • Scripts/webkitpy/common/net/buildbot/buildbot_mock.py:
  • Scripts/webkitpy/common/net/buildbot/buildbot_unittest.py:
  • Scripts/webkitpy/common/net/credentials_unittest.py:
  • Scripts/webkitpy/common/net/irc/ircproxy_unittest.py:
  • Scripts/webkitpy/common/net/networktransaction_unittest.py:
  • Scripts/webkitpy/common/net/statusserver.py:
  • Scripts/webkitpy/common/system/autoinstall.py:
  • Scripts/webkitpy/common/system/crashlogs_unittest.py:
  • Scripts/webkitpy/common/system/executive.py:
  • Scripts/webkitpy/common/system/executive_mock.py:
  • Scripts/webkitpy/common/system/executive_unittest.py:
  • Scripts/webkitpy/common/system/filesystem_mock.py:
  • Scripts/webkitpy/common/system/filesystem_unittest.py:
  • Scripts/webkitpy/common/system/logutils_unittest.py:
  • Scripts/webkitpy/common/system/path.py:
  • Scripts/webkitpy/common/system/path_unittest.py:
  • Scripts/webkitpy/common/system/platforminfo.py:
  • Scripts/webkitpy/common/system/user.py:
  • Scripts/webkitpy/common/system/user_unittest.py:
  • Scripts/webkitpy/common/system/workspace_unittest.py:
  • Scripts/webkitpy/common/thread/threadedmessagequeue.py:
  • Scripts/webkitpy/common/thread/threadedmessagequeue_unittest.py:
  • Scripts/webkitpy/layout_tests/controllers/layout_test_finder.py:
  • Scripts/webkitpy/layout_tests/controllers/manager.py:
  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:
  • Scripts/webkitpy/layout_tests/layout_package/json_results_generator.py:
  • Scripts/webkitpy/layout_tests/lint_test_expectations_unittest.py:
  • Scripts/webkitpy/layout_tests/models/test_configuration.py:
  • Scripts/webkitpy/layout_tests/models/test_expectations.py:
  • Scripts/webkitpy/layout_tests/models/test_failures.py:
  • Scripts/webkitpy/layout_tests/models/test_run_results.py:
  • Scripts/webkitpy/layout_tests/run_webkit_tests_integrationtest.py:
  • Scripts/webkitpy/layout_tests/views/metered_stream_unittest.py:
  • Scripts/webkitpy/layout_tests/views/printing.py:
  • Scripts/webkitpy/performance_tests/perftestsrunner.py:
  • Scripts/webkitpy/performance_tests/perftestsrunner_integrationtest.py:
  • Scripts/webkitpy/port/base_unittest.py:
  • Scripts/webkitpy/port/driver.py:
  • Scripts/webkitpy/port/driver_unittest.py:
  • Scripts/webkitpy/port/factory.py:
  • Scripts/webkitpy/port/gtk.py:
  • Scripts/webkitpy/port/server_process_unittest.py:
  • Scripts/webkitpy/port/test.py:
  • Scripts/webkitpy/port/win.py:
  • Scripts/webkitpy/style/checker.py:
  • Scripts/webkitpy/style/checkers/common_unittest.py:
  • Scripts/webkitpy/style/checkers/cpp.py:
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:
  • Scripts/webkitpy/style/checkers/js.py:
  • Scripts/webkitpy/style/checkers/jsonchecker.py:
  • Scripts/webkitpy/style/checkers/png.py:
  • Scripts/webkitpy/style/checkers/text.py:
  • Scripts/webkitpy/style/checkers/text_unittest.py:
  • Scripts/webkitpy/style/error_handlers.py:
  • Scripts/webkitpy/style/filter.py:
  • Scripts/webkitpy/style/filter_unittest.py:
  • Scripts/webkitpy/style/optparser.py:
  • Scripts/webkitpy/style/optparser_unittest.py:
  • Scripts/webkitpy/test/main.py:
  • Scripts/webkitpy/w3c/test_converter.py:
  • Scripts/webkitpy/w3c/test_converter_unittest.py:
  • Scripts/webkitpy/w3c/test_importer_unittest.py:
  • Scripts/webkitpy/xcode/simulator.py:
5:19 PM Changeset in webkit [202361] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Add SPI to allow creating a WKCertificateInfoRef from a SecTrustRef
https://bugs.webkit.org/show_bug.cgi?id=159025

Patch by Sam Weinig <sam@webkit.org> on 2016-06-22
Reviewed by Tim Horton.

  • Shared/API/c/mac/WKCertificateInfoMac.h:
  • Shared/API/c/mac/WKCertificateInfoMac.mm:

(WKCertificateInfoCreateWithServerTrust):

5:14 PM Changeset in webkit [202360] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Test expectations gardening for rdar://problem/26960385

  • platform/mac/TestExpectations:
4:46 PM Changeset in webkit [202359] by beidson@apple.com
  • 12 edits
    1 add in trunk

DatabaseProcess doesn't handle WebProcesses going away uncleanly.
https://bugs.webkit.org/show_bug.cgi?id=158894

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Covered by additions to existing API test).

  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::registerDatabaseConnection):
(WebCore::IDBServer::IDBConnectionToClient::unregisterDatabaseConnection):
(WebCore::IDBServer::IDBConnectionToClient::connectionToClientClosed):

  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::IDBServer::unregisterConnection): Call connectionToClientClosed() on

the connection, which cleans up after it in the server.

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::UniqueIDBDatabaseConnection):
(WebCore::IDBServer::UniqueIDBDatabaseConnection::~UniqueIDBDatabaseConnection):

Source/WebKit2:

  • DatabaseProcess/DatabaseToWebProcessConnection.cpp:

(WebKit::DatabaseToWebProcessConnection::didClose):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess): Actually unregister this connection

from the IDBServer so it can clean up.

(WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess-2.html:
  • TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess-3.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm:
4:35 PM Changeset in webkit [202358] by commit-queue@webkit.org
  • 21 edits
    12 adds in trunk

AX: Add support for CSS4 :focus-within pseudo
https://bugs.webkit.org/show_bug.cgi?id=140144

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-22
Reviewed by Antti Koivisto.

Source/WebCore:

Tests: fast/css/pseudo-focus-within-basics.html

fast/css/pseudo-focus-within-inside-shadow-dom.html
fast/css/pseudo-focus-within-style-sharing-1.html
fast/css/pseudo-focus-within-style-sharing-2.html
fast/selectors/focus-within-style-update.html

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText):

  • css/CSSSelector.h:
  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):

  • css/SelectorPseudoClassAndCompatibilityElementMap.in:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasFocusWithin):

  • dom/ContainerNode.cpp:

(WebCore::destroyRenderTreeIfNeeded):

  • dom/Element.cpp:

(WebCore::Element::~Element):
(WebCore::Element::setFocus):
(WebCore::Element::unregisterNamedFlowContentElement):
(WebCore::Element::setIsNamedFlowContentElement):
(WebCore::Element::clearIsNamedFlowContentElement):
(WebCore::Element::setStyleAffectedByFocusWithin):
(WebCore::Element::rareDataStyleAffectedByFocusWithin):
(WebCore::Element::rareDataIsNamedFlowContentElement):

  • dom/Element.h:

(WebCore::Element::hasFocusWithin):
(WebCore::Element::styleAffectedByFocusWithin):
(WebCore::Element::isNamedFlowContentElement):
(WebCore::Element::setHasFocusWithin):

  • dom/ElementRareData.h:

(WebCore::ElementRareData::styleAffectedByFocusWithin):
(WebCore::ElementRareData::setStyleAffectedByFocusWithin):
(WebCore::ElementRareData::isNamedFlowContentElement):
(WebCore::ElementRareData::setIsNamedFlowContentElement):
(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::resetComputedStyle):

  • dom/Node.h:

(WebCore::Node::flagHasFocusWithin):
(WebCore::Node::isNamedFlowContentNode): Deleted.
(WebCore::Node::setIsNamedFlowContentNode): Deleted.
(WebCore::Node::clearIsNamedFlowContentNode): Deleted.

  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::clearContentElements):
(WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
(WebCore::RenderNamedFlowThread::unregisterNamedFlowContentElement):
(WebCore::nextNodeInsideContentElement):

  • style/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::updateElementRenderer):

  • style/StyleRelations.cpp:

(WebCore::Style::commitRelationsToRenderStyle):
(WebCore::Style::commitRelations):

  • style/StyleRelations.h:
  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement):

LayoutTests:

  • fast/css/css-selector-text-expected.txt:
  • fast/css/css-selector-text.html:
  • fast/css/css-set-selector-text-expected.txt:
  • fast/css/css-set-selector-text.html:
  • fast/css/pseudo-focus-within-basics-expected.html: Added.
  • fast/css/pseudo-focus-within-basics.html: Added.
  • fast/css/pseudo-focus-within-inside-shadow-dom-expected.html: Added.
  • fast/css/pseudo-focus-within-inside-shadow-dom.html: Added.
  • fast/css/pseudo-focus-within-style-sharing-1-expected.html: Added.
  • fast/css/pseudo-focus-within-style-sharing-1.html: Added.
  • fast/css/pseudo-focus-within-style-sharing-2-expected.html: Added.
  • fast/css/pseudo-focus-within-style-sharing-2.html: Added.
  • fast/selectors/focus-within-style-update-expected.txt: Added.
  • fast/selectors/focus-within-style-update.html: Added.
4:31 PM Changeset in webkit [202357] by Chris Dumez
  • 5 edits in trunk/Source/WebKit2

Stop using PassRefPtr in ShareableResource
https://bugs.webkit.org/show_bug.cgi?id=159043

Reviewed by Alex Christensen.

Stop using PassRefPtr in ShareableResource.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::store):

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):

  • Shared/ShareableResource.cpp:

(WebKit::shareableResourceDeallocate):
(WebKit::ShareableResource::wrapInSharedBuffer):
(WebKit::ShareableResource::Handle::tryWrapInSharedBuffer):
(WebKit::ShareableResource::create):
(WebKit::ShareableResource::map):
(WebKit::ShareableResource::ShareableResource):

  • Shared/ShareableResource.h:
4:23 PM Changeset in webkit [202356] by oliver@apple.com
  • 3 edits in trunk/Source/WebCore

Integrate WebKit's CFURLConnection with App Transport Security
https://bugs.webkit.org/show_bug.cgi?id=159039
<rdar://problem/26953685>

Reviewed by Alex Christensen.

Pass additional options to NSURLConnect initialiser to identify that
this connection is for WebKit content loading.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::createNSURLConnection):

3:56 PM Changeset in webkit [202355] by jonlee@apple.com
  • 2 edits in trunk/Tools

Update animometer.plan
https://bugs.webkit.org/show_bug.cgi?id=159012

Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/benchmark_runner/data/plans/animometer.plan: Update to r202318.
3:52 PM Changeset in webkit [202354] by dino@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION: Double tap to zoom does not work on yahoo finance
https://bugs.webkit.org/show_bug.cgi?id=158886
<rdar://problem/24917760>

Reviewed by Simon Fraser.

Source/WebKit2:

We shouldn't enable fast click on pages that have
had to shrink to fit. In other words, we should enable
double-tap-to-zoom if the page has already zoomed.

Test: fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _allowsDoubleTapGestures]):

LayoutTests:

  • fast/events/ios/viewport-shrink-to-fit-allows-double-tap-expected.txt: Added.
  • fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html: Added.
3:19 PM Changeset in webkit [202353] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: don't start auto capturing if the Inspector window is not visible
https://bugs.webkit.org/show_bug.cgi?id=159014

Reviewed by Joseph Pecoraro.
<rdar://problem/26931269>

Followup, add a missing super.closed() call mentioned in review comments.

  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineTabContentView.prototype.closed):

3:05 PM Changeset in webkit [202352] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: don't start auto capturing if the Inspector window is not visible
https://bugs.webkit.org/show_bug.cgi?id=159014
<rdar://problem/26931269>

Reviewed by Joseph Pecoraro.

TimelineTabContentView should not tell the timeline manager to enable
auto-capturing unless the Web Inspector UI is visible. If it is preloaded
but not shown to the user, then auto-capturing may inadvertently disable
the debugger, causing it to miss debugger statements and not bring the
inspector to front.

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.set autoCaptureOnPageLoad):
Bail out if nothing changed. Coerce to a boolean since the backend requires a boolean.

  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineTabContentView): Listen for UI visibility changes.
(WebInspector.TimelineTabContentView.prototype.shown):
Enable auto-capturing if the UI is visible.

(WebInspector.TimelineTabContentView.prototype.closed): Added.
Remove listeners on global objects so this tab doesn't leak.

(WebInspector.TimelineTabContentView.prototype._inspectorVisibilityChanged):
Update the auto-capturing setting if the UI became visible or not visible.

2:41 PM Changeset in webkit [202351] by BJ Burg
  • 4 edits in trunk/Source/WebKit2

Web Automation: Automation.inspectBrowsingContext should have an option to enable timeline auto-capturing
https://bugs.webkit.org/show_bug.cgi?id=159004
<rdar://problem/26931269>

Reviewed by Joseph Pecoraro.

Automation.inspectBrowsingContext was added to make it easier to hit breakpoints inside of
code evaluated using Automation.evaluateJavaScriptFunction. I recently changed the behavior
of this command to automatically start profiling the page as soon as the inspector attached
so that a full timeline recording could be obtained. However, starting a timeline recording
turns off the debugger, so this command is not so useful for debugging right now.

Add a new option, enableAutoCapturing, to the inspectBrowsingContext command. Don't toggle
profiling automatically unless this optional flag is present and set to true.

  • UIProcess/Automation/Automation.json:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::inspectBrowsingContext):
(WebKit::WebAutomationSession::inspectorFrontendLoaded): Deleted.

  • UIProcess/Automation/WebAutomationSession.h:
2:17 PM Changeset in webkit [202350] by jeremyj-wk@apple.com
  • 8 edits in trunk/Source/WebCore

Adopt commitPriority to get rid of the 2 AVPL solution for PiP
https://bugs.webkit.org/show_bug.cgi?id=158949
rdar://problem/26867866

Reviewed by Simon Fraser.

No new tests because there is no behavior change. This reverts changes from
https://bugs.webkit.org/show_bug.cgi?id=158148 and instead uses -[CAContext commitPriority:]
to prevent flicker when moving a layer between contexts.
commitPriority allows the layer to be added to the destination context before it is
removed from the source context.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: remove m_secondaryVideoLayer.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: ditto

(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity): ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds): ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity): ditto.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: ditto

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): ditto

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: ditto

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers):ditto

  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.h: ditto
  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm: ditto

(WebCore::VideoFullscreenLayerManager::setVideoLayer): ditto
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenLayer): ditto and adopt commitPriority.
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenFrame): ditto
(WebCore::VideoFullscreenLayerManager::setVideoLayers): Deleted.
(WebCore::VideoFullscreenLayerManager::didDestroyVideoLayer): remove m_secondaryVideoLayer.

  • platform/spi/cocoa/QuartzCoreSPI.h: Add commitPriority.
2:06 PM Changeset in webkit [202349] by mmaxfield@apple.com
  • 68 edits
    20 copies
    22 adds
    1 delete in trunk/LayoutTests

Test gardening for css3/line-break-language-sensitive
https://bugs.webkit.org/show_bug.cgi?id=159017

Unreviewed.

Some reftests had content which ended up outside of the viewport. This patch
splits that extra content out into separate tests.

In addition, this test migrates these tests to using a web font, so the results
of this test are not sensitive to platform-specific font fallback.

Because of the migration to the web font, css3/line-break-language-sensitive is
no longer needed.

  • TestExpectations:
  • css3/line-break-language-sensitive/line-break-auto-centered-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-centered.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-half-kana-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-half-kana.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-hyphens.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-inseparables-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-inseparables.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-iteration-marks-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-iteration-marks.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-postfixes.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-prefixes-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-prefixes.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-sound-marks-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-auto-sound-marks.html: Removed.
  • css3/line-break-language-sensitive/line-break-loose-centered.html: Removed.
  • css3/line-break-language-sensitive/line-break-loose-half-kana-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-loose-half-kana.html: Removed.
  • css3/line-break-language-sensitive/line-break-loose-hyphens.html: Removed.
  • css3/line-break-language-sensitive/line-break-loose-inseparables-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-loose-inseparables.html: Removed.
  • css3/line-break-language-sensitive/line-break-loose-iteration-marks.html: Removed.
  • css3/line-break-language-sensitive/line-break-loose-postfixes.html: Removed.
  • css3/line-break-language-sensitive/line-break-loose-prefixes-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-loose-prefixes.html: Removed.
  • css3/line-break-language-sensitive/line-break-loose-sound-marks-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-loose-sound-marks.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-centered-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-centered.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-half-kana-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-half-kana.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-hyphens-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-hyphens.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-inseparables-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-inseparables.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-iteration-marks.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-postfixes.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-prefixes-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-prefixes.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-sound-marks-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-normal-sound-marks.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-centered-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-centered.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-half-kana-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-half-kana.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-hyphens.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-inseparables-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-inseparables.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-iteration-marks-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-iteration-marks.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-postfixes.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-prefixes-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-prefixes.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-sound-marks-expected.html: Removed.
  • css3/line-break-language-sensitive/line-break-strict-sound-marks.html: Removed.
  • css3/line-break/line-break-auto-centered-2-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-strict-hyphens-expected.html.
  • css3/line-break/line-break-auto-centered-2.html: Added.
  • css3/line-break/line-break-auto-centered-expected.html:
  • css3/line-break/line-break-auto-centered.html:
  • css3/line-break/line-break-auto-half-kana-2-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
  • css3/line-break/line-break-auto-half-kana-2.html: Added.
  • css3/line-break/line-break-auto-half-kana-3-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
  • css3/line-break/line-break-auto-half-kana-3.html: Added.
  • css3/line-break/line-break-auto-half-kana-4-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-strict-postfixes-expected.html.
  • css3/line-break/line-break-auto-half-kana-4.html: Added.
  • css3/line-break/line-break-auto-half-kana-5-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-auto-postfixes-expected.html.
  • css3/line-break/line-break-auto-half-kana-5.html: Added.
  • css3/line-break/line-break-auto-half-kana-expected.html:
  • css3/line-break/line-break-auto-half-kana.html:
  • css3/line-break/line-break-auto-hyphens-expected.html:
  • css3/line-break/line-break-auto-hyphens.html:
  • css3/line-break/line-break-auto-inseparables-expected.html:
  • css3/line-break/line-break-auto-inseparables.html:
  • css3/line-break/line-break-auto-iteration-marks-expected.html:
  • css3/line-break/line-break-auto-iteration-marks.html:
  • css3/line-break/line-break-auto-postfixes-expected.html:
  • css3/line-break/line-break-auto-postfixes.html:
  • css3/line-break/line-break-auto-prefixes-expected.html:
  • css3/line-break/line-break-auto-prefixes.html:
  • css3/line-break/line-break-auto-sound-marks-expected.html:
  • css3/line-break/line-break-auto-sound-marks.html:
  • css3/line-break/line-break-loose-centered-2-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-loose-hyphens-expected.html.
  • css3/line-break/line-break-loose-centered-2.html: Added.
  • css3/line-break/line-break-loose-centered-expected.html:
  • css3/line-break/line-break-loose-centered.html:
  • css3/line-break/line-break-loose-half-kana-2-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
  • css3/line-break/line-break-loose-half-kana-2.html: Added.
  • css3/line-break/line-break-loose-half-kana-3-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
  • css3/line-break/line-break-loose-half-kana-3.html: Added.
  • css3/line-break/line-break-loose-half-kana-4-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-loose-centered-expected.html.
  • css3/line-break/line-break-loose-half-kana-4.html: Added.
  • css3/line-break/line-break-loose-half-kana-5-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-loose-iteration-marks-expected.html.
  • css3/line-break/line-break-loose-half-kana-5.html: Added.
  • css3/line-break/line-break-loose-half-kana-expected.html:
  • css3/line-break/line-break-loose-half-kana.html:
  • css3/line-break/line-break-loose-hyphens-expected.html:
  • css3/line-break/line-break-loose-hyphens.html:
  • css3/line-break/line-break-loose-inseparables-expected.html:
  • css3/line-break/line-break-loose-inseparables.html:
  • css3/line-break/line-break-loose-iteration-marks-expected.html:
  • css3/line-break/line-break-loose-iteration-marks.html:
  • css3/line-break/line-break-loose-postfixes-expected.html:
  • css3/line-break/line-break-loose-postfixes.html:
  • css3/line-break/line-break-loose-prefixes-expected.html:
  • css3/line-break/line-break-loose-prefixes.html:
  • css3/line-break/line-break-loose-sound-marks-expected.html:
  • css3/line-break/line-break-loose-sound-marks.html:
  • css3/line-break/line-break-normal-centered-2-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-normal-iteration-marks-expected.html.
  • css3/line-break/line-break-normal-centered-2.html: Added.
  • css3/line-break/line-break-normal-centered-expected.html:
  • css3/line-break/line-break-normal-centered.html:
  • css3/line-break/line-break-normal-half-kana-2-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
  • css3/line-break/line-break-normal-half-kana-2.html: Added.
  • css3/line-break/line-break-normal-half-kana-3-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
  • css3/line-break/line-break-normal-half-kana-3.html: Added.
  • css3/line-break/line-break-normal-half-kana-4-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-loose-postfixes-expected.html.
  • css3/line-break/line-break-normal-half-kana-4.html: Added.
  • css3/line-break/line-break-normal-half-kana-5-expected.html: Copied from LayoutTests/css3/line-break/line-break-loose-postfixes-expected.html.
  • css3/line-break/line-break-normal-half-kana-5.html: Added.
  • css3/line-break/line-break-normal-half-kana-expected.html:
  • css3/line-break/line-break-normal-half-kana.html:
  • css3/line-break/line-break-normal-hyphens-expected.html:
  • css3/line-break/line-break-normal-hyphens.html:
  • css3/line-break/line-break-normal-inseparables-expected.html:
  • css3/line-break/line-break-normal-inseparables.html:
  • css3/line-break/line-break-normal-iteration-marks-expected.html:
  • css3/line-break/line-break-normal-iteration-marks.html:
  • css3/line-break/line-break-normal-postfixes-expected.html:
  • css3/line-break/line-break-normal-postfixes.html:
  • css3/line-break/line-break-normal-prefixes-expected.html:
  • css3/line-break/line-break-normal-prefixes.html:
  • css3/line-break/line-break-normal-sound-marks-expected.html:
  • css3/line-break/line-break-normal-sound-marks.html:
  • css3/line-break/line-break-strict-centered-2-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-auto-hyphens-expected.html.
  • css3/line-break/line-break-strict-centered-2.html: Added.
  • css3/line-break/line-break-strict-centered-expected.html:
  • css3/line-break/line-break-strict-centered.html:
  • css3/line-break/line-break-strict-half-kana-2-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-normal-postfixes-expected.html.
  • css3/line-break/line-break-strict-half-kana-2.html: Added.
  • css3/line-break/line-break-strict-half-kana-3-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-strict-postfixes-expected.html.
  • css3/line-break/line-break-strict-half-kana-3.html: Added.
  • css3/line-break/line-break-strict-half-kana-4-expected.html: Copied from LayoutTests/css3/line-break-language-sensitive/line-break-normal-postfixes-expected.html.
  • css3/line-break/line-break-strict-half-kana-4.html: Added.
  • css3/line-break/line-break-strict-half-kana-5-expected.html: Renamed from LayoutTests/css3/line-break-language-sensitive/line-break-normal-postfixes-expected.html.
  • css3/line-break/line-break-strict-half-kana-5.html: Added.
  • css3/line-break/line-break-strict-half-kana-expected.html:
  • css3/line-break/line-break-strict-half-kana.html:
  • css3/line-break/line-break-strict-hyphens-expected.html:
  • css3/line-break/line-break-strict-hyphens.html:
  • css3/line-break/line-break-strict-inseparables-expected.html:
  • css3/line-break/line-break-strict-inseparables.html:
  • css3/line-break/line-break-strict-iteration-marks-expected.html:
  • css3/line-break/line-break-strict-iteration-marks.html:
  • css3/line-break/line-break-strict-postfixes-expected.html:
  • css3/line-break/line-break-strict-postfixes.html:
  • css3/line-break/line-break-strict-prefixes-expected.html:
  • css3/line-break/line-break-strict-prefixes.html:
  • css3/line-break/line-break-strict-sound-marks-expected.html:
  • css3/line-break/line-break-strict-sound-marks.html:
  • css3/line-break/resources/AllAhem.svg: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
1:44 PM Changeset in webkit [202348] by Simon Fraser
  • 6 edits
    2 adds in trunk

REGRESSION (r201629): Weird button glitching on github.com
https://bugs.webkit.org/show_bug.cgi?id=159031
rdar://problem/26880332

Reviewed by Tim Horton.

Source/WebCore:

r201629 changed the logic slightly when creating an image buffer for a scaled context;
it set the buffer context's scale to the scale in the source context, but this failed
to take into account the rounding up of the buffer size, which the old code did.

Fix by reverting to the old behavior.

Since buffer sizes can only be integral, changed compatibleBufferSize() to return
an IntSize.

Test: fast/backgrounds/scaled-gradient-background.html

  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer):
(WebCore::ImageBuffer::compatibleBufferSize):

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/IntRect.h:

(WebCore::IntRect::area):

  • platform/graphics/IntSize.h:

(WebCore::IntSize::area): Make this return an unsigned.

LayoutTests:

  • fast/backgrounds/scaled-gradient-background-expected.html: Added.
  • fast/backgrounds/scaled-gradient-background.html: Added.
1:39 PM Changeset in webkit [202347] by timothy_horton@apple.com
  • 10 edits in trunk/Source/WebKit2

Mail snapshot has black webview in multitasking switcher
https://bugs.webkit.org/show_bug.cgi?id=159036
<rdar://problem/25972938>

Reviewed by Simon Fraser.

There is a window of time between an application going into the background
and SpringBoard's snapshotting mechanism completing where it is possible
(though difficult, timing-wise) for RemoteLayerBackingStoreCollection to
make still-needed surfaces volatile (and, even worse, for them to get emptied).

UIKit suggested instead waiting for the window context teardown notification,
which does indeed seem to fire after the snapshotting is complete.
This may have the convenient side effect of making the volatility timer
repeat fewer times in general, because it is now started closer to the
last time that the surfaces will be in-use.

  • UIProcess/ApplicationStateTracker.h:
  • UIProcess/ApplicationStateTracker.mm:

(WebKit::ApplicationStateTracker::ApplicationStateTracker):
(WebKit::ApplicationStateTracker::~ApplicationStateTracker):
(WebKit::ApplicationStateTracker::applicationDidFinishSnapshottingAfterEnteringBackground):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didMoveToWindow]):
(-[WKContentView _applicationDidFinishSnapshottingAfterEnteringBackground]):

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView didMoveToWindow]):
(-[WKPDFView _applicationDidFinishSnapshottingAfterEnteringBackground]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationDidFinishSnapshottingAfterEnteringBackground):

1:38 PM Changeset in webkit [202346] by andersca@apple.com
  • 4 edits
    2 adds
    1 delete in trunk/Source/WebKit

Move the WebKitLegacy Apple Pay code to the open source repository
https://bugs.webkit.org/show_bug.cgi?id=159035

Reviewed by Tim Horton.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • WebCoreSupport/WebPaymentCoordinatorClient.h: Added.
  • WebCoreSupport/WebPaymentCoordinatorClient.mm: Added.

(WebPaymentCoordinatorClient::WebPaymentCoordinatorClient):
(WebPaymentCoordinatorClient::~WebPaymentCoordinatorClient):
(WebPaymentCoordinatorClient::supportsVersion):
(WebPaymentCoordinatorClient::canMakePayments):
(WebPaymentCoordinatorClient::canMakePaymentsWithActiveCard):
(WebPaymentCoordinatorClient::showPaymentUI):
(WebPaymentCoordinatorClient::completeMerchantValidation):
(WebPaymentCoordinatorClient::completeShippingMethodSelection):
(WebPaymentCoordinatorClient::completeShippingContactSelection):
(WebPaymentCoordinatorClient::completePaymentMethodSelection):
(WebPaymentCoordinatorClient::completePaymentSession):
(WebPaymentCoordinatorClient::abortPaymentSession):
(WebPaymentCoordinatorClient::mainFrameDestroyed):

  • WebKitAdditions.mm: Removed.
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

1:00 PM Changeset in webkit [202345] by andersca@apple.com
  • 7 edits in trunk/Source/WebCore

Inline the last of the Apple Pay WebCore code
https://bugs.webkit.org/show_bug.cgi?id=159032

Reviewed by Tim Horton.

  • loader/EmptyClients.cpp:

(WebCore::fillWithEmptyClients):

  • page/MainFrame.cpp:

(WebCore::MainFrame::MainFrame):

  • page/MainFrame.h:
  • page/PageConfiguration.h:
  • platform/cocoa/ThemeCocoa.mm:

(WebCore::passKitBundle):
(WebCore::loadPassKitPDFPage):
(WebCore::applePayButtonLogoBlack):
(WebCore::applePayButtonLogoWhite):
(WebCore::drawApplePayButton):
(WebCore::ThemeCocoa::drawNamedImage):

12:36 PM Changeset in webkit [202344] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Test expectation gardening for rdar://problem/26950065

  • platform/mac/TestExpectations:
12:25 PM Changeset in webkit [202343] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Test expectation gardening.

  • platform/mac/TestExpectations:
12:10 PM Changeset in webkit [202342] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Exception is not thrown when shipping method is an invalid amount
https://bugs.webkit.org/show_bug.cgi?id=159030
rdar://problem/26700413

Reviewed by Tim Horton.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::createShippingMethods):
Bail if createShippingMethod returns Nullopt.

(WebCore::createPaymentRequest):
Bail if createShippingMethods returns Nullopt.

11:43 AM Changeset in webkit [202341] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Exception is not thrown when shipping method is an invalid amount
https://bugs.webkit.org/show_bug.cgi?id=159029
rdar://problem/26700413

Reviewed by Tim Horton.

  • Modules/applepay/PaymentRequest.h:

Change ShippingMethod::amount to be a signed 64-bit integer.

  • Modules/applepay/PaymentRequestValidator.cpp:

(WebCore::PaymentRequestValidator::validate):
Call validateShippingMethods.

(WebCore::PaymentRequestValidator::validateShippingMethods):
Validate all the shipping methods.

(WebCore::PaymentRequestValidator::validateShippingMethod):
Check that the amount is >= 0.

  • Modules/applepay/PaymentRequestValidator.h:

Add new members.

11:20 AM Changeset in webkit [202340] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

W3C test importer should generate files to ignore by WebKit SCM
https://bugs.webkit.org/show_bug.cgi?id=142743

Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2016-06-22
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • resources/TestRepositories: Added the option to generate .gitignore and init.py for wpt repo.
  • web-platform-tests/.gitignore: Regeneration changes the order of the ignored files and removes the init.py which is now committed to WebKit trunk.
  • web-platform-tests/init.py: Added.

Tools:

TestDownloader generates the .gitignore file according submodules git repository information.
TestImporter requests the generation of .gitignore and the main init.py according LayoutTests/imported/w3c/resources/TestRepositories options.

  • Scripts/webkitpy/w3c/test_downloader.py:

(TestDownloader.generate_gitignore): Generating .gitignore according submodules description.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.process_test_repositories_import_options): Added the generation of .gitignore/init.py if the repo has the right option.
(TestImporter):
(TestImporter.write_init_py): Writing not empty init.py files.
(TestImporter.import_tests): Using of write_init_py.

  • Scripts/webkitpy/w3c/test_importer_unittest.py:

(TestImporterTest.test_git_ignore_generation): Added .gitignore test.
(TestImporterTest):
(TestImporterTest.test_initpy_generation): Added init.py test.

11:15 AM Changeset in webkit [202339] by adam.bergkvist@ericsson.com
  • 9 edits
    2 adds in trunk

WebRTC: Add support for the negotiationneeded event in MediaEndpointPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=158985

Source/WebCore:

Reviewed by Eric Carlson.

Implement MediaEndpointPeerConnection's isNegotiationNeeded, markAsNeedingNegotiation and
clearNegotiationNeededState functions. The calls to these functions are already up-to-date.

Test: fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::markAsNeedingNegotiation):

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::scheduleNegotiationNeededEvent):

LayoutTests:

Add tests for the RTCPeerConnection negotiationneeded event.

Reviewed by Eric Carlson.

  • fast/mediastream/RTCPeerConnection-more-media-to-negotiate-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-more-media-to-negotiate.html: Added.

Verify that a negotiationneeded event is fired when not all local media can be included in
an answer. (The answerer cannot reply with more m-lines than the offer had to begin with.)

  • fast/mediastream/RTCPeerConnection-onnegotiationneeded-expected.txt:
  • fast/mediastream/RTCPeerConnection-onnegotiationneeded.html:

Verify that a negotiationneeded event is fired when tracks are added and removed from an
RTCPeerConnection.

  • platform/gtk/TestExpectations:

Unskip fast/mediastream/RTCPeerConnection-onnegotiationneeded.html.

  • platform/mac/TestExpectations:

The mac port does not build with WEB_RTC enabled yet.

11:14 AM Changeset in webkit [202338] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests/imported/w3c

imported/w3c/web-platform-tests/streams/readable-streams/general.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=155760

Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-22
Reviewed by Alexey Proskuryakov.

Making test more predictable.
Upstreamed to w3c repository as https://github.com/w3c/web-platform-tests/pull/3203.

  • web-platform-tests/streams/readable-streams/general.js:

(promise_test):

11:12 AM Changeset in webkit [202337] by adam.bergkvist@ericsson.com
  • 7 edits
    1 delete in trunk/Source/WebCore

WebRTC: Replace RTCPeerConnection custom constructor with a JS built-in constructor
https://bugs.webkit.org/show_bug.cgi?id=158832

Reviewed by Eric Carlson and Youenn Fablet.

Use a JS built-in constructor instead of a custom constructor. This makes it easier to
initialize private fields for functions implemented as JS built-ins. The constructor
behavior is in need of updating, but that is left to a follow-up change [1].

[1] http://webkit.org/b/158936
No change in behavior.

  • CMakeLists.txt:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::create):
(WebCore::RTCPeerConnection::RTCPeerConnection):
(WebCore::RTCPeerConnection::~RTCPeerConnection):
(WebCore::RTCPeerConnection::initializeWith):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCPeerConnection.js:

(initializeRTCPeerConnection):
Add JS built-in constructor function.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSRTCPeerConnectionCustom.cpp: Removed.

(WebCore::constructJSRTCPeerConnection): Deleted.

11:11 AM Changeset in webkit [202336] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

CrossOriginPreflightChecker should call DocumentThreadableLoader preflightFailure instead of didFailLoading
https://bugs.webkit.org/show_bug.cgi?id=158984

Patch by Youenn Fablet <youenn@apple.com> on 2016-06-22
Reviewed by Darin Adler.

No change of behavior.

Calling DocumentThreadableLoader preflightFailure instead of didFailLoading for any preflight error case.

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::notifyFinished): Directly calling preflightFailure callback.
(WebCore::CrossOriginPreflightChecker::doPreflight): Ditto.
(WebCore::CrossOriginPreflightChecker::handleLoadingFailure): Deleted.
(WebCore::CrossOriginPreflightChecker::redirectReceived): Deleted (should have been removed as part of
https://bugs.webkit.org/show_bug.cgi?id=111008).

  • loader/CrossOriginPreflightChecker.h:
11:10 AM Changeset in webkit [202335] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Simplify CSS rule for ContentBrowser navigation bar items
https://bugs.webkit.org/show_bug.cgi?id=159000

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ContentBrowser.css:

(.content-browser > .navigation-bar > .item):
Both these values result in 28px, but 100% is simplier.

10:50 AM Changeset in webkit [202334] by Chris Dumez
  • 5 edits in trunk

JSDOMIterator forEach should support second optional parameter
https://bugs.webkit.org/show_bug.cgi?id=159020

Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-22
Reviewed by Chris Dumez.

Source/WebCore:

Covered by beefed up test.

  • bindings/js/JSDOMIterator.h:

(WebCore::iteratorForEach): Setting callback thisValue to the second argument passed to forEach.

LayoutTests:

  • fast/dom/nodeListIterator-expected.txt:
  • fast/dom/nodeListIterator.html: Adding 'thisValue' various checks.
10:16 AM Changeset in webkit [202333] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

Media controls stop working after exiting PiP
https://bugs.webkit.org/show_bug.cgi?id=159026
<rdar://problem/26753579>

Reviewed by Eric Carlson.

Do not slave setting WebVideoFullscreenModelVideoElement::setVideoElement() to
WebPlaybackSessionModelVideoElement::setMediaElement(). After all, someone else
(i.e., the media controls) may still be using it.

  • platform/cocoa/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::setVideoElement): Deleted.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::didCleanupFullscreen):
(WebVideoFullscreenControllerContext::setUpFullscreen):

10:14 AM Changeset in webkit [202332] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Update document's isPlayingMedia() state whenever media element's media state changes
https://bugs.webkit.org/show_bug.cgi?id=159018
<rdar://problem/26586630>

Reviewed by Beth Dakin.

The Document can end up with a stale m_mediaState if its own value isn't updated when
its constituent HTMLMediaElement's m_mediaStates change.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::updateMediaState):

10:00 AM Changeset in webkit [202331] by Chris Dumez
  • 6 edits in trunk/Source/WebKit2

Add logging related to process assertions to help debug process suspension issues
https://bugs.webkit.org/show_bug.cgi?id=159001

Reviewed by Antti Koivisto.

Add logging related to process assertions to help debug process suspension issues.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::didChangeIsLoading):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::fetchWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteData):
(WebKit::NetworkProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcessProxy::setIsHoldingLockedFiles):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateActivityToken):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::setIsHoldingLockedFiles):

9:58 AM Changeset in webkit [202330] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Crash under GraphicsLayerCA::recursiveCommitChanges() with deep layer trees
https://bugs.webkit.org/show_bug.cgi?id=159023
rdar://problem/25377842

Reviewed by Tim Horton.

Having an on-stack DisplayList::Recorder increased the stack frame size significantly,
causing stack exhaustion with deep layer trees, despite the existing depth check.

Make the Recorder heap-allocated to fix this.

Tested by LayoutTests/compositinglayer-creation/deep-tree.html.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::recursiveCommitChanges):

9:55 AM Changeset in webkit [202329] by weinig@apple.com
  • 4 edits
    1 add in trunk

WKWebView with no WKNavigationDelegate does not follow universal links
<rdar://problem/24374110>
https://bugs.webkit.org/show_bug.cgi?id=158997

Reviewed by Dan Bernstein.

Source/WebKit2:

API Test:

WKWebView.DefaultNavigationDelegate

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
When initializing the WKWebView, set a default navigation client.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewDefaultNavigationDelegate.mm: Added.

Add a new test that shows that we have a default navigation delegate by swizzling
-[NSWorkspace openURL:]. This will only be called if there is a default client.

1:59 AM Changeset in webkit [202328] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

[GTK] Add support for variadic parameters to GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=158942

Reviewed by Michael Catanzaro.

Generate code for functions having variadic parameters.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateFunction):
(SkipFunction):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_variadic_string_method):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
1:47 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:35 AM Changeset in webkit [202327] by pvollan@apple.com
  • 3 edits in trunk/Tools

[Win] Implement modal dialog support in MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=158976

Reviewed by Brent Fulgham.

  • MiniBrowser/win/PrintWebUIDelegate.cpp:

(PrintWebUIDelegate::createWebViewWithRequest):
(getHandleFromWebView):
(PrintWebUIDelegate::webViewClose):
(PrintWebUIDelegate::setFrame):
(PrintWebUIDelegate::webViewFrame):
(PrintWebUIDelegate::canRunModal):
(findTopLevelParent):
(PrintWebUIDelegate::runModal):
(PrintWebUIDelegate::createModalDialog):

  • MiniBrowser/win/PrintWebUIDelegate.h:

(PrintWebUIDelegate::webViewClose):
(PrintWebUIDelegate::setFrame):
(PrintWebUIDelegate::webViewFrame):
(PrintWebUIDelegate::canRunModal):
(PrintWebUIDelegate::runModal):

12:48 AM Changeset in webkit [202326] by pvollan@apple.com
  • 5 edits in trunk

window.showModalDialog doesn't work in DumpRenderTree on Windows
https://bugs.webkit.org/show_bug.cgi?id=53675

Reviewed by Brent Fulgham.

Tools:

Implement modal dialog support in DumpRenderTree.

  • DumpRenderTree/win/UIDelegate.cpp:

(UIDelegate::canRunModal):
(getHandleFromWebView):
(UIDelegate::createModalDialog):
(findTopLevelParent):
(UIDelegate::runModal):
(UIDelegate::webViewClose):

  • DumpRenderTree/win/UIDelegate.h:

LayoutTests:

Update test expectations for modal dialog tests.

  • platform/win/TestExpectations:

Jun 21, 2016:

10:52 PM Changeset in webkit [202325] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Land test expectations for rdar://problem/26422051.

  • platform/mac-wk1/TestExpectations:
10:52 PM Changeset in webkit [202324] by commit-queue@webkit.org
  • 4 edits
    4 adds in trunk

:hover CSS pseudo-class sometimes keeps matching ever after mouse has left the element
https://bugs.webkit.org/show_bug.cgi?id=158340

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-21
Reviewed by Simon Fraser.

Source/WebCore:

When removing a hovered subtree from the document, we were getting
into an inconsistent state where m_hoveredElement is in the detached
subtree and we have no way of clearing the existing IsHovered flags.

What happens is:
-The root "a" has an child "b" that is hovered.
-"a" starts being removed from the tree, its renderer is destroyed.
-RenderTreeUpdater::tearDownRenderers() pushes "a" on the teardownStack

and calls hoveredElementDidDetach().

-hoveredElementDidDetach() is called with "a". "a" is not the hovered

element, the function does nothing.

-RenderTreeUpdater::tearDownRenderers() pushes "b" on the teardownStack

and calls hoveredElementDidDetach().

-hoveredElementDidDetach() is called with "b". The next parent with a renderer

is "a", m_hoveredElement is set to "a".

-"a"'s parent is set to nullptr.

-> We have a m_hoveredElement on the root of a detached tree, making

it impossible to clear the real dirty tree.

This patch changes the order in which we clear the flags.
It is done in the order in which we clear the renderers to ensure
the last element with a dead renderer is the last to update m_hoveredElement.

Tests: fast/css/ancestor-of-hovered-element-detached.html

fast/css/ancestor-of-hovered-element-removed.html

  • Source/WebCore/style/RenderTreeUpdater.cpp:

LayoutTests:

  • fast/css/ancestor-of-hovered-element-detached-expected.txt: Added.
  • fast/css/ancestor-of-hovered-element-detached.html: Added.
  • fast/css/ancestor-of-hovered-element-removed-expected.txt: Added.
  • fast/css/ancestor-of-hovered-element-removed.html: Added.
10:47 PM Changeset in webkit [202323] by commit-queue@webkit.org
  • 13 edits in trunk

[Fetch API] Rename 'origin-only' referrer policy to 'origin'
https://bugs.webkit.org/show_bug.cgi?id=158982

Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-21
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Renaming origin-only to origin.

  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer.js:
  • web-platform-tests/fetch/api/request/request-clone.sub.html:
  • web-platform-tests/fetch/api/request/request-idl.html:
  • web-platform-tests/fetch/api/request/request-init-001.sub-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-001.sub.html:
  • web-platform-tests/fetch/api/request/request-init-003.sub.html:

Source/WebCore:

Covered by updated tests.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::setReferrerPolicy): Renaming origin-only to origin.

  • Modules/fetch/FetchRequest.idl: Ditto.
  • loader/FetchOptions.h: Ditto.
10:42 PM Changeset in webkit [202322] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Test expectations gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
10:00 PM Changeset in webkit [202321] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Let the compiler generate the move constructor and assignment operator for ScriptExecutionContext::Task
https://bugs.webkit.org/show_bug.cgi?id=159013

Reviewed by Brady Eidson.

Let the compiler generate the move constructor and assignment operator for
ScriptExecutionContext::Task. We previously manually defined the move
constructor but there is no need as it doesn't do anything special.

  • dom/ScriptExecutionContext.h:
8:53 PM Changeset in webkit [202320] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

DumpRenderTree crashed in com.apple.WebCore: WebCore::HTMLSelectElement::updateSelectedState
https://bugs.webkit.org/show_bug.cgi?id=159009
<rdar://problem/23454623>

Reviewed by Jon Lee.

It seems we can get bogus indices from UIKit's implementation
of UIWebSelectMultiplePicker. Guard against this situation.

Covered by running the existing tests in WebKit1 with Guard Malloc,
such as fast/spatial-navigation/snav-multiple-select-optgroup.html

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::updateSelectedState): Early return
if we get an index out of range.

8:34 PM Changeset in webkit [202319] by aakash_jain@apple.com
  • 57 edits in trunk/Tools

Fix formatting issues reported by check-webkit-style
https://bugs.webkit.org/show_bug.cgi?id=159008

Reviewed by Alexey Proskuryakov.

Fixed the formatting issues as reported by check-webkit-style in webkitpy/tool folder.
There is no functionality change.

  • Scripts/webkitpy/tool/bot/irc_command.py:

(Restart.execute):
(Rollout):

  • Scripts/webkitpy/tool/bot/ircbot_unittest.py:

(IRCBotTest.test_exception_during_command):
(IRCBotTest.test_exception_during_command.CommandWithException):
(IRCBotTest.test_exception_during_command.CommandWithException.execute):

  • Scripts/webkitpy/tool/bot/layouttestresultsreader_unittest.py:

(test_missing_unit_test_results_path):
(test_layout_test_results):

  • Scripts/webkitpy/tool/bot/queueengine.py:
  • Scripts/webkitpy/tool/bot/queueengine_unittest.py:
  • Scripts/webkitpy/tool/commands/abstractsequencedcommand.py:

(AbstractSequencedCommand):
(AbstractSequencedCommand.init):

  • Scripts/webkitpy/tool/commands/download.py:

(Land):

  • Scripts/webkitpy/tool/commands/openbugs.py:
  • Scripts/webkitpy/tool/commands/openbugs_unittest.py:

(OpenBugsTest):

  • Scripts/webkitpy/tool/commands/queries.py:

(PatchesToCommitQueue):
(PatchesToCommitQueue.init):
(PatchesToCommitQueue._needs_commit_queue):

  • Scripts/webkitpy/tool/commands/queries_unittest.py:

(PrintExpectationsTest.test_platform):
(PrintBaselinesTest):
(PrintBaselinesTest.setUp):

  • Scripts/webkitpy/tool/commands/queues.py:

(AbstractQueue):
(AbstractQueue.init):
(AbstractQueue.execute):

  • Scripts/webkitpy/tool/commands/queues_unittest.py:

(test_auto_retry):

  • Scripts/webkitpy/tool/commands/rebaseline.py:

(AbstractParallelRebaselineCommand._files_to_add):
(AbstractParallelRebaselineCommand):
(AbstractParallelRebaselineCommand._rebaseline):

  • Scripts/webkitpy/tool/commands/setupgitclone.py:

(SetupGitClone):

  • Scripts/webkitpy/tool/commands/sheriffbot.py:
  • Scripts/webkitpy/tool/commands/stepsequence.py:
  • Scripts/webkitpy/tool/commands/upload.py:

(PostCommits._comment_text_for_commit):
(PostCommits):
(PostCommits.execute):
(MarkBugFixed):
(MarkBugFixed.init):

  • Scripts/webkitpy/tool/commands/upload_unittest.py:

(UploadCommandsTest):
(UploadCommandsTest.test_commit_message_for_current_diff):

  • Scripts/webkitpy/tool/grammar_unittest.py:

(GrammarTest):
(GrammarTest.test_join_with_separators):

  • Scripts/webkitpy/tool/multicommandtool.py:

(HelpCommand.init):
(HelpCommand):
(HelpCommand._help_epilog):
(HelpCommand._remove_help_options):
(MultiCommandTool):
(MultiCommandTool.init):
(MultiCommandTool.main):

  • Scripts/webkitpy/tool/multicommandtool_unittest.py:

(TrivialCommand):
(TrivialCommand.init):
(MultiCommandToolTest):
(MultiCommandToolTest._assert_tool_main_outputs):
(MultiCommandToolTest.test_retry):
(test_command_help):

  • Scripts/webkitpy/tool/steps/init.py:
  • Scripts/webkitpy/tool/steps/abstractstep.py:
  • Scripts/webkitpy/tool/steps/applypatch.py:
  • Scripts/webkitpy/tool/steps/applypatchwithlocalcommit.py:

(ApplyPatchWithLocalCommit):
(ApplyPatchWithLocalCommit.options):

  • Scripts/webkitpy/tool/steps/build.py:
  • Scripts/webkitpy/tool/steps/checkstyle.py:

(CheckStyle):
(CheckStyle.options):

  • Scripts/webkitpy/tool/steps/cleanworkingdirectory.py:
  • Scripts/webkitpy/tool/steps/closebug.py:
  • Scripts/webkitpy/tool/steps/closebugforlanddiff.py:
  • Scripts/webkitpy/tool/steps/closebugforlanddiff_unittest.py:

(CloseBugForLandDiffTest):
(CloseBugForLandDiffTest.test_empty_state):

  • Scripts/webkitpy/tool/steps/closepatch.py:
  • Scripts/webkitpy/tool/steps/commit.py:

(Commit.run):

  • Scripts/webkitpy/tool/steps/confirmdiff.py:
  • Scripts/webkitpy/tool/steps/editchangelog.py:
  • Scripts/webkitpy/tool/steps/ensurelocalcommitifneeded.py:
  • Scripts/webkitpy/tool/steps/metastep.py:

(MetaStep):
(MetaStep.init):
(MetaStep.run):

  • Scripts/webkitpy/tool/steps/obsoletepatches.py:
  • Scripts/webkitpy/tool/steps/options.py:

(Options):

  • Scripts/webkitpy/tool/steps/postdiff.py:
  • Scripts/webkitpy/tool/steps/postdiffforcommit.py:
  • Scripts/webkitpy/tool/steps/postdiffforrevert.py:
  • Scripts/webkitpy/tool/steps/preparechangelog.py:
  • Scripts/webkitpy/tool/steps/preparechangelog_unittest.py:

(PrepareChangeLogTest):
(PrepareChangeLogTest.test_resolve_existing_entry):

  • Scripts/webkitpy/tool/steps/preparechangelogforrevert.py:
  • Scripts/webkitpy/tool/steps/promptforbugortitle.py:
  • Scripts/webkitpy/tool/steps/reopenbugafterrollout.py:
  • Scripts/webkitpy/tool/steps/revertrevision.py:
  • Scripts/webkitpy/tool/steps/runtests.py:
  • Scripts/webkitpy/tool/steps/runtests_unittest.py:
  • Scripts/webkitpy/tool/steps/steps_unittest.py:

(StepsTest):
(StepsTest._step_options):

  • Scripts/webkitpy/tool/steps/update.py:
  • Scripts/webkitpy/tool/steps/updatechangelogswithreview_unittest.py:

(UpdateChangeLogsWithReviewerTest):
(UpdateChangeLogsWithReviewerTest.test_guess_reviewer_from_bug):

  • Scripts/webkitpy/tool/steps/updatechangelogswithreviewer.py:
  • Scripts/webkitpy/tool/steps/validatereviewer.py:
8:26 PM Changeset in webkit [202318] by jonlee@apple.com
  • 3 edits in trunk/PerformanceTests

Update canvas size when benchmark begins
https://bugs.webkit.org/show_bug.cgi?id=159010

Reviewed by Dean Jackson.

Previously we would evaluate the media queries and assign the canvas size to the test
on body.onload. Instead, do it once the user starts the benchmark.

  • Animometer/resources/debug-runner/animometer.js: Move benchmarkController.determineCanvasSize()

to benchmarkController._startBenchmark.

  • Animometer/resources/runner/animometer.js: Ditto.
8:26 PM Changeset in webkit [202317] by jonlee@apple.com
  • 3 edits in trunk/PerformanceTests

Add new timestamp option
https://bugs.webkit.org/show_bug.cgi?id=159006

Reviewed by Dean Jackson.

Add a new option to take timestamps from the rAF callback.

  • Animometer/developer.html: Added option.
  • Animometer/tests/resources/main.js:

(Benchmark): Fall back to using the rAF timestamp if performance.now()
is not available.
(Benchmark._animateLoop): Update how timestamp is set. Prefer to use
local var instead of accessing private var.

8:16 PM Changeset in webkit [202316] by Chris Dumez
  • 5 edits
    1 delete in trunk

Unreviewed, rolling out r202296.

Broke basic browsing in Safari

Reverted changeset:

"WKWebView with no WKNavigationDelegate does not follow
universal links"
https://bugs.webkit.org/show_bug.cgi?id=158997
http://trac.webkit.org/changeset/202296

8:12 PM Changeset in webkit [202315] by jonlee@apple.com
  • 5 edits in trunk/PerformanceTests

Improvements to Animometer benchmark
https://bugs.webkit.org/show_bug.cgi?id=157738

Reviewed by Dean Jackson.
Provisionally reviewed by Said Abou-Hallawa.

Update tests.

  • Animometer/tests/master/text.html: Ensure only three text sizes for

the three canvases.

  • Animometer/tests/master/focus.html: Reduce the text size to fit with smaller

particle sizes.

  • Animometer/tests/master/resources/focus.js: Remove the quadratic distribution for

particle sizes, and make it linear. Reduce the size variance. Shuffle the math to
reduce some calculations per frame. Fix the placement of the particles which might
otherwise be culled.

  • Animometer/tests/master/resources/image-data.js: Reduce the particle size

to encourage larger scores.

8:11 PM Changeset in webkit [202314] by jonlee@apple.com
  • 16 edits in trunk/PerformanceTests

Improvements to Animometer benchmark
https://bugs.webkit.org/show_bug.cgi?id=157738

Reviewed by Dean Jackson.
Provisionally reviewed by Said Abou-Hallawa.

Include confidence interval for the final score, and store the canvas
size in the serialization so that it is accurately shown in results.

  • Animometer/developer.html: Add a "confidence" div.
  • Animometer/index.html: Ditto. Convert "mean" to "confidence".
  • Animometer/resources/debug-runner/animometer.js: Look at options, and

if the configuration is included, update the body class based on it
(similar to what we do when we first load the page). That way, if you
drag-and-drop previous results in, that configuration is reflected in
the dashboard. Show the full confidence interval.

  • Animometer/resources/debug-runner/animometer.css:
  • Animometer/resources/debug-runner/animometer.js: Style update.
  • Animometer/resources/runner/animometer.css:
  • Animometer/resources/runner/animometer.js:

(_processData): Propagate the confidence interval values out and calculate
the lower and upper bounds. For now, shortcut the aggregate calculation,
since we only go through one iteration.
(this._processData.calculateScore): Propagate the confidence interval out
to be next to the score. Depending on the controller these values are
calculated differently.
(this._processData._getResultsProperty): Convenience function.
(this._processData.get score): Refactor.
(this._processData.get scoreLowerBound): Get the aggregate lower bound.
(this._processData.get scoreUpperBound): Get the aggregate upper bound.
(window.sectionsManager.setSectionScore):
(window.benchmarkController._startBenchmark): When the benchmark starts, note
the canvas size and add it to options. That way it will be automatically be
serialized.
(window.benchmarkController.showResults): Include the maximum deviation
percentage.

  • Animometer/resources/runner/lines.svg: Make the background line up with the

skew.

  • Animometer/resources/runner/tests.js:

(Headers.details.text): Refactor.

  • Animometer/resources/statistics.js:

(Statistics.largestDeviationPercentage): Convenience function to calculate
the deviation percentage on either end and return the largest deviation.

  • Animometer/resources/strings.js:

Allow specifying a regression profile to use instead of taking the one
with the lowest error.

Address an issue in the focus test when the regression calculated ends
up overestimating the change point, causing a cascade of tougher
ramps. The reason behind this is that at max complexity of an initial
ramp, the frame length is very high, and it influences the second
segment of the piecewise regression strongly, causing it to be very
steep. As a result, the first segment, expected to be flat, ends up
covering a higher range of complexity. That makes the change point
much higher than it should be. To avoid this, we will add a sanity
check on the maximum value of the ramp. If the regression's projected
value at the maximum complexity of the current ramp is very slow (less
than 20 fps), 1) reduce the maximum complexity by 20%, and 2) do not
include the regression's change point in the change point estimator.
That estimator is used as the midpoint of the next ramp, and including
the change point from a poor regression can bake in the error. The
controller already knows how to adjust for ramps that are too easy for
the system.

  • Animometer/resources/runner/animometer.js:

(this._processData.findRegression): Takes a preferred profile and gives that to
Regression.
(this._processData.calculateScore): With the ramp controller, take the profile
of the ramp that was used the most when calculating the ramp's regression. That
profile is what is used for the test's score.

  • Animometer/resources/statistics.js:

(Regression.Utilities.createClass): Update to take an options object which can
specify a profile to calculate with. Otherwise it will continue to use both and
select the one with the lower error.
(_calculateRegression): Fix an issue where we claim 0 error if the regression
calculation fails due to divide-by-zero. Instead reject that regression calculation
by giving it Number.MAX_VALUE.

  • Animometer/resources/strings.js: New strings for marking a regression as flat

or slope.

  • Animometer/tests/resources/main.js:

(RampController): Rename the thresholds for clarity. Add a threshold that, if
exceeded, will lower the maximum complexity of the next ramp.
(tune): Relax the cdf check to consider whether the interval definitely falls in
the desired frame length threshold.
(processSamples): Include the profile in the ramp.

Update ramp controller test. Increase the length of the test to 30 seconds, and extend
the interval to 120 ms during sampling. Improve the estimation of the ramp parameters.

  • Animometer/developer.html: Change default to 30 seconds, and don't show the progress bar

by default.

  • Animometer/resources/runner/animometer.js: Change default to 30 seconds.
  • Animometer/tests/resources/main.js: A number of improvements to the ramp controller, in

the order in which they appear in the patch:

  • With a longer test length use longer ramps with longer intervals to get more data at each

complexity. Keep the 100 ms interval length during the ramp up phase since we don't need to
spend more time there to find the right order of magnitude, but increase it during the
ramps to 120 ms.

  • The ramp linearly interpolates the complexity to render based on its timestamp, but it would

never sample the minimum complexity. Instead of lerping max to min complexity from time
0 to t where t is the ramp length, instead lerp from 0 to (t - intervalSampleLength) so that
we can have at least one interval sample at the min complexity for that ramp.

  • Some regression calculations only come out with one line segment rather than the two

we expect. This could be due to a noisy ramp or the ramp's range is too narrow. If that's the
case, influence the minimum complexity of the next ramp towards the lowest bound of 1, so that
we ensure that at least part of the ramp is covering a complexity range that the system can
handle at full 60.

  • Remove an assignment to interpolatedFrameLength since that is never subsequently used.

Update the format used to serialize the results for analysis.

Each data point used to have named properties for fields like complexity and frame rate.
In addition the serialized numbers had rounding errors that took up many characters.
Update the format by introducing a new data container called SampleData, which contains a
field map. The map maps a string to an array index. Each data point is an array, so, to
get a stat, use the field map to get the array index into the data point. This allows future
versions to track other data, and reduces the size of the output string by two-thirds.

  • Animometer/resources/extensions.js:

(Utilities.toFixedNumber): Add convenience function that truncates the number to a fixed
precision, and converts it back to a number.
(SampleData): New class that contains sample data and a field map that maps properties to
an array index.
(get length): Number of data points.
(addField): Add a field to the field map.
(push): Add a data point.
(sort): Sort the data.
(slice): Return new SampleData object with sliced data.
(forEach): Iterate over the data with provided function.
(createDatum):
(getFieldInDatum): Returns the data point associated with the field name by looking it up
in the field map in the datum provided, which can be the datum object itself (an array) or
an index into the data member variable.
(setFieldInDatum): Sets the data point associated with the field name.
(at): Returns the data point at the provided index.
(toArray): Serializes the data where the field map serves as property names for each point.

  • Animometer/resources/debug-runner/graph.js:

(updateGraphData): Remove unused _testData. Convert the data to the old array format for the
graph to use, since the old format was much easier to work with when displaying the graphs.
(onGraphTypeChanged): For some controllers, no alternative score or mean is provided.

  • Animometer/resources/runner/animometer.css:
  • Animometer/resources/runner/animometer.js: Refactor to use SampleData. Update JSON output

to only go to 3 digits of precision for purposes of reducing the data size.

  • Animometer/resources/strings.js: Add new strings to put into the field maps.
  • Animometer/tests/resources/main.js: Refactor to use SampleData.
  • Animometer/developer.html:
  • Animometer/index.html: Restructure results table for both pages. Add charset attribute to

tests.js include.

  • Animometer/resources/debug-runner/animometer.css: Clear out styles from release runner.
  • Animometer/resources/debug-runner/graph.js:

(onGraphTypeChanged): Update score and mean if bootstrap results are available from the
controller, since not all controllers do bootstrapping.

  • Animometer/resources/debug-runner/tests.js: Update header text.
  • Animometer/resources/runner/animometer.css: Include confidence interval in results.
  • Animometer/resources/runner/animometer.js:

(ResultsTable._addHeader): Header contents can be HTML, so use innerHTML instead.
(ResultsTable._addBody): Add tbody element.
(ResultsTable._addTest): Allow a data cell to invoke a JS function to get its contents.
(window.benchmarkController.showResults): Add table that includes tests' confidence intervals.

  • Animometer/resources/runner/tests.js:

(Headers.details.text): Add new details table that includes bootstrap confidence interval.
The interval can be asymmetric, but for simplicity, report the maximum deviation percentage
on either side of the bootstrap median.

  • Animometer/resources/statistics.js:

(bootstrap): Include the confidence percentage in the return object.

Report canvas size in results.

  • Animometer/developer.html: Add markup to indicate whether a small, medium, or large

canvas was used.

  • Animometer/index.html: Ditto.
  • Animometer/resources/debug-runner/animometer.js: Call determineCanvasSize().
  • Animometer/resources/runner/animometer.css: Update styles to set the canvas based on the

body class size.

  • Animometer/resources/runner/animometer.js:

(window.benchmarkController.initialize): Update styles to set the canvas based on the
body class size.
(window.benchmarkController.determineCanvasSize): Run various media queries and set the body
class based on the size of the device.

  • Animometer/developer.html: Refactor to include the main CSS file, and redo

the layout so that it doesn't rely on flexbox.

  • Animometer/resources/debug-runner/animometer.css:
  • Animometer/resources/debug-runner/animometer.js:

(updateDisplay): Since various parts of the script alter the body class, we can't
replace the className directly. Instead, remove all display-based values and then add
the one that was selected.

  • Animometer/resources/debug-runner/graph.js:

(updateGraphData): To set the size of the graph, use window.innerHeight.

  • Animometer/resources/runner/animometer.js:

(window.sectionsManager.showSection): Since various parts of the script alter the body
class, we can't replace the className directly. Remove all of the section classes
individually and then add the one desired.

  • Animometer/tests/resources/stage.css: Remove -apple-system as a font to use in the

stage.

8:06 PM Changeset in webkit [202313] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Pass ScriptExecutionContext::Task as rvalue reference
https://bugs.webkit.org/show_bug.cgi?id=159007

Reviewed by Anders Carlsson.

Pass ScriptExecutionContext::Task as rvalue reference since its non-copyable
and has to be moved in.

  • workers/WorkerLoaderProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postTaskToLoader):
(WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):

  • workers/WorkerMessagingProxy.h:
  • workers/WorkerRunLoop.cpp:

(WebCore::WorkerRunLoop::postTask):
(WebCore::WorkerRunLoop::postTaskAndTerminate):
(WebCore::WorkerRunLoop::postTaskForMode):
(WebCore::WorkerRunLoop::Task::Task):

  • workers/WorkerRunLoop.h:
7:52 PM Changeset in webkit [202312] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Include IdentifierInlines.h.

  • bindings/js/JSApplePayShippingMethodSelectedEventCustom.cpp:
7:02 PM Changeset in webkit [202311] by andersca@apple.com
  • 2 edits
    1 add in trunk/Source/WebCore

Add PaymentHeaders.h file.

  • Modules/applepay/PaymentHeaders.h: Added.
  • WebCore.xcodeproj/project.pbxproj:
6:36 PM Changeset in webkit [202310] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Make a bunch of Apple Pay headers private instead of project.

  • WebCore.xcodeproj/project.pbxproj:
6:05 PM Changeset in webkit [202309] by andersca@apple.com
  • 6 edits
    1 copy
    31 adds in trunk/Source/WebCore

Move the last Apple Pay WebCore files to the open source repository
https://bugs.webkit.org/show_bug.cgi?id=159005

Reviewed by Tim Horton.

  • DerivedSources.make:
  • Modules/applepay/ApplePayPaymentAuthorizedEvent.cpp: Added.
  • Modules/applepay/ApplePayPaymentAuthorizedEvent.h: Added.
  • Modules/applepay/ApplePayPaymentAuthorizedEvent.idl: Added.
  • Modules/applepay/ApplePayPaymentMethodSelectedEvent.cpp: Added.
  • Modules/applepay/ApplePayPaymentMethodSelectedEvent.h: Added.
  • Modules/applepay/ApplePayPaymentMethodSelectedEvent.idl: Added.
  • Modules/applepay/ApplePaySession.cpp: Added.
  • Modules/applepay/ApplePaySession.h: Added.
  • Modules/applepay/ApplePaySession.idl: Added.
  • Modules/applepay/ApplePayShippingContactSelectedEvent.cpp: Added.
  • Modules/applepay/ApplePayShippingContactSelectedEvent.h: Added.
  • Modules/applepay/ApplePayShippingContactSelectedEvent.idl: Added.
  • Modules/applepay/ApplePayShippingMethodSelectedEvent.cpp: Added.
  • Modules/applepay/ApplePayShippingMethodSelectedEvent.h: Added.
  • Modules/applepay/ApplePayShippingMethodSelectedEvent.idl: Added.
  • Modules/applepay/ApplePayValidateMerchantEvent.cpp: Added.
  • Modules/applepay/ApplePayValidateMerchantEvent.h: Added.
  • Modules/applepay/ApplePayValidateMerchantEvent.idl: Added.
  • Modules/applepay/Payment.h: Added.
  • Modules/applepay/PaymentAuthorizationStatus.h: Added.
  • Modules/applepay/PaymentContact.h: Added.
  • Modules/applepay/PaymentMerchantSession.h: Added.
  • Modules/applepay/PaymentMethod.h: Added.
  • Modules/applepay/PaymentRequestValidator.cpp: Added.
  • Modules/applepay/PaymentRequestValidator.h: Added.
  • Modules/applepay/cocoa/PaymentContactCocoa.mm: Added.
  • Modules/applepay/cocoa/PaymentMethodCocoa.mm: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSApplePayPaymentAuthorizedEventCustom.cpp: Added.
  • bindings/js/JSApplePayPaymentMethodSelectedEventCustom.cpp: Added.
  • bindings/js/JSApplePaySessionCustom.cpp: Added.
  • bindings/js/JSApplePayShippingContactSelectedEventCustom.cpp: Added.
  • bindings/js/JSApplePayShippingMethodSelectedEventCustom.cpp: Added.
  • dom/EventNames.in:
  • dom/EventTargetFactory.in:
5:08 PM Changeset in webkit [202308] by andersca@apple.com
  • 10 edits in trunk

Fix build.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
5:04 PM Changeset in webkit [202307] by jiewen_tan@apple.com
  • 17 edits
    2 adds in trunk

Unreviewed, rolling out r202302, r202303, r202305, and
r202306.

Roll out the rollouts because of breaking the build.

Reverted changesets:

"Unreviewed, rolling out r200678."
https://bugs.webkit.org/show_bug.cgi?id=157453
http://trac.webkit.org/changeset/202302

"Unreviewed, rolling out r200619."
https://bugs.webkit.org/show_bug.cgi?id=131443
http://trac.webkit.org/changeset/202303

"Unreviewed, attempt to fix the build after r202303."
http://trac.webkit.org/changeset/202305

"Unreviewed, attempt to fix the build after r202303."
http://trac.webkit.org/changeset/202306

4:52 PM Changeset in webkit [202306] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, attempt to fix the build after r202303.

  • bindings/js/JSDOMIterator.h:

(WebCore::IteratorInspector::decltype):
(WebCore::IteratorInspector::test):

4:47 PM Changeset in webkit [202305] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, attempt to fix the build after r202303.

  • bindings/js/JSDOMIterator.h:

(WebCore::toJS):

4:32 PM Changeset in webkit [202304] by Alan Bujtas
  • 3 edits in trunk/LayoutTests

LayoutTest tiled-drawing/scrolling/latched-div-with-scroll-snap.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=158320

Reviewed by Simon Fraser.

This test case is flaky because:

  1. There are multiple mouseScrollByWithWheelAndMomentumPhases() event bundles and they all need their own

callbacks. (see additional eventSender.callAfterScrollingCompletes()) -> fail

  1. When the test fails, the testFailed() function is called with undefined variables. -> timeout
  • platform/mac-wk2/TestExpectations:
  • tiled-drawing/scrolling/latched-div-with-scroll-snap.html:
4:24 PM Changeset in webkit [202303] by jiewen_tan@apple.com
  • 17 edits
    2 deletes in trunk

Unreviewed, rolling out r200619.

This incompleted feature broke http://m.yahoo.co.jp. Roll it
out together with r200678.

Reverted changeset:

"NodeList should be iterable"
https://bugs.webkit.org/show_bug.cgi?id=131443
http://trac.webkit.org/changeset/200619

4:21 PM Changeset in webkit [202302] by jiewen_tan@apple.com
  • 5 edits in trunk

Unreviewed, rolling out r200678.

This incompleted feature broke http://m.yahoo.co.jp. Roll it
out together with r200619.

Reverted changeset:

"Ensure DOM iterators remain done"
https://bugs.webkit.org/show_bug.cgi?id=157453
http://trac.webkit.org/changeset/200678

4:09 PM Changeset in webkit [202301] by Joseph Pecoraro
  • 2 edits in trunk/LayoutTests

Skip HeapSnapshot test on WebKit1. Shared VM skews the data.

Unreviewed gardening.

In this case, snapshots with snapshots with snapshots in the same VM
causes the test to run out of memory. This does not happen in WebKit2.

  • platform/mac-wk1/TestExpectations:
4:07 PM Changeset in webkit [202300] by mmaxfield@apple.com
  • 2 edits
    2 adds in trunk/LayoutTests

Test gardening for platform-specific font-fallback on macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=159003
<rdar://problem/25807529>

Unreviewed.

  • fast/text/font-cursive-italic-cjk-2-expected.html: Added.
  • fast/text/font-cursive-italic-cjk-2.html: Added.
  • platform/mac/TestExpectations:
4:06 PM Changeset in webkit [202299] by ggaren@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Options::useImmortalObjects is not safe for conservative GC
https://bugs.webkit.org/show_bug.cgi?id=158999

Reviewed by Geoffrey Garen.

useImmortalObjects set the mark bit to keep an object from being
reallocated. This had the negative side-effect of convincing the
conservative marker that the object was a valid and live cell, which
would cause us to visit garbage.

  • heap/Heap.cpp:

(JSC::Heap::didFinishCollection):
(JSC::Heap::resumeCompilerThreads):
(JSC::Heap::setFullActivityCallback):
(JSC::Heap::markDeadObjects): Deleted.

  • heap/Heap.h: Don't set the mark bit on a dead object. That's a bug in

a conservative GC.

  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::retire): New helper.

(JSC::MarkedAllocator::reset): Automatically retire old blocks when
we're doing the immortal objects thing. This has the effect of
preserving memory for debugging because we never recycle a previously
allocated block.

3:46 PM Changeset in webkit [202298] by andersca@apple.com
  • 13 edits
    8 adds in trunk

Begin moving the Apple Pay code to the open source repository
https://bugs.webkit.org/show_bug.cgi?id=158998

Reviewed by Tim Horton.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_APPLE_PAY.

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_APPLE_PAY.

  • Modules/applepay/PaymentCoordinator.cpp: Added.
  • Modules/applepay/PaymentCoordinator.h: Added.
  • Modules/applepay/PaymentCoordinatorClient.h: Added.
  • Modules/applepay/PaymentRequest.cpp: Added.
  • Modules/applepay/PaymentRequest.h: Added.
  • Modules/applepay/cocoa/PaymentCocoa.mm: Added.
  • WebCore.xcodeproj/project.pbxproj:

Add new files.

  • dom/EventNames.h:

Add new event names.

  • page/MainFrame.h:

Use a forward declaration.

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_APPLE_PAY.

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Add ENABLE_APPLE_PAY.

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

Add ENABLE_APPLE_PAY.

3:29 PM Changeset in webkit [202297] by commit-queue@webkit.org
  • 12 edits in trunk

Add system tracing points for requestAnimationFrame() workflow
https://bugs.webkit.org/show_bug.cgi?id=158723

Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-06-21
Reviewed by Simon Fraser.

Source/WebCore:

Add trace points for requestAnimationFrame().

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::requestAnimationFrameEnabled):
(WebCore::ScriptedAnimationController::serviceScriptedAnimations):
(WebCore::ScriptedAnimationController::windowScreenDidChange):
(WebCore::ScriptedAnimationController::scheduleAnimation):

  • dom/ScriptedAnimationController.h:
  • platform/graphics/ios/DisplayRefreshMonitorIOS.mm:

(WebCore::DisplayRefreshMonitorIOS::requestRefreshCallback):
(WebCore::DisplayRefreshMonitorIOS::displayLinkFired):

Source/WebKit2:

Add trace points for requestAnimationFrame().

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):

  • WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::buildTransaction):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::didUpdate):
(WebKit::RemoteLayerTreeDrawingArea::BackingStoreFlusher::flush):

Source/WTF:

Define new trace score codes for requestAnimationFrame().

  • wtf/SystemTracing.h:

(WTF::TracePoint):
(WTF::TraceScope::TraceScope):
(WTF::TraceScope::~TraceScope):

Tools:

Add new plist entries to be used by kdebug_trace() viewing tools.

  • Tracing/SystemTracePoints.plist:
3:26 PM Changeset in webkit [202296] by commit-queue@webkit.org
  • 5 edits
    1 add in trunk

WKWebView with no WKNavigationDelegate does not follow universal links
<rdar://problem/24374110>
https://bugs.webkit.org/show_bug.cgi?id=158997

Patch by Sam Weinig <sam@webkit.org> on 2016-06-21
Reviewed by Dan Bernstein.

Source/WebKit2:

API Test:

WKWebView.DefaultNavigationDelegate

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):
When initializing the WKWebView, set a default navigation client.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setLoaderClient):
Be sure to clear out a navigation client, if present, when setting a loader client,
as they are mutually exclusive.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewDefaultNavigationDelegate.mm: Added.

Add a new test that shows that we have a default navigation delegate by swizzling
-[NSWorkspace openURL:]. This will only be called if there is a default client.

3:19 PM Changeset in webkit [202295] by Simon Fraser
  • 3 edits
    2 adds in trunk

[iOS] Typing text into a text field or text area causes screen to scroll down (hiding text entry)
https://bugs.webkit.org/show_bug.cgi?id=158970

Reviewed by Ryosuke Niwa.

Source/WebCore:

insertTextWithoutSendingTextEvent() should only reveal the selection up to the main frame on iOS,
since the UI process can zoom and scroll the view to the text input.

Test: fast/forms/ios/typing-in-input-in-iframe.html

  • editing/Editor.cpp:

(WebCore::Editor::insertTextWithoutSendingTextEvent):

LayoutTests:

Test that focuses an input in a frame and then types a character, then checks for scrolling.

  • fast/forms/ios/typing-in-input-in-iframe-expected.txt: Added.
  • fast/forms/ios/typing-in-input-in-iframe.html: Added.
2:11 PM Changeset in webkit [202294] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION(r201177): Web Inspector: ContentBrowser navigation bar should fit on a single line
https://bugs.webkit.org/show_bug.cgi?id=158700
<rdar://problem/26772058>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ContentBrowser.css:

(.content-browser > .navigation-bar > .item):
Set the height to 28px, as it was before r201177.
Make it one pixel shorter than the navigation bar for better vertical alignment.

1:58 PM Changeset in webkit [202293] by adam.bergkvist@ericsson.com
  • 4 edits in trunk/Source/WebCore

WebRTC: Remove unused MediaEndpointClient::gotRemoteSource function
https://bugs.webkit.org/show_bug.cgi?id=158986

Reviewed by Eric Carlson.

Remote sources are explicitly created with MediaEndpoint::createMutedRemoteSource so the
MediaEndpointClient::gotRemoteSource can be removed.

No change in behavior.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::gotRemoteSource): Deleted.

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • platform/mediastream/MediaEndpoint.h:
1:57 PM Changeset in webkit [202292] by Simon Fraser
  • 25 edits
    1 copy
    15 adds in trunk

Focus event dispatched in iframe causes parent document to scroll incorrectly
https://bugs.webkit.org/show_bug.cgi?id=158629
rdar://problem/26521616

Reviewed by Tim Horton.
Source/WebCore:

When focussing elements in iframes, the page could scroll to an incorrect location.
This happened because code in Element::focus() tried to disable scrolling on focus,
but did so only for the current frame, so ancestor frames got programmatically scrolled.
On iOS we handle the scrolling in the UI process, so never want the web process to
do programmatic scrolling.

Fix by changing the focus and cache restore code to use SelectionRevealMode::DoNotReveal,
rather than manually prohibiting frame scrolling. Pass SelectionRevealMode through various callers,
and use RevealUpToMainFrame for iOS, allowing the UI process to do the zoomToRect: for the main frame.

Tests: fast/forms/ios/focus-input-in-iframe.html

fast/forms/ios/programmatic-focus-input-in-iframe.html

  • dom/Document.h:
  • dom/Element.cpp:

(WebCore::Element::scrollIntoView):
(WebCore::Element::scrollIntoViewIfNeeded):
(WebCore::Element::scrollIntoViewIfNotVisible):
(WebCore::Element::focus):
(WebCore::Element::updateFocusAppearance):

  • dom/Element.h:
  • editing/Editor.cpp:

(WebCore::Editor::insertTextWithoutSendingTextEvent):
(WebCore::Editor::revealSelectionAfterEditingOperation):
(WebCore::Editor::findStringAndScrollToVisible):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::updateAndRevealSelection):
(WebCore::FrameSelection::revealSelection):
(WebCore::FrameSelection::FrameSelection): Deleted.

  • editing/FrameSelection.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateFocusAppearance):

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::updateFocusAppearance):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToAnchor):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::autoscroll):

  • rendering/RenderLayer.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::scrollRectToVisible):

  • rendering/RenderObject.h:

Source/WebKit/mac:

Pass SelectionRevealMode::Reveal in existing code.

  • WebView/WebFrame.mm:

(-[WebFrame _scrollDOMRangeToVisible:]):
(-[WebFrame _scrollDOMRangeToVisible:withInset:]):
(-[WebFrame revealSelectionAtExtent:]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView jumpToSelection:]):
(-[WebHTMLView centerSelectionInVisibleArea:]):

Source/WebKit2:

Pass SelectionRevealMode::Reveal in existing code.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::centerSelectionInVisibleArea):

LayoutTests:

  • fast/forms/ios/focus-input-in-iframe-expected.txt: Added.
  • fast/forms/ios/focus-input-in-iframe.html: Added.
  • fast/forms/ios/programmatic-focus-input-in-iframe-expected.txt: Added.
  • fast/forms/ios/programmatic-focus-input-in-iframe.html: Added.
1:53 PM Changeset in webkit [202291] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS][WK2] When an animation frame is missed, the UI process should immediately notify the Web process once a frame is committed
https://bugs.webkit.org/show_bug.cgi?id=158933

Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-06-21
Reviewed by Simon Fraser.

When a frame is committed, the UI process schedules a CADisplayLink and waits until
the next didRefreshDisplay event is fired. This causes more delay in the scenario
where there are frames are dropped. didRefreshDisplay() should be called immediately
when commitLayerTree message is received and the last frame was dropped.

The fix is to have the CADisplayLink active all the times. It should be paused
only when we detect at least one frame is dropped. In this case we should not
send a message to the UI process since it has not sent the last requested LayerTree.
Also we should not waste the CPU time by scheduling a new CADisplayLink since we
have not processed the last event. We should resume CADisplayLink timer once a
commitLayerTree message is received.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(-[WKOneShotDisplayLinkHandler pause]):
(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):
(-[WKOneShotDisplayLinkHandler displayLinkFired:]):

1:47 PM Changeset in webkit [202290] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Add an expectation for another copy of fast/canvas/webgl/premultiplyalpha-test.html

  • platform/mac/TestExpectations:
1:18 PM Changeset in webkit [202289] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Update Sierra test expectations for fast/canvas/webgl/premultiplyalpha-test.html

  • platform/mac/TestExpectations:
1:14 PM Changeset in webkit [202288] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

CodeBlock::shrinkToFit is racy
https://bugs.webkit.org/show_bug.cgi?id=158994
<rdar://problem/26920212>

Reviewed by Filip Pizlo.

To see why this is racy, consider the following scenario:

  • CodeBlock A is link()ing its baseline compile.
  • CodeBlock B is inlining A, and asks A for a result profile in DFGBytecodeParser.
  • The race occurs when the link() step of the baseline compile calls shrinkToFit on its m_resultProfiles field without grabbing a lock. This leads to a bad time because the DFG compile will be reading from that vector as it's getting changed by the baseline link() method.

This race has always existed, though the move to a concurrent baseline
JIT has made it more likely to occur. The solution is to have CodeBlock::shrinkToFit
grab its lock before shrinking the vector.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::shrinkToFit):

12:06 PM Changeset in webkit [202287] by ddkilzer@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Migrate testair & testb3 settings from Xcode project to ToolExecutable.xcconfig
<https://webkit.org/b/158989>

Reviewed by Andy Estes.

  • Configurations/ToolExecutable.xcconfig:

(CODE_SIGN_ENTITLEMENTS_ios_testair): Add from Xcode project.

(CODE_SIGN_ENTITLEMENTS_ios_testair): Move to
ToolExecutable.xcconfig.
(PRODUCT_NAME): Remove. This variable is already set for both
testair and testb3 since those build configurations use
ToolExecutable.xcconfig as a base.

12:03 PM Changeset in webkit [202286] by sbarati@apple.com
  • 3 edits
    1 add in trunk/Source/JavaScriptCore

LLInt doesn't throw stack exception overflow from parent frame
https://bugs.webkit.org/show_bug.cgi?id=158962
<rdar://problem/26902188>

Reviewed by Filip Pizlo.

All JIT tiers will throw stack overflow exceptions from the parent frame.
The LLInt, on the other hand, did not use to. I've changed the LLInt to be
consistent with the JITs. The reason I found this bug is because we had a
test that would give different results depending on if the function was compiled
in the baseline or the LLInt. Since Filip recently landed the concurrent baseline
JIT patch, this otherwise deterministic test became dependent on it being compiled
in the LLInt or one of the JIT tiers. I've added a new test that is deterministic
because it runs the test with --useJIT=false.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • tests/stress/llint-stack-overflow-location.js: Added.

(stackTraceDescription):
(foo):
(catch):

11:54 AM Changeset in webkit [202285] by ddkilzer@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

CODE_SIGN_ENTITLEMENTS should be applied to iOS Simulator builds
<https://webkit.org/b/158990>
<rdar://problem/26906273>

Reviewed by Dan Bernstein.

  • Configurations/JSC.xcconfig:

(CODE_SIGN_ENTITLEMENTS): Change [sdk=iphoneos*] to
[sdk=iphone*] to apply setting to iOS Simulator as well.

  • Configurations/ToolExecutable.xcconfig:

(CODE_SIGN_ENTITLEMENTS): Ditto.

11:36 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
11:34 AM Changeset in webkit [202284] by fred.wang@free.fr
  • 19 edits in trunk

Implement RenderMathMLOperator::layoutBlock
https://bugs.webkit.org/show_bug.cgi?id=157521

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-21
Reviewed by Brent Fulgham.

Source/WebCore:

No new tests, already covered by existing tests.

Add an initial implementation of RenderMathMLOperator::layoutBlock, which will perform
special layout when the MathOperator is used. We also improved how the logical height is
calculated and avoid updating the style when stretchTo is called.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::stretchTo):
(WebCore::RenderMathMLOperator::layoutBlock):
(WebCore::RenderMathMLOperator::computeLogicalHeight): Deleted.

  • rendering/mathml/RenderMathMLOperator.h:

LayoutTests:

Update some tests to take into account improved width computation and how the anonymous text
node of operators using MathOperator is layout.

  • platform/gtk/mathml/opentype/horizontal-expected.txt:
  • platform/gtk/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/gtk/mathml/opentype/large-operators-expected.txt:
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • platform/gtk/mathml/opentype/vertical-expected.png:
  • platform/gtk/mathml/opentype/vertical-expected.txt:
  • platform/gtk/mathml/presentation/mo-stretch-expected.png:
  • platform/gtk/mathml/presentation/mo-stretch-expected.txt:
  • platform/mac/mathml/opentype/large-operators-expected.txt:
  • platform/mac/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • platform/mac/mathml/opentype/vertical-expected.txt:
  • platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt:
11:26 AM Changeset in webkit [202283] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

run-javascriptcore-tests should have flag to skip mozilla tests
https://bugs.webkit.org/show_bug.cgi?id=158963
rdar://problem/25838924

Reviewed by Alexey Proskuryakov.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): Added flag to skip mozilla tests.

11:15 AM Changeset in webkit [202282] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Unreviewed, rolling out r202277.
https://bugs.webkit.org/show_bug.cgi?id=158992

imported/w3c/web-platform-tests/tools actually does exist, so
documentation files got executed as tests (Requested by ap on
#webkit).

Reverted changeset:

"Unskip non-existing imported/w3c/web-platform-tests/tools."
http://trac.webkit.org/changeset/202277

10:57 AM Changeset in webkit [202281] by Chris Dumez
  • 24 edits in trunk/Source/WebCore

Unreviewed, roll out r202268 as it looks like it was a ~50% regression on Dromaeo DOM Core

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GeneratePrototypeDeclaration):

  • bindings/scripts/test/JS/JSInterfaceName.cpp:

(WebCore::JSInterfaceNamePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::JSTestActiveDOMObjectPrototype::finishCreation):
(WebCore::JSTestActiveDOMObject::createPrototype): Deleted.
(WebCore::JSTestActiveDOMObject::prototype): Deleted.

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::JSTestClassWithJSBuiltinConstructorPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::JSTestCustomNamedGetterPrototype::finishCreation):
(WebCore::JSTestCustomNamedGetter::JSTestCustomNamedGetter): Deleted.
(WebCore::JSTestCustomNamedGetter::createPrototype): Deleted.

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructorPrototype::finishCreation):
(WebCore::JSTestEventConstructor::createPrototype): Deleted.
(WebCore::JSTestEventConstructor::prototype): Deleted.

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTargetPrototype::finishCreation):
(WebCore::JSTestEventTarget::JSTestEventTarget): Deleted.
(WebCore::JSTestEventTarget::createPrototype): Deleted.

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestExceptionPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachablePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfacePrototype::finishCreation):
(WebCore::jsTestInterfaceImplementsStr2): Deleted.

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::JSTestJSBuiltinConstructorPrototype::finishCreation):
(WebCore::JSTestJSBuiltinConstructor::JSTestJSBuiltinConstructor): Deleted.
(WebCore::JSTestJSBuiltinConstructor::createPrototype): Deleted.
(WebCore::JSTestJSBuiltinConstructor::destroy): Deleted.
(WebCore::jsTestJSBuiltinConstructorTestAttributeCustom): Deleted.

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::JSTestMediaQueryListListenerPrototype::finishCreation):
(WebCore::JSTestMediaQueryListListener::JSTestMediaQueryListListener): Deleted.
(WebCore::JSTestMediaQueryListListener::createPrototype): Deleted.

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodePrototype::finishCreation):
(WebCore::JSTestNode::JSTestNode): Deleted.
(WebCore::JSTestNode::prototype): Deleted.
(WebCore::jsTestNodeName): Deleted.

  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:

(WebCore::JSTestNondeterministicPrototype::finishCreation):
(WebCore::JSTestNondeterministic::JSTestNondeterministic): Deleted.
(WebCore::JSTestNondeterministic::prototype): Deleted.
(WebCore::JSTestNondeterministic::destroy): Deleted.

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjPrototype::finishCreation):
(WebCore::JSTestObj::JSTestObj): Deleted.
(WebCore::JSTestObj::createPrototype): Deleted.
(WebCore::JSTestObj::prototype): Deleted.
(WebCore::JSTestObj::destroy): Deleted.
(WebCore::JSTestObj::getOwnPropertySlot): Deleted.
(WebCore::JSTestObj::getOwnPropertySlotByIndex): Deleted.
(WebCore::jsTestObjReadOnlyLongAttr): Deleted.
(WebCore::jsTestObjReadOnlyStringAttr): Deleted.
(WebCore::jsTestObjReadOnlyTestObjAttr): Deleted.
(WebCore::jsTestObjConstructorStaticReadOnlyLongAttr): Deleted.
(WebCore::jsTestObjConstructorStaticStringAttr): Deleted.
(WebCore::jsTestObjConstructorTestSubObj): Deleted.
(WebCore::jsTestObjTestSubObjEnabledBySettingConstructor): Deleted.
(WebCore::jsTestObjEnumAttr): Deleted.
(WebCore::jsTestObjByteAttr): Deleted.
(WebCore::jsTestObjOctetAttr): Deleted.
(WebCore::jsTestObjShortAttr): Deleted.
(WebCore::jsTestObjClampedShortAttr): Deleted.
(WebCore::jsTestObjEnforceRangeShortAttr): Deleted.
(WebCore::jsTestObjUnsignedShortAttr): Deleted.
(WebCore::jsTestObjLongAttr): Deleted.
(WebCore::jsTestObjLongLongAttr): Deleted.
(WebCore::jsTestObjReflectedCustomBooleanAttr): Deleted.
(WebCore::jsTestObjReflectedCustomURLAttr): Deleted.

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:

(WebCore::JSTestOverrideBuiltinsPrototype::finishCreation):
(WebCore::JSTestOverrideBuiltins::JSTestOverrideBuiltins): Deleted.
(WebCore::JSTestOverrideBuiltins::createPrototype): Deleted.

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterfacePrototype::finishCreation):
(WebCore::JSTestSerializedScriptValueInterface::JSTestSerializedScriptValueInterface): Deleted.
(WebCore::JSTestSerializedScriptValueInterface::prototype): Deleted.
(WebCore::JSTestSerializedScriptValueInterface::destroy): Deleted.

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsPrototype::finishCreation):
(WebCore::JSTestTypedefs::JSTestTypedefs): Deleted.
(WebCore::JSTestTypedefs::createPrototype): Deleted.
(WebCore::JSTestTypedefs::prototype): Deleted.
(WebCore::JSTestTypedefs::destroy): Deleted.
(WebCore::jsTestTypedefsUnsignedLongLongAttr): Deleted.
(WebCore::jsTestTypedefsImmutableSerializedScriptValue): Deleted.
(WebCore::jsTestTypedefsAttrWithGetterException): Deleted.

  • bindings/scripts/test/JS/JSattribute.cpp:

(WebCore::JSattributePrototype::finishCreation):

  • bindings/scripts/test/JS/JSreadonly.cpp:

(WebCore::JSreadonlyPrototype::finishCreation):

10:54 AM Changeset in webkit [202280] by keith_miller@apple.com
  • 59 edits
    2 deletes in trunk/Source

It should be easy to add a private global helper function for builtins
https://bugs.webkit.org/show_bug.cgi?id=158893

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch does two things. First it moves all the builtin names
out of CommonIdentifiers and into BuiltinNames. This means that
adding a new function to the Builtins does not require rebuilding
all of JavaScriptCore. This patch also adds a new decorator to our
builtins @privateGlobal that will automatically put the function
on the global object. The name of the property will be the same as
the private name of the function.

This patch, also, removes the JSArrayIterator.h/.cpp files
as they no longer appear to be used in any real way. Finally,
the builtins tests have been rebaselined. It appears this has
not been done for a while so the expected files contain other
changes.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/builtins/builtins_generate_combined_header.py:

(BuiltinsCombinedHeaderGenerator.generate_output):
(generate_section_for_code_name_macro):
(generate_section_for_global_private_code_name_macro):

  • Scripts/builtins/builtins_model.py:

(BuiltinFunction.init):
(BuiltinFunction.fromString):

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
  • builtins/ArrayIteratorPrototype.js:
  • builtins/ArrayPrototype.js:
  • builtins/BuiltinNames.h:
  • builtins/GeneratorPrototype.js:
  • builtins/GlobalObject.js:
  • builtins/PromiseOperations.js:
  • builtins/RegExpPrototype.js:
  • builtins/StringPrototype.js:
  • bytecode/BytecodeIntrinsicRegistry.cpp:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::expectedFunctionForIdentifier):
(JSC::BytecodeGenerator::emitGetTemplateObject):
(JSC::BytecodeGenerator::emitLoadNewTargetFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitPutNewTargetToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitGeneratorStateChange):

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitHomeObjectForCallee):
(JSC::emitPutHomeObject):
(JSC::FunctionNode::emitBytecode):

  • dfg/DFGOperations.cpp:
  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::getInternalProperties): Deleted.

  • parser/Lexer.cpp:

(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::createGeneratorParameters):
(JSC::Parser<LexerType>::parseExportDeclaration):

  • runtime/ArrayIteratorPrototype.cpp:
  • runtime/ArrayIteratorPrototype.h:
  • runtime/ArrayPrototype.cpp:
  • runtime/CommonIdentifiers.cpp:

(JSC::CommonIdentifiers::CommonIdentifiers): Deleted.

  • runtime/CommonIdentifiers.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/IntlDateTimeFormat.cpp:
  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototypeGetterFormat):
(JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototypeGetterFormat):
(JSC::IntlNumberFormatPrototypeFuncResolvedOptions):

  • runtime/IntlObjectInlines.h:

(JSC::constructIntlInstanceWithWorkaroundForLegacyIntlConstructor):

  • runtime/JSArrayIterator.cpp: Removed.

(JSC::JSArrayIterator::finishCreation): Deleted.
(JSC::JSArrayIterator::kind): Deleted.
(JSC::JSArrayIterator::iteratedValue): Deleted.

  • runtime/JSArrayIterator.h: Removed.

(JSC::JSArrayIterator::createStructure): Deleted.
(JSC::JSArrayIterator::create): Deleted.
(JSC::JSArrayIterator::JSArrayIterator): Deleted.

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::finishCreation):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSInternalPromise.cpp:
  • runtime/JSInternalPromiseDeferred.cpp:

(JSC::JSInternalPromiseDeferred::create):

  • runtime/JSPromise.cpp:

(JSC::JSPromise::finishCreation):
(JSC::JSPromise::result):

  • runtime/JSPromiseDeferred.cpp:

(JSC::JSPromiseDeferred::create):

  • runtime/JSStringIterator.cpp:

(JSC::JSStringIterator::finishCreation):
(JSC::JSStringIterator::iteratedValue):
(JSC::JSStringIterator::clone):

  • runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):

  • runtime/ReflectObject.cpp:

(JSC::ReflectObject::finishCreation):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):

  • runtime/TypedArrayInlines.h:

Source/WebCore:

Add JSCJSValueInlines.h to fix build issues.

  • platform/mock/mediasource/MockBox.cpp:
10:20 AM Changeset in webkit [202279] by commit-queue@webkit.org
  • 10 edits in trunk/Source

Upstream WKHTTPCookiesForURL from WebKitSystemInterface to OpenSource
https://bugs.webkit.org/show_bug.cgi?id=158967

Patch by Amir Alavi <aalavi@apple.com> on 2016-06-21
Reviewed by Brent Fulgham.

Source/WebCore:

  • platform/ios/WebCoreSystemInterfaceIOS.mm:
  • platform/mac/WebCoreSystemInterface.h:
  • platform/mac/WebCoreSystemInterface.mm:
  • platform/network/mac/CookieJarMac.mm:

(WebCore::httpCookiesForURL): Upstreamed from WebKitSystemInterface.
(WebCore::cookiesForURL): Changed to call httpCookiesForURL.
(WebCore::deleteCookie): Ditto.

  • platform/spi/cf/CFNetworkSPI.h:

Source/WebKit/mac:

  • WebCoreSupport/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Deleted.

Source/WebKit2:

  • WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:

(InitWebCoreSystemInterface): Deleted.

10:05 AM Changeset in webkit [202278] by Chris Dumez
  • 9 edits in trunk/Source/WebCore

Unreviewed, rolling out r202231.

Seems to have regressed PLT on both iOS and Mac (very obvious
on iOS Warm PLT)

Reverted changeset:

"When navigating, discard decoded image data that is only live
due to page cache."
https://bugs.webkit.org/show_bug.cgi?id=158941
http://trac.webkit.org/changeset/202231

9:43 AM Changeset in webkit [202277] by Konstantin Tokarev
  • 2 edits in trunk/LayoutTests

Unskip non-existing imported/w3c/web-platform-tests/tools.

Unreviewed fix after r191043.

9:21 AM Changeset in webkit [202276] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Correct which test is marked as flaky, copy/paste mistake.

  • platform/mac-wk2/TestExpectations:
8:44 AM Changeset in webkit [202275] by commit-queue@webkit.org
  • 15 edits in trunk/Source/WebCore

Add bindings generator support to add a native JS function to both a 'name' and a private '@name' slot
https://bugs.webkit.org/show_bug.cgi?id=158777

Patch by Youenn Fablet <youennf@gmail.com> on 2016-06-21
Reviewed by Eric Carlson.

Adding a new PublicIdentifier keyword to cover the case of the same function exposed publicly and privately.
Renaming Private keyword to PrivateIdentifier.
Functions exposed both publicly and privately should set both keywords.
By default, functions are publically exposed.

Updated binding generator to generate public exposure except if PrivateIdentifer is set and PublicIdentifier is
not set.

Keeping skipping of ObjC/GObject binding for PrivateIdentifier-only functions.

Covered by rebased binding tests.

  • Modules/fetch/FetchHeaders.idl:
  • Modules/fetch/FetchResponse.idl:
  • Modules/mediastream/MediaDevices.idl:
  • Modules/mediastream/RTCPeerConnection.idl:
  • bindings/scripts/CodeGeneratorGObject.pm:

(SkipFunction):

  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePropertiesHashTable):
(GenerateImplementation):

  • bindings/scripts/CodeGeneratorObjC.pm:

(SkipFunction):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_private_also_method):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjPrototype::finishCreation):
(WebCore::jsTestObjPrototypeFunctionPrivateMethod):
(WebCore::jsTestObjPrototypeFunctionPrivateAlsoMethod):

  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj privateAlsoMethod:]):

  • bindings/scripts/test/TestObj.idl:
8:44 AM WebKitGTK/2.12.x edited by Michael Catanzaro
Propose change requested by Konstantin (diff)
6:15 AM Changeset in webkit [202274] by mitz@apple.com
  • 18 edits
    1 add in trunk/Source

Inlined some picture-in-picture code.
https://bugs.webkit.org/show_bug.cgi?id=158977

Reviewed by Eric Carlsson.

This code was written primarily by Ada Chan, and originally reviewed by Alex Christensen,
Anders Carlsson, Conrad Shultz, Dan Bernstein, Eric Carlson, Jer Noble, Jeremy Jones,
Jon Lee, Remy Demarest, and Zach Li.

Source/WebCore:

  • English.lproj/Localizable.strings: Updated using update-webkit-localizable-strings.
  • Modules/mediacontrols/mediaControlsApple.css:

(video:-webkit-full-screen::-webkit-media-controls-panel .picture-in-picture-button):

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.configureFullScreenControls):

  • WebCore.xcodeproj/project.pbxproj: Added PIPSPI.h.
  • html/HTMLMediaElement.cpp: Inlined code from HTMLMediaElementAdditions.cpp.
  • html/HTMLVideoElement.cpp: Inlined code from HTMLVideoElementSupportsFullscreenAdditions.cpp.
  • platform/LocalizedStrings.cpp:

(WebCore::contextMenuItemTagEnterVideoEnhancedFullscreen): Brought in from ContextMenuLocalizedStringsAdditions.cpp.
(WebCore::contextMenuItemTagExitVideoEnhancedFullscreen): Ditto.
(WebCore::AXARIAContentGroupText): Made updates that should have been part of r198543.

  • platform/mac/WebVideoFullscreenInterfaceMac.h: Removed USE(APPLE_INTERNAL_SDK) guards.
  • platform/mac/WebVideoFullscreenInterfaceMac.mm: Inlined WebVideoFullscreenInterfaceMacAdditions.mm.
  • platform/spi/mac/PIPSPI.h: Added.
  • rendering/HitTestResult.cpp: Inlined HitTestResultAdditions.cpp.
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::mediaControlsStyleSheet): Removed include of

RenderThemeMacMediaControlsStyleSheetAdditions.mm now that the content is in
mediaControlsApple.css.

(WebCore::RenderThemeMac::mediaControlsScript): Removed include of

RenderThemeMacMediaControlsScriptAdditions.mm now that the content is in mediaControlsApple.js.

Source/WebKit2:

  • Shared/WebPreferencesStoreDefaultsAdditions.cpp: Define and use DEFAULT_ALLOWS_PICTURE_IN_PICTURE_MEDIA_PLAYBACK.
  • Shared/WebPreferencesStore.cpp:

(WebKit::defaults): Removed include of WebPreferencesStoreDefaultsAdditions.cpp now that the

default is defined correctly in WebPreferencesStoreDefaultsAdditions.cpp.

  • UIProcess/API/C/WKPreferences.cpp: Inlined WKPreferencesAdditions.cpp.
  • UIProcess/API/C/WKPreferencesRefPrivate.h: Ditto.
  • WebProcess/cocoa/WebVideoFullscreenManager.mm: Inlined WebVideoFullscreenManagerSupportsVideoFullscreenMac.mm.
4:04 AM Changeset in webkit [202273] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

[GTK] Web view is not redrawn when reparented in force compositing mode
https://bugs.webkit.org/show_bug.cgi?id=158689

Reviewed by Žan Doberšek.

When the web view is reparented in accelerated compositing mode, the UI process always exits the accelerated
mode when the view is unrealized, because the native surface handle for compositing is destroyed, but it doesn't
enter again when the view is realized and a new native surface handle for compositing is used. This happens
because the UI and Web processes are not in sync regarding whether the page is in accelerated compositing or
not. The Web process never exits accelerated mode when compositing mode is forced, but the UI process doesn't
check that setting at all.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseResizeRedirectedWindow): Helper function to ensure the redirected window size is properly updated.
(webkitWebViewBaseRealize): Resize the redirected window if the view is already in AC mode when realized.
(webkitWebViewRenderAcceleratedCompositingResults): Use webkitWebViewBaseResizeRedirectedWindow().
(webkitWebViewBaseSizeAllocate): Ditto.
(webkitWebViewBaseWillEnterAcceleratedCompositingMode): Ditto.

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::alwaysUseCompositing): Return true in force compositing mode.
(WebKit::DrawingAreaProxyImpl::enterAcceleratedCompositingMode): Update assert.
(WebKit::DrawingAreaProxyImpl::exitAcceleratedCompositingMode): Do not exit AC mode compositing mode is always enabled.

  • UIProcess/DrawingAreaProxyImpl.h:

(WebKit::DrawingAreaProxyImpl::isInAcceleratedCompositingMode): Return true also in force compositing mode.

  • UIProcess/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::RedirectedXCompositeWindow::surface): Ensure we never return an uninitialized surface to prevent
rendering artifacts in in force compositing mode when waiting for the first update on the redirected window.

2:56 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:54 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:32 AM Changeset in webkit [202272] by commit-queue@webkit.org
  • 9 edits
    6 adds in trunk

[GStreamer] video orientation support
https://bugs.webkit.org/show_bug.cgi?id=148524

Patch by Miguel Gomez <magomez@igalia.com> on 2016-06-21
Reviewed by Philippe Normand.

Source/WebCore:

Rotate video frames to follow the orientation metadata in the video file.
When accelerated compositing is disabled, the rotation is performed by a videoflip element added
to the playbin.
When accelerated compositing is enabled, the rotation is peformed by the TextureMapper in response
to a rotation flag set on the frame buffers.

Test: media/video-orientation.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
Handle the GST_MESSAGE_TAG message from the bin.
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
Add the videflip element to the bin when accelerated compositing is disabled.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
Receive and use extra flags for the TextureMapper.
(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
When using accelerated compositing, transpose the video size if the rotation is 90 or 270 degrees.
(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
Add rotation flag to frame holder and layer buffer.
(WebCore::MediaPlayerPrivateGStreamerBase::paintToTextureMapper):
Use rotation flag when requesting the TextureMapper to draw.
(WebCore::MediaPlayerPrivateGStreamerBase::setVideoSourceRotation):
Function to store the video rotation.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:

Add bits to store the video rotation.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawTexturedQuadWithProgram):
Modify the patternTransform according to the rotation flag passed.

  • platform/graphics/texmap/TextureMapperGL.h:

Add new flags to handle the video souce rotation.

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):
Change the drawTexture method used so custom flags can be passed.

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h:

(WebCore::TextureMapperPlatformLayerBuffer::setExtraFlags):
New method to set TextureMapper flags.

LayoutTests:

Test whether the video is properly being displayed by checking the video
element size.

  • media/content/no-rotation.mp4: Added.
  • media/content/rotation-180.mp4: Added.
  • media/content/rotation-270.mp4: Added.
  • media/content/rotation-90.mp4: Added.
  • media/video-orientation-expected.txt: Added.
  • media/video-orientation.html: Added.
12:11 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)

Jun 20, 2016:

11:28 PM Changeset in webkit [202271] by fred.wang@free.fr
  • 12 edits in trunk

Use the MathOperator to handle some non-stretchy operators
https://bugs.webkit.org/show_bug.cgi?id=157519

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-20
Reviewed by Brent Fulgham.

Source/WebCore:

To prepare for the removal of anonymous text node from the render classes of token elements
we use MathOperator to handle two cases where the actual text to display may not be
available in the DOM: mfenced and minus operators. This change removes support for the
case of mfenced operators with multiple characters since that it is not supported by
MathOperator. It is a edge case that is not used in practice since fences and separators are
only made of a single character. However, it would still be possible to duplicate some
code/logic to add it back if that turns out to be necessary.

No new tests, already covered by existing tests.

  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::MathOperator): Rename UndefinedOperator.
(WebCore::RenderMathMLOperator::firstLineBaseline): Improve rounding of ascent so that mfenced operators are correctly aligned.

  • rendering/mathml/MathOperator.h: Rename UndefinedOperator, since it can now be used to draw non-stretchy operators.

(WebCore::MathOperator::isStretched): Deleted. This function is no longer used by RenderMathMLOperator.
(WebCore::MathOperator::unstretch): Deleted. This function is no longer used by RenderMathMLOperator.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Use useMathOperator.
(WebCore::RenderMathMLOperator::rebuildTokenContent): Set the MathOperator when useMathOperator() is true.
When the operator is not likely to stretch we just leave its type as NormalOperator.
(WebCore::RenderMathMLOperator::useMathOperator): Helper function to determine when MathOperator should be used.
(WebCore::RenderMathMLOperator::firstLineBaseline): Use useMathOperator.
(WebCore::RenderMathMLOperator::computeLogicalHeight): Ditto.
(WebCore::RenderMathMLOperator::paint): Ditto.
(WebCore::RenderMathMLOperator::paintChildren): Ditto.

  • rendering/mathml/RenderMathMLOperator.h: Declare useMathOperator.

LayoutTests:

We adjust fenced-mi.html to handle one edge case that we no longer support.
We also update some test references on Mac and iOS.

  • mathml/presentation/fenced-mi-expected.html: Indicate that this is no longer supported.
  • mathml/presentation/fenced-mi.html: Adjust the reference since no text is shown.
  • platform/mac/mathml/opentype/large-operators-expected.txt: Update reference.
  • platform/mac/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/mac/mathml/opentype/vertical-expected.txt: Ditto.
  • platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt: Ditto.
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
11:16 PM Changeset in webkit [202270] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Test expectation update for media/click-placeholder-not-pausing.html

  • platform/mac-wk2/TestExpectations:
11:08 PM Changeset in webkit [202269] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Test expectation update for
https://bugs.webkit.org/show_bug.cgi?id=158320
REGRESSION (r201476?): LayoutTest tiled-drawing/scrolling/latched-div-with-scroll-snap.html is flaky

  • platform/mac-wk2/TestExpectations:
9:56 PM Changeset in webkit [202268] by barraclough@apple.com
  • 24 edits in trunk/Source/WebCore

Don't eagerly reify DOM Prototype properties
https://bugs.webkit.org/show_bug.cgi?id=158557

Reviewed by Andreas Kling.

We were eagerly reifying these properties to avoid virtualizing getOwnPropertySlot,
but since bug #158059 this does not require a method table call in any case.
Eagerly reifying these values likely has some CPU and memory cost on page load.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • should generate compressed index for hashtable, prototype object ClassInfo should contain static table, don't reifyStaticProperties for prototype objects.

(GeneratePrototypeDeclaration):

  • Set HasStaticPropertyTable for DOM prototype objects.
  • bindings/scripts/test/JS/JSInterfaceName.cpp:

(WebCore::JSInterfaceNamePrototype::JSInterfaceNamePrototype):
(WebCore::JSInterfaceNamePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:

(WebCore::JSTestActiveDOMObjectPrototype::JSTestActiveDOMObjectPrototype):
(WebCore::JSTestActiveDOMObjectPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::JSTestClassWithJSBuiltinConstructorPrototype::JSTestClassWithJSBuiltinConstructorPrototype):
(WebCore::JSTestClassWithJSBuiltinConstructorPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::JSTestCustomConstructorWithNoInterfaceObjectPrototype):
(WebCore::JSTestCustomConstructorWithNoInterfaceObjectPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:

(WebCore::JSTestCustomNamedGetterPrototype::JSTestCustomNamedGetterPrototype):
(WebCore::JSTestCustomNamedGetterPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructorPrototype::JSTestEventConstructorPrototype):
(WebCore::JSTestEventConstructorPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTargetPrototype::JSTestEventTargetPrototype):
(WebCore::JSTestEventTargetPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestExceptionPrototype::JSTestExceptionPrototype):
(WebCore::JSTestExceptionPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachablePrototype::JSTestGenerateIsReachablePrototype):
(WebCore::JSTestGenerateIsReachablePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype):
(WebCore::JSTestInterfacePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::JSTestJSBuiltinConstructorPrototype::JSTestJSBuiltinConstructorPrototype):
(WebCore::JSTestJSBuiltinConstructorPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:

(WebCore::JSTestMediaQueryListListenerPrototype::JSTestMediaQueryListListenerPrototype):
(WebCore::JSTestMediaQueryListListenerPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestNamedConstructor.cpp:

(WebCore::JSTestNamedConstructorPrototype::JSTestNamedConstructorPrototype):
(WebCore::JSTestNamedConstructorPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodePrototype::JSTestNodePrototype):
(WebCore::JSTestNodePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestNondeterministic.cpp:

(WebCore::JSTestNondeterministicPrototype::JSTestNondeterministicPrototype):
(WebCore::JSTestNondeterministicPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjPrototype::JSTestObjPrototype):
(WebCore::JSTestObjPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
(WebCore::JSTestOverloadedConstructorsPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:

(WebCore::JSTestOverrideBuiltinsPrototype::JSTestOverrideBuiltinsPrototype):
(WebCore::JSTestOverrideBuiltinsPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterfacePrototype::JSTestSerializedScriptValueInterfacePrototype):
(WebCore::JSTestSerializedScriptValueInterfacePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefsPrototype::JSTestTypedefsPrototype):
(WebCore::JSTestTypedefsPrototype::finishCreation):

  • bindings/scripts/test/JS/JSattribute.cpp:

(WebCore::JSattributePrototype::JSattributePrototype):
(WebCore::JSattributePrototype::finishCreation):

  • bindings/scripts/test/JS/JSreadonly.cpp:

(WebCore::JSreadonlyPrototype::JSreadonlyPrototype):
(WebCore::JSreadonlyPrototype::finishCreation):

9:51 PM Changeset in webkit [202267] by adam.bergkvist@ericsson.com
  • 5 edits in trunk

WebRTC: RTCIceCandidate init dictionary don't handle explicit null or undefined values correctly
https://bugs.webkit.org/show_bug.cgi?id=158873

Reviewed by Alejandro G. Castro.

Source/WebCore:

Prevent explicit null and undefined values from being converted to "null" and "undefined"
strings.

Test: Extended fast/mediastream/RTCIceCandidate.html

  • Modules/mediastream/RTCIceCandidate.cpp:

(WebCore::RTCIceCandidate::create):

LayoutTests:

Updated test to verify that explicit null and undefined values, passed to the
RTCIceCandidate init dictionary, are handled correctly.

  • fast/mediastream/RTCIceCandidate-expected.txt:
  • fast/mediastream/RTCIceCandidate.html:
8:48 PM Changeset in webkit [202266] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: UncaughtExceptionReporter should handle null event.error
https://bugs.webkit.org/show_bug.cgi?id=158971

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-20
Reviewed by Brian Burg.

  • UserInterface/Debug/UncaughtExceptionReporter.js:

Since typeof null === "object" handle uncaught exceptions where the
Error object itself is null.

8:26 PM Changeset in webkit [202265] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebCore

Unreviewed, rolling out r202252.
https://bugs.webkit.org/show_bug.cgi?id=158974

See rdar://problem/26867866 for details (Requested by ap on
#webkit).

Reverted changeset:

"Adopt commitPriority to get rid of the 2 AVPL solution for
PiP"
https://bugs.webkit.org/show_bug.cgi?id=158949
http://trac.webkit.org/changeset/202252

8:22 PM Changeset in webkit [202264] by Joseph Pecoraro
  • 3 edits in trunk/LayoutTests

REGRESSION(r202253): Broke inspector/unit-tests/heap-snapshot-collection-event.html
https://bugs.webkit.org/show_bug.cgi?id=158973

Unreviewed fix after r202253.

  • inspector/unit-tests/heap-snapshot-collection-event-expected.txt:
  • inspector/unit-tests/heap-snapshot-collection-event.html:

Update the method name.

8:07 PM Changeset in webkit [202263] by commit-queue@webkit.org
  • 21 edits
    4 deletes in trunk

Unreviewed, rolling out r202243.
https://bugs.webkit.org/show_bug.cgi?id=158972

Broke Windows build and iOS tests (Requested by ap on
#webkit).

Reverted changeset:

"Focus event dispatched in iframe causes parent document to
scroll incorrectly"
https://bugs.webkit.org/show_bug.cgi?id=158629
http://trac.webkit.org/changeset/202243

8:01 PM Changeset in webkit [202262] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Simplify / Optimize DataDetector's searchForLinkRemovingExistingDDLinks()
https://bugs.webkit.org/show_bug.cgi?id=158968

Reviewed by Ryosuke Niwa.

Simplify / Optimize DataDetector's searchForLinkRemovingExistingDDLinks():

  • Use modern ancestorsOfType<HTMLAnchorElement>() to traverse anchor ancestors instead of traversing by hand.
  • Use NodeTraversal::next() to traverse the tree until we find endNode and use a for loop instead of a while loop. Previously, the logic the determine the next node was at the end of the loop and was identical behavior-wise to NodeTraversal::next(). However, the previous code for a lot less efficient because it was calling Node::childNodes() to get a NodeList of the children, then calling length() on it to check if we had children and finally use the first item in the list as next node. This was very inefficient because NodeList::length() would need to traverse all children to figure out the length and would cache all the children in a Vector in CollectionIndexCache.
  • dom/ElementAncestorIterator.h:

(WebCore::ancestorsOfType):

  • dom/ElementIterator.h:

(WebCore::findElementAncestorOfType):
(WebCore::findElementAncestorOfType<Element>):
Update ancestorsOfType() to take a Node instead of an Element. There are no
performance benefits to taking an Element here and it is a valid use case to
want an Element ancestor of a non-Element node.

  • editing/cocoa/DataDetection.mm:

(WebCore::searchForLinkRemovingExistingDDLinks):
(WebCore::dataDetectorTypeForCategory): Deleted.

6:48 PM Changeset in webkit [202261] by Yusuke Suzuki
  • 5 edits in trunk/Source/JavaScriptCore

[JSC] Use bytecode intrinsic to expose Module's loading status to builtin JS
https://bugs.webkit.org/show_bug.cgi?id=158871

Reviewed by Sam Weinig.

Now JSC has bytecode intrinsic system. Use it instead of exposing status values through the loader's properties.

  • builtins/ModuleLoaderObject.js:

(newRegistryEntry):
(fulfillFetch):
(fulfillTranslate):
(commitInstantiated):
(requestFetch):
(requestTranslate):
(requestInstantiate):
(requestResolveDependencies.):
(requestResolveDependencies):
(requestLink):
(link):
(provide):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • runtime/ModuleLoaderObject.cpp:

(JSC::ModuleLoaderObject::finishCreation): Deleted.

5:49 PM Changeset in webkit [202260] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.37.0.1/Source/WebKit2

Merged r202229. rdar://problem/26903312

5:48 PM Changeset in webkit [202259] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.37.0.1/Source/WebKit2

Merged r202224. rdar://problem/26903312

5:47 PM Changeset in webkit [202258] by bshafiei@apple.com
  • 6 edits in tags/Safari-602.1.37.0.1/Source

Merged r202142. rdar://problem/26903312

5:45 PM Changeset in webkit [202257] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.37.0.1/Source

Versioning.

5:32 PM Changeset in webkit [202256] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.37.0.1

New tag.

5:26 PM Changeset in webkit [202255] by commit-queue@webkit.org
  • 58 edits
    2 copies in trunk/Source

Unreviewed, rolling out r202248.
https://bugs.webkit.org/show_bug.cgi?id=158960

breaks builds on the simulator (Requested by keith_mi_ on
#webkit).

Reverted changeset:

"It should be easy to add a private global helper function for
builtins"
https://bugs.webkit.org/show_bug.cgi?id=158893
http://trac.webkit.org/changeset/202248

5:24 PM Changeset in webkit [202254] by rniwa@webkit.org
  • 12 edits in trunk

Unreviewed, rolling out r202136.
https://bugs.webkit.org/show_bug.cgi?id=158932

JSBench wasn't regressed by r202002 and r202111 on iOS after
all (Requested by rniwa_ on #webkit).

Reverted changeset:

"Unreviewed, rolling out r202002 and r202111."
https://bugs.webkit.org/show_bug.cgi?id=158638
http://trac.webkit.org/changeset/202136

Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-20

5:01 PM Changeset in webkit [202253] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Snapshot List should show the total size and the total live size
https://bugs.webkit.org/show_bug.cgi?id=157904
<rdar://problem/26372833>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-20
Reviewed by Brian Burg.

Include the live size of a snapshot in the snapshot list.

  • Localizations/en.lproj/localizedStrings.js:

New "Live Size" string.

  • UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:

(HeapSnapshot):
(HeapSnapshot.updateCategoriesAndMetadata):
(HeapSnapshot.prototype.update):
(HeapSnapshot.prototype.serialize):
(HeapSnapshotDiff):
(HeapSnapshotDiff.prototype.update):
(HeapSnapshot.buildCategories): Deleted.
(HeapSnapshot.prototype.updateCategories): Deleted.
(HeapSnapshotDiff.prototype.updateCategories): Deleted.

  • UserInterface/Proxies/HeapSnapshotDiffProxy.js:

(WebInspector.HeapSnapshotDiffProxy.prototype.updateForCollectionEvent):
(WebInspector.HeapSnapshotDiffProxy.prototype.update):
(WebInspector.HeapSnapshotDiffProxy.prototype.updateCategories): Deleted.

  • UserInterface/Proxies/HeapSnapshotProxy.js:

(WebInspector.HeapSnapshotProxy):
(WebInspector.HeapSnapshotProxy.deserialize):
(WebInspector.HeapSnapshotProxy.prototype.get liveSize):
(WebInspector.HeapSnapshotProxy.prototype.updateForCollectionEvent):
(WebInspector.HeapSnapshotProxy.prototype.update):
(WebInspector.HeapSnapshotProxy.prototype.updateCategories): Deleted.
Rename "updateCategories" to "update" and update both categories
and metadata, like the liveSize.

  • UserInterface/Views/HeapAllocationsTimelineDataGridNode.js:

(WebInspector.HeapAllocationsTimelineDataGridNode):
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype.createCellContent):
(WebInspector.HeapAllocationsTimelineDataGridNode.prototype._heapSnapshotCollectedNodes):
Update live size after collection.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView):
Include a live size column in the DataGrid.
(WebInspector.HeapAllocationsTimelineView.prototype.closed):
Cleanup listeners appropriately.

4:26 PM Changeset in webkit [202252] by jeremyj-wk@apple.com
  • 8 edits in trunk/Source/WebCore

Adopt commitPriority to get rid of the 2 AVPL solution for PiP
https://bugs.webkit.org/show_bug.cgi?id=158949
rdar://problem/26867866

Reviewed by Simon Fraser.

No new tests because there is no behavior change. This reverts changes from
https://bugs.webkit.org/show_bug.cgi?id=158148 and instead uses -[CAContext commitPriority:]
to prevent flicker when moving a layer between contexts.
commitPriority allows the layer to be added to the destination context before it is
removed from the source context.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: remove m_secondaryVideoLayer.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: ditto

(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity): ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds): ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity): ditto.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: ditto

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): ditto

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: ditto

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers):ditto

  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.h: ditto
  • platform/graphics/avfoundation/objc/VideoFullscreenLayerManager.mm: ditto

(WebCore::VideoFullscreenLayerManager::setVideoLayer): ditto
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenLayer): ditto and adopt commitPriority.
(WebCore::VideoFullscreenLayerManager::setVideoFullscreenFrame): ditto
(WebCore::VideoFullscreenLayerManager::setVideoLayers): Deleted.
(WebCore::VideoFullscreenLayerManager::didDestroyVideoLayer): remove m_secondaryVideoLayer.

  • platform/spi/cocoa/QuartzCoreSPI.h: Add commitPriority.
4:24 PM Changeset in webkit [202251] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Set the end position on the placeholder BidiRun properly.
https://bugs.webkit.org/show_bug.cgi?id=158958

Reviewed by Myles C. Maxfield.
rdar://problem/26609266

The second paramenter for BidiRun indicates the end position and not the length of the run.
This was regressed at r102875 where only the start position was changed from 0 to pos.

Source/WebCore:

Test: fast/text/international/bidi-style-in-isolate-crash.html

  • rendering/InlineIterator.h:

(WebCore::addPlaceholderRunForIsolatedInline):

LayoutTests:

  • fast/text/international/bidi-style-in-isolate-crash-expected.txt: Added.
  • fast/text/international/bidi-style-in-isolate-crash.html: Added.
4:23 PM Changeset in webkit [202250] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

A composition underline is placed to wrong position in RTL
https://bugs.webkit.org/show_bug.cgi?id=158602

Patch by Fujii Hironori <Fujii Hironori> on 2016-06-20
Reviewed by Myles C. Maxfield.

Source/WebCore:

InlineTextBox::paintCompositionUnderline does not take RTL into
account. The position of composition underline should be
mirrored in RTL.

Test: editing/input/composition-underline-rtl.html

  • rendering/InlineTextBox.cpp:

(WebCore::mirrorRTLSegment): New helper function to convert RTL start position to LTR.
(WebCore::InlineTextBox::paintDecoration): Use mirrorRTLSegment.
(WebCore::InlineTextBox::paintCompositionUnderline): Ditto.

LayoutTests:

  • editing/input/composition-underline-rtl-expected.html: Added.
  • editing/input/composition-underline-rtl.html: Added.
3:41 PM Changeset in webkit [202249] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit2

Allow Spotlight suggestions to be read by any process
https://bugs.webkit.org/show_bug.cgi?id=158950
<rdar://problem/26865374>

Reviewed by Alexey Proskuryakov.

Extend sandbox to allow all web processes to read Spotlight results.

  • Resources/PlugInSandboxProfiles/com.apple.WebKit.plugin-common.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
3:38 PM Changeset in webkit [202248] by keith_miller@apple.com
  • 58 edits
    2 deletes in trunk/Source

It should be easy to add a private global helper function for builtins
https://bugs.webkit.org/show_bug.cgi?id=158893

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch does two things. First it moves all the builtin names
out of CommonIdentifiers and into BuiltinNames. This means that
adding a new function to the Builtins does not require rebuilding
all of JavaScriptCore. This patch also adds a new decorator to our
builtins @privateGlobal that will automatically put the function
on the global object. The name of the property will be the same as
the private name of the function.

This patch, also, removes the JSArrayIterator.h/.cpp files
as they no longer appear to be used in any real way. Finally,
the builtins tests have been rebaselined. It appears this has
not been done for a while so the expected files contain other
changes.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/builtins/builtins_generate_combined_header.py:

(BuiltinsCombinedHeaderGenerator.generate_output):
(generate_section_for_code_name_macro):
(generate_section_for_global_private_code_name_macro):

  • Scripts/builtins/builtins_model.py:

(BuiltinFunction.init):
(BuiltinFunction.fromString):

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
  • builtins/ArrayIteratorPrototype.js:
  • builtins/ArrayPrototype.js:
  • builtins/BuiltinNames.h:
  • builtins/GeneratorPrototype.js:
  • builtins/GlobalObject.js:
  • builtins/PromiseOperations.js:
  • builtins/RegExpPrototype.js:
  • builtins/StringPrototype.js:
  • bytecode/BytecodeIntrinsicRegistry.cpp:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::expectedFunctionForIdentifier):
(JSC::BytecodeGenerator::emitGetTemplateObject):
(JSC::BytecodeGenerator::emitLoadNewTargetFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitPutNewTargetToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitGeneratorStateChange):

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitHomeObjectForCallee):
(JSC::emitPutHomeObject):
(JSC::FunctionNode::emitBytecode):

  • dfg/DFGOperations.cpp:
  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::getInternalProperties): Deleted.

  • parser/Lexer.cpp:

(JSC::Lexer<LChar>::parseIdentifier):
(JSC::Lexer<UChar>::parseIdentifier):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::createGeneratorParameters):
(JSC::Parser<LexerType>::parseExportDeclaration):

  • runtime/ArrayIteratorPrototype.cpp:
  • runtime/ArrayIteratorPrototype.h:
  • runtime/ArrayPrototype.cpp:
  • runtime/CommonIdentifiers.cpp:

(JSC::CommonIdentifiers::CommonIdentifiers): Deleted.

  • runtime/CommonIdentifiers.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/IntlDateTimeFormat.cpp:
  • runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototypeGetterFormat):
(JSC::IntlDateTimeFormatPrototypeFuncResolvedOptions):

  • runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototypeGetterFormat):
(JSC::IntlNumberFormatPrototypeFuncResolvedOptions):

  • runtime/IntlObjectInlines.h:

(JSC::constructIntlInstanceWithWorkaroundForLegacyIntlConstructor):

  • runtime/JSArrayIterator.cpp: Removed.

(JSC::JSArrayIterator::finishCreation): Deleted.
(JSC::JSArrayIterator::kind): Deleted.
(JSC::JSArrayIterator::iteratedValue): Deleted.

  • runtime/JSArrayIterator.h: Removed.

(JSC::JSArrayIterator::createStructure): Deleted.
(JSC::JSArrayIterator::create): Deleted.
(JSC::JSArrayIterator::JSArrayIterator): Deleted.

  • runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::JSGenericTypedArrayViewConstructor<ViewClass>::finishCreation):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSInternalPromise.cpp:
  • runtime/JSInternalPromiseDeferred.cpp:

(JSC::JSInternalPromiseDeferred::create):

  • runtime/JSPromise.cpp:

(JSC::JSPromise::finishCreation):
(JSC::JSPromise::result):

  • runtime/JSPromiseDeferred.cpp:

(JSC::JSPromiseDeferred::create):

  • runtime/JSStringIterator.cpp:

(JSC::JSStringIterator::finishCreation):
(JSC::JSStringIterator::iteratedValue):
(JSC::JSStringIterator::clone):

  • runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):

  • runtime/ObjectConstructor.cpp:

(JSC::ObjectConstructor::finishCreation):

  • runtime/ReflectObject.cpp:

(JSC::ReflectObject::finishCreation):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):

  • runtime/TypedArrayInlines.h:

Source/WebCore:

Add JSCJSValueInlines.h to fix build issues.

  • platform/mock/mediasource/MockBox.cpp:
3:30 PM Changeset in webkit [202247] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Test expectations gardening for
https://bugs.webkit.org/show_bug.cgi?id=155196

  • platform/mac-wk1/TestExpectations:
2:37 PM Changeset in webkit [202246] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Test result gardening.

  • platform/mac-wk2/TestExpectations:
2:30 PM Changeset in webkit [202245] by benjamin@webkit.org
  • 20 edits
    4 adds in trunk

:default CSS pseudo-class should match checkboxes+radios with a checked attribute
https://bugs.webkit.org/show_bug.cgi?id=156230

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/selectors/pseudo-classes/default-expected.txt:

Source/WebCore:

This patch update the :default pseudo class matching to be closer to the spec:
https://html.spec.whatwg.org/multipage/scripting.html#selector-default

The main remaining difference with the spec is the definition of "default button".
This is an unrelated problem that should be addressed separately.

The implementation was missing support for:
-input elements of type "checkbox" or "radio" with the "checked" attribute defined.
-option elements with the "selected" attribute defined.

The existing support for default button was pretty bad, I fixed that too.
The owner form now has a resetDefaultButton() API. When a Form Associated Element
becomes a submit button or loses that property, the element calls its form
to update the style as needed.

Whenever the submit button changes, 2 elements needs to have their style invalidated:
-The former default button.
-The new default button.
To invalidate the former button, FormElement now caches the computed
default button. When the default button changes, the cached value is invalidated
in addition to the new value.

Computing the new default button takes linear time in the number of form associated element.
To mitigate that, resetDefaultButton() is only called when changes are related
to submit buttons. Since those changes are rare, I don't expect the invalidation
to be a problem.

Tests: fast/css/pseudo-default-basics.html

fast/selectors/default-style-update.html

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::checkOne):

  • css/SelectorCheckerTestFunctions.h:

(WebCore::matchesDefaultPseudoClass):
(WebCore::isDefaultButtonForForm): Deleted.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::addPseudoClassType):

  • dom/Element.cpp:

(WebCore::Element::matchesValidPseudoClass):
(WebCore::Element::matchesInvalidPseudoClass):
(WebCore::Element::matchesDefaultPseudoClass):

  • dom/Element.h:

(WebCore::Element::matchesValidPseudoClass): Deleted.
(WebCore::Element::matchesInvalidPseudoClass): Deleted.
(WebCore::Element::isDefaultButtonForForm): Deleted.

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::parseAttribute):
(WebCore::HTMLButtonElement::matchesDefaultPseudoClass):

  • html/HTMLButtonElement.h:
  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::isDefaultButtonForForm): Deleted.

  • html/HTMLFormControlElement.h:
  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::~HTMLFormElement):
(WebCore::HTMLFormElement::registerFormElement):
(WebCore::HTMLFormElement::removeFormElement):
(WebCore::HTMLFormElement::defaultButton):
(WebCore::HTMLFormElement::resetDefaultButton):

  • html/HTMLFormElement.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::matchesDefaultPseudoClass):

  • html/HTMLInputElement.h:
  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::matchesDefaultPseudoClass):
(WebCore::HTMLOptionElement::parseAttribute):

  • html/HTMLOptionElement.h:
  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement):
(WebCore::Style::canShareStyleWithControl): Deleted.

LayoutTests:

  • fast/css/pseudo-default-basics-expected.html: Added.
  • fast/css/pseudo-default-basics.html: Added.
  • fast/selectors/default-style-update-expected.txt: Added.
  • fast/selectors/default-style-update.html: Added.
2:25 PM Changeset in webkit [202244] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

LLInt64 Float64 get_by_val doesn't purify NaN
https://bugs.webkit.org/show_bug.cgi?id=158956

Reviewed by Michael Saboff.

  • llint/LowLevelInterpreter64.asm: Fix the bug.
  • tests/stress/float64-array-nan-inlined.js: Make this test also run in LLInt-only mode to catch this bug.
2:22 PM Changeset in webkit [202243] by Simon Fraser
  • 21 edits
    4 adds in trunk

Focus event dispatched in iframe causes parent document to scroll incorrectly
https://bugs.webkit.org/show_bug.cgi?id=158629
rdar://problem/26521616

Reviewed by Tim Horton.
Source/WebCore:

When focussing elements in iframes, the page could scroll to an incorrect location.
This happened because code in Element::focus() tried to disable scrolling on focus,
but did so only for the current frame, so ancestor frames got programmatically scrolled.
On iOS we handle the scrolling in the UI process, so never want the web process to
do programmatic scrolling.

Fix by changing the focus and cache restore code to use SelectionRevealMode::DoNotReveal,
rather than manually prohibiting frame scrolling. Pass SelectionRevealMode through various callers,
and use RevealUpToMainFrame for iOS, allowing the UI process to do the zoomToRect: for the main frame.

Tests: fast/forms/ios/focus-input-in-iframe.html

fast/forms/ios/programmatic-focus-input-in-iframe.html

  • dom/Document.h:
  • dom/Element.cpp:

(WebCore::Element::scrollIntoView):
(WebCore::Element::scrollIntoViewIfNeeded):
(WebCore::Element::scrollIntoViewIfNotVisible):
(WebCore::Element::focus):
(WebCore::Element::updateFocusAppearance):

  • dom/Element.h:
  • editing/Editor.cpp:

(WebCore::Editor::insertTextWithoutSendingTextEvent):
(WebCore::Editor::revealSelectionAfterEditingOperation):
(WebCore::Editor::findStringAndScrollToVisible):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::updateAndRevealSelection):
(WebCore::FrameSelection::revealSelection):
(WebCore::FrameSelection::FrameSelection): Deleted.

  • editing/FrameSelection.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateFocusAppearance):

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::updateFocusAppearance):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToAnchor):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::autoscroll):

  • rendering/RenderLayer.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::scrollRectToVisible):

  • rendering/RenderObject.h:

Source/WebKit/mac:

Pass SelectionRevealMode::Reveal in existing code.

  • WebView/WebFrame.mm:

(-[WebFrame _scrollDOMRangeToVisible:]):
(-[WebFrame _scrollDOMRangeToVisible:withInset:]):
(-[WebFrame revealSelectionAtExtent:]):

  • WebView/WebHTMLView.mm:

(-[WebHTMLView jumpToSelection:]):
(-[WebHTMLView centerSelectionInVisibleArea:]):

Source/WebKit2:

Pass SelectionRevealMode::Reveal in existing code.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::centerSelectionInVisibleArea):

LayoutTests:

  • fast/forms/ios/focus-input-in-iframe-expected.txt: Added.
  • fast/forms/ios/focus-input-in-iframe.html: Added.
  • fast/forms/ios/programmatic-focus-input-in-iframe-expected.txt: Added.
  • fast/forms/ios/programmatic-focus-input-in-iframe.html: Added.
1:52 PM Changeset in webkit [202242] by Keith Rollin
  • 205 edits in trunk

Remove RefPtr::release() and change calls sites to use WTFMove()
https://bugs.webkit.org/show_bug.cgi?id=158369

Reviewed by Chris Dumez.

RefPtr::release() releases its managed pointer awkwardly. It's more
direct and clearer to use WTFMove to transfer ownership of the managed
pointer.

As part of this cleanup, also change a lot of explicit data types to
'auto'.

Source/JavaScriptCore:

  • API/JSObjectRef.cpp:

(JSClassCreate):

  • API/JSScriptRef.cpp:
  • API/JSValueRef.cpp:

(JSValueToStringCopy):

  • bytecompiler/StaticPropertyAnalyzer.h:

(JSC::StaticPropertyAnalyzer::newObject):
(JSC::StaticPropertyAnalyzer::mov):

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::invalidate):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):

  • inspector/InspectorValues.cpp:

(Inspector::InspectorValue::parseJSON):

  • inspector/agents/InspectorAgent.cpp:

(Inspector::InspectorAgent::activateExtraDomain):
(Inspector::InspectorAgent::activateExtraDomains):

  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::breakpointActionProbe):

  • inspector/remote/RemoteInspector.mm:

(Inspector::RemoteInspector::receivedSetupMessage):

  • jit/Repatch.cpp:

(JSC::linkPolymorphicCall):

  • runtime/GenericTypedArrayViewInlines.h:

(JSC::GenericTypedArrayView<Adaptor>::create):
(JSC::GenericTypedArrayView<Adaptor>::createUninitialized):

  • runtime/JSArrayBufferConstructor.cpp:

(JSC::constructArrayBuffer):

  • runtime/PropertyNameArray.h:

(JSC::PropertyNameArray::releaseData):

  • runtime/Structure.cpp:

(JSC::Structure::toStructureShape):

  • runtime/TypeSet.cpp:

(JSC::StructureShape::merge):

  • tools/FunctionOverrides.cpp:

(JSC::initializeOverrideInfo):

Source/WebCore:

No new tests: there's no new functionality, just a refactoring of
existing code.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::removeSamplesFromTrackBuffer):
(WebCore::SourceBuffer::provideMediaData):

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::start):

  • Modules/webdatabase/SQLCallbackWrapper.h:

(WebCore::SQLCallbackWrapper::clear):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::handlePostMessage):

  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):

  • bindings/js/JSMessagePortCustom.h:

(WebCore::handlePostMessage):

  • bindings/js/ScriptControllerMac.mm:

(WebCore::ScriptController::createScriptInstanceForWidget):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::readTerminal):

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::copyPropertiesInSet):

  • css/SVGCSSParser.cpp:

(WebCore::CSSParser::parseSVGValue):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertShapeValue):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::copyPropertiesInSet):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::loadPendingImages):

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::clearSheet):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::removeChildrenInRange):
(WebCore::CompositeEditCommand::removeNodeAndPruneAncestors):
(WebCore::CompositeEditCommand::prune):
(WebCore::CompositeEditCommand::replaceSelectedTextInNode):
(WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring):

  • editing/CreateLinkCommand.cpp:

(WebCore::CreateLinkCommand::doApply):

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::mergeStyle):
(WebCore::EditingStyle::mergeStyleFromRulesForSerialization):

  • editing/Editor.cpp:

(WebCore::ClearTextCommand::CreateAndApply):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):

  • editing/EditorCommand.cpp:

(WebCore::executeInsertNode):

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::performOverwrite):
(WebCore::InsertTextCommand::insertTab):

  • editing/RemoveNodePreservingChildrenCommand.cpp:

(WebCore::RemoveNodePreservingChildrenCommand::doApply):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplacementFragment::removeNodePreservingChildren):
(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor):

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):

  • html/HTMLFontElement.cpp:

(WebCore::HTMLFontElement::collectStyleForPresentationAttribute):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::prepareForSubmission):

  • html/HTMLTableElement.cpp:

(WebCore::leakBorderStyle):
(WebCore::leakGroupBorderStyle):

  • html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):

  • html/track/InbandDataTextTrack.cpp:

(WebCore::InbandDataTextTrack::addDataCue):

  • html/track/InbandGenericTextTrack.cpp:

(WebCore::InbandGenericTextTrack::newCuesParsed):

  • html/track/InbandWebVTTTextTrack.cpp:

(WebCore::InbandWebVTTTextTrack::newCuesParsed):

  • html/track/TextTrackCueList.cpp:

(WebCore::TextTrackCueList::add):

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getInlineStylesForNode):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::pushChildNodesToFrontend):

  • inspector/InspectorIndexedDBAgent.cpp:
  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::loadResource):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::buildObjectForSelectorList):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):

  • loader/ProgressTracker.cpp:

(WebCore::ProgressTracker::finalProgressComplete):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::disassociateDocumentLoader):
(WebCore::ApplicationCacheGroup::didFinishLoading):
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::loadCacheGroup):
(WebCore::ApplicationCacheStorage::cacheGroupForURL):
(WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
(WebCore::ApplicationCacheStorage::loadCache):

  • loader/archive/ArchiveResourceCollection.cpp:

(WebCore::ArchiveResourceCollection::popSubframeArchive):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::extract):
(WebCore::LegacyWebArchive::create):
(WebCore::LegacyWebArchive::createFromSelection):

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::createImage):

  • loader/icon/IconDatabase.cpp:

(WebCore::IconDatabase::setIconDataForIconURL):
(WebCore::IconDatabase::getOrCreateIconRecord):
(WebCore::IconDatabase::readFromDatabase):
(WebCore::IconDatabase::getImageDataForIconURLFromSQLDatabase):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::sessionStorage):
(WebCore::DOMWindow::localStorage):

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateDragAndDrop):

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::updateTransitions):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportViolation):

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::createOverlayIfNeeded):
(WebCore::ServicesOverlayController::determineActiveHighlight):

  • page/scrolling/AsyncScrollingCoordinator.h:

(WebCore::AsyncScrollingCoordinator::releaseScrollingTree):

  • page/scrolling/ScrollingStateNode.cpp:

(WebCore::ScrollingStateNode::cloneAndReset):

  • page/scrolling/ScrollingStateTree.cpp:

(WebCore::ScrollingStateTree::attachNode):

  • platform/audio/HRTFElevation.cpp:

(WebCore::getConcatenatedImpulseResponsesForSubject):

  • platform/graphics/DisplayRefreshMonitorManager.cpp:

(WebCore::DisplayRefreshMonitorManager::createMonitorForClient):

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::glyphDataForSystemFallback):

  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::processAttributedStrings):

  • platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:

(WebCore::MediaSelectionGroupAVFObjC::updateOptions):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):

  • platform/graphics/ca/GraphicsLayerCA.cpp:
  • platform/graphics/ca/PlatformCALayer.cpp:

(WebCore::PlatformCALayer::createCompatibleLayerOrTakeFromPool):

  • platform/graphics/cg/ImageBufferDataCG.cpp:

(WebCore::ImageBufferData::getData):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::asUnmultipliedImage):
(WebCore::FilterEffect::asPremultipliedImage):

  • platform/graphics/mac/ImageMac.mm:

(WebCore::Image::loadPlatformResource):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::createForCurrentGLContext):
(WebCore::GraphicsContext3D::paintRenderingResultsToImageData):

  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:

(WebCore::RealtimeMediaSourceCenterMac::createMediaStream):

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::MockRealtimeMediaSourceCenter::validateRequestConstraints):
(WebCore::MockRealtimeMediaSourceCenter::createMediaStream):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLForSlice):

  • platform/network/ResourceHandle.cpp:

(WebCore::ResourceHandle::create):

  • platform/network/cf/FormDataStreamCFNet.cpp:

(WebCore::formCreate):

  • platform/text/BidiContext.cpp:

(WebCore::BidiContext::copyStackRemovingUnicodeEmbeddingContexts):

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::build):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::createScrollbar):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::createScrollbar):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::createScrollbar):

  • rendering/RenderSearchField.cpp:

(WebCore::RenderSearchField::createScrollbar):

  • replay/ReplayController.cpp:

(WebCore::ReplayController::unloadSegment):

  • svg/SVGFEDiffuseLightingElement.cpp:

(WebCore::SVGFEDiffuseLightingElement::build):

  • svg/SVGFESpecularLightingElement.cpp:

(WebCore::SVGFESpecularLightingElement::build):

  • svg/properties/SVGListProperty.h:

(WebCore::SVGListProperty::getItemValuesAndWrappers):
(WebCore::SVGListProperty::insertItemBeforeValuesAndWrappers):
(WebCore::SVGListProperty::removeItemValuesAndWrappers):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::workerThread):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::internalAbort):

  • xml/XPathStep.cpp:

(WebCore::XPath::Step::nodesInAxis):

Source/WebKit:

  • Storage/StorageAreaImpl.cpp:

(WebCore::StorageAreaImpl::setItem):
(WebCore::StorageAreaImpl::removeItem):

Source/WebKit/mac:

  • Plugins/Hosted/NetscapePluginHostManager.mm:

(WebKit::NetscapePluginHostManager::instantiatePlugin):

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::create):
(WebKit::NetscapePluginInstanceProxy::loadRequest):
(WebKit::NetscapePluginInstanceProxy::demarshalValueFromArray):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(-[WebFramePolicyListener receivedPolicyDecision:]):

  • WebCoreSupport/WebSecurityOrigin.mm:

(-[WebSecurityOrigin initWithURL:]):

  • WebView/WebArchive.mm:

(-[WebArchive initWithMainResource:subresources:subframeArchives:]):
(-[WebArchive initWithData:]):

  • WebView/WebDataSource.mm:

(-[WebDataSource mainResource]):

  • WebView/WebFrame.mm:

(-[WebFrame _documentFragmentWithNodesAsParagraphs:]):

Source/WebKit2:

  • DatabaseProcess/DatabaseProcess.cpp:

(WebKit::DatabaseProcess::createDatabaseToWebProcessConnection):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::decode):

  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::initializeShareableResourceHandleFromStorageRecord):

  • Platform/mac/SharedMemoryMac.cpp:

(WebKit::SharedMemory::allocate):
(WebKit::SharedMemory::create):
(WebKit::SharedMemory::map):

  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::createWebProcessConnection):

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeToObjectStream):

  • Shared/API/c/WKImage.cpp:

(WKImageCreate):

  • Shared/API/c/WKNumber.cpp:

(WKBooleanCreate):
(WKDoubleCreate):
(WKUInt64Create):

  • Shared/API/c/WKSecurityOriginRef.cpp:

(WKSecurityOriginCreate):

  • Shared/API/c/WKSerializedScriptValue.cpp:

(WKSerializedScriptValueCreate):
(WKSerializedScriptValueCreateWithInternalRepresentation):

  • Shared/API/c/cairo/WKImageCairo.cpp:

(WKImageCreateFromCairoSurface):

  • Shared/API/c/cg/WKImageCG.cpp:

(WKImageCreateFromCGImage):

  • Shared/API/c/mac/WKCertificateInfoMac.mm:

(WKCertificateInfoCreateWithCertficateChain):

  • Shared/API/c/mac/WKObjCTypeWrapperRef.mm:

(WKObjCTypeWrapperCreate):

  • Shared/API/c/mac/WKWebArchive.cpp:

(WKWebArchiveCreate):
(WKWebArchiveCreateWithData):
(WKWebArchiveCreateFromRange):
(WKWebArchiveCopyMainResource):
(WKWebArchiveCopySubresources):
(WKWebArchiveCopySubframeArchives):

  • Shared/API/c/mac/WKWebArchiveResource.cpp:

(WKWebArchiveResourceCreate):

  • Shared/APIWebArchive.mm:

(API::WebArchive::WebArchive):

  • Shared/Plugins/Netscape/NetscapePluginModule.cpp:

(WebKit::NetscapePluginModule::getOrCreate):

  • Shared/ShareableBitmap.cpp:

(WebKit::ShareableBitmap::create):

  • Shared/ShareableResource.cpp:

(WebKit::ShareableResource::map):

  • Shared/gtk/ArgumentCodersGtk.cpp:

(IPC::ArgumentCoder<DragData>::decode):

  • UIProcess/API/C/CoordinatedGraphics/WKView.cpp:

(WKViewCreate):

  • UIProcess/API/C/WKBatteryStatus.cpp:

(WKBatteryStatusCreate):

  • UIProcess/API/C/WKGeolocationPosition.cpp:

(WKGeolocationPositionCreate_b):

  • UIProcess/API/C/WKGrammarDetail.cpp:

(WKGrammarDetailCreate):

  • UIProcess/API/C/WKPage.cpp:

(WKPageCopySessionState):

  • UIProcess/API/C/WKPageGroup.cpp:

(WKPageGroupCreateWithIdentifier):

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesCreate):
(WKPreferencesCreateWithIdentifier):
(WKPreferencesCreateCopy):

  • UIProcess/API/C/WKSessionRef.cpp:

(WKSessionCreate):

  • UIProcess/API/C/WKSessionStateRef.cpp:

(WKSessionStateCopyData):

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

(WKContextCopyPlugInInfoForBundleIdentifier):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadRequest:]):
(-[WKWebView loadFileURL:allowingReadAccessToURL:]):
(-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:]):
(-[WKWebView goToBackForwardListItem:]):
(-[WKWebView goBack]):
(-[WKWebView goForward]):
(-[WKWebView reload]):
(-[WKWebView reloadFromOrigin]):
(-[WKWebView _loadData:MIMEType:characterEncodingName:baseURL:userData:]):
(-[WKWebView _reloadWithoutContentBlockers]):
(-[WKWebView _sessionStateData]):
(-[WKWebView _restoreSessionState:andNavigate:]):

  • UIProcess/API/efl/ewk_database_manager.cpp:

(EwkDatabaseManager::createOriginList):

  • UIProcess/API/efl/ewk_storage_manager.cpp:

(EwkStorageManager::createOriginList):

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewCreateNewPage):
(webkitWebViewPrintFrame):
(getContentsAsMHTMLDataCallback):

  • UIProcess/Cocoa/SessionStateCoding.mm:

(WebKit::encodeSessionState):

  • UIProcess/GenericCallback.h:

(WebKit::CallbackMap::take):

  • UIProcess/GeolocationPermissionRequestManagerProxy.cpp:

(WebKit::GeolocationPermissionRequestManagerProxy::createRequest):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Notifications/NotificationPermissionRequestManagerProxy.cpp:

(WebKit::NotificationPermissionRequestManagerProxy::createRequest):

  • UIProcess/Plugins/PluginProcessManager.cpp:

(WebKit::PluginProcessManager::getOrCreatePluginProcess):

  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::StorageArea::setItem):
(WebKit::StorageManager::StorageArea::removeItem):
(WebKit::StorageManager::createLocalStorageMap):

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::addItem):
(WebKit::WebBackForwardList::clear):

  • UIProcess/WebCookieManagerProxy.cpp:

(WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
(WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::installViewStateChangeCompletionHandler):

  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::createWithLegacyDefaults):
(WebKit::WebPreferences::copy):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::~WebProcessPool):

  • UIProcess/mac/ViewSnapshotStore.mm:

(WebKit::ViewSnapshotStore::recordSnapshot):

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _webHitTestResult]):

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _askPageToComputePageRects]):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::setDragImage):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame hitTest:]):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInHitTestResult.mm:

(-[WKWebProcessPlugInHitTestResult nodeHandle]):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:

(+[WKWebProcessPlugInNodeHandle nodeHandleWithJSValue:inContext:]):
(-[WKWebProcessPlugInNodeHandle htmlIFrameElementContentFrame]):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInScriptWorld.mm:

(+[WKWebProcessPlugInScriptWorld world]):

  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundlePostSynchronousMessage):

  • WebProcess/InjectedBundle/API/c/WKBundleDOMWindowExtension.cpp:

(WKBundleDOMWindowExtensionCreate):

  • WebProcess/InjectedBundle/API/c/WKBundleHitTestResult.cpp:

(WKBundleHitTestResultCopyNodeHandle):
(WKBundleHitTestResultCopyURLElementHandle):

  • WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.cpp:

(WKBundleNavigationActionCopyHitTestResult):
(WKBundleNavigationActionCopyFormElement):

  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:

(WKBundleNodeHandleCreate):
(WKBundleNodeHandleCopyDocument):
(WKBundleNodeHandleCopySnapshotWithOptions):
(WKBundleNodeHandleCopyVisibleRange):
(WKBundleNodeHandleCopyHTMLTableCellElementCellAbove):
(WKBundleNodeHandleCopyDocumentFrame):
(WKBundleNodeHandleCopyHTMLFrameElementContentFrame):
(WKBundleNodeHandleCopyHTMLIFrameElementContentFrame):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageCreateSnapshotWithOptions):
(WKBundlePageCreateSnapshotInViewCoordinates):
(WKBundlePageCreateSnapshotInDocumentCoordinates):
(WKBundlePageCreateScaledSnapshotInDocumentCoordinates):
(WKBundlePagePostSynchronousMessageForTesting):

  • WebProcess/InjectedBundle/API/c/WKBundleRangeHandle.cpp:

(WKBundleRangeHandleCreate):
(WKBundleRangeHandleCopySnapshotWithOptions):

  • WebProcess/InjectedBundle/API/c/WKBundleScriptWorld.cpp:

(WKBundleScriptWorldCreateWorld):

  • WebProcess/InjectedBundle/API/mac/WKDOMNode.mm:

(-[WKDOMNode _copyBundleNodeHandleRef]):

  • WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:

(-[WKDOMRange _copyBundleRangeHandleRef]):

  • WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp:

(WebKit::InjectedBundleCSSStyleDeclarationHandle::getOrCreate):

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::imageForRect):
(WebKit::InjectedBundleNodeHandle::renderedImage):

  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:

(WebKit::InjectedBundleRangeHandle::getOrCreate):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::create):

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::loadURL):

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:

(WebKit::PDFPlugin::createScrollbar):

  • WebProcess/Storage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::applyChange):

  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toFormData):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::createPlugin):
(WebKit::WebFrameLoaderClient::recreatePlugin):
(WebKit::WebFrameLoaderClient::createJavaAppletWidget):
(WebKit::WebFrameLoaderClient::createNetworkingContext):

  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:

(WebKit::WebInspectorClient::highlight):

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::convertImageToBitmap):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindUIAfterPageScroll):

  • WebProcess/WebPage/VisitedLinkTableController.cpp:

(WebKit::VisitedLinkTableController::getOrCreate):
(WebKit::VisitedLinkTableController::setVisitedLinkTable):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::createWithCoreMainFrame):
(WebKit::WebFrame::createSubframe):
(WebKit::WebFrame::create):
(WebKit::WebFrame::createSelectionSnapshot):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::createPlugin):
(WebKit::WebPage::snapshotAtSize):
(WebKit::WebPage::snapshotNode):
(WebKit::WebPage::willPerformLoadDragDestinationAction):
(WebKit::WebPage::SandboxExtensionTracker::didStartProvisionalLoad):
(WebKit::WebPage::SandboxExtensionTracker::didCommitProvisionalLoad):
(WebKit::WebPage::drawRectToImage):

  • WebProcess/WebPage/WebPageGroupProxy.cpp:

(WebKit::WebPageGroupProxy::create):

  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:

(WebKit::PlatformCAAnimationRemote::Properties::decode):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::create):
(WebKit::PlatformCALayerRemote::clone):

  • WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:

(WebKit::PlatformCALayerRemoteCustom::create):
(WebKit::PlatformCALayerRemoteCustom::clone):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::createDisplayRefreshMonitor):

Tools:

  • DumpRenderTree/mac/PixelDumpSupportMac.mm:

(createBitmapContextFromWebView):
(createPagedBitmapContext):

  • DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::setMockGeolocationPosition):

  • TestWebKitAPI/Tests/WTF/HashCountedSet.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/HashMap.cpp:

(TestWebKitAPI::TEST):

1:48 PM Changeset in webkit [202241] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.145

New tag.

1:47 PM Changeset in webkit [202240] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.7.5

New tag.

1:40 PM Changeset in webkit [202239] by ap@apple.com
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r202179.
https://bugs.webkit.org/show_bug.cgi?id=158946

The test either fails or times out 100% of the time (Requested
by ap on #webkit).

Reverted changeset:

"REGRESSION: Double tap to zoom does not work on yahoo
finance"
https://bugs.webkit.org/show_bug.cgi?id=158886
http://trac.webkit.org/changeset/202179

Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-20

1:38 PM Changeset in webkit [202238] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Crash in PlatformMediaSession::clientWillPausePlayback
https://bugs.webkit.org/show_bug.cgi?id=158953
<rdar://problem/26121125>

Reviewed by Jer Noble.

No new tests, I have not been able to reproduce this in a test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::stop): Ref the element before calling stopWithoutDestroyingMediaPlayer

because updatePlaybackControlsManager can release the last reference and cause the
destructor to be called.

(WebCore::HTMLMediaElement::suspend): Ditto.

1:35 PM Changeset in webkit [202237] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Fix a run-webkit-tests --lint warning.

  • platform/mac/TestExpectations:
1:34 PM Changeset in webkit [202236] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Clean up ResourceResponseBase after r201943
https://bugs.webkit.org/show_bug.cgi?id=158706

Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-20
Reviewed by Michael Catanzaro.

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::ResourceResponseBase):
(WebCore::ResourceResponseBase::asResourceResponse): Deleted.

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::platformCompare):

1:30 PM Changeset in webkit [202235] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Test expectations gardening for
https://bugs.webkit.org/show_bug.cgi?id=155196

Marked the tests as flaky instead of skipping, to make the results visible on the
flakiness dashboard. Also added video-with-data-url-allowed-by-media-src-star.html,
which is very flaky too.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
12:12 PM Changeset in webkit [202234] by Joseph Pecoraro
  • 22 edits
    2 adds in trunk

Web Inspector: console.profile should use the new Sampling Profiler
https://bugs.webkit.org/show_bug.cgi?id=153499
<rdar://problem/24352431>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Currently console.profile/profileEnd behave slightly differently
between JSContext and Web inspection. Unifying will be part of:
<https://webkit.org/b/158753> Generalize the concept of Instruments on the backend

Both JSContext and Web inspection keep track of active
profiles started and stopped via console.profile/profileEnd.

JSContext inspection sends its programmatic start/stop
via the ScriptProfiler domain.

Web inspection sends its programmatic start/stop
via the Timeline domain, and also will start/stop backend
list of Instruments.

The functional differences between these is that for JSContext
inspection, console.profile only starts/stops the ScriptProfiler
domain, and does not auto-start other instruments. This isn't really
a problem right now given the instruments available for JSContext
inspection; but it will be nice to unify as we add more instruments.
Also, JSContext inspection won't have "Profile (name)" records in
its Events view, since those are currently generated only by the
Web's Timeline domain.

  • inspector/protocol/ScriptProfiler.json:
  • inspector/protocol/Timeline.json:

Events to inform the frontend of programmatic start/stop.

  • debugger/Debugger.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::breakpointsActive):
(Inspector::InspectorDebuggerAgent::isPaused):

  • inspector/agents/InspectorDebuggerAgent.h:

Expose breakpoints active state, since programmatic recording
will temporarily disabled breakpoints if needed.

  • inspector/JSGlobalObjectConsoleClient.cpp:

(Inspector::JSGlobalObjectConsoleClient::JSGlobalObjectConsoleClient):
(Inspector::JSGlobalObjectConsoleClient::profile):
(Inspector::JSGlobalObjectConsoleClient::profileEnd):
(Inspector::JSGlobalObjectConsoleClient::startConsoleProfile):
(Inspector::JSGlobalObjectConsoleClient::stopConsoleProfile):

  • inspector/JSGlobalObjectConsoleClient.h:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):

  • inspector/agents/InspectorScriptProfilerAgent.cpp:

(Inspector::InspectorScriptProfilerAgent::programmaticCaptureStarted):
(Inspector::InspectorScriptProfilerAgent::programmaticCaptureStopped):

  • inspector/agents/InspectorScriptProfilerAgent.h:

JSContext implementation of console.profile/profileEnd.

Source/WebCore:

Test: inspector/timeline/setInstruments-programmatic-capture.html

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):
(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
(WebCore::InspectorTimelineAgent::startProgrammaticCapture):
(WebCore::InspectorTimelineAgent::stopProgrammaticCapture):
(WebCore::InspectorTimelineAgent::toggleInstruments):
(WebCore::InspectorTimelineAgent::toggleScriptProfilerInstrument):
(WebCore::InspectorTimelineAgent::toggleHeapInstrument):
(WebCore::InspectorTimelineAgent::toggleMemoryInstrument):
(WebCore::InspectorTimelineAgent::toggleTimelineInstrument):

  • inspector/InspectorTimelineAgent.h:

Web implementation of console.profile/profileEnd.
Make helpers for startings / stopping instruments.

Source/WebInspectorUI:

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.programmaticCaptureStarted):
(WebInspector.TimelineManager.prototype.programmaticCaptureStopped):
(WebInspector.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStarted):
(WebInspector.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStopped):
For programmatic captures, automatically show the Script Timeline, since
that is guarenteed to have been started by the backend. Start capturing
without creating a new recording.

  • UserInterface/Models/TimelineRecording.js:

(WebInspector.TimelineRecording.prototype.stop):
(WebInspector.TimelineRecording.prototype.addScriptInstrumentForProgrammaticCapture):
When stopping for programmatic capture we don't need to disable
instruments, the backend would have already done this.

  • UserInterface/Protocol/ScriptProfilerObserver.js:

(WebInspector.ScriptProfilerObserver.prototype.programmaticCaptureStarted):
(WebInspector.ScriptProfilerObserver.prototype.programmaticCaptureStopped):
(WebInspector.ScriptProfilerObserver):

  • UserInterface/Protocol/TimelineObserver.js:

(WebInspector.TimelineObserver.prototype.programmaticCaptureStarted):
(WebInspector.TimelineObserver.prototype.programmaticCaptureStopped):
(WebInspector.TimelineObserver):
Pass through Web and JSContext programmatic capture events.

LayoutTests:

  • inspector/timeline/setInstruments-programmatic-capture-expected.txt: Added.
  • inspector/timeline/setInstruments-programmatic-capture.html: Added.

New test that the backend auto-starts instruments during programmatic capture.

12:10 PM Changeset in webkit [202233] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, rebaseline test now that TouchEvent has a constructor.

  • fast/events/touch/document-create-touch-list-ios-expected.txt:
11:52 AM Changeset in webkit [202232] by timothy_horton@apple.com
  • 2 edits
    1 add in trunk/Tools

Add a API test for *DeferringViewInWindowChanges as fixed in r202230
https://bugs.webkit.org/show_bug.cgi?id=158947

Reviewed by Simon Fraser.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/DeferredViewInWindowStateChange.mm: Added.

(TestWebKitAPI::didFinishLoadForFrame):
(TestWebKitAPI::setPageLoaderClient):
(TestWebKitAPI::TEST):
Add a test ensuring that in-window state changes are deferred when using
the SPI for deferring them, as fixed in r202230.

10:23 AM Changeset in webkit [202231] by akling@apple.com
  • 9 edits in trunk/Source/WebCore

When navigating, discard decoded image data that is only live due to page cache.
<https://webkit.org/b/158941>

Reviewed by Antti Koivisto.

A resource is "live" if it's currently in use by a web page, and "dead" if it's
only kept alive by the memory cache.

This patch adds a mechanism that looks at CachedImage resources to see if all the
clients that make them appear "live" are actually pages in the page cache.

If so, we let the "jettison expensive objects on top-level navigation" mechanism
discard the decoded data for such half-live images. This can reduce the peak
memory usage during navigations quite a bit.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad): Move the call to MemoryPressureHandler
before we add the outgoing page to the page cache. This allows the jettisoning code
to make decisions based on which pages were cached *before* the navigation.

  • loader/cache/CachedImageClient.h:

(WebCore::CachedImageClient::inPageCache):

  • loader/ImageLoader.h:
  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::inPageCache):

  • rendering/RenderObject.h:

(WebCore::RenderObject::inPageCache): Added a CachedImageClient::inPageCache() virtual
to determine which clients are currently in page cache (answered by their Document.)

  • loader/cache/CachedImage.h:
  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::areAllClientsInPageCache): Walks all CachedImageClient clients
and returns true if all of them are inPageCache().

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::jettisonExpensiveObjectsOnTopLevelNavigation):
Walk all the known CachedImages and nuke decoded data for those that have some but
are only considered live due to clients in the page cache.

10:13 AM Changeset in webkit [202230] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

REGRESSION (r191499): Tab content "jumps" down when focusing tabs that load in the background
https://bugs.webkit.org/show_bug.cgi?id=158904
<rdar://problem/26025831>

Reviewed by Sam Weinig.

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::viewDidMoveToWindow):
During the large refactor that was r191499, we somehow ended up with two
different members for the same thing - one that got written, and one that
got read. We should only have one.

10:10 AM Changeset in webkit [202229] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Try to fix the iOS build after r202142 and r202224.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

10:02 AM Nightly Builds edited by rniwa@webkit.org
Add the link to El Capitan workarounds (diff)
9:10 AM Changeset in webkit [202228] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix post-landing review comment from Darin on r202188.

  • platform/network/CacheValidation.cpp:

(WebCore::parseCacheHeader):

1:52 AM Changeset in webkit [202227] by Antti Koivisto
  • 5 edits
    2 adds in trunk

Updating class name of a shadow host does not update the style applied by :host()
https://bugs.webkit.org/show_bug.cgi?id=158900
<rdar://problem/26883707>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/shadow-dom/shadow-host-style-update.html

Teach style invalidation optimization code about :host.

  • style/AttributeChangeInvalidation.cpp:

(WebCore::Style::mayBeAffectedByHostStyle):
(WebCore::Style::AttributeChangeInvalidation::invalidateStyle):

  • style/ClassChangeInvalidation.cpp:

(WebCore::Style::computeClassChange):
(WebCore::Style::mayBeAffectedByHostStyle):
(WebCore::Style::ClassChangeInvalidation::invalidateStyle):

  • style/IdChangeInvalidation.cpp:

(WebCore::Style::mayBeAffectedByHostStyle):
(WebCore::Style::IdChangeInvalidation::invalidateStyle):

LayoutTests:

  • fast/shadow-dom/shadow-host-style-update-expected.html: Added.
  • fast/shadow-dom/shadow-host-style-update.html: Added.
12:07 AM Changeset in webkit [202226] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

WebKitTestRunner: Missing \n at the line of "#PROCESS UNRESPONSIVE"
https://bugs.webkit.org/show_bug.cgi?id=158931

Patch by Fujii Hironori <Fujii Hironori> on 2016-06-20
Reviewed by Alexey Proskuryakov.

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::dumpWebProcessUnresponsiveness): Appended missing \n at the end of line.

Jun 19, 2016:

11:56 PM Changeset in webkit [202225] by fred.wang@free.fr
  • 10 edits in trunk/Source/ThirdParty

Update Brotli to version 0.4.0
https://bugs.webkit.org/show_bug.cgi?id=158907

Reviewed by Michael Catanzaro.

  • brotli/README.webkit:
  • brotli/dec/bit_reader.h:
  • brotli/dec/decode.c:
  • brotli/dec/decode.h:
  • brotli/dec/huffman.c:
  • brotli/dec/huffman.h:
  • brotli/dec/port.h:

(BrotliDump):

  • brotli/dec/state.c:
  • brotli/dec/state.h:
10:53 PM Changeset in webkit [202224] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Fix erroneously commented line added in r202142.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

8:57 PM Changeset in webkit [202223] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Test expectation gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
7:35 PM Changeset in webkit [202222] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Test expectation gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
6:59 PM Changeset in webkit [202221] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Mark shadow-dom tests to pass because it was enabled by r202091
https://bugs.webkit.org/show_bug.cgi?id=158930

Unreviewed EFL gardening.

  • platform/efl/TestExpectations:
6:22 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
6:19 PM Changeset in webkit [202220] by Michael Catanzaro
  • 2 edits
    2 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening

  • fast/forms/select-non-native-rendering-direction-expected.txt: Added.
  • fast/text/hyphenate-avoid-orphaned-word-expected.txt: Added.
  • platform/gtk/TestExpectations:
5:17 PM Changeset in webkit [202219] by ap@apple.com
  • 36 edits
    27 copies
    3 moves
    38 adds
    3 deletes in trunk

Add test expectations for macOS Sierra
https://bugs.webkit.org/show_bug.cgi?id=158903

Reviewed by Alex Christensen.

Tools:

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/Sierra@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

Added dashboard support.

  • BuildSlaveSupport/build.webkit.org-config/wkbuild.py:
  • BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:

Trigger the right build queues on check-in.

  • Scripts/webkitpy/common/system/platforminfo.py:
  • Scripts/webkitpy/common/system/platforminfo_unittest.py:
  • Scripts/webkitpy/layout_tests/models/test_expectations.py:
  • Scripts/webkitpy/port/mac.py:
  • Scripts/webkitpy/port/mac_unittest.py:
  • TestResultServer/static-dashboards/flakiness_dashboard.js:

Added cases for Sierra, and updated tests for new baseline search paths.

LayoutTests:

  • TestExpectations:
  • media/click-placeholder-not-pausing-expected.txt: Added.
  • media/click-placeholder-not-pausing.html: Added.
  • media/controls/picture-in-picture-expected.txt: Added.
  • media/controls/picture-in-picture.html: Added.
  • media/element-containing-pip-video-going-into-fullscreen-expected.txt: Added.
  • media/element-containing-pip-video-going-into-fullscreen.html: Added.
  • media/fullscreen-api-enabled-media-with-presentation-mode-expected.txt: Added.
  • media/fullscreen-api-enabled-media-with-presentation-mode.html: Added.
  • media/fullscreen-video-going-into-pip-expected.txt: Added.
  • media/fullscreen-video-going-into-pip.html: Added.
  • media/navigate-with-pip-should-not-crash-expected.txt: Added.
  • media/navigate-with-pip-should-not-crash.html: Added.
  • media/pip-video-going-into-fullscreen-expected.txt: Added.
  • media/pip-video-going-into-fullscreen.html: Added.
  • media/video-contained-in-fullscreen-element-going-into-pip-expected.txt: Added.
  • media/video-contained-in-fullscreen-element-going-into-pip.html: Added.
  • platform/mac-elcapitan: Added.
  • platform/mac-elcapitan/compositing: Added.
  • platform/mac-elcapitan/compositing/rtl: Added.
  • platform/mac-elcapitan/compositing/rtl/rtl-overflow-scrolling-expected.txt: Copied from LayoutTests/platform/mac/compositing/rtl/rtl-overflow-scrolling-expected.txt.
  • platform/mac-elcapitan/fast: Added.
  • platform/mac-elcapitan/fast/block: Added.
  • platform/mac-elcapitan/fast/block/float: Added.
  • platform/mac-elcapitan/fast/block/float/026-expected.png: Copied from LayoutTests/platform/mac/fast/block/float/026-expected.png.
  • platform/mac-elcapitan/fast/block/float/026-expected.txt: Copied from LayoutTests/platform/mac/fast/block/float/026-expected.txt.
  • platform/mac-elcapitan/fast/block/float/028-expected.png: Copied from LayoutTests/platform/mac/fast/block/float/028-expected.png.
  • platform/mac-elcapitan/fast/block/float/028-expected.txt: Copied from LayoutTests/platform/mac/fast/block/float/028-expected.txt.
  • platform/mac-elcapitan/fast/overflow: Added.
  • platform/mac-elcapitan/fast/overflow/unreachable-overflow-rtl-bug-expected.png: Copied from LayoutTests/platform/mac/fast/overflow/unreachable-overflow-rtl-bug-expected.png.
  • platform/mac-elcapitan/fast/overflow/unreachable-overflow-rtl-bug-expected.txt: Copied from LayoutTests/platform/mac/fast/overflow/unreachable-overflow-rtl-bug-expected.txt.
  • platform/mac-elcapitan/fast/ruby: Added.
  • platform/mac-elcapitan/fast/ruby/bopomofo-expected.png: Copied from LayoutTests/platform/mac/fast/ruby/bopomofo-expected.png.
  • platform/mac-elcapitan/fast/ruby/bopomofo-expected.txt: Copied from LayoutTests/platform/mac/fast/ruby/bopomofo-expected.txt.
  • platform/mac-elcapitan/fast/ruby/bopomofo-letter-spacing-expected.png: Copied from LayoutTests/platform/mac/fast/ruby/bopomofo-letter-spacing-expected.png.
  • platform/mac-elcapitan/fast/ruby/bopomofo-letter-spacing-expected.txt: Copied from LayoutTests/platform/mac/fast/ruby/bopomofo-letter-spacing-expected.txt.
  • platform/mac-elcapitan/fast/ruby/bopomofo-rl-expected.png: Copied from LayoutTests/platform/mac/fast/ruby/bopomofo-rl-expected.png.
  • platform/mac-elcapitan/fast/ruby/bopomofo-rl-expected.txt: Copied from LayoutTests/platform/mac/fast/ruby/bopomofo-rl-expected.txt.
  • platform/mac-elcapitan/fast/text: Added.
  • platform/mac-elcapitan/fast/text/crash-complex-text-surrogate-expected.txt: Copied from LayoutTests/platform/mac/fast/text/crash-complex-text-surrogate-expected.txt.
  • platform/mac-elcapitan/fast/text/justify-ideograph-complex-expected.png: Copied from LayoutTests/platform/mac/fast/text/justify-ideograph-complex-expected.png.
  • platform/mac-elcapitan/fast/text/justify-ideograph-complex-expected.txt: Copied from LayoutTests/platform/mac/fast/text/justify-ideograph-complex-expected.txt.
  • platform/mac-elcapitan/fast/text/line-initial-and-final-swashes-expected.png: Copied from LayoutTests/platform/mac/fast/text/line-initial-and-final-swashes-expected.png.
  • platform/mac-elcapitan/fast/text/line-initial-and-final-swashes-expected.txt: Copied from LayoutTests/platform/mac/fast/text/line-initial-and-final-swashes-expected.txt.
  • platform/mac-elcapitan/http: Added.
  • platform/mac-elcapitan/http/tests: Added.
  • platform/mac-elcapitan/http/tests/cookies: Added.
  • platform/mac-elcapitan/http/tests/cookies/third-party-cookie-relaxing-expected.txt: Copied from LayoutTests/http/tests/cookies/third-party-cookie-relaxing-expected.txt.
  • platform/mac-elcapitan/http/tests/security: Added.
  • platform/mac-elcapitan/http/tests/security/mixedContent: Added.
  • platform/mac-elcapitan/http/tests/security/mixedContent/insecure-audio-video-in-main-frame-expected.txt: Copied from LayoutTests/platform/mac/http/tests/security/mixedContent/insecure-audio-video-in-main-frame-expected.txt.
  • platform/mac-elcapitan/media: Added.
  • platform/mac-elcapitan/media/controls-strict-expected.png: Copied from LayoutTests/platform/mac/media/controls-strict-expected.png.
  • platform/mac-elcapitan/media/controls-strict-expected.txt: Copied from LayoutTests/platform/mac/media/controls-strict-expected.txt.
  • platform/mac-elcapitan/media/controls-without-preload-expected.png: Copied from LayoutTests/platform/mac/media/controls-without-preload-expected.png.
  • platform/mac-elcapitan/media/controls-without-preload-expected.txt: Copied from LayoutTests/platform/mac/media/controls-without-preload-expected.txt.
  • platform/mac-elcapitan/media/track: Added.
  • platform/mac-elcapitan/media/track/video-track-alternate-groups-expected.txt: Copied from LayoutTests/platform/mac/media/track/video-track-alternate-groups-expected.txt.
  • platform/mac-elcapitan/media/video-controls-rendering-expected.txt: Copied from LayoutTests/platform/mac/media/video-controls-rendering-expected.txt.
  • platform/mac-elcapitan/media/video-display-toggle-expected.png: Copied from LayoutTests/platform/mac/media/video-display-toggle-expected.png.
  • platform/mac-elcapitan/media/video-display-toggle-expected.txt: Copied from LayoutTests/platform/mac/media/video-display-toggle-expected.txt.
  • platform/mac-elcapitan/media/video-no-audio-expected.txt: Copied from LayoutTests/platform/mac/media/video-no-audio-expected.txt.
  • platform/mac-elcapitan/media/video-volume-slider-expected.txt: Copied from LayoutTests/platform/mac/media/video-volume-slider-expected.txt.
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac-wk2/fast/scrolling: Added.
  • platform/mac-wk2/fast/scrolling/rtl-scrollbars-animation-property-expected.txt: Added.
  • platform/mac/TestExpectations:
  • platform/mac/compositing/rtl/rtl-overflow-scrolling-expected.png: Added.
  • platform/mac/compositing/rtl/rtl-overflow-scrolling-expected.txt:
  • platform/mac/fast/block/float/026-expected.png:
  • platform/mac/fast/block/float/026-expected.txt:
  • platform/mac/fast/block/float/028-expected.png:
  • platform/mac/fast/block/float/028-expected.txt:
  • platform/mac/fast/overflow/unreachable-overflow-rtl-bug-expected.png:
  • platform/mac/fast/overflow/unreachable-overflow-rtl-bug-expected.txt:
  • platform/mac/fast/ruby/bopomofo-expected.png:
  • platform/mac/fast/ruby/bopomofo-expected.txt:
  • platform/mac/fast/ruby/bopomofo-letter-spacing-expected.png:
  • platform/mac/fast/ruby/bopomofo-letter-spacing-expected.txt:
  • platform/mac/fast/ruby/bopomofo-rl-expected.png:
  • platform/mac/fast/ruby/bopomofo-rl-expected.txt:
  • platform/mac/fast/text/crash-complex-text-surrogate-expected.txt:
  • platform/mac/fast/text/justify-ideograph-complex-expected.png:
  • platform/mac/fast/text/justify-ideograph-complex-expected.txt:
  • platform/mac/fast/text/line-initial-and-final-swashes-expected.png:
  • platform/mac/fast/text/line-initial-and-final-swashes-expected.txt:
  • platform/mac/http/tests/cookies/third-party-cookie-relaxing-expected.txt: Added.
  • platform/mac/http/tests/security/mixedContent/insecure-audio-video-in-main-frame-expected.txt:
  • platform/mac/media/controls-strict-expected.png: Removed.
  • platform/mac/media/controls-without-preload-expected.png: Removed.
  • platform/mac/media/track/video-track-alternate-groups-expected.txt:
  • platform/mac/media/video-controls-rendering-expected.png: Removed.
  • platform/mac/media/video-display-toggle-expected.png: Removed.
  • platform/mac/media/video-no-audio-expected.png: Removed.
  • platform/mac/media/video-volume-slider-expected.png: Removed.
5:03 PM Changeset in webkit [202218] by barraclough@apple.com
  • 25 edits in trunk/Source/WebCore

Remove hasStaticPropertyTable (part 5: done!)
https://bugs.webkit.org/show_bug.cgi?id=158431

Reviewed by Chris Dumez.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):

  • remove hasStaticPropertyTable.
  • bindings/scripts/test/JS/JSInterfaceName.h:

(WebCore::JSInterfaceName::create):

  • bindings/scripts/test/JS/JSTestActiveDOMObject.h:

(WebCore::JSTestActiveDOMObject::create):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:

(WebCore::JSTestClassWithJSBuiltinConstructor::create):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:

(WebCore::JSTestCustomConstructorWithNoInterfaceObject::create):

  • bindings/scripts/test/JS/JSTestCustomNamedGetter.h:

(WebCore::JSTestCustomNamedGetter::create):

  • bindings/scripts/test/JS/JSTestEventConstructor.h:

(WebCore::JSTestEventConstructor::create):

  • bindings/scripts/test/JS/JSTestEventTarget.h:

(WebCore::JSTestEventTarget::create):

  • bindings/scripts/test/JS/JSTestException.h:

(WebCore::JSTestException::create):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:

(WebCore::JSTestGenerateIsReachable::create):

  • bindings/scripts/test/JS/JSTestGlobalObject.h:
  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:

(WebCore::JSTestJSBuiltinConstructor::create):

  • bindings/scripts/test/JS/JSTestMediaQueryListListener.h:

(WebCore::JSTestMediaQueryListListener::create):

  • bindings/scripts/test/JS/JSTestNamedConstructor.h:

(WebCore::JSTestNamedConstructor::create):

  • bindings/scripts/test/JS/JSTestNode.h:
  • bindings/scripts/test/JS/JSTestNondeterministic.h:

(WebCore::JSTestNondeterministic::create):

  • bindings/scripts/test/JS/JSTestObj.h:

(WebCore::JSTestObj::create):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.h:

(WebCore::JSTestOverloadedConstructors::create):

  • bindings/scripts/test/JS/JSTestOverrideBuiltins.h:

(WebCore::JSTestOverrideBuiltins::create):

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:

(WebCore::JSTestSerializedScriptValueInterface::create):

  • bindings/scripts/test/JS/JSTestTypedefs.h:

(WebCore::JSTestTypedefs::create):

  • bindings/scripts/test/JS/JSattribute.h:

(WebCore::JSattribute::create):

  • bindings/scripts/test/JS/JSreadonly.h:

(WebCore::JSreadonly::create):

3:19 PM Changeset in webkit [202217] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove Sidebar z-index:0 workaround for scrollbars and position:sticky section headers
https://bugs.webkit.org/show_bug.cgi?id=158882

Reviewed by Darin Adler.

The z-index:0 workaround is no longer needed as it doesn't change anything.

  • UserInterface/Views/Sidebar.css:

(.sidebar > .panel): Deleted.

1:49 PM Changeset in webkit [202216] by ap@apple.com
  • 2 edits in trunk/Tools

Another buid fix for master.cfg.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(CompileWebKit.start):

1:35 PM Changeset in webkit [202215] by ap@apple.com
  • 2 edits in trunk/Tools

Another buid fix for master.cfg.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(CompileWebKit.start):

12:42 PM Changeset in webkit [202214] by sbarati@apple.com
  • 26 edits
    2 adds in trunk/Source/JavaScriptCore

We should be able to generate more types of ICs inline
https://bugs.webkit.org/show_bug.cgi?id=158719
<rdar://problem/26825641>

Reviewed by Filip Pizlo.

This patch changes how we emit code for *byId ICs inline.
We no longer keep data labels to patch structure checks, etc.
Instead, we just regenerate the entire IC into a designated
region of code that the Baseline/DFG/FTL JIT will emit inline.
This makes it much simpler to patch inline ICs. All that's
needed to patch an inline IC is to memcpy the code from
a macro assembler inline using LinkBuffer. This architecture
will be easy to extend into other forms of ICs, such as one
for add, in the future.

To support this change, I've reworked the fields inside
StructureStubInfo. It now has one field that is the CodeLocationLabel
of the start of the inline IC. Then it has a few ints that track deltas
to other locations in the IC such as the slow path start, slow path call, the
ICs 'done' location. We used to perform math on these ints in a bunch of different
places. I've consolidated that math into methods inside StructureStubInfo.

To generate inline ICs, I've implemented a new class called InlineAccess.
InlineAccess is stateless: it just has a bunch of static methods for
generating code into the inline region specified by StructureStubInfo.
Repatch will now decide when it wants to generate such an inline
IC, and it will ask InlineAccess to do so.

I've implemented three types of inline ICs to begin with (extending
this in the future should be easy):

  • Self property loads (both inline and out of line offsets).
  • Self property replace (both inline and out of line offsets).
  • Array length on specific array types.

(An easy extension would be to implement JSString length.)

To know how much inline space to reserve, I've implemented a
method that stubs out the various inline cache shapes and
dumps their size. This is used to determine how much space
to save inline. When InlineAccess ends up generating more
code than can fit inline, we will fall back to generating
code with PolymorphicAccess instead.

To make generating code into already allocated executable memory
efficient, I've made AssemblerData have 128 bytes of inline storage.
This saves us a malloc when splatting code into the inline region.

This patch also tidies up LinkBuffer's API for generating
into already allocated executable memory. Now, when generating
code that has less size than the already allocated space, LinkBuffer
will fill the extra space with nops. Also, if branch compaction shrinks
the code, LinkBuffer will add a nop sled at the end of the shrunken
code to take up the entire allocated size.

This looks like it could be a 1% octane progression.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::nop):
(JSC::ARM64Assembler::fillNops):

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::nopw):
(JSC::ARMv7Assembler::nopPseudo16):
(JSC::ARMv7Assembler::nopPseudo32):
(JSC::ARMv7Assembler::fillNops):
(JSC::ARMv7Assembler::dmbSY):

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::addLinkTask):
(JSC::AbstractMacroAssembler::emitNops):
(JSC::AbstractMacroAssembler::AbstractMacroAssembler):

  • assembler/AssemblerBuffer.h:

(JSC::AssemblerData::AssemblerData):
(JSC::AssemblerData::operator=):
(JSC::AssemblerData::~AssemblerData):
(JSC::AssemblerData::buffer):
(JSC::AssemblerData::grow):
(JSC::AssemblerData::isInlineBuffer):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::ensureSpace):
(JSC::AssemblerBuffer::codeSize):
(JSC::AssemblerBuffer::setCodeSize):
(JSC::AssemblerBuffer::label):
(JSC::AssemblerBuffer::debugOffset):
(JSC::AssemblerBuffer::releaseAssemblerData):

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):
(JSC::LinkBuffer::linkCode):
(JSC::LinkBuffer::allocate):
(JSC::LinkBuffer::performFinalization):
(JSC::LinkBuffer::shrink): Deleted.

  • assembler/LinkBuffer.h:

(JSC::LinkBuffer::LinkBuffer):
(JSC::LinkBuffer::debugAddress):
(JSC::LinkBuffer::size):
(JSC::LinkBuffer::wasAlreadyDisassembled):
(JSC::LinkBuffer::didAlreadyDisassemble):
(JSC::LinkBuffer::applyOffset):
(JSC::LinkBuffer::code):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::patchableBranch32):
(JSC::MacroAssemblerARM64::patchableBranch64):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::patchableBranch32):
(JSC::MacroAssemblerARMv7::patchableBranchPtrWithPatch):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::nop):
(JSC::X86Assembler::fillNops):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::printGetByIdCacheStatus):

  • bytecode/InlineAccess.cpp: Added.

(JSC::InlineAccess::dumpCacheSizesAndCrash):
(JSC::linkCodeInline):
(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::getScratchRegister):
(JSC::hasFreeRegister):
(JSC::InlineAccess::canGenerateSelfPropertyReplace):
(JSC::InlineAccess::generateSelfPropertyReplace):
(JSC::InlineAccess::isCacheableArrayLength):
(JSC::InlineAccess::generateArrayLength):
(JSC::InlineAccess::rewireStubAsJump):

  • bytecode/InlineAccess.h: Added.

(JSC::InlineAccess::sizeForPropertyAccess):
(JSC::InlineAccess::sizeForPropertyReplace):
(JSC::InlineAccess::sizeForLengthAccess):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initArrayLength):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::aboutToDie):
(JSC::StructureStubInfo::propagateTransitions):
(JSC::StructureStubInfo::containsPC):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::considerCaching):
(JSC::StructureStubInfo::slowPathCallLocation):
(JSC::StructureStubInfo::doneLocation):
(JSC::StructureStubInfo::slowPathStartLocation):
(JSC::StructureStubInfo::patchableJumpForIn):
(JSC::StructureStubInfo::valueRegs):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileIn):
(JSC::FTL::DFG::LowerDFGToB3::getById):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITByIdGenerator::finalize):
(JSC::JITByIdGenerator::generateFastCommon):
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):
(JSC::JITGetByIdGenerator::generateFastPath):
(JSC::JITPutByIdGenerator::JITPutByIdGenerator):
(JSC::JITPutByIdGenerator::generateFastPath):
(JSC::JITPutByIdGenerator::slowPathFunction):
(JSC::JITByIdGenerator::generateFastPathChecks): Deleted.

  • jit/JITInlineCacheGenerator.h:

(JSC::JITByIdGenerator::reportSlowPathCall):
(JSC::JITByIdGenerator::slowPathBegin):
(JSC::JITByIdGenerator::slowPathJump):
(JSC::JITGetByIdGenerator::JITGetByIdGenerator):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitGetByValWithCachedId):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id):

  • jit/Repatch.cpp:

(JSC::repatchCall):
(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::appropriateGenericPutByIdFunction):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryRepatchIn):
(JSC::repatchIn):
(JSC::linkSlowFor):
(JSC::resetGetByID):
(JSC::resetPutByID):
(JSC::resetIn):
(JSC::repatchByIdSelfAccess): Deleted.
(JSC::resetGetByIDCheckAndLoad): Deleted.
(JSC::resetPutByIDCheckAndLoad): Deleted.
(JSC::replaceWithJump): Deleted.

11:26 AM Changeset in webkit [202213] by Lucas Forschler
  • 2 edits in trunk/Tools

Fix master.cfg

Unreviewed build fix.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(CompileWebKit.start):

11:02 AM Changeset in webkit [202212] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test another commit.

Unreviewed.

10:51 AM Changeset in webkit [202211] by youenn.fablet@crf.canon.fr
  • 4 edits in trunk/Source/WebCore

The JSBuiltinConstructor feature can't handle a JS interface extending an other JS interface
https://bugs.webkit.org/show_bug.cgi?id=158834

Reviewed by Eric Carlson.

No change of behavior.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader): Explicitly setting DOMWrapped type definition from
JSXX class deriving from another JSYY class.

  • bindings/scripts/test/JS/JSTestEventTarget.h: Rebased.
  • bindings/scripts/test/JS/JSTestNode.h: Ditto.
10:48 AM Changeset in webkit [202210] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test commit.

Unreviewed.

10:35 AM Changeset in webkit [202209] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test another commit.

Unreviewed.

10:31 AM Changeset in webkit [202208] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test commit.

Unreviewed.

10:19 AM Changeset in webkit [202207] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test yet another commit.

Unreviewed.

10:01 AM Changeset in webkit [202206] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test another commit.

Unreviewed.

9:42 AM Changeset in webkit [202205] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

REGRESSION(concurrent baseline JIT): Kraken/ai-astar runs 20% slower
https://bugs.webkit.org/show_bug.cgi?id=158906

Reviewed by Benjamin Poulain.

The concurrent baseline JIT was a 2-3% progression on JSBench, possibly a 1% progression
on PLT3, but a 2-5% regression on Kraken. This patch fixes the Kraken regression without
affecting the other tests.

The problem is that Kraken/ai-astar's initialization code had a ginormous piece of init
code that took about 16ms to compile in baseline. There's no good way to avoid letting it
tier-up into baseline since it has a compute loop. The time it takes to run this code is
never measured. The concurrent baseline JIT caused us to schedule the compilation of this
huge code rather than doing it eagerly. This meant that after initialization was done and
we started actually running real stuff, all of the real stuff's compiles would be convoyed
behind this super-expensive baseline compile. Note that DFG and FTL compiles convoy behind
baseline compiles, since you can't schedule a DFG compile for a code block until that code
block is in baseline.

This uses the simplest fix: if we are thinking about scheduling some compile and the
thread is busy, do the compile on the main thread instead. This doesn't completely
eliminate the ai-astar regression (we still have a 4% regression on that test) but it now
results in concurrent baseline JIT being an overall progression on Kraken as a whole (1%
on my machine). This is because concurrent baseline appears to help on other tests.

In the future, we could fix this even better by allowing the JITWorklist to spawn more
threads or by being smarter about baseline compilation. I think it's nasty that if a giant
piece of initialization code ends in a compute loop, we compile all of the code instead of
just the loop. It's also gross that a constant-like object creation expression will result
in so much code. It would result in less code if we allowed ourselves to do a bit more
static reasoning about object literals.

But for now, I think that this is a great way to recover the Kraken regression while still
keeping the other progressions from concurrent baseline.

  • jit/JITWorklist.cpp:

(JSC::JITWorklist::Plan::Plan):
(JSC::JITWorklist::Plan::compileInThread):
(JSC::JITWorklist::Plan::finalize):
(JSC::JITWorklist::Plan::codeBlock):
(JSC::JITWorklist::Plan::isFinishedCompiling):
(JSC::JITWorklist::Plan::compileNow):
(JSC::JITWorklist::JITWorklist):
(JSC::JITWorklist::compileLater):
(JSC::JITWorklist::compileNow):
(JSC::JITWorklist::runThread):
(JSC::JITWorklist::Plan::isFinalized): Deleted.

  • jit/JITWorklist.h:
9:28 AM Changeset in webkit [202204] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test commit.

Unreviewed.

8:54 AM Changeset in webkit [202203] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test post-commit after apache restart.

Unreviewed.

8:22 AM Changeset in webkit [202202] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Testing yet another fix for trac-mirror.

Unreviewed.

8:16 AM Changeset in webkit [202201] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Testing another fix for trac-mirror.

Unreviewed.

8:10 AM Changeset in webkit [202200] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Testing fix for trac-mirror.

Unreviewed.

7:53 AM Changeset in webkit [202199] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test a commit against the SVN 1.9 server upgrade.

Unreviewed.

Jun 18, 2016:

4:46 AM Changeset in webkit [202198] by Antti Koivisto
  • 16 edits in trunk/Source/WebCore

Use time literals in WebCore
https://bugs.webkit.org/show_bug.cgi?id=158905

Reviewed by Andreas Kling.

std::chrono::milliseconds(1) -> 1ms etc.

  • dom/Document.cpp:

(WebCore::Document::minimumLayoutDelay):
(WebCore::Document::elapsedTime):

  • fileapi/FileReader.cpp:

(WebCore::FileReader::create):

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::showPaintRect):

  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCache::CrossOriginPreflightResultCache):

  • loader/ProgressTracker.cpp:

(WebCore::ProgressTracker::progressStarted):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::freshnessLifetime):

  • page/ChromeClient.h:
  • page/DOMTimer.cpp:

(WebCore::DOMTimer::intervalClampedToMinimum):
(WebCore::DOMTimer::alignedFireTime):

  • page/DOMTimer.h:
  • page/FrameView.cpp:

(WebCore::FrameView::scrollPositionChanged):

  • page/ResourceUsageThread.cpp:

(WebCore::ResourceUsageThread::threadBody):

  • page/Settings.cpp:

(WebCore::Settings::Settings):

  • page/mac/ServicesOverlayController.mm:

(WebCore::ServicesOverlayController::remainingTimeUntilHighlightShouldBeShown):

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::fontForFamily):

  • platform/network/CacheValidation.cpp:

(WebCore::computeCurrentAge):
(WebCore::computeFreshnessLifetimeForHTTPFamily):

Jun 17, 2016:

10:53 PM Changeset in webkit [202197] by benjamin@webkit.org
  • 21 edits
    8 adds
    1 delete in trunk

:indeterminate pseudo-class should match radios whose group has no checked radio
https://bugs.webkit.org/show_bug.cgi?id=156270

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/selectors/pseudo-classes/indeterminate-expected.txt:

One more pass on official tests :)

Source/WebCore:

The pseudo-class ":indeterminate" is supposed to match radio buttons
for which the entire group has no checked button.
Spec: https://html.spec.whatwg.org/#pseudo-classes:selector-indeterminate

The change is straightforward with one non-obvious choice:
I added matchesIndeterminatePseudoClass() in addition to shouldAppearIndeterminate().

The reason is shouldAppearIndeterminate() is used for styling and AX of elements
with an indeterminate states (check boxes and progress element). There is no such
UI for radio boxes.
I could have extended shouldAppearIndeterminate() to radio box
then filter out this case in RenderTheme. The problem is doing that would also requires
changes to the repaint logic to match :indeterminate. It seemed overkill to me to
change repaint() for a case that is never used in practice.

Tests: fast/css/pseudo-indeterminate-radio-buttons-basics.html

fast/css/pseudo-indeterminate-with-radio-buttons-style-invalidation.html
fast/selectors/detached-radio-button-checked-and-indeterminate-states.html
fast/selectors/pseudo-indeterminate-with-radio-buttons-style-update.html

  • css/SelectorCheckerTestFunctions.h:

(WebCore::shouldAppearIndeterminate):

  • dom/Element.cpp:

(WebCore::Element::matchesIndeterminatePseudoClass):

  • dom/Element.h:
  • dom/RadioButtonGroups.cpp:

(WebCore::RadioButtonGroup::setCheckedButton):
(WebCore::RadioButtonGroup::updateCheckedState):
(WebCore::RadioButtonGroup::remove):
(WebCore::RadioButtonGroup::setNeedsStyleRecalcForAllButtons):
(WebCore::RadioButtonGroups::hasCheckedButton):

  • dom/RadioButtonGroups.h:
  • html/CheckboxInputType.cpp:

(WebCore::CheckboxInputType::matchesIndeterminatePseudoClass):
(WebCore::CheckboxInputType::shouldAppearIndeterminate):
(WebCore::CheckboxInputType::supportsIndeterminateAppearance): Deleted.

  • html/CheckboxInputType.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setChecked):
(WebCore::HTMLInputElement::matchesIndeterminatePseudoClass):
(WebCore::HTMLInputElement::shouldAppearIndeterminate):
(WebCore::HTMLInputElement::radioButtonGroups):

  • html/HTMLInputElement.h:
  • html/InputType.cpp:

(WebCore::InputType::matchesIndeterminatePseudoClass):
(WebCore::InputType::shouldAppearIndeterminate):
(WebCore::InputType::supportsIndeterminateAppearance): Deleted.

  • html/InputType.h:
  • html/RadioInputType.cpp:

(WebCore::RadioInputType::matchesIndeterminatePseudoClass):
(WebCore::RadioInputType::willDispatchClick): Deleted.
(WebCore::RadioInputType::didDispatchClick): Deleted.
(WebCore::RadioInputType::supportsIndeterminateAppearance): Deleted.
The iOS specific code is just plain wrong.
It was changing the indeterminate state of the input element.
The spec clearly says that state is only used by checkbox:
https://html.spec.whatwg.org/#dom-input-indeterminate

Moreover, the style update would not change the indeterminate state
of other buttons in the Button Group, which is just bizarre.
RenderThemeIOS does not make use of any of this with the current style.

  • html/RadioInputType.h:
  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement):
(WebCore::Style::canShareStyleWithControl): Deleted.
(WebCore::Style::SharingResolver::sharingCandidateHasIdenticalStyleAffectingAttributes): Deleted.
Style sharing is unified behind the selector matching which is neat.

LayoutTests:

There are two important aspect to cover for this change:
1) The style is updated correctly when a Button Group composition change.
2) When the checkness changes for a Button Group, all its elements

are invalidated to match :indeterminate.

  • fast/forms/radio/indeterminate-radio.html:

This test was verifying that the property "indeterminate" of the input element
is not reflected to the style through :indeterminate.
I updated the test to still verify that except that we now match :indeterminate
before changing the property.

  • fast/css/pseudo-indeterminate-radio-buttons-basics-expected.html: Added.
  • fast/css/pseudo-indeterminate-radio-buttons-basics.html: Added.
  • fast/css/pseudo-indeterminate-with-radio-buttons-style-invalidation-expected.txt: Added.
  • fast/css/pseudo-indeterminate-with-radio-buttons-style-invalidation.html: Added.

Verify that we don't invalidate everything when the checked button changes.
We only need to invalidate everything if the checked state of the whole group changes.

  • fast/selectors/detached-radio-button-checked-and-indeterminate-states-expected.txt: Added.
  • fast/selectors/detached-radio-button-checked-and-indeterminate-states.html: Added.
  • fast/selectors/pseudo-indeterminate-with-radio-buttons-style-update-expected.txt: Added.
  • fast/selectors/pseudo-indeterminate-with-radio-buttons-style-update.html: Added.
8:33 PM Changeset in webkit [202196] by commit-queue@webkit.org
  • 21 edits
    2 deletes in trunk

Unreviewed, rolling out r202152.
https://bugs.webkit.org/show_bug.cgi?id=158897

The new test is very unstable, timing out frequently
(Requested by ap on #webkit).

Reverted changeset:

"Web Inspector: console.profile should use the new Sampling
Profiler"
https://bugs.webkit.org/show_bug.cgi?id=153499
http://trac.webkit.org/changeset/202152

8:29 PM Changeset in webkit [202195] by commit-queue@webkit.org
  • 6 edits
    2 deletes in trunk

Unreviewed, rolling out r202068, r202115, and r202128.
https://bugs.webkit.org/show_bug.cgi?id=158896

The new test is very unstable, timing out frequently
(Requested by ap on #webkit).

Reverted changesets:

"decompose4 return value is unchecked, leading to potentially
uninitialized data."
https://bugs.webkit.org/show_bug.cgi?id=158761
http://trac.webkit.org/changeset/202068

"[mac] LayoutTest transforms/undecomposable.html is a flaky
timeout"
https://bugs.webkit.org/show_bug.cgi?id=158816
http://trac.webkit.org/changeset/202115

"[mac] LayoutTest transforms/undecomposable.html is a flaky
timeout"
https://bugs.webkit.org/show_bug.cgi?id=158816
http://trac.webkit.org/changeset/202128

6:19 PM Changeset in webkit [202194] by Chris Fleizach
  • 4 edits
    2 adds in trunk

AX: HTML indeterminate IDL attribute not mapped to checkbox value=2 for native checkboxes
https://bugs.webkit.org/show_bug.cgi?id=158876
<rdar://problem/26842619>

Reviewed by Joanmarie Diggs.

Source/WebCore:

The indeterminate state was not being reported for native checkboxes.

Also the isIndeterminate() method was relying on whether the appearance changed, which does not happen on Mac, so that
was not being reported correctly. Changed that to check the actual attribute.

Test: accessibility/checkbox-mixed-value.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::isIndeterminate):
(WebCore::AccessibilityNodeObject::isPressed):
(WebCore::AccessibilityNodeObject::checkboxOrRadioValue):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::checkboxOrRadioValue):

LayoutTests:

  • accessibility/checkbox-mixed-value-expected.txt: Added.
  • accessibility/checkbox-mixed-value.html: Added.
6:09 PM Changeset in webkit [202193] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601-branch

Merged r202174. rdar://problem/26701322

6:06 PM Changeset in webkit [202192] by dino@apple.com
  • 4 edits
    2 adds in trunk

REGRESSION (r199819): CrashTracer: [GraphicsContext3D::getInternalFramebufferSize
https://bugs.webkit.org/show_bug.cgi?id=158895
<rdar://problem/26423617>

Reviewed by Zalan Bujtas.

Source/WebCore:

In r199819 we started resetting contexts if the page had too
many. Unfortunately there were entry points in the WebGL context
that didn't check for the validity of the object before trying
to access the lower level objects.

Test: webgl/many-contexts-access-after-loss.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::drawingBufferWidth): Return 0 if we're lost.
(WebCore::WebGLRenderingContextBase::drawingBufferHeight): Ditto.

LayoutTests:

New test to access the contexts after loss. Also cleaned
up the JavaScript code in the existing test (and made sure
it ran outside of the test system).

  • webgl/many-contexts-access-after-loss-expected.txt: Added.
  • webgl/many-contexts-access-after-loss.html: Added.
  • webgl/many-contexts.html:
6:05 PM Changeset in webkit [202191] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1.46-branch

Merged r202174. rdar://problem/26701284

6:03 PM Changeset in webkit [202190] by dbates@webkit.org
  • 6 edits
    2 deletes in trunk

Unreviewed, rolling out r202186.

Broke the Apple Windows, Apple Yosemite, GTK, and WinCairo
builds.

Reverted changeset:

"File scheme should not allow access of a resource on a
different volume."
https://bugs.webkit.org/show_bug.cgi?id=158552
http://trac.webkit.org/changeset/202186

6:02 PM Changeset in webkit [202189] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r202187.

202186

Reverted changeset:

"Unreviewed clean-up after r202186."
http://trac.webkit.org/changeset/202187

5:25 PM Changeset in webkit [202188] by Chris Dumez
  • 4 edits in trunk/Source

Optimize parseCacheHeader() by using StringView
https://bugs.webkit.org/show_bug.cgi?id=158891

Reviewed by Darin Adler.

Source/WebCore:

Optimize parseCacheHeader() and avoid some temporary String allocations
by using StringView. We now strip the whitespaces in the input string
at the beginning of the function, at the same as as we strip the
control characters. We are then able to leverage StringView in the
rest of the function to get substrings without the need for extra
String allocations.

  • platform/network/CacheValidation.cpp:

(WebCore::isControlCharacterOrSpace):
(WebCore::trimToNextSeparator):
(WebCore::parseCacheHeader):

Source/WTF:

Add a StringView::find() overload which takes a CharacterMatchFunction
to match the one on String.

  • wtf/text/StringView.h:

(WTF::StringView::find):

5:09 PM Changeset in webkit [202187] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Unreviewed clean-up after r202186.

  • platform/FileSystem.cpp:

(WebCore::filesHaveSameVolume): Don't use C-style formatting.

5:03 PM Changeset in webkit [202186] by Brent Fulgham
  • 6 edits
    2 adds in trunk

File scheme should not allow access of a resource on a different volume.
https://bugs.webkit.org/show_bug.cgi?id=158552
<rdar://problem/15307582>

Patch by Pranjal Jumde <pjumde@apple.com> on 2016-06-17
Reviewed by Brent Fulgham.

Source/WebCore:

Tests: Tools/TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.mm

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canDisplay):

  • platform/FileSystem.cpp:

(WebCore::platformFileStat):
(WebCore::filesHaveSameVolume):
Returns true if the files are on the same volume

  • platform/FileSystem.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.html: Added.
  • TestWebKitAPI/Tests/mac/CrossPartitionFileSchemeAccess.mm: Added.

(-[CrossPartitionFileSchemeAccessNavigationDelegate webView:didFinishNavigation:]):
When the main page load is complete fetch the contents of the document to check if iframe was loaded
(createPartition):
Create a disk image and load the contents of the file.
(cleanUp):
(TestWebKitAPI::TEST):

4:31 PM Changeset in webkit [202185] by enrica@apple.com
  • 15 edits in trunk/Source/WebKit2

Support configurable autocapitalization.
https://bugs.webkit.org/show_bug.cgi?id=158860
rdar://problem/26231403

Reviewed by Tim Horton.

The behavior of spellchecker should be configurable to avoid
unwanted autocapitalization.

  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::initialCapitalizationEnabled):
(API::PageConfiguration::setInitialCapitalizationEnabled):

  • UIProcess/API/C/WKPageConfigurationRef.cpp:

(WKPageConfigurationSetIntialCapitalizationEnabled):

  • UIProcess/API/C/WKPageConfigurationRef.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _initialCapitalizationEnabled]):
(-[WKWebViewConfiguration _setInitialCapitalizationEnabled:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/TextChecker.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::checkTextOfParagraph):
(WebKit::WebPageProxy::getGuessesForWord):

  • UIProcess/WebPageProxy.h:
  • UIProcess/efl/TextCheckerEfl.cpp:

(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):

  • UIProcess/gtk/TextCheckerGtk.cpp:

(WebKit::TextChecker::getGuessesForWord):
(WebKit::TextChecker::checkTextOfParagraph):

  • UIProcess/ios/TextCheckerIOS.mm:

(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):

  • UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):

4:27 PM Changeset in webkit [202184] by Chris Dumez
  • 14 edits in trunk/Source/WebKit2

Use WTF::NoncopyableFunction in NetworkDataTaskClient
https://bugs.webkit.org/show_bug.cgi?id=158887

Reviewed by Alex Christensen.

Use WTF::NoncopyableFunction in NetworkDataTaskClient instead of std::function
and consistently move it around. This avoids some unnecessary copying.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::willDecidePendingDownloadDestination):
(WebKit::DownloadManager::continueDecidePendingDownloadDestination):

  • NetworkProcess/Downloads/DownloadManager.h:
  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::findPendingDownloadLocation):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/PingLoad.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTask::didReceiveChallenge):
(WebKit::NetworkDataTask::didReceiveResponse):
(WebKit::NetworkDataTask::willPerformHTTPRedirection):
(WebKit::NetworkDataTask::tryPasswordBasedAuthentication):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::coalesceChallengesMatching):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):

  • Shared/Authentication/AuthenticationManager.h:
  • Shared/Authentication/mac/AuthenticationManager.mac.mm:

(WebKit::AuthenticationManager::tryUseCertificateInfoForChallenge):

3:24 PM Changeset in webkit [202183] by commit-queue@webkit.org
  • 34 edits
    1 move
    2 adds in trunk

Web video playback controls should have RTL volume slider
https://bugs.webkit.org/show_bug.cgi?id=158856
<rdar://problem/25971769>

Patch by Antoine Quint <Antoine Quint> on 2016-06-17
Reviewed by Tim Horton.

Source/WebCore:

We reproduce the system used to propagate the page scale factor from the WebPage to the media controls to
propagate the user interface layout direction.

The Page exposes a new setUserInterfaceLayoutDirection() method which is set by the WebPage. The Page
then notifies the Document of a change, which propagates down to registered media elements, and finally sets
the usesLTRUserInterfaceLayoutDirection property on the media controller object in the injected JavaScript.
Based on the value of that property we toggle a new .uses-ltr-user-interface-layout-direction CSS class on the
.volume-box which applies a translate to the right and flips the volume controls on the x axis.

Since we're setting a new JS property from HTMLMediaController, we refactor much of the code out of the existing
pageScaleFactorChanged() and setPageScaleFactorProperty() into the new setControllerJSProperty() method so that
can easily set a named JS property with a given JSValue.

For testing purposes, we expose the WebCore::Page::setUserInterfaceLayoutDirection() method through Internals.

Test: fullscreen/video-controls-rtl.html

  • Modules/mediacontrols/mediaControlsApple.css:

(video:-webkit-full-screen::-webkit-media-controls-panel .volume-box:not(.uses-ltr-user-interface-layout-direction)):

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.set usesLTRUserInterfaceLayoutDirection):

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::registerForUserInterfaceLayoutDirectionChangedCallbacks):
(WebCore::Document::unregisterForUserInterfaceLayoutDirectionChangedCallbacks):
(WebCore::Document::userInterfaceLayoutDirectionChanged):

  • dom/Document.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::registerWithDocument):
(WebCore::HTMLMediaElement::unregisterWithDocument):
(WebCore::HTMLMediaElement::updatePageScaleFactorJSProperty):
(WebCore::HTMLMediaElement::updateUsesLTRUserInterfaceLayoutDirectionJSProperty):
(WebCore::HTMLMediaElement::setControllerJSProperty):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::pageScaleFactorChanged):
(WebCore::HTMLMediaElement::userInterfaceLayoutDirectionChanged):
(WebCore::setPageScaleFactorProperty): Deleted.

  • html/HTMLMediaElement.h:
  • page/Page.cpp:

(WebCore::Page::setUserInterfaceLayoutDirection):

  • page/Page.h:

(WebCore::Page::userInterfaceLayoutDirection):

  • platform/UserInterfaceLayoutDirection.h: Renamed from Source/WebKit2/UIProcess/UserInterfaceLayoutDirection.h.
  • testing/Internals.cpp:

(WebCore::Internals::setUserInterfaceLayoutDirection):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit2:

We now call setUserInterfaceLayoutDirection() on WebCore::Page to propagate
the user interface layout direction down to the Web content. To facilitate this,
the UserInterfaceLayoutDirection enum is now defined in WebCore.

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(convertSystemLayoutDirection):
(toUserInterfaceLayoutDirection):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::toUserInterfaceLayoutDirection):
(WebKit::WebViewImpl::userInterfaceLayoutDirection):

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::userInterfaceLayoutDirection):
(WebKit::WebPageProxy::setUserInterfaceLayoutDirection):

  • UIProcess/WebPageProxy.h:
  • UIProcess/efl/WebView.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::userInterfaceLayoutDirection):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::userInterfaceLayoutDirection):

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::PendingSwipeTracker::scrollEventCanBecomeSwipe):
(WebKit::ViewGestureController::isPhysicallySwipingLeft):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_userInterfaceLayoutDirection):
(WebKit::WebPage::setUserInterfaceLayoutDirection):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performNonEditingBehaviorForSelector):

LayoutTests:

New test that checks that the volume box has the correct CSS class name and the expected
CSS transform value applied to it when the user interface layout direction is right-to-left
and that changing the user interface layout direction dynamically update the media element
shadow tree as expected.

  • fullscreen/video-controls-rtl-expected.txt: Added.
  • fullscreen/video-controls-rtl.html: Added.
2:46 PM Changeset in webkit [202182] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Update LayoutTest fast/canvas/canvas-composite-text-alpha.html
https://bugs.webkit.org/show_bug.cgi?id=158710

Reviewed by Alexey Proskuryakov.

Though this test passes, opening the test file directly reports multiple failures. Updating the
readback locations to get the correct results.

  • fast/canvas/canvas-composite-text-alpha.html:
2:46 PM Changeset in webkit [202181] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/video-controls-show-on-kb-or-ax-event.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=158889

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:30 PM Changeset in webkit [202180] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star.html on Mac
https://bugs.webkit.org/show_bug.cgi?id=155196

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:21 PM Changeset in webkit [202179] by dino@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION: Double tap to zoom does not work on yahoo finance
https://bugs.webkit.org/show_bug.cgi?id=158886
<rdar://problem/24917760>

Reviewed by Simon Fraser.

Source/WebKit2:

We shouldn't enable fast click on pages that have
had to shrink to fit. In other words, we should enable
double-tap-to-zoom if the page has already zoomed.

Test: fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _allowsDoubleTapGestures]):

LayoutTests:

  • fast/events/ios/viewport-shrink-to-fit-allows-double-tap-expected.txt: Added.
  • fast/events/ios/viewport-shrink-to-fit-allows-double-tap.html: Added.
1:51 PM Changeset in webkit [202178] by Chris Dumez
  • 7 edits
    2 adds in trunk

TouchEvent should have a constructor
https://bugs.webkit.org/show_bug.cgi?id=158883
<rdar://problem/26063585>

Reviewed by Benjamin Poulain.

Source/WebCore:

TouchEvent should have a constructor:

Chrome already ships this:

Test: fast/events/touch/touch-event-constructor.html

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

  • bindings/js/JSDictionary.h:
  • dom/TouchEvent.cpp:

(WebCore::TouchEvent::TouchEvent):

  • dom/TouchEvent.h:
  • dom/TouchEvent.idl:

LayoutTests:

Add layout test coverage for the TouchEvent constructor.

  • fast/events/touch/touch-event-constructor-expected.txt: Added.
  • fast/events/touch/touch-event-constructor.html: Added.
1:21 PM Changeset in webkit [202177] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Potential null dereferencing on a detached positioned renderer.
https://bugs.webkit.org/show_bug.cgi?id=158879

Reviewed by Simon Fraser.

This patch fixes the case when the while loop to search for the absolute positioned ancestor
returns null (it happens when positioned renderer has been detached from the render tree).

Speculative fix.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::markFixedPositionObjectForLayoutIfNeeded):

  • rendering/RenderBlock.h:
1:18 PM Changeset in webkit [202176] by Chris Dumez
  • 9 edits in trunk

URL hash setter does not remove fragment identifier if argument is an empty string
https://bugs.webkit.org/show_bug.cgi?id=158869
<rdar://problem/26863430>

Reviewed by Darin Adler.

Source/WebCore:

URL hash setter and URLUtils hash setter should remove the fragment identifier
if set to "#" or "":

This patch aligns our behavior with the specification and with other browsers
(tested Firefox and Chrome).

This patch also updates HTMLAnchorElement to inherit URLUtils to avoid code
duplication. HTMLAnchorElement already implements URLUtils in the IDL, as per
the specification:

No new tests, rebaselined existing tests.

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::origin): Deleted.
(WebCore::HTMLAnchorElement::text): Deleted.
(WebCore::HTMLAnchorElement::setText): Deleted.
(WebCore::HTMLAnchorElement::toString): Deleted.
(WebCore::HTMLAnchorElement::isLiveLink): Deleted.
(WebCore::HTMLAnchorElement::sendPings): Deleted.
(WebCore::HTMLAnchorElement::handleClick): Deleted.
(WebCore::HTMLAnchorElement::eventType): Deleted.
(WebCore::HTMLAnchorElement::treatLinkAsLiveForEventType): Deleted.
(WebCore::isEnterKeyKeydownEvent): Deleted.
(WebCore::shouldProhibitLinks): Deleted.
(WebCore::HTMLAnchorElement::willRespondToMouseClickEvents): Deleted.
(WebCore::rootEditableElementMap): Deleted.
(WebCore::HTMLAnchorElement::rootEditableElementForSelectionOnMouseDown): Deleted.
(WebCore::HTMLAnchorElement::clearRootEditableElementForSelectionOnMouseDown): Deleted.
(WebCore::HTMLAnchorElement::setRootEditableElementForSelectionOnMouseDown): Deleted.

  • html/HTMLAnchorElement.h:

(WebCore::HTMLAnchorElement::invalidateCachedVisitedLinkHash): Deleted.

  • html/URLUtils.h:

(WebCore::URLUtils<T>::setHash):

LayoutTests:

Update existing layout tests now that setting hash to "" or "#" clears
the fragment identifier.

  • fast/dom/DOMURL/set-href-attribute-hash-expected.txt:
  • fast/dom/DOMURL/set-href-attribute-hash.html:
  • fast/dom/HTMLAnchorElement/script-tests/set-href-attribute-hash.js:
  • fast/dom/HTMLAnchorElement/set-href-attribute-hash-expected.txt:
12:51 PM Changeset in webkit [202175] by bshafiei@apple.com
  • 5 edits
    4 copies in branches/safari-601-branch

Merged r202151. rdar://problem/26701322

12:50 PM Changeset in webkit [202174] by wilander@apple.com
  • 3 edits
    2 adds in trunk

Ignore case in the check for security origin inheritance
https://bugs.webkit.org/show_bug.cgi?id=158878

Reviewed by Alex Christensen.

Source/WebCore:

Darin Adler commented in https://bugs.webkit.org/show_bug.cgi?id=158855:
"Are these comparisons intentionally case sensitive? Shouldn’t they ignore ASCII
case? We could use equalIgnoringASCIICase and equalLettersIgnoringASCIICase for
those two lines instead of using ==. URL::parse normalizes letters in the scheme
and host by using toASCIILower, but does not normalize letters elsewhere in the
URL, such as in the "blank" or "srcdoc" in the above URLs."

Test: http/tests/dom/window-open-about-uppercase-blank-and-access-document.html

  • platform/URL.cpp:

(WebCore::URL::shouldInheritSecurityOriginFromOwner):

LayoutTests:

  • http/tests/dom/window-open-about-uppercase-blank-and-access-document-expected.txt: Added.
  • http/tests/dom/window-open-about-uppercase-blank-and-access-document.html: Added.
12:22 PM Changeset in webkit [202173] by mark.lam@apple.com
  • 3 edits in trunk/Source/WTF

OOM Assertion failure in JSON.stringify.
https://bugs.webkit.org/show_bug.cgi?id=158794
<rdar://problem/26826254>

Reviewed by Saam Barati.

The bug was actually in StringBuilder::appendQuotedJSONString() where it failed
to detect an imminent unsigned int overflow. The fix is to use Checked<unsigned>
for the needed math, and RELEASE_ASSERT afterwards that we did not overflow.

I also added more assertions to detect sooner if any there are any problems with
StringBuilder's m_buffer or m_length being incorrectly sized. These assertions
have been run on the JSC and layout tests without any issue.

  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::resize):
(WTF::StringBuilder::allocateBuffer):
(WTF::StringBuilder::allocateBufferUpConvert):
(WTF::StringBuilder::reallocateBuffer<LChar>):
(WTF::StringBuilder::reallocateBuffer<UChar>):
(WTF::StringBuilder::reserveCapacity):
(WTF::StringBuilder::appendUninitializedSlow):
(WTF::StringBuilder::append):
(WTF::StringBuilder::appendQuotedJSONString):

  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::swap):

12:10 PM Changeset in webkit [202172] by hyungwook.lee@navercorp.com
  • 2 edits in trunk/Source/WebCore

Fix compilation errors when we enable DUMP_NODE_STATISTICS in Node.h
https://bugs.webkit.org/show_bug.cgi?id=158868

Reviewed by Alex Christensen.

Fix compilation errors in Node.cpp when we enable DUMP_NODE_STATISTICS

  • dom/Node.cpp:

(WebCore::Node::dumpStatistics):

11:47 AM Changeset in webkit [202171] by bshafiei@apple.com
  • 5 edits
    4 copies in branches/safari-601.1.46-branch

Merged r202151. rdar://problem/26701284

10:24 AM Changeset in webkit [202170] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping two new LayoutTests that rely on mouse events on ios-simulator.
https://bugs.webkit.org/show_bug.cgi?id=158855

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
10:20 AM Changeset in webkit [202169] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Scrolling in popup menu scrolls past last entry.
https://bugs.webkit.org/show_bug.cgi?id=158870

Reviewed by Brent Fulgham.

When the popup has a scrollbar, the content size is not equal to the popup window size.

  • platform/win/PopupMenuWin.cpp:

(WebCore::PopupMenuWin::contentsSize):

9:54 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
9:54 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
9:53 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
9:30 AM Changeset in webkit [202168] by fred.wang@free.fr
  • 27 edits
    1 add
    4 deletes in trunk

Refactor RenderMathMLRoot layout function to avoid using flexbox
https://bugs.webkit.org/show_bug.cgi?id=153987

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-17
Reviewed by Brent Fulgham.

Source/WebCore:

No new tests, already covered by existing tests.
A case for RTL root has been added to roots.xhtml.

We reimplement RenderMathMLRoot without any flexbox or anonymous.
The anonymous RenderMathMLRadicalOperator used to draw the radical sign is replaced with
the MathOperator class introduced in bug 152244.
msqrt (row of children under a square root) is now implemented directly in RenderMathMLRoot,
so RenderMathMLSquareRoot is removed and RenderMathMLRoot now inherits from RenderMathMLRow.

  • CMakeLists.txt: Remove files for RenderMathMLRadicalOperator and RenderMathMLSquareRoot.
  • WebCore.xcodeproj/project.pbxproj: ditto.
  • accessibility/AccessibilityRenderObject.cpp: Update code now that we do not use any

radical wrappers.
(WebCore::AccessibilityRenderObject::isMathRow): Now that RenderMathMLRoot inherits from
RenderMathMLRow, we must exclude MathRoot or otherwise some accessibility code may treat
roots as rows.
(WebCore::AccessibilityRenderObject::mathRadicandObject): Return the first child for
Root/SquareRoot or nullptr.
(WebCore::AccessibilityRenderObject::mathRootIndexObject): Return the second child for
Root and nullptr for SquareRoot.

  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::childrenChanged): We no longer need a special case
for msqrt, it is treated as a normal RenderMathMLRow.
(WebCore::MathMLInlineContainerElement::createElementRenderer): Make msqrt create a
RenderMathMLRoot object.

  • rendering/RenderObject.h:

(WebCore::RenderObject::isRenderMathMLRadicalOperator): Deleted.

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::RenderMathMLBlock::mirrorIfNeeded): New function to mirror a child horizontal
offset according to the parent width.
(WebCore::RenderMathMLBlock::renderName):

  • rendering/mathml/RenderMathMLBlock.h:

(WebCore::RenderMathMLBlock::mirrorIfNeeded): Moved from RenderMathMLScripts, just forward
call to the other mirrorIfNeeded function.

  • rendering/mathml/RenderMathMLOperator.cpp: We no longer need this trailingSpaceError hack.

(WebCore::RenderMathMLOperator::trailingSpaceError): Deleted.

  • rendering/mathml/RenderMathMLOperator.h: ditto.
  • rendering/mathml/RenderMathMLRadicalOperator.cpp: Removed. The radical sign is now drawn

with a MathOperator.

  • rendering/mathml/RenderMathMLRadicalOperator.h: Removed.
  • rendering/mathml/RenderMathMLRoot.cpp: Complete refactoring to avoid using flexbox and

anonymous wrappers.
(WebCore::RenderMathMLRoot::RenderMathMLRoot): Set m_kind parameters to distinguish between
square root and general root and set the MathOperator member to draw the radical sign.
(WebCore::RenderMathMLRoot::isValid): Helper function to verify whether the child list is valid.
(WebCore::RenderMathMLRoot::getBase): Get the base of an mroot.
(WebCore::RenderMathMLRoot::getIndex): Get the index of an mroot.
(WebCore::RenderMathMLRoot::styleDidChange): Be sure to keep the style of the
MathOperator in sync with ours ; no need to skip empty roots.
(WebCore::RenderMathMLRoot::updateFromElement): Call the function from the new parent class ;
no need to skip empty roots.
(WebCore::RenderMathMLRoot::updateStyle): Remove the isEmpty ASSERT as it is valid to have
empty square root. Set the m_kernBeforeDegree, m_kernBeforeDegree members.
No need to set style for anonymous.
(WebCore::RenderMathMLRoot::computePreferredLogicalWidths): Implement this function.
(WebCore::RenderMathMLRoot::layoutBlock): Implement this function.
(WebCore::RenderMathMLRoot::paintChildren): Implement this function.
(WebCore::RenderMathMLRoot::paint): Remove the trailingSpaceError hack ;
paint the radical sign via MathOperator::paint
(WebCore::RenderMathMLRoot::baseWrapper): Deleted.
(WebCore::RenderMathMLRoot::radicalWrapper): Deleted.
(WebCore::RenderMathMLRoot::indexWrapper): Deleted.
(WebCore::RenderMathMLRoot::radicalOperator): Deleted.
(WebCore::RenderMathMLRoot::restructureWrappers): Deleted.
(WebCore::RenderMathMLRoot::addChild): Deleted.
(WebCore::RenderMathMLRoot::firstLineBaseline): Deleted.
(WebCore::RenderMathMLRoot::layout): Deleted.
(WebCore::RenderMathMLRootWrapper::createAnonymousWrapper): Deleted.
(WebCore::RenderMathMLRootWrapper::removeChildWithoutRestructuring): Deleted.
(WebCore::RenderMathMLRootWrapper::removeChild): Deleted.

  • rendering/mathml/RenderMathMLRoot.h: Make RenderMathMLRoot inherit from RenderMathMLRow.

Make RenderMathMLRoot support <msqrt>.
Remove all the anonymous wrapper stuff and instead use a MathOperator for the radical symbol.
Update function declaration to implement layout without flexbox and add some helper functions.

  • rendering/mathml/RenderMathMLRow.cpp: Allow to get the exact metrics of the chid row,

for use in RenderMathMLRoot.
(WebCore::RenderMathMLRow::computeLineVerticalStretch): rename parameters.
(WebCore::RenderMathMLRow::layoutRowItems): Set parameters to the final ascent, descent and
logical width of the chid row. Set the temporary logical width for RenderMathRoot before
laying the children out.
(WebCore::RenderMathMLRow::layoutBlock): Rename parameters ; add a dummy logicalWidth
parameter.

  • rendering/mathml/RenderMathMLRow.h: Make some functions accessible or overridable by

RenderMathMLRoot. Make layoutRowItems return the final ascent, descent and logical width
after the chid row is laid out.

  • rendering/mathml/RenderMathMLScripts.cpp: Move mirrorIfNeeded to RenderMathMLBlock.

(WebCore::RenderMathMLScripts::mirrorIfNeeded): Deleted.

  • rendering/mathml/RenderMathMLScripts.h: Move mirrorIfNeeded to RenderMathMLBlock.
  • rendering/mathml/RenderMathMLSquareRoot.cpp: Removed.
  • rendering/mathml/RenderMathMLSquareRoot.h: Removed.
  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::paint): Apply a mirroring scale transform to radical symbol
in RTL direction.

LayoutTests:

Update expectations for some MathML tests containing radical operators.

that we do not manage anonymous wrappers anymore.

  • mathml/presentation/roots.xhtml: Add one test for RTL roots.
  • platform/gtk/mathml/presentation/mo-stretch-expected.txt: Update expectation to

take into change in the render tree.

  • platform/gtk/mathml/presentation/roots-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/roots-expected.png: Update expectation to take

into account small rendering changes.

  • platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
  • platform/gtk/mathml/radical-fallback-expected.txt: Ditto.
  • platform/gtk/mathml/radical-fallback-expected.png: Ditto.
  • platform/mac/mathml/radical-fallback-expected.txt: Ditto.
  • platform/mac/mathml/radical-fallback-expected.png: Ditto.
  • platform/ios-simulator/mathml/radical-fallback-expected.txt: Ditto.
  • platform/ios-simulator/mathml/radical-fallback-expected.png: Added.
8:43 AM Changeset in webkit [202167] by Chris Dumez
  • 33 edits
    1 add in trunk/Source/WebCore

Drop some unnecessary header includes
https://bugs.webkit.org/show_bug.cgi?id=158864

Reviewed by Alexey Proskuryakov.

Drop some unnecessary header includes to try and reduce build times.

  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AccessibilityList.cpp:
  • css/CSSComputedStyleDeclaration.cpp:
  • css/MediaQueryMatcher.cpp:
  • css/StyleMedia.cpp:
  • css/TransformFunctions.cpp:
  • dom/NodeRenderStyle.h:
  • dom/PseudoElement.h:

(isType): Deleted.

  • html/HTMLTitleElement.cpp:
  • html/shadow/MediaControlElementTypes.h:
  • html/shadow/MediaControls.cpp:
  • inspector/InspectorDOMAgent.h:
  • inspector/InspectorLayerTreeAgent.h:
  • inspector/InspectorPageAgent.cpp:
  • page/scrolling/AsyncScrollingCoordinator.cpp:
  • page/scrolling/ScrollingCoordinator.h:
  • rendering/BidiRun.h:
  • rendering/BorderEdge.h:
  • rendering/RenderElement.h:
  • rendering/RenderObject.h:

(WebCore::AnnotatedRegionValue::operator==): Deleted.
(WebCore::AnnotatedRegionValue::operator!=): Deleted.

  • rendering/RenderObjectEnums.h: Added.
  • rendering/RenderTheme.h:
  • rendering/SimpleLineLayoutFlowContents.h:
  • rendering/SimpleLineLayoutTextFragmentIterator.h:
  • rendering/TextPainter.h:
  • rendering/style/RenderStyle.h:

(WebCore::pseudoElementRendererIsNeeded):

  • rendering/style/ShapeValue.cpp:
  • rendering/style/ShapeValue.h:
  • style/ClassChangeInvalidation.cpp:
  • style/ClassChangeInvalidation.h:
  • style/InlineTextBoxStyle.h:
  • style/StyleUpdate.cpp:
6:35 AM Changeset in webkit [202166] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] Throw away linked code when navigating to a new page.
<https://webkit.org/b/153851>

Reviewed by Antti Koivisto.

When navigating to a new page, tell JSC to throw out any linked code it has lying around.
Linked code is tied to a specific global object, and as we're creating a new one for the
new page, none of it is useful to us here.

In the event that the user navigates back, the cost of relinking some code will be far
lower than the memory cost of keeping all of it around.

This was in-tree before but was rolled out due to regressing JSBench. It was a slowdown
due to the benchmark harness using top-level navigations to drive the tests.
This new version avoids that problem by only throwing out code if we haven't navigated
in the last 2 seconds. This also prevents excessive work in response to redirects.

I've also moved this into MemoryPressureHandler so we don't make a mess in FrameLoader.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad):

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::jettisonExpensiveObjectsOnTopLevelNavigation):

  • platform/MemoryPressureHandler.h:
4:50 AM Changeset in webkit [202165] by eocanha@igalia.com
  • 2 edits in trunk/Tools

Unreviewed. Added myself to the list of committers.

  • Scripts/webkitpy/common/config/contributors.json:
4:46 AM Changeset in webkit [202164] by commit-queue@webkit.org
  • 2 edits
    3 deletes in trunk/LayoutTests

Update test-expected file for failing fullscreen test
https://bugs.webkit.org/show_bug.cgi?id=158838

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-06-17
Reviewed by Carlos Garcia Campos.

Used MAC version of the test as the default version since only MAC and
GTK do not skip this test and expect the same result. Removed
test-expected files specific to each port when there was one. Prior to
this patch, GTK test was failing unexpectedly.

  • fullscreen/video-controls-override-expected.txt:
  • platform/efl/fullscreen/video-controls-override-expected.txt: Removed.
  • platform/gtk/fullscreen/video-controls-override-expected.txt: Removed.
  • platform/mac/fullscreen/video-controls-override-expected.txt: Removed.
4:19 AM Changeset in webkit [202163] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit/win

[Win] Rendering is not scaled correctly if process is DPI aware.
https://bugs.webkit.org/show_bug.cgi?id=158781

Reviewed by Brent Fulgham.

Scale the root graphics layer with the device scale factor.

  • WebView.cpp:

(WebView::setAcceleratedCompositing):

3:34 AM Changeset in webkit [202162] by youenn.fablet@crf.canon.fr
  • 13 edits in trunk

CORS preflight with a non-200 response should be a preflight failure
https://bugs.webkit.org/show_bug.cgi?id=111008

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/data-uri-expected.txt:

Source/WebCore:

Covered by rebased tests.

  • Modules/fetch/FetchResponse.h: Making use of ResourceResponse::isSuccessful.
  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::validatePreflightResponse): Checking that response status is code is
successful. If not, calling preflight failure callback.
(WebCore::CrossOriginPreflightChecker::startPreflight): Putting in manual redirection mode so that redirection
responses are processed as other responses.

  • loader/ResourceLoaderOptions.h:

(WebCore::ResourceLoaderOptions::fetchOptions): Adding a non-const getter and fixing const getter to return a
const reference.
(WebCore::ResourceLoaderOptions::setFetchOptions): Passing options by reference.

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::isSuccessful): Utility function.

  • platform/network/ResourceResponseBase.h:

LayoutTests:

  • http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async.html:
  • http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple-expected.txt:
  • http/tests/xmlhttprequest/workers/access-control-basic-get-fail-non-simple-expected.txt:
2:27 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
2:24 AM Changeset in webkit [202161] by fred.wang@free.fr
  • 8 edits
    6 adds in trunk

MathOperator: Add fallback mechanisms for stretching and mirroring radical symbols
https://bugs.webkit.org/show_bug.cgi?id=156836

Source/WebCore:

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-17
Reviewed by Sergio Villar Senin.

Some platforms do not have OpenType MATH fonts pre-installed and thus can not draw stretchy
operators using size variants or glyph assembly. This is especially problematic for the
radical symbol which is used to write roots. Currently, we have some fallback code to draw
that symbol using graphical primitives but it is a bit complex and makes the style of radical
inconsistent with the font used. We solve these issues by just scaling the base glyph via a
scale transform. Such scale transform is also used to mirror the radical symbol so that we
have some support for right-to-left roots until we can do glyph-level mirroring
via the OpenType rtlm feature.

Test: mathml/radical-fallback.html

  • rendering/mathml/MathOperator.cpp: Add a constant for the code point U+221A of the radical.

(WebCore::MathOperator::reset): In general, we don't need any vertical scaling for radical
symbols so m_radicalVerticalScale is initialized to 1.
(WebCore::MathOperator::calculateStretchyData): If we don't have a font with a MATH table and we
try streching a radical, then we update the vertical metrics to match the target size and
set m_radicalVerticalScale to the value necessary to make the base glyph scaled to that size.
(WebCore::MathOperator::paint): For a radical operator, we may apply a scale transform of
parameters (radicalHorizontalScale, m_radicalVerticalScale) in order to support RTL
mirroring or vertical stretching.

  • rendering/mathml/MathOperator.h: We add a m_radicalVerticalScale member to indicate the

scaling to apply to the base radical glyph when the stretchy fallback is necessary.
(WebCore::MathOperator::isStretched): The operator is also considered stretched when the
m_radicalVerticalScale is applied to the base size.

  • rendering/mathml/RenderMathMLRadicalOperator.cpp: Remove code specific to the old fallback mechanism.
  • rendering/mathml/RenderMathMLRadicalOperator.h: Ditto.

LayoutTests:

Reviewed by Sergio Villar Senin.

We add a pixel test to verify the result of stretching a radical operator.
We test RTL/LTR direction as well as default/sans-serif font in order to check the fallback code.

  • mathml/radical-fallback.html: Added.
  • platform/gtk/mathml/radical-fallback-expected.png: Added.
  • platform/gtk/mathml/radical-fallback-expected.txt: Added.
  • platform/ios-simulator/mathml/radical-fallback-expected.txt: Added.
  • platform/mac/mathml/radical-fallback-expected.png: Added.
  • platform/mac/mathml/radical-fallback-expected.txt: Added.
  • platform/ios-simulator/mathml/presentation/roots.txt: Updated.

Jun 16, 2016:

11:23 PM Changeset in webkit [202160] by commit-queue@webkit.org
  • 4 edits
    4 deletes in trunk

Unreviewed, rolling out r202147.
https://bugs.webkit.org/show_bug.cgi?id=158867

Broke scrolling tests on iOS Simulator (Requested by ap on
#webkit).

Reverted changeset:

"Focus event dispatched in iframe causes parent document to
scroll incorrectly"
https://bugs.webkit.org/show_bug.cgi?id=158629
http://trac.webkit.org/changeset/202147

10:19 PM Changeset in webkit [202159] by commit-queue@webkit.org
  • 8 edits
    12 adds in trunk

:in-range & :out-of-range CSS pseudo-classes shouldn't match disabled or readonly inputs
https://bugs.webkit.org/show_bug.cgi?id=156530

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-16
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange-expected.txt:

Source/WebCore:

Elements should only match :in-range and :out-of-range
when they are candidate for constraint validation.

Tests: fast/css/pseudo-in-range-on-disabled-input-basics.html

fast/css/pseudo-in-range-on-readonly-input-basics.html
fast/css/pseudo-in-range-out-of-range-on-disabled-input-trivial.html
fast/css/pseudo-out-of-range-on-disabled-input-basics.html
fast/css/pseudo-out-of-range-on-readonly-input-basics.html
fast/selectors/in-range-out-of-range-style-update.html

  • html/BaseDateAndTimeInputType.cpp:

(WebCore::BaseDateAndTimeInputType::minOrMaxAttributeChanged):

  • html/NumberInputType.cpp:

(WebCore::NumberInputType::minOrMaxAttributeChanged):
I forgot to handle style update in r202143.
This is covered by the new style invalidation test.

  • html/BaseDateAndTimeInputType.h:
  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::isInRange):
(WebCore::HTMLInputElement::isOutOfRange):

LayoutTests:

  • fast/css/pseudo-in-range-on-disabled-input-basics-expected.html: Added.
  • fast/css/pseudo-in-range-on-disabled-input-basics.html: Added.
  • fast/css/pseudo-in-range-on-readonly-input-basics-expected.html: Added.
  • fast/css/pseudo-in-range-on-readonly-input-basics.html: Added.
  • fast/css/pseudo-in-range-out-of-range-on-disabled-input-trivial-expected.html: Added.
  • fast/css/pseudo-in-range-out-of-range-on-disabled-input-trivial.html: Added.
  • fast/css/pseudo-out-of-range-on-disabled-input-basics-expected.html: Added.
  • fast/css/pseudo-out-of-range-on-disabled-input-basics.html: Added.
  • fast/css/pseudo-out-of-range-on-readonly-input-basics-expected.html: Added.
  • fast/css/pseudo-out-of-range-on-readonly-input-basics.html: Added.
  • fast/selectors/in-range-out-of-range-style-update-expected.txt: Added.
  • fast/selectors/in-range-out-of-range-style-update.html: Added.
9:56 PM Changeset in webkit [202158] by Gyuyoung Kim
  • 5 edits
    1 add in trunk

[EFL][GTK] LayoutTest doesn't run on Ubuntu 16.04
https://bugs.webkit.org/show_bug.cgi?id=158141

Reviewed by Michael Catanzaro.

Tools:

  • Scripts/webkitpy/port/base.py: Detect php version in system, then use it.

(Port._is_debian_php_version_7):
(Port._debian_php_version):
(Port._apache_config_file_name_for_platform):

  • efl/install-dependencies:
  • gtk/install-dependencies:

LayoutTests:

  • http/conf/debian-httpd-2.4-php7.conf: Added.
9:48 PM Changeset in webkit [202157] by fpizlo@apple.com
  • 25 edits
    5 adds in trunk

Baseline JIT should be concurrent
https://bugs.webkit.org/show_bug.cgi?id=158755

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This makes the baseline JIT concurrent. We want it to be concurrent because it takes up
about 1% of PLT3 and 10% of JSBench (though the JSBench number might be down from recent
optimizations).

The idea is really simple: I separated the compile and link phases of JIT::privateCompile(),
and arranged to call the compile phase from another thread. This doesn't reuse the old
DFG::Worklist code, because that code does things we don't need (like compilation plan
cancellation to allow GC to interleave with compilations) and is structured in a way that
would have required more changes to the baseline JIT. Also, I think that code uses the wrong
API, and as a result, clients of that API have a bad time. For example, it's never clear who
has the responsibility of setting the JIT thresholds and the DFG::Worklist goes to great
lengths to try to help its client set those things correctly, but since it doesn't set them
directly, the client then has to have additional complex logic to combine what it learned
from the Worklist and what it knows to set the thresholds. This patch takes a simpler
approach: the JITWorklist takes complete control over scheduling compilations. It's like a
combination of DFG::Worklist and operationOptimize().

Because the baseline JIT runs quickly, we can take some shortcuts. The JITWorklist requires
that all of its plans complete before a GC begins. This ensures that we don't have to worry
about interactions between the concurrent baseline JIT and the GC.

I needed to do a bunch of minor changes to the JIT to handle the races that emerged. For
example, I needed to do things to opcodes that read profiling both in the main path code
generator and the slow path one. One trick I used was to create a copy of the instruction
stream and provide that for anyone interested in the original value of the profiles. Most
code still uses the CodeBlock's instruction stream because it may emit JIT code that points
at the stream.

This also fixes a LLInt bug in prototype caching. This bug was revealed by this change
because more of our LayoutTests now run in LLInt.

This looks like it might be a ~1% Octane speed-up (on command line) and a ~0.7% PLT3
speed-up. This also looks like a ~2% JSBench speed-up.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • debugger/Debugger.cpp:

(JSC::Debugger::setSteppingMode):
(JSC::Debugger::toggleBreakpoint):
(JSC::Debugger::clearBreakpoints):
(JSC::Debugger::clearDebuggerRequests):

  • dfg/DFGOSRExitPreparation.cpp:

(JSC::DFG::prepareCodeOriginForOSRExit):

  • heap/Heap.cpp:

(JSC::Heap::didFinishIterating):
(JSC::Heap::completeAllJITPlans):
(JSC::Heap::deleteAllCodeBlocks):
(JSC::Heap::collectImpl):
(JSC::Heap::completeAllDFGPlans): Deleted.

  • heap/Heap.h:
  • heap/HeapInlines.h:

(JSC::Heap::forEachCodeBlock):

  • jit/JIT.cpp:

(JSC::JIT::emitNotifyWrite):
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::compileWithoutLinking):
(JSC::JIT::link):
(JSC::JIT::privateCompile):
(JSC::JIT::privateCompileExceptionHandlers):

  • jit/JIT.h:

(JSC::JIT::compile):
(JSC::JIT::getSlowCase):
(JSC::JIT::linkSlowCase):
(JSC::JIT::linkDummySlowCase):

  • jit/JITInlines.h:

(JSC::JIT::emitTagBool):
(JSC::JIT::originalInstruction):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitSlow_op_put_to_scope):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::emit_op_resolve_scope):
(JSC::JIT::emitSlow_op_resolve_scope):
(JSC::JIT::emit_op_get_from_scope):
(JSC::JIT::emitSlow_op_get_from_scope):
(JSC::JIT::emit_op_put_to_scope):
(JSC::JIT::emitSlow_op_put_to_scope):

  • jit/JITWorklist.cpp: Added.

(JSC::JITWorklist::Plan::Plan):
(JSC::JITWorklist::Plan::compileInThread):
(JSC::JITWorklist::Plan::finalize):
(JSC::JITWorklist::Plan::codeBlock):
(JSC::JITWorklist::Plan::vm):
(JSC::JITWorklist::Plan::isFinishedCompiling):
(JSC::JITWorklist::Plan::isFinalized):
(JSC::JITWorklist::JITWorklist):
(JSC::JITWorklist::~JITWorklist):
(JSC::JITWorklist::completeAllForVM):
(JSC::JITWorklist::poll):
(JSC::JITWorklist::compileLater):
(JSC::JITWorklist::compileNow):
(JSC::JITWorklist::runThread):
(JSC::JITWorklist::finalizePlans):
(JSC::JITWorklist::instance):

  • jit/JITWorklist.h: Added.
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::tryCachePutToScopeGlobal):
(JSC::CommonSlowPaths::tryCacheGetFromScopeGlobal):

  • runtime/VM.cpp:

(JSC::VM::~VM):

Source/WTF:

The concurrent baseline JIT needs to be able to clone bytecode to get a consistent snapshot.
So, this adds such a method.

  • wtf/RefCountedArray.h:

(WTF::RefCountedArray::RefCountedArray):
(WTF::RefCountedArray::clone):

Tools:

Need to disable concurrent JIT when running profiler tests. We should have been doing this
all along.

  • Scripts/run-jsc-stress-tests:

LayoutTests:

This change revealed a latent bug in the LLInt. The non-llint version of this new test
would usually fail because it was still in LLInt. This new test always fails.

  • js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-llint.html: Added.
  • js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-llint-expected.txt: Added.
  • js/dom/script-tests/prototype-chain-caching-with-impure-get-own-property-slot-traps-llint.js: Added.
9:36 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
9:34 PM Changeset in webkit [202156] by fred.wang@free.fr
  • 22 edits in trunk

Add separate MathOperator for selection/measuring/drawing of stretchy operators
https://bugs.webkit.org/show_bug.cgi?id=152244

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-16
Reviewed by Brent Fulgham.

Source/WebCore:

We complete the class to select, measure and draw stretchy operators that is independent
from RenderMathMLOperator. That way, we will be able use stretchy operator without having
to introduce & manage anonymous RenderMathMLOperator's
(e.g for <mroot>, <msqrt> and <mfenced>).

No new tests, already covered by existing tests.

  • rendering/mathml/MathOperator.cpp:

(WebCore::ascentForGlyph): Add this helper function to get glyph ascent.
(WebCore::descentForGlyph): Add this helper function to get glyph descent.
(WebCore::MathOperator::reset): Initialize all the data and calculate ascent/descent of the
base glyph.
(WebCore::MathOperator::setSizeVariant): Set the width/ascent/descent.
(WebCore::MathOperator::setGlyphAssembly): Ditto.
(WebCore::MathOperator::calculateDisplayStyleLargeOperator): Remove the STIX Word hack and
change m_maxPreferredWidth to use the actual width instead.
(WebCore::MathOperator::stretchTo): New functions to execute the actual operator streching.
(WebCore::MathOperator::fillWithVerticalExtensionGlyph): Add a FIXME for bug 155434.
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Align all the glyph baselines on
the same axis, given by m_ascent.
Add a FIXME for bug 155434.
(WebCore::MathOperator::paintHorizontalGlyphAssembly): Ditto.
(WebCore::MathOperator::paint): Public function to do the painting.
(WebCore::MathOperator::paintVerticalGlyphAssembly): Deleted.

  • rendering/mathml/MathOperator.h: Update declarations and make most of the members private.

(WebCore::MathOperator::ascent): Function to expose m_ascent.
(WebCore::MathOperator::descent): Function to expose m_descent.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::stretchTo): Forward the stretching call to MathOperator.
(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Unfold advanceForGlyph
since we delete RenderMathMLOperator::advanceForGlyph. Just rely on
MathOperator::maxPreferredWidth to determine the preferred width of stretchy operators.
For horizontal operators, we just use the width of the base glyph.
Finally, we remove the dirty flag on preferred logical width.
(WebCore::RenderMathMLOperator::rebuildTokenContent): Reinit the MathOperator instance.
(WebCore::RenderMathMLOperator::updateFromElement): Force more updates of
RenderMathMLOperator to avoid test breakage.
(WebCore::RenderMathMLOperator::styleDidChange): Call MathOperator::reset to take into
account style change.
(WebCore::RenderMathMLOperator::updateStyle): Remove unused code.
(WebCore::RenderMathMLOperator::firstLineBaseline): Use MathOperator::ascent() function.
(WebCore::RenderMathMLOperator::computeLogicalHeight): Use MathOperator::ascent() and
MathOperator::descent() functions to calculate the height.
(WebCore::RenderMathMLOperator::paint): Only stretched operators are treated specially.
We center horizontal operator and forward the paint() call to MathOperator.
(WebCore::RenderMathMLOperator::trailingSpaceError): The error is now just the difference
between the values returned by MathOperator::maxPreferredWidth() and
MathOperator::width().
(WebCore::boundsForGlyph): Deleted.
(WebCore::heightForGlyph): Deleted.
(WebCore::advanceWidthForGlyph): Deleted.
(WebCore::RenderMathMLOperator::updateStyle): Deleted.

LayoutTests:

Update expectations for some MathML tests containing operators/radicals
to take into account small rendering changes.

  • platform/gtk/mathml/opentype/horizontal-expected.png:
  • platform/gtk/mathml/opentype/horizontal-expected.txt:
  • platform/gtk/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/gtk/mathml/opentype/large-operators-expected.png:
  • platform/gtk/mathml/opentype/large-operators-expected.txt:
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.png:
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png:
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • platform/gtk/mathml/opentype/vertical-expected.png:
  • platform/gtk/mathml/opentype/vertical-expected.txt:
  • platform/gtk/mathml/presentation/mo-stretch-expected.png:
  • platform/gtk/mathml/presentation/mo-stretch-expected.txt:
  • platform/gtk/mathml/presentation/roots-expected.txt:
  • platform/ios-simulator/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.png:
  • platform/mac/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
8:51 PM Changeset in webkit [202155] by jiewen_tan@apple.com
  • 3 edits
    1 copy
    1 move
    7 adds
    5 deletes in trunk

CSP: Content Security Policy should allow '*' to match the originating page's scheme
https://bugs.webkit.org/show_bug.cgi?id=158811
<rdar://problem/26819568>

Reviewed by Daniel Bates.

Source/WebCore:

Tests: security/contentSecurityPolicy/image-with-file-url-allowed-by-img-src-star.html

security/contentSecurityPolicy/link-with-file-url-allowed-by-style-src-star.html
security/contentSecurityPolicy/script-with-file-url-allowed-by-script-src-star.html
security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star.html

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::isProtocolAllowedByStar):

LayoutTests:

  • security/contentSecurityPolicy/image-with-file-url-allowed-by-img-src-star-expected.html: Added.
  • security/contentSecurityPolicy/image-with-file-url-allowed-by-img-src-star.html: Added.
  • security/contentSecurityPolicy/image-with-file-url-blocked-by-img-src-star-expected.html: Removed.
  • security/contentSecurityPolicy/image-with-file-url-blocked-by-img-src-star.html: Removed.
  • security/contentSecurityPolicy/link-with-file-url-allowed-by-style-src-star-expected.html: Added.
  • security/contentSecurityPolicy/link-with-file-url-allowed-by-style-src-star.html: Added.
  • security/contentSecurityPolicy/link-with-file-url-blocked-by-style-src-star-expected.html: Removed.
  • security/contentSecurityPolicy/link-with-file-url-blocked-by-style-src-star.html: Removed.
  • security/contentSecurityPolicy/resources/alert-pass.js: Added.
  • security/contentSecurityPolicy/script-with-file-url-allowed-by-script-src-star-expected.txt: Added.
  • security/contentSecurityPolicy/script-with-file-url-allowed-by-script-src-star.html: Added.
  • security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star-expected.html: Copied from LayoutTests/security/contentSecurityPolicy/video-with-file-url-blocked-by-media-src-star.html.
  • security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star.html: Renamed from LayoutTests/security/contentSecurityPolicy/video-with-file-url-blocked-by-media-src-star.html.
  • security/contentSecurityPolicy/video-with-file-url-blocked-by-media-src-star-expected.html: Removed.
7:50 PM Changeset in webkit [202154] by Chris Dumez
  • 8 edits in trunk/Source

No need to ref connection in lambda inside NetworkResourceLoader::tryStoreAsCacheEntry()
https://bugs.webkit.org/show_bug.cgi?id=158862

Reviewed by Darin Adler.

Source/WebKit2:

No need to ref connection in lambda inside NetworkResourceLoader::tryStoreAsCacheEntry().
We already ref the NetworkResourceLoader which hold a ref to the connection. Also update
the lambda capture to use Ref<> for the NetworkResourceLoader instead of RefPtr<>.
Switch callback type from std::function to WTF::NoncopyableFunction so we can capture a
Ref<>.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::store):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::WriteOperation::WriteOperation):

  • NetworkProcess/cache/NetworkCacheStorage.h:

Source/WTF:

Add NoncopyableFunction constructor that takes a nullptr_t in, in order
to match the std::function API and make porting from one to the other
easier.

  • wtf/NoncopyableFunction.h:
7:30 PM Changeset in webkit [202153] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Add HTTPHeaderMap::set() overload taking a NSString*
https://bugs.webkit.org/show_bug.cgi?id=158857

Reviewed by Darin Adler.

Add HTTPHeaderMap::set() overloading taking a NSString* in addition to
the one taking a CFStringRef. It is useful for the Cocoa implementation
of ResourceRequest::doUpdateResourceRequest().

  • platform/network/HTTPHeaderMap.h:

(WebCore::HTTPHeaderMap::set):

7:26 PM Changeset in webkit [202152] by commit-queue@webkit.org
  • 21 edits
    2 adds in trunk

Web Inspector: console.profile should use the new Sampling Profiler
https://bugs.webkit.org/show_bug.cgi?id=153499
<rdar://problem/24352431>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-16
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Currently console.profile/profileEnd behave slightly differently
between JSContext and Web inspection. Unifying will be part of:
<https://webkit.org/b/158753> Generalize the concept of Instruments on the backend

Both JSContext and Web inspection keep track of active
profiles started and stopped via console.profile/profileEnd.

JSContext inspection sends its programmatic start/stop
via the ScriptProfiler domain.

Web inspection sends its programmatic start/stop
via the Timeline domain, and also will start/stop backend
list of Instruments.

The functional differences between these is that for JSContext
inspection, console.profile only starts/stops the ScriptProfiler
domain, and does not auto-start other instruments. This isn't really
a problem right now given the instruments available for JSContext
inspection; but it will be nice to unify as we add more instruments.
Also, JSContext inspection won't have "Profile (name)" records in
its Events view, since those are currently generated only by the
Web's Timeline domain.

  • inspector/protocol/ScriptProfiler.json:
  • inspector/protocol/Timeline.json:

Events to inform the frontend of programmatic start/stop.

  • debugger/Debugger.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::breakpointsActive):
(Inspector::InspectorDebuggerAgent::isPaused):

  • inspector/agents/InspectorDebuggerAgent.h:

Expose breakpoints active state, since programmatic recording
will temporarily disabled breakpoints if needed.

  • inspector/JSGlobalObjectConsoleClient.cpp:

(Inspector::JSGlobalObjectConsoleClient::JSGlobalObjectConsoleClient):
(Inspector::JSGlobalObjectConsoleClient::profile):
(Inspector::JSGlobalObjectConsoleClient::profileEnd):
(Inspector::JSGlobalObjectConsoleClient::startConsoleProfile):
(Inspector::JSGlobalObjectConsoleClient::stopConsoleProfile):

  • inspector/JSGlobalObjectConsoleClient.h:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::JSGlobalObjectInspectorController):

  • inspector/agents/InspectorScriptProfilerAgent.cpp:

(Inspector::InspectorScriptProfilerAgent::programmaticCaptureStarted):
(Inspector::InspectorScriptProfilerAgent::programmaticCaptureStopped):

  • inspector/agents/InspectorScriptProfilerAgent.h:

JSContext implementation of console.profile/profileEnd.

Source/WebCore:

Test: inspector/timeline/setInstruments-programmatic-capture.html

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::startFromConsole):
(WebCore::InspectorTimelineAgent::stopFromConsole):
(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
(WebCore::InspectorTimelineAgent::startProgrammaticCapture):
(WebCore::InspectorTimelineAgent::stopProgrammaticCapture):
(WebCore::InspectorTimelineAgent::toggleInstruments):
(WebCore::InspectorTimelineAgent::toggleScriptProfilerInstrument):
(WebCore::InspectorTimelineAgent::toggleHeapInstrument):
(WebCore::InspectorTimelineAgent::toggleMemoryInstrument):
(WebCore::InspectorTimelineAgent::toggleTimelineInstrument):

  • inspector/InspectorTimelineAgent.h:

Web implementation of console.profile/profileEnd.
Make helpers for startings / stopping instruments.

Source/WebInspectorUI:

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype.programmaticCaptureStarted):
(WebInspector.TimelineManager.prototype.programmaticCaptureStopped):
(WebInspector.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStarted):
(WebInspector.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStopped):
For programmatic captures, automatically show the Script Timeline, since
that is guarenteed to have been started by the backend. Start capturing
without creating a new recording.

  • UserInterface/Models/TimelineRecording.js:

(WebInspector.TimelineRecording.prototype.stop):
(WebInspector.TimelineRecording.prototype.addScriptInstrumentForProgrammaticCapture):
When stopping for programmatic capture we don't need to disable
instruments, the backend would have already done this.

  • UserInterface/Protocol/ScriptProfilerObserver.js:

(WebInspector.ScriptProfilerObserver.prototype.programmaticCaptureStarted):
(WebInspector.ScriptProfilerObserver.prototype.programmaticCaptureStopped):
(WebInspector.ScriptProfilerObserver):

  • UserInterface/Protocol/TimelineObserver.js:

(WebInspector.TimelineObserver.prototype.programmaticCaptureStarted):
(WebInspector.TimelineObserver.prototype.programmaticCaptureStopped):
(WebInspector.TimelineObserver):
Pass through Web and JSContext programmatic capture events.

LayoutTests:

  • inspector/timeline/setInstruments-programmatic-capture-expected.txt: Added.
  • inspector/timeline/setInstruments-programmatic-capture.html: Added.

New test that the backend auto-starts instruments during programmatic capture.

6:10 PM Changeset in webkit [202151] by wilander@apple.com
  • 5 edits
    4 adds in trunk

Restrict security origin inheritance to empty, about:blank, and about:srcdoc URLs
https://bugs.webkit.org/show_bug.cgi?id=158855
<rdar://problem/26142632>

Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/dom/window-open-about-blank-and-access-document.html

http/tests/dom/window-open-about-webkit-org-and-access-document.html

Document.cpp previously checked whether a document should inherit its owner's
security origin by checking if the URL is either empty or blank. URL.cpp in
turn only checks if the protocol is "about:" in the isBlankURL() function.
Thus all about:* URLs inherited security origin. This patch restricts
security origin inheritance to empty, about:blank, and about:srcdoc URLs.

Quotes and links from the WHATWG spec regarding about:srcdoc:

7.1 Browsing contexts
A browsing context can have a creator browsing context, the browsing context
that was responsible for its creation. If a browsing context has a parent
browsing context, then that is its creator browsing context. Otherwise, if the
browsing context has an opener browsing context, then that is its creator
browsing context. Otherwise, the browsing context has no creator browsing
context.
https://html.spec.whatwg.org/multipage/browsers.html#concept-document-bc

7.1.1 Nested browsing contexts
Certain elements (for example, iframe elements) can instantiate further
browsing contexts. These are called nested browsing contexts. If a browsing
context P has a Document D with an element E that nests another browsing
context C inside it, then C is said to be nested through D, and E is said to
be the browsing context container of C. If the browsing context container
element E is in the Document D, then P is said to be the parent browsing
context of C and C is said to be a child browsing context of P. Otherwise,
the nested browsing context C has no parent browsing context.
https://html.spec.whatwg.org/multipage/browsers.html#nested-browsing-context

4.8.5 The iframe element
The iframe element represents a nested browsing context.
...
If the srcdoc attribute is specified

Navigate the element's child browsing context to a new response whose
url list consists of about:srcdoc ...

https://html.spec.whatwg.org/multipage/embedded-content.html#attr-iframe-srcdoc

  • dom/Document.cpp:

(WebCore::Document::initSecurityContext):

Now uses the URL::shouldInheritSecurityOriginFromOwner() function instead.

(WebCore::Document::initContentSecurityPolicy):

Now uses the URL::shouldInheritSecurityOriginFromOwner() function instead.

(WebCore::shouldInheritSecurityOriginFromOwner): Deleted.

Moved to URL::shouldInheritSecurityOriginFromOwner() and restricted the check.

  • platform/URL.cpp:

(WebCore::URL::shouldInheritSecurityOriginFromOwner):

  • platform/URL.h:

Moved the function from Document and restricted the check to only allow
security origin inheritance for empty, about:blank, and about:srcdoc URLs.

LayoutTests:

  • http/tests/dom/window-open-about-blank-and-access-document-expected.txt: Added.
  • http/tests/dom/window-open-about-blank-and-access-document.html: Added.
  • http/tests/dom/window-open-about-webkit-org-and-access-document-expected.txt: Added.
  • http/tests/dom/window-open-about-webkit-org-and-access-document.html: Added.
5:45 PM Changeset in webkit [202150] by jiewen_tan@apple.com
  • 4 edits
    40 moves
    2 adds in trunk/LayoutTests

Move most of CSP tests into security/contentSecurityPolicy/
https://bugs.webkit.org/show_bug.cgi?id=158859

Reviewed by Daniel Bates.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/wk2/TestExpectations:
  • security/contentSecurityPolicy/blocks-video-expected.txt: Renamed from LayoutTests/media/csp-blocks-video-expected.txt.
  • security/contentSecurityPolicy/blocks-video.html: Renamed from LayoutTests/media/csp-blocks-video.html.
  • security/contentSecurityPolicy/font-loading-block-all-expected.txt: Renamed from LayoutTests/fast/text/font-loading-csp-block-all-expected.txt.
  • security/contentSecurityPolicy/font-loading-block-all.html: Renamed from LayoutTests/fast/text/font-loading-csp-block-all.html.
  • security/contentSecurityPolicy/image-with-blob-url-allowed-by-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-blob-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html.
  • security/contentSecurityPolicy/image-with-blob-url-allowed-by-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-blob-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html.
  • security/contentSecurityPolicy/image-with-blob-url-blocked-by-img-src-star-expected.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-blob-url-blocked-by-csp-img-src-star-expected.html.
  • security/contentSecurityPolicy/image-with-blob-url-blocked-by-img-src-star.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-blob-url-blocked-by-csp-img-src-star.html.
  • security/contentSecurityPolicy/image-with-data-url-allowed-by-img-src-star-expected.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-data-url-allowed-by-csp-img-src-star-expected.html.
  • security/contentSecurityPolicy/image-with-data-url-allowed-by-img-src-star.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-data-url-allowed-by-csp-img-src-star.html.
  • security/contentSecurityPolicy/image-with-file-url-allowed-by-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-file-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html.
  • security/contentSecurityPolicy/image-with-file-url-allowed-by-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-file-url-allowed-by-csp-img-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html.
  • security/contentSecurityPolicy/image-with-file-url-blocked-by-img-src-star-expected.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-file-url-blocked-by-csp-img-src-star-expected.html.
  • security/contentSecurityPolicy/image-with-file-url-blocked-by-img-src-star.html: Renamed from LayoutTests/fast/dom/HTMLImageElement/image-with-file-url-blocked-by-csp-img-src-star.html.
  • security/contentSecurityPolicy/link-with-blob-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-blob-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html.
  • security/contentSecurityPolicy/link-with-blob-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-blob-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html.
  • security/contentSecurityPolicy/link-with-blob-url-blocked-by-style-src-star-expected.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-blob-url-blocked-by-csp-style-src-star-expected.html.
  • security/contentSecurityPolicy/link-with-blob-url-blocked-by-style-src-star.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-blob-url-blocked-by-csp-style-src-star.html.
  • security/contentSecurityPolicy/link-with-data-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-data-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html.
  • security/contentSecurityPolicy/link-with-data-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-data-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html.
  • security/contentSecurityPolicy/link-with-data-url-blocked-by-style-src-star-expected.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-data-url-blocked-by-csp-style-src-star-expected.html.
  • security/contentSecurityPolicy/link-with-data-url-blocked-by-style-src-star.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-data-url-blocked-by-csp-style-src-star.html.
  • security/contentSecurityPolicy/link-with-file-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-file-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html.
  • security/contentSecurityPolicy/link-with-file-url-allowed-by-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-file-url-allowed-by-csp-style-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html.
  • security/contentSecurityPolicy/link-with-file-url-blocked-by-style-src-star-expected.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-file-url-blocked-by-csp-style-src-star-expected.html.
  • security/contentSecurityPolicy/link-with-file-url-blocked-by-style-src-star.html: Renamed from LayoutTests/fast/dom/HTMLLinkElement/link-with-file-url-blocked-by-csp-style-src-star.html.
  • security/contentSecurityPolicy/resources/worker-inherits-blocks-eval.js: Renamed from LayoutTests/fast/workers/resources/worker-inherits-csp-blocks-eval.js.

(catch):

  • security/contentSecurityPolicy/resources/worker-inherits-blocks-xhr.js: Renamed from LayoutTests/fast/workers/resources/worker-inherits-csp-blocks-xhr.js.

(catch):

  • security/contentSecurityPolicy/video-with-blob-url-allowed-by-media-src-star-expected.html: Renamed from LayoutTests/media/video-with-blob-url-allowed-by-csp-media-src-star-expected.html.
  • security/contentSecurityPolicy/video-with-blob-url-allowed-by-media-src-star.html: Renamed from LayoutTests/media/video-with-blob-url-allowed-by-csp-media-src-star.html.
  • security/contentSecurityPolicy/video-with-data-url-allowed-by-media-src-star-expected.html: Renamed from LayoutTests/media/video-with-data-url-allowed-by-csp-media-src-star-expected.html.
  • security/contentSecurityPolicy/video-with-data-url-allowed-by-media-src-star.html: Renamed from LayoutTests/media/video-with-data-url-allowed-by-csp-media-src-star.html.
  • security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html: Renamed from LayoutTests/media/video-with-file-url-allowed-by-csp-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled-expected.html.
  • security/contentSecurityPolicy/video-with-file-url-allowed-by-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html: Renamed from LayoutTests/media/video-with-file-url-allowed-by-csp-media-src-star-with-AllowContentSecurityPolicySourceStarToMatchAnyProtocol-enabled.html.
  • security/contentSecurityPolicy/video-with-file-url-blocked-by-media-src-star-expected.html: Renamed from LayoutTests/media/video-with-file-url-blocked-by-csp-media-src-star-expected.html.
  • security/contentSecurityPolicy/video-with-file-url-blocked-by-media-src-star.html: Renamed from LayoutTests/media/video-with-file-url-blocked-by-csp-media-src-star.html.
  • security/contentSecurityPolicy/worker-inherits-blocks-eval-expected.txt: Renamed from LayoutTests/fast/workers/worker-inherits-csp-blocks-eval-expected.txt.
  • security/contentSecurityPolicy/worker-inherits-blocks-eval.html: Renamed from LayoutTests/fast/workers/worker-inherits-csp-blocks-eval.html.
  • security/contentSecurityPolicy/worker-inherits-blocks-xhr-expected.txt: Renamed from LayoutTests/fast/workers/worker-inherits-csp-blocks-xhr-expected.txt.
  • security/contentSecurityPolicy/worker-inherits-blocks-xhr.html: Renamed from LayoutTests/fast/workers/worker-inherits-csp-blocks-xhr.html.
5:00 PM Changeset in webkit [202149] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win] Accessibility implementation unable to recurse through document (sometimes) to find named elements
https://bugs.webkit.org/show_bug.cgi?id=140798

Reviewed by Brent Fulgham.

Make sure layout is up-to-date before trying to find named elements.

  • DumpRenderTree/win/AccessibilityControllerWin.cpp:

(AccessibilityController::rootElement):

4:39 PM Changeset in webkit [202148] by Chris Dumez
  • 9 edits in trunk/Source/WebKit2

[WK2] Improve serialization of SubresourcesEntry to network disk cache
https://bugs.webkit.org/show_bug.cgi?id=158851

Reviewed by Antti Koivisto.

Improve serialization of SubresourcesEntry to network disk cache:

  • Do not bother serializing SubresourceInfo's first party for cookies and HTTP headers data members if the resource is transient. This is because those are never used for transient resources. This patch also makes it so that we do not even bother initializing those data members if the transient flag is set.
  • Update SubresourceInfo::encode() / decode() to encode and decode the HTTPHeaderMap data member with the right NetworkCache::Coder template specialization instead of using directly HTTPHeaderMap::decode() and HTTPHeaderMap::encode(). HTTPHeaderMap::decode() / encode() is unsafe in the disk cache case (see r200394).

Also update entry types as so:

  • "resource" -> "Resource"
  • "subresources" -> "SubResources"

These entry types are used a folder names in the disk cache and other
folder names were capitalized. Antti suggested this was a good time
to harmonize since we're bumping the cache version.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::constructRevalidationRequest):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
  • NetworkProcess/cache/NetworkCacheStorage.h:
  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:

(WebKit::NetworkCache::SubresourceInfo::encode):
(WebKit::NetworkCache::SubresourceInfo::decode):

  • NetworkProcess/cache/NetworkCacheSubresourcesEntry.h:

(WebKit::NetworkCache::SubresourceInfo::SubresourceInfo):
(WebKit::NetworkCache::SubresourceInfo::isTransient):
(WebKit::NetworkCache::SubresourceInfo::firstPartyForCookies):
(WebKit::NetworkCache::SubresourceInfo::requestHeaders):

4:34 PM Changeset in webkit [202147] by Simon Fraser
  • 4 edits
    4 adds in trunk

Source/WebCore:
[iOS] Focus event dispatched in iframe causes parent document to scroll incorrectly
https://bugs.webkit.org/show_bug.cgi?id=158629
rdar://problem/26521616

Reviewed by Enrica Casucci.

When focussing elements in iframes, the page could scroll to an incorrect location.
This happened because code in Element::focus() tried to disable scrolling on focus,
but did so only for the current frame, so ancestor frames got programmatically scrolled.
On iOS we handle the scrolling in the UI process, so never want the web process to
do programmatic scrolling.

Fix by changing the focus and cache restore code to use SelectionRevealMode::DoNotReveal,
rather than manually prohibiting frame scrolling.

Tests: fast/forms/ios/focus-input-in-iframe.html

fast/forms/ios/programmatic-focus-input-in-iframe.html

  • dom/Element.cpp:

(WebCore::Element::focus):

  • history/CachedPage.cpp:

(WebCore::CachedPage::restore):

LayoutTests:
Focus event dispatched in iframe causes parent document to scroll incorrectly
https://bugs.webkit.org/show_bug.cgi?id=158629
rdar://problem/26521616

Reviewed by Enrica Casucci.

Tests for user-initiated and programmatic focus in frames.

  • fast/forms/ios/focus-input-in-iframe-expected.txt: Added.
  • fast/forms/ios/focus-input-in-iframe.html: Added.
  • fast/forms/ios/programmatic-focus-input-in-iframe.html: Added.
  • fast/forms/ios/programmatic-focus-input-in-iframe-expected.txt: Added.
4:27 PM Changeset in webkit [202146] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[New Block-Inside-Inline Model] Do not attempt to re-run margin collapsing on the block sequence.
https://bugs.webkit.org/show_bug.cgi?id=158854

Reviewed by David Hyatt.

Source/WebCore:

Test: fast/block/inside-inlines/crash-on-first-line-change.html

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::marginCollapseLinesFromStart):

LayoutTests:

  • fast/block/inside-inlines/crash-on-first-line-change-expected.txt: Added.
  • fast/block/inside-inlines/crash-on-first-line-change.html: Added.
4:03 PM Changeset in webkit [202145] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Include cstdlib before using std::atexit
https://bugs.webkit.org/show_bug.cgi?id=158681

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2016-06-16
Reviewed by Brent Fulgham.

  • platform/graphics/PlatformDisplay.cpp:
3:55 PM Changeset in webkit [202144] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Use StringView::toAtomicString() in HTMLImageElement::setBestFitURLAndDPRFromImageCandidate()
https://bugs.webkit.org/show_bug.cgi?id=158853

Reviewed by Brent Fulgham.

Use StringView::toAtomicString() in HTMLImageElement::setBestFitURLAndDPRFromImageCandidate()
as m_bestFitImageURL data member is an AtomicString. This avoids constructing a String and
then atomizing it.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):

3:47 PM Changeset in webkit [202143] by commit-queue@webkit.org
  • 15 edits
    6 adds in trunk

:in-range & :out-of-range CSS pseudo-classes shouldn't match inputs without range limitations
https://bugs.webkit.org/show_bug.cgi?id=156558

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-16
Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/selectors/pseudo-classes/inrange-outofrange-expected.txt:

One of the previous match was erroneous.
Our results are still very far from being correct. There are several
bugs affecting our range validation.

Source/WebCore:

The pseudo selectors :in-range and :out-of-range should only
apply if:
-minimum/maximum are defined for the input type
-the input value is/is-not suffering from underflow/overflow.

Only certain types have a valid minimum and maximum:
-number
-range
-date
-month
-week
-time
-datetime-local

Of those, only one has a default minimum and maximum: range.
For all the others, the minimum or maximum is only defined
if the min/max attribute is defined and valid.

This patch addresses these constraints for number and range.
The date types range validation is severely broken and is
left untouched. It really needs a clean rewrite.

Tests: fast/css/pseudo-in-range-basics.html

fast/css/pseudo-in-range-out-of-range-trivial.html
fast/css/pseudo-out-of-range-basics.html

  • html/DateInputType.cpp:

(WebCore::DateInputType::createStepRange):

  • html/DateTimeInputType.cpp:

(WebCore::DateTimeInputType::createStepRange):

  • html/DateTimeLocalInputType.cpp:

(WebCore::DateTimeLocalInputType::createStepRange):

  • html/InputType.cpp:

(WebCore::InputType::isInRange):
(WebCore::InputType::isOutOfRange):
Notice the isEmpty() shortcut.
A value can only overflow/underflow if it is not empty.

  • html/MonthInputType.cpp:

(WebCore::MonthInputType::createStepRange):

  • html/NumberInputType.cpp:

(WebCore::NumberInputType::createStepRange):

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::createStepRange):

  • html/StepRange.cpp:

(WebCore::StepRange::StepRange):

  • html/StepRange.h:

(WebCore::StepRange::hasRangeLimitations):

  • html/WeekInputType.cpp:

(WebCore::WeekInputType::createStepRange):

LayoutTests:

  • fast/css/pseudo-in-range-basics-expected.html: Added.
  • fast/css/pseudo-in-range-basics.html: Added.
  • fast/css/pseudo-in-range-out-of-range-trivial-expected.html: Added.
  • fast/css/pseudo-in-range-out-of-range-trivial.html: Added.
  • fast/css/pseudo-out-of-range-basics-expected.html: Added.
  • fast/css/pseudo-out-of-range-basics.html: Added.
3:44 PM Changeset in webkit [202142] by andersca@apple.com
  • 6 edits in trunk/Source

Fix macOS Sierra build
https://bugs.webkit.org/show_bug.cgi?id=158849

Reviewed by Tim Horton.

Source/WebCore:

Add WebCore:: qualifiers for IOSurface, to avoid conflicts with the IOSurface Objective-C class.

Also, add an asLayerContents() getter that will return an id that's suitable for setting
as the contents of a CALayer.

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

Source/WebKit2:

Add WebCore:: qualifiers for IOSurface, to avoid conflicts with the IOSurface Objective-C class
and adopt IOSurface::asLayerContents().

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::decode):
(WebKit::RemoteLayerBackingStore::bytesPerPixel):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
(WebKit::RemoteLayerBackingStore::setBufferVolatility):
(WebKit::RemoteLayerBackingStore::Buffer::discard):

  • UIProcess/mac/ViewSnapshotStore.mm:

(WebKit::ViewSnapshot::create):
(WebKit::ViewSnapshot::ViewSnapshot):
(WebKit::ViewSnapshot::asLayerContents):

3:18 PM Changeset in webkit [202141] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Kraken/stanford-crypto-pbkdf2.js sometimes crashes with an OSR assertion in FTL
https://bugs.webkit.org/show_bug.cgi?id=158850

Reviewed by Keith Miller.

Bytecode liveness was incorrectly claiming that all tail-deleted locals are live! That's
crazy! We never noticed this because extending OSR liveness is usually not a showstopper and
until recently we didn't have a lot of tail-call test cases to play with. Well, we do now,
thanks to the increasing reliance on tail calls in our builtins.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::localsLiveInBytecode): Fix the bug and add some optional tracing. Also restructure the code so that we don't break to return true, since that's counterintuitive.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::buildExitArguments): Make this assertion print more useful information.

3:06 PM Changeset in webkit [202140] by beidson@apple.com
  • 5 edits in trunk/Source/WebKit2

When a WebsiteDataStore finds no ProcessPools and creates one from scratch, it should represent the data store's config.
rdar://problem/26586991 and https://bugs.webkit.org/show_bug.cgi?id=158844

Reviewed by Anders Carlsson.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithWebsiteDataStoreConfiguration):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::fetchData):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::processPools):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
2:47 PM Changeset in webkit [202139] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r196217): 3% JSBench regression on iPhone 5.
<https://webkit.org/b/158848>
<rdar://problem/26609622>

Unreviewed rollout.

Don't jettison linked code on every top-level navigation as that was hurting JSBench on iPhone 5.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::commitProvisionalLoad):

2:35 PM Changeset in webkit [202138] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r201538): Web Inspector: Border over Allocations Views is too thick
https://bugs.webkit.org/show_bug.cgi?id=158846

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-16
Reviewed by Timothy Hatcher.

  • UserInterface/Views/HeapAllocationsTimelineView.css:

(.timeline-view.heap-allocations > .content-view-container > .content-view): Deleted.

1:41 PM Changeset in webkit [202137] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.37

New tag.

1:39 PM Changeset in webkit [202136] by Chris Dumez
  • 12 edits in trunk

Unreviewed, rolling out r202002 and r202111.

Ryosuke says this was a JSBench regression on iOS

Reverted changesets:

"Make HashMap and HashSet work with Refs"
https://bugs.webkit.org/show_bug.cgi?id=158638
http://trac.webkit.org/changeset/202002

"Improve HashMap and HashSet support for Ref"
https://bugs.webkit.org/show_bug.cgi?id=158789
http://trac.webkit.org/changeset/202111

1:39 PM Changeset in webkit [202135] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

12:50 PM Changeset in webkit [202134] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Unreviewed build fix.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.createSettings):
"showColumn" -> "setColumnVisible".

12:39 PM Changeset in webkit [202133] by Matt Baker
  • 14 edits in trunk/Source/WebInspectorUI

Web Inspector: DataGrid should manage its own settings
https://bugs.webkit.org/show_bug.cgi?id=158675
<rdar://problem/26761338>

Reviewed by Timothy Hatcher.

Move grid sorting settings (sort order, column identifier) into DataGrid,
removing duplicated code from various views. A new grid method, "createSettings",
takes an identifier which is used as a prefix for naming the grid's settings.

So that the new behavior is easy to use and hard to misuse, default values
for each setting are set to the current value of the associated property.
The result is that:

grid.sortColumnIdentifier = "columnA";
grid.createSettings("myGrid");

will use "columnA" as the default value the first time the setting is created.

  • UserInterface/Views/ApplicationCacheFrameContentView.js:

(WebInspector.ApplicationCacheFrameContentView.prototype._createDataGrid):

  • UserInterface/Views/CookieStorageContentView.js:

(WebInspector.CookieStorageContentView.prototype._rebuildTable):

  • UserInterface/Views/DOMStorageContentView.js:

(WebInspector.DOMStorageContentView):

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype.createSettings):
(WebInspector.DataGrid.prototype.get identifier): Deleted.
(WebInspector.DataGrid.prototype.set identifier): Deleted.
(WebInspector.DataGrid.prototype.set sortOrderSetting): Deleted.
(WebInspector.DataGrid.prototype.set sortColumnIdentifierSetting): Deleted.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView):

  • UserInterface/Views/HeapSnapshotContentView.js:

(WebInspector.HeapSnapshotContentView):

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WebInspector.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView):

  • UserInterface/Views/NetworkGridContentView.js:

(WebInspector.NetworkGridContentView):

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView):

  • UserInterface/Views/ProfileView.js:

(WebInspector.ProfileView):

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView):

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WebInspector.ScriptDetailsTimelineView):

11:49 AM Changeset in webkit [202132] by Simon Fraser
  • 14 edits
    6 adds in trunk

[iOS WK2] On iPad, indirect focussing of a text field doesn't always scroll to the correct location
https://bugs.webkit.org/show_bug.cgi?id=158828

Reviewed by Enrica Casucci.

Source/WebKit2:

WebPage::getAssistedNodeInformation() unconditionally set information.selectionRect()
to a 1x1 rect at the last interaction location. This caused -[WKWebView _zoomToFocusRect:...]
to early return under the !forceScroll clause if the last interaction rect was visible, but
the elementRect was not. This would happen, for example, if a click in a <button> focussed
an input on some other portion of the page. This behavior is iPad-only, because forceScroll
is only NO there.

Fix by making getAssistedNodeInformation() only set the selectionRect to the last interaction
location if that is inside of the elementRect (this caters to the case where a tap is inside
an input which is larger than the screen). Otherwise, set it to the empty rect.

Make this testable by allowing a test to opt into the iPad-style scrolling/zooming behavior
in this code path (essentially, making forceScroll NO for testing), via testing SPI on WKWebView,
plumbed through to WKContentView.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView forceIPadStyleZoomOnInputFocus]):
(-[WKWebView setForceIPadStyleZoomOnInputFocus:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _displayFormNodeInputView]):
(-[WKContentView requiresAccessoryView:]):
(-[WKContentView inputAccessoryView]):
(-[WKContentView forceIPadStyleZoomOnInputFocus]):
(-[WKContentView setForceIPadStyleZoomOnInputFocus:]):
(-[WKContentView requiresAccessoryView]): Remove redundant returns, and allow testing to
override the "isIPad" condition.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getAssistedNodeInformation):

Tools:

Expose "forceIPadStyleZoomOnInputFocus" on UIScriptController, which allows iPad-style
zooming behavior on <input> focus in the iPhone simulator, which is used for testing.

  • WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl:
  • WebKitTestRunner/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::forceIPadStyleZoomOnInputFocus):
(WTR::UIScriptController::setForceIPadStyleZoomOnInputFocus):

  • WebKitTestRunner/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetStateToConsistentValues):

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::forceIPadStyleZoomOnInputFocus):
(WTR::UIScriptController::setForceIPadStyleZoomOnInputFocus):

LayoutTests:

Add various tests for focusing form fields. focus-input-via-button-ipad.html tests
the change in the current patch.

  • fast/forms/ios/focus-input-in-fixed-expected.txt: Added.
  • fast/forms/ios/focus-input-in-fixed.html: Added.
  • fast/forms/ios/focus-input-via-button-ipad-expected.txt: Added.
  • fast/forms/ios/focus-input-via-button-ipad.html: Added.
  • fast/forms/ios/focus-long-textarea-expected.txt: Added.
  • fast/forms/ios/focus-long-textarea.html: Added.
  • fast/forms/ios/resources/zooming-test-utils.js:

(testZoomAfterTap):

11:25 AM Changeset in webkit [202131] by mark.lam@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Add collecting of LLINT slow path stats.
https://bugs.webkit.org/show_bug.cgi?id=158829

Reviewed by Keith Miller.

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::dumpStats):

  • llint/LLIntData.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
11:12 AM Changeset in webkit [202130] by adam.bergkvist@ericsson.com
  • 5 edits
    2 adds in trunk

WebRTC: Check type of this in RTCPeerConnection JS built-in functions
https://bugs.webkit.org/show_bug.cgi?id=151303

Reviewed by Youenn Fablet.

Source/WebCore:

Check type of 'this' in RTCPeerConnection JS built-in functions.

Test: fast/mediastream/RTCPeerConnection-js-built-ins-check-this.html

  • Modules/mediastream/RTCPeerConnection.js:

(createOffer):
(createAnswer):
(setLocalDescription):
(setRemoteDescription):
(addIceCandidate):
(getStats):
Reject if 'this' isn't of type RTCPeerConnection.

  • Modules/mediastream/RTCPeerConnectionInternals.js:

(isRTCPeerConnection):
Add helper function to perform type check. Needs further robustifying.

LayoutTests:

Verify that the RTCPeerConnection JS built-in methods checks 'this'. The test has expected
failures (bug: http://webkit.org/b/158831).

  • fast/mediastream/RTCPeerConnection-js-built-ins-check-this-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-js-built-ins-check-this.html: Added.
  • platform/mac/TestExpectations:

The mac port does not build with WEB_RTC enabled yet.

10:54 AM Changeset in webkit [202129] by weinig@apple.com
  • 15 edits
    1 add in trunk

Forward/Back keyboard shortcuts need to flip for RTL
https://bugs.webkit.org/show_bug.cgi?id=158823
<rdar://problem/25975359>

Reviewed by Darin Adler.

Source/WebKit2:

Pipe the UserInterfaceLayoutDirection down to the WebContentProcess on initialization
and when it changes, and use it to flip the behavior of command-left and command-right
when in RTL mode.

Tests:

WebKit2_CommandBackForwardTestWKView.LTR
WebKit2_CommandBackForwardTestWKView.RTL
WebKit2_CommandBackForwardTestWKWebView.LTR
WebKit2_CommandBackForwardTestWKWebView.RTL

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _webViewPrintFormatter]):
(-[WKWebView setSemanticContentAttribute:]):
(-[WKWebView _printOperationWithPrintInfo:forFrame:]):
(-[WKWebView setUserInterfaceLayoutDirection:]):

  • UIProcess/API/mac/WKView.mm:

(-[WKView setUserInterfaceLayoutDirection:]):

  • UIProcess/Cocoa/WebViewImpl.h:
  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::windowIsFrontWindowUnderMouse):
(WebKit::toUserInterfaceLayoutDirection):
(WebKit::WebViewImpl::userInterfaceLayoutDirection):
(WebKit::WebViewImpl::setUserInterfaceLayoutDirection):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):
(WebKit::WebPageProxy::userInterfaceLayoutDirection):
(WebKit::WebPageProxy::setUserInterfaceLayoutDirection):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::hasHadSelectionChangesFromUserInteraction):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _commonInitializationWithProcessPool:configuration:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_userInterfaceLayoutDirection):
(WebKit::WebPage::setResourceCachingDisabled):
(WebKit::WebPage::setUserInterfaceLayoutDirection):
(WebKit::m_shouldDispatchFakeMouseMoveEvents): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::performNonEditingBehaviorForSelector):

Tools:

Add tests for flipping the behavior of command-left and command-right
under RTL mode.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/CommandBackForward.mm: Added.

(-[CommandBackForwardOffscreenWindow isKeyWindow]):
(-[CommandBackForwardOffscreenWindow isVisible]):
(simulateCommandArrow):
(WebKit2_CommandBackForwardTest::SetUp):
(WebKit2_CommandBackForwardTestWKView::didFinishLoadForFrame):
(WebKit2_CommandBackForwardTestWKView::SetUp):
(WebKit2_CommandBackForwardTestWKView::loadFiles):
(-[CommandBackForwardNavigationDelegate webView:didFinishNavigation:]):
(WebKit2_CommandBackForwardTestWKWebView::SetUp):
(WebKit2_CommandBackForwardTestWKWebView::loadFiles):

10:43 AM Changeset in webkit [202128] by dino@apple.com
  • 2 edits in trunk/LayoutTests

[mac] LayoutTest transforms/undecomposable.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=158816

Another attempt to deflake this test. Or is it unflake? I don't know.

  • transforms/undecomposable.html:
10:10 AM Changeset in webkit [202127] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Sporadic crash in HashTableAddResult following CSSValuePool::createFontFamilyValue
https://bugs.webkit.org/show_bug.cgi?id=158297

Reviewed by Darin Adler.

Source/WebCore:

In an effort to reduce the flash of unstyled content, we force all elements
to have display: none during an external stylesheet load. We do this by
ignoring the CSS cascade and forcing all elements to have a placeholder style
which hardcodes display: none. (This is necessary to make elements created by
script during the stylesheet load not flash.)

This style is exposed to web content via getComputedStyle(), which means it
needs to maintain the invariant that font-families can never be null strings.
We enforce this by forcing the font-family to be the standard font name.

Test: fast/text/placeholder-renderstyle-null-font.html

  • style/StyleTreeResolver.cpp:

(WebCore::Style::ensurePlaceholderStyle):

LayoutTests:

  • fast/text/placeholder-renderstyle-null-font-expected.txt: Added.
  • fast/text/placeholder-renderstyle-null-font.html: Added.
9:32 AM Changeset in webkit [202126] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Avoid some temporary String allocations for common HTTP headers in ResourceResponse::platformLazyInit()
https://bugs.webkit.org/show_bug.cgi?id=158827

Reviewed by Darin Adler.

Add a HTTPHeaderMap::set() overload taking in a CFStringRef. The
implementation has a fast path which gets the internal characters
of the CFStringRef when possible and constructs a StringView for
it in order to call findHTTPHeaderName(). As a result, we avoid
allocating a temporary String when findHTTPHeaderName() succeeds.

This new HTTPHeaderMap::set() overload is called from both the
CF and Cocoa implementations of ResourceResponse::platformLazyInit().

I have confirmed locally on both Mac and iOS that the fast path
is used ~93% of the time. CFStringGetCStringPtr() returns null in
rare cases, causing the regular code path to be used.

  • platform/network/HTTPHeaderMap.cpp:

(WebCore::HTTPHeaderMap::set):

  • platform/network/HTTPHeaderMap.h:

Jun 15, 2016:

11:01 PM Changeset in webkit [202125] by keith_miller@apple.com
  • 56 edits
    5 adds in trunk

Add support for Symbol.isConcatSpreadable (round 2)
https://bugs.webkit.org/show_bug.cgi?id=158769

Reviewed by Mark Lam.

Source/JavaScriptCore:

This patch adds support for Symbol.isConcatSpreadable. In order to
do so, it was necessary to move the Array.prototype.concat function
to JS. A number of different optimizations were needed to make
such the move to a builtin performant. First, this patch adds a
new Bytecode intrinsic, isJSArray, that checks if the value is a
JSArray object. Specifically, isJSArray checks that the array
object is a normal instance of JSArray and not a RuntimeArray or
Array.prototype. isJSArray can also be converted into a constant
by the DFG if we are able to prove that the incomming value is
already a JSArray.

In order to further improve the perfomance we also now cover more
indexing types in our fast path memcpy code. Before we would only
memcpy Arrays if they had the same indexing type and did not have
Array storage or were undecided. Now the memcpy code covers the
following additional three cases:

1) One array is undecided and the other does not have array storage

2) One array is Int32 and the other is contiguous (we map this
into a contiguous array).

3) The this value is an array and first argument is a non-array
that does not have Symbol.isConcatSpreadable set.

This patch also adds a new fast path for concat with more than one
array argument by using memcpy to append values onto the result
array. This works roughly the same as the two array fast path
using the same methodology to decide if we can memcpy the other
butterfly into the result butterfly.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/ArrayPrototype.js:

(concatSlowPath):
(concat):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitIsJSArray):

  • bytecompiler/NodesCodegen.cpp:

(JSC::BytecodeIntrinsicNode::emit_intrinsic_isJSArray):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

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

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock):
(JSC::DFG::SpeculativeJIT::compileIsJSArray):
(JSC::DFG::SpeculativeJIT::compileCallObjectConstructor):

  • dfg/DFGSpeculativeJIT.h:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCallObjectConstructor):
(JSC::FTL::DFG::LowerDFGToB3::compileIsJSArray):
(JSC::FTL::DFG::LowerDFGToB3::isArray):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_is_jsarray):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_is_jsarray):

  • jit/JITOperations.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/ArrayConstructor.h:

(JSC::isArrayConstructor):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):
(JSC::speciesWatchpointsValid):
(JSC::speciesConstructArray):
(JSC::moveElements):
(JSC::concatAppendOne):
(JSC::arrayProtoFuncConcat): Deleted.

  • runtime/ArrayPrototype.h:
  • runtime/CommonIdentifiers.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/IndexingType.h:

(JSC::indexingTypeForValue):

  • runtime/JSArray.cpp:

(JSC::JSArray::appendMemcpy):
(JSC::JSArray::fastConcatWith): Deleted.

  • runtime/JSArray.h:

(JSC::JSArray::createStructure):
(JSC::isJSArray):
(JSC::JSArray::fastConcatType): Deleted.

  • runtime/JSArrayInlines.h: Added.

(JSC::JSArray::mergeIndexingTypeForCopying):
(JSC::JSArray::canFastCopy):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSObject.cpp:

(JSC::JSObject::convertUndecidedForValue):

  • runtime/JSType.h:
  • runtime/ObjectConstructor.h:

(JSC::constructObject):

  • tests/es6.yaml:
  • tests/stress/array-concat-spread-object.js: Added.

(arrayEq):

  • tests/stress/array-concat-spread-proxy-exception-check.js: Added.

(arrayEq):

  • tests/stress/array-concat-spread-proxy.js: Added.

(arrayEq):

  • tests/stress/array-concat-with-slow-indexingtypes.js: Added.

(arrayEq):

  • tests/stress/array-species-config-array-constructor.js:

LayoutTests:

Fix tests for Symbol.isConcatSpreadable. Also, add new test that
the array species construction does not use the callees' global
object's Array[Symbol.species] when given an array from another
global object.

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/array-species-different-globalobjects.html:
  • js/dom/array-prototype-properties-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
9:41 PM Changeset in webkit [202124] by mark.lam@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Assertion failure when returning incomplete property descriptor from proxy trap.
https://bugs.webkit.org/show_bug.cgi?id=157078

Reviewed by Saam Barati.

If the proxy returns a descriptor that expects a value but does not specify one,
we should use undefined for the value.

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::performInternalMethodGetOwnProperty):

  • tests/stress/proxy-returning-incomplete-property-descriptor.js: Added.

(truthiness):
(compare):
(shouldBe):
(test):
(get test):

8:30 PM Changeset in webkit [202123] by Alan Bujtas
  • 6 edits
    2 copies
    2 adds in trunk

Decouple the percent height and positioned descendants maps.
https://bugs.webkit.org/show_bug.cgi?id=158773

Reviewed by David Hyatt and Chris Dumez.

Source/WebCore:

We track renderers with percent height across multiple containers using
HashMap<const RenderBox*, std::unique_ptr<HashSet<const RenderBlock*>>>.
We also use the same data structure to track positioned descendants.
However a positioned renderer can have only one containing block so tracking it
with a 1:many type is defective.
It allows multiple inserts for positioned descendants, which could lead to
inconsistent layout state as the rendering logic expects these type of renderers
with only one containing block.
This patch decouples percent height and positioned tracking by introducing
the PositionedDescendantsMap class. This class is responsible for tracking
the positioned descendants inbetween layouts.

No change in functionality.

Tests: fast/block/positioning/change-containing-block-for-absolute-positioned.html

fast/block/positioning/change-containing-block-for-fixed-positioned.html

  • rendering/RenderBlock.cpp:

(WebCore::insertIntoTrackedRendererMaps):
(WebCore::removeFromTrackedRendererMaps):
(WebCore::PositionedDescendantsMap::addDescendant): Add more defensive ASSERT_NOT_REACHED
to the double insert branch when webkit.org/b/158772 gets fixed.
(WebCore::PositionedDescendantsMap::removeDescendant):
(WebCore::PositionedDescendantsMap::removeContainingBlock):
(WebCore::PositionedDescendantsMap::positionedRenderers):
(WebCore::positionedDescendantsMap):
(WebCore::removeBlockFromPercentageDescendantAndContainerMaps):
(WebCore::RenderBlock::~RenderBlock):
(WebCore::RenderBlock::positionedObjects):
(WebCore::RenderBlock::insertPositionedObject):
(WebCore::RenderBlock::removePositionedObject):
(WebCore::RenderBlock::addPercentHeightDescendant):
(WebCore::RenderBlock::removePercentHeightDescendant):
(WebCore::RenderBlock::percentHeightDescendants):
(WebCore::RenderBlock::checkPositionedObjectsNeedLayout):
(WebCore::removeBlockFromDescendantAndContainerMaps): Deleted.

  • rendering/RenderBlock.h:

LayoutTests:

Various dynamic containing block changing tests.

  • fast/block/fixed-position-reparent-when-transition-is-removed.html:
  • fast/block/positioning/change-containing-block-for-absolute-positioned-expected.txt: Added.
  • fast/block/positioning/change-containing-block-for-absolute-positioned.html: Added.
  • fast/block/positioning/change-containing-block-for-fixed-positioned-expected.txt: Added.
  • fast/block/positioning/change-containing-block-for-fixed-positioned.html: Added.
8:22 PM Changeset in webkit [202122] by ddkilzer@apple.com
  • 3 edits
    1 move in trunk/Source/WebCore

Move SoftLinking.h to platform/cococa from platform/mac
<https://webkit.org/b/158825>

Reviewed by Andy Estes.

  • PlatformMac.cmake: Update for new directory.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • platform/cocoa/SoftLinking.h: Renamed from Source/WebCore/platform/mac/SoftLinking.h.
7:59 PM Changeset in webkit [202121] by Chris Dumez
  • 6 edits in trunk/Source

[Cocoa] Clean up / optimize ResourceResponse::platformLazyInit(InitLevel)
https://bugs.webkit.org/show_bug.cgi?id=158809

Reviewed by Darin Adler.

Source/WebCore:

Clean up / optimize ResourceResponse::platformLazyInit(InitLevel).

  • platform/network/HTTPParsers.cpp:

(WebCore::extractReasonPhraseFromHTTPStatusLine):

  • platform/network/HTTPParsers.h:

Have extractReasonPhraseFromHTTPStatusLine() return an AtomicString as the
Reason is stored as an AtomicString on ResourceResponse. Have the
implementation use StringView::subString()::toAtomicString().

  • platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::stripLeadingAndTrailingDoubleQuote):
Move the stripLeadingAndTrailingDoubleQuote logic from platformLazyInit()
to its own function. Have it use StringView::subString()::toAtomicString()
to avoid unnecessarily atomizing the textEncodingName that has surrounding
double-quotes.

(WebCore::initializeHTTPHeaders):
Move HTTP headers initialization to its own function for clarity.

(WebCore::extractHTTPStatusText):
Move HTTP status Text extraction to its own function for clarity.

(WebCore::ResourceResponse::platformLazyInit):

  • The function is streamlined a bit because most of the logic was moved into separate functions.
  • Drop unnecessary (initLevel >= CommonFieldsOnly) check in the first if case and replace with an assertion. This function is always called with CommonFieldsOnly or above (AllFields).
  • Drop unnecessary (m_initLevel < AllFields) check in the second if case as this is always true. If not, we would have returned early at the beginning of the function when checking m_initLevel >= initLevel.
  • Use AutodrainedPool instead of NSAutoreleasePool for convenience and have only 1 pool instead of 2.
  • Drop unnecessary copyNSURLResponseStatusLine() function and call directly CFHTTPMessageCopyResponseStatusLine() since we already have a CFHTTPMessageRef at the call site.

Source/WTF:

Add toAtomicString() method to StringView to avoid having to call toString()
and then atomizing the String at call sites.

  • wtf/text/StringView.h:

(WTF::StringView::toAtomicString):

7:20 PM Changeset in webkit [202120] by timothy_horton@apple.com
  • 5 edits in trunk

Expose _shouldExpandContentToViewHeightForAutoLayout SPI on WKWebView
https://bugs.webkit.org/show_bug.cgi?id=158824
<rdar://problem/23713857>

Reviewed by Simon Fraser.

Test: TestWebKitAPI/WebKit2.AutoLayoutIntegration

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _shouldExpandContentToViewHeightForAutoLayout]):
(-[WKWebView _setShouldExpandContentToViewHeightForAutoLayout:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

This property exists on WKView; expose it on WKWebView.

  • TestWebKitAPI/Tests/WebKit2Cocoa/AutoLayoutIntegration.mm:

(-[AutoLayoutWKWebView load:withWidth:expectingContentSize:]):
(-[AutoLayoutWKWebView load:withWidth:expectingContentSize:resettingWidth:]):
(-[AutoLayoutWKWebView layoutAtMinimumWidth:andExpectContentSizeChange:resettingWidth:]):
(TEST):
Add a test for _shouldExpandContentToViewHeightForAutoLayout.

6:28 PM Changeset in webkit [202119] by achristensen@apple.com
  • 3 edits in trunk/Source/WebKit2

Revert part of r196034
https://bugs.webkit.org/show_bug.cgi?id=158805
rdar://problem/26788138

Reviewed by Dan Bernstein.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::~NetworkLoad):
If the WebResourceLoader was destroyed and received a canAuthenticateAgainstProtectionSpace
but did not send a continueCanAuthenticateAgainstProtectionSpace answer because there's no
core loader, then the NetworkLoad will be destroyed. When this happens, we still need to call
the callback for the challenge.

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::canAuthenticateAgainstProtectionSpace):
If there's no core loader, we can't send IPC.

6:22 PM Changeset in webkit [202118] by ap@apple.com
  • 2 edits in trunk/Source/WebKit/mac

+[WebHTMLRepresentation supportedMIMETypes] leaks
https://bugs.webkit.org/show_bug.cgi?id=158683

Reviewed by Darin Adler.

The problem occurred when chaining newArrayByConcatenatingArrays calls.

Also refactored the code to avoid returning NSMutableArrays disguised as NSArrays,
and removed unsafe_unretained modifiers that were added in http://trac.webkit.org/r149453
for no apparent reason.

  • WebView/WebHTMLRepresentation.mm:

(newArrayWithStrings):
(+[WebHTMLRepresentation supportedMIMETypes]):
(+[WebHTMLRepresentation supportedMediaMIMETypes]):
(+[WebHTMLRepresentation supportedNonImageMIMETypes]):
(+[WebHTMLRepresentation supportedImageMIMETypes]):
(+[WebHTMLRepresentation unsupportedTextMIMETypes]):
(newArrayByConcatenatingArrays): Deleted.

6:14 PM Changeset in webkit [202117] by timothy_horton@apple.com
  • 7 edits
    2 adds in trunk

<attachment> elements jump around a lot around when subtitle text changes slightly
https://bugs.webkit.org/show_bug.cgi?id=158818
<rdar://problem/24450270>

Reviewed by Simon Fraser.

Test: fast/attachment/attachment-subtitle-resize.html

  • rendering/RenderAttachment.cpp:

(WebCore::RenderAttachment::layout):

  • rendering/RenderAttachment.h:
  • rendering/RenderThemeMac.mm:

(WebCore::AttachmentLayout::AttachmentLayout):
(WebCore::RenderThemeMac::paintAttachment):
In order to avoid changes to the centered subtitle text causing the whole
attachment to bounce around a lot, make it so that attachment width can only
increase, never decrease, and round the subtitle's width up to the nearest
increment of 10px when determining its affect on the whole element's width.
Also, center the attachment in its element, instead of left-aligning it,
so that the extra width we may have is evenly distributed between the two sides.

  • fast/attachment/attachment-subtitle-resize-expected.txt: Added.
  • fast/attachment/attachment-subtitle-resize.html: Added.
4:44 PM Changeset in webkit [202116] by Simon Fraser
  • 10 edits
    2 adds in trunk

[iOS WK2] Make it possible to test the Next/Previous buttons in the keyboard accessory bar
https://bugs.webkit.org/show_bug.cgi?id=158714

Reviewed by Enrica Casucci.

Add UIScriptController.keyboardAccessoryBar{Next,Previous} and hook it up to the WKContentView
method that gets called from UIKit.

Add a test that exercises it.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView keyboardAssistantBarNext]):
(-[WKWebView keyboardAssistantBarPrevious]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Tools:

  • WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl:
  • WebKitTestRunner/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::keyboardAccessoryBarNext):
(WTR::UIScriptController::keyboardAccessoryBarPrevious):

  • WebKitTestRunner/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::keyboardAccessoryBarNext):
(WTR::UIScriptController::keyboardAccessoryBarPrevious):

LayoutTests:

  • TestExpectations:
  • fast/forms/ios/accessory-bar-navigation-expected.txt: Added.
  • fast/forms/ios/accessory-bar-navigation.html: Added.
  • fast/forms/ios/resources/zooming-test-utils.js: Added.

(testZoomAfterTap):
(tableFromJSON):

  • platform/ios-simulator-wk2/TestExpectations:
4:34 PM Changeset in webkit [202115] by dino@apple.com
  • 2 edits in trunk/LayoutTests

[mac] LayoutTest transforms/undecomposable.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=158816

Unflakify this test by putting the script in a place that
will execute it before the load event (by which time the animation
may have started).

  • transforms/undecomposable.html:
4:07 PM Changeset in webkit [202114] by Simon Fraser
  • 2 edits
    11 adds in trunk/LayoutTests

[iOS WK2] Add tests for zooming to text fields on focus
https://bugs.webkit.org/show_bug.cgi?id=158786

Reviewed by Enrica Casucci.

Add tests that focus form controls, and test the resulting scroll position and zoom level.

  • TestExpectations:
  • fast/forms/ios/focus-input-via-button-expected.txt: Added.
  • fast/forms/ios/focus-input-via-button-no-scaling-expected.txt: Added.
  • fast/forms/ios/focus-input-via-button-no-scaling.html: Added.
  • fast/forms/ios/focus-input-via-button.html: Added.
  • fast/forms/ios/resources/zooming-test-utils.js: Added.

(testZoomAfterTap):
(tableFromJSON):

  • fast/forms/ios/zoom-after-input-tap-expected.txt: Added.
  • fast/forms/ios/zoom-after-input-tap-wide-input-expected.txt: Added.
  • fast/forms/ios/zoom-after-input-tap-wide-input.html: Added.
  • fast/forms/ios/zoom-after-input-tap.html: Added.
  • platform/ios-simulator-wk2/TestExpectations:
3:37 PM Changeset in webkit [202113] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, fix typo in test and move tests to the correct files.

  • tests/stress/multi-get-by-offset-proto-or-unset.js:
  • tests/stress/multi-get-by-offset-proto-self-or-unset.js:
3:14 PM Changeset in webkit [202112] by dino@apple.com
  • 4 edits in trunk/Source

RTL <select> forms are misplaced
https://bugs.webkit.org/show_bug.cgi?id=158810
<rdar://problem/24847541>

Reviewed by Eric Carlson.

AppKit made a change in Sierra that causes popup menus
to snap to a different point when the system language is RTL.
We need to be more explicit about what directionality
we want, and override the location of the popup based
on the text direction.

I also made a small tweak to the fudge offsets we use
in order to make button text and menu text to be
more consistent.

Unfortunately since this is just about the location
of the popup menu, it's unable to be tested in our
current infrastructure.

Source/WebKit/mac:

  • WebCoreSupport/PopupMenuMac.mm:

(PopupMenuMac::show):

Source/WebKit2:

  • UIProcess/mac/WebPopupMenuProxyMac.mm:

(WebKit::WebPopupMenuProxyMac::showPopupMenu):

3:07 PM Changeset in webkit [202111] by commit-queue@webkit.org
  • 8 edits in trunk

Improve HashMap and HashSet support for Ref
https://bugs.webkit.org/show_bug.cgi?id=158789

Patch by Sam Weinig <sam@webkit.org> on 2016-06-15
Reviewed by Chris Dumez.

Source/WTF:

Tests: Add more cases to WTF_HashMap.Ref_Key, WTF_HashMap.Ref_Value and WTF_HashSet.Ref

  • wtf/HashMap.h:
  • wtf/HashSet.h:

Add a MappedTakeType typedef and rework the take functions to use it and HashTraits::take(...).

  • wtf/HashTraits.h:

(WTF::GenericHashTraits::assignToEmpty):
Move to GenericHashTraits rather than GenericHashTraitsBase, since it is not different
between integral and non-integral HashTraits.

(WTF::GenericHashTraits::take):
Add a trait function for take that defaults as a forward. This allows us to override take
just like we do with get/peek.

(WTF::HashTraits<Ref<P>>::emptyValue):
Remove unnecessary explicit construction.

(WTF::HashTraits<Ref<P>>::peek):
Fix assertion that could happen if you did a HashMap.get() on an empty Ref value.

(WTF::HashTraits<Ref<P>>::take):
Make the TakeType of a Ref<P> be Optional<Ref<P>>, to avoid having empty
Refs returned from HashMap and HashSet. Implement an explicit take() function to
construct one.

(WTF::HashTraits<Ref<P>>::customDeleteBucket): Deleted.
Remove unnecessary customDeleteBucket implementation. Ref does not assign nullptr to
it's m_ptr in destruction, so there is no dead store to avoid here.

  • wtf/Ref.h:

(WTF::Ref::ptrAllowingHashTableEmptyValue):
Add HashTrait helper to allow getting the value of m_ptr even when it is null. This
allows us to avoid a branch in HashTraits<Ref<P>>::peek().

Tools:

  • TestWebKitAPI/Tests/WTF/HashMap.cpp:
  • TestWebKitAPI/Tests/WTF/HashSet.cpp:

Add more cases to WTF_HashMap.Ref_Key, WTF_HashMap.Ref_Value and WTF_HashSet.Ref

2:56 PM Changeset in webkit [202110] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Reset bindings test results after r202105

Unreviewed test gardening.

  • bindings/scripts/test/JS/JSTestObj.cpp:
2:27 PM Changeset in webkit [202109] by adam.bergkvist@ericsson.com
  • 2 edits in trunk/Source/WebCore

WebRTC: (Refactor) Align the structure of RTCPeerConnection.idl with the header file
https://bugs.webkit.org/show_bug.cgi?id=158779

Reviewed by Eric Carlson.

Restructure RTCPeerConnection.idl to make it easer to read and extend in the future.

No change in behavior.

  • Modules/mediastream/RTCPeerConnection.idl:
2:27 PM Changeset in webkit [202108] by adam.bergkvist@ericsson.com
  • 2 edits
    2 adds in trunk/LayoutTests

WebRTC: Add media setup test using the legacy callback APIs
https://bugs.webkit.org/show_bug.cgi?id=158736

Reviewed by Eric Carlson.

Add a test that sets up media using the legacy callback-based createOffer/Answer() and
setLocal/RemoteDescription() methods [1].

[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#legacy-interface-extensions

  • fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-media-setup-callbacks-single-dialog.html: Added.
  • platform/mac/TestExpectations:

The mac port is not building with WEB_RTC yet.

2:25 PM Changeset in webkit [202107] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Too much log data generated during layout-tests on iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=158751

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort.developer_dir): memoized the property so that it is not called
repeatedly.

2:15 PM Changeset in webkit [202106] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Uncaught Exception: TypeError: undefined is not an object (evaluating 'imageElement.classList')
https://bugs.webkit.org/show_bug.cgi?id=158808
<rdar://problem/26821034>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-15
Reviewed by Brian Burg.

  • UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:

(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype._updateSnapshotMarkers):
If the record is out of the layout bounds of the overview graph, the overview graph
may not have created an image element yet, so bail. Later, when the image element
is created, it would get the appropriate style if the record is selected.

1:59 PM Changeset in webkit [202105] by Chris Dumez
  • 99 edits in trunk/Source

Drop some unnecessary header includes
https://bugs.webkit.org/show_bug.cgi?id=158788

Reviewed by Alexey Proskuryakov.

Drop some unnecessary header includes in headers to speed up build time.

Source/WebCore:

  • Modules/encryptedmedia/MediaKeySession.cpp:
  • Modules/gamepad/GamepadManager.cpp:
  • Modules/indexeddb/IDBDatabase.cpp:
  • Modules/indexeddb/IDBOpenDBRequest.cpp:
  • Modules/indexeddb/IDBRequest.cpp:
  • Modules/indexeddb/IDBTransaction.cpp:
  • Modules/mediasource/MediaSource.cpp:
  • Modules/mediasource/SourceBuffer.cpp:
  • Modules/mediasource/SourceBufferList.cpp:
  • Modules/mediastream/MediaStream.cpp:
  • Modules/mediastream/MediaStreamTrack.cpp:
  • Modules/speech/SpeechSynthesis.cpp:
  • Modules/webaudio/AudioScheduledSourceNode.cpp:
  • Modules/webaudio/ScriptProcessorNode.cpp:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • dom/CharacterData.cpp:
  • dom/ContainerNode.cpp:
  • dom/DOMNamedFlowCollection.cpp:
  • dom/DeviceMotionController.cpp:
  • dom/DeviceOrientationController.cpp:
  • dom/Document.cpp:
  • dom/Document.h:
  • dom/DocumentEventQueue.cpp:
  • dom/DocumentOrderedMap.h:
  • dom/Element.cpp:
  • dom/Event.cpp:
  • dom/EventDispatcher.cpp:
  • dom/EventTarget.cpp:
  • dom/EventTarget.h:
  • dom/KeyboardEvent.cpp:
  • dom/MessageEvent.cpp:
  • dom/MessagePort.cpp:
  • dom/ScriptElement.cpp:
  • dom/ScriptExecutionContext.cpp:
  • dom/ScriptExecutionContext.h:
  • dom/SecurityContext.h:
  • dom/SimulatedClick.cpp:
  • dom/TextEvent.cpp:
  • dom/WebKitNamedFlow.cpp:
  • editing/FrameSelection.cpp:
  • fileapi/FileReader.cpp:
  • html/HTMLLinkElement.cpp:
  • html/HTMLPlugInImageElement.cpp:
  • html/HTMLStyleElement.cpp:
  • html/HTMLSummaryElement.cpp:
  • html/HTMLTrackElement.cpp:
  • html/HTMLVideoElement.cpp:
  • html/InputType.cpp:
  • html/MediaController.cpp:
  • html/TextFieldInputType.cpp:
  • html/canvas/WebGLRenderingContextBase.cpp:
  • html/parser/HTMLScriptRunner.cpp:
  • html/shadow/MediaControlElementTypes.cpp:
  • html/shadow/MediaControls.cpp:
  • html/shadow/MediaControlsApple.cpp:
  • html/shadow/SliderThumbElement.cpp:
  • html/shadow/mac/ImageControlsButtonElementMac.cpp:
  • inspector/InspectorIndexedDBAgent.cpp:
  • loader/DocumentLoader.cpp:
  • loader/ImageLoader.cpp:
  • loader/PolicyChecker.cpp:
  • mathml/MathMLSelectElement.cpp:
  • page/DOMWindow.h:
  • page/EventSource.cpp:
  • page/FrameView.cpp:
  • page/Performance.cpp:
  • page/csp/ContentSecurityPolicy.cpp:
  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
  • platform/network/HTTPHeaderMap.h:
  • platform/network/ResourceHandle.cpp:
  • rendering/RenderEmbeddedObject.cpp:
  • rendering/RenderSnapshottedPlugIn.cpp:
  • svg/SVGSVGElement.cpp:
  • svg/SVGUseElement.cpp:
  • svg/animation/SVGSMILElement.cpp:
  • workers/WorkerGlobalScope.h:
  • xml/XMLHttpRequest.cpp:
  • xml/XMLHttpRequestProgressEventThrottle.cpp:
  • xml/XMLHttpRequestUpload.cpp:

Source/WebKit/mac:

  • WebCoreSupport/WebFrameLoaderClient.mm:

Source/WebKit/win:

  • Plugins/PluginView.cpp:

Source/WebKit2:

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:
  • WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
  • WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:
  • WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
  • WebProcess/Plugins/PluginView.cpp:
  • WebProcess/WebPage/WebPage.cpp:
1:52 PM Changeset in webkit [202104] by Antti Koivisto
  • 7 edits in trunk

GoogleMaps transit schedule explorer comes up blank initially
https://bugs.webkit.org/show_bug.cgi?id=158803
rdar://problem/25818080

Source/WebCore:

Reviewed by Andreas Kling.

In case we had something like

.foo bar { ... }

and later a new stylesheet was added dynamically that contained

.foo baz { ... }

we would fail to add the new rules to the descendant invalidation rule sets for ".foo". This could
cause some style invalidations to be missed.

  • css/DocumentRuleSets.cpp:

(WebCore::DocumentRuleSets::collectFeatures):

Reset the ancestorClassRules and ancestorAttributeRulesForHTML rule set caches when new style sheets
are added (==collectFeatures is called).

LayoutTests:

Reviewed by Andreas Kling

Expand the tests to cover this case.

  • fast/css/style-invalidation-attribute-change-descendants-expected.txt:
  • fast/css/style-invalidation-attribute-change-descendants.html:
  • fast/css/style-invalidation-class-change-descendants-expected.txt:
  • fast/css/style-invalidation-class-change-descendants.html:
1:48 PM Changeset in webkit [202103] by jfernandez@igalia.com
  • 3 edits
    2 adds in trunk

[css-sizing] Item borders are missing with 'min-width:-webkit-fill-available' and zero available width
https://bugs.webkit.org/show_bug.cgi?id=158258

Source/WebCore:

Reviewed by Darin Adler.

The "fill-available" size is defined as the containing block's size less
the box's border and padding size. However, when used for min-width we
should ensure we don't get negative values as result of logical width
computation.

http://www.w3.org/TR/css-sizing-3/#fill-available-sizing

This patch ensure fill-available value computed value will be always
greater than box's boder and padding width.

Test: fast/css-intrinsic-dimensions/fill-available-with-zero-width.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):

LayoutTests:

Tests to verify that fill-available size works as expected when contaner's width is zero.

Reviewed by Darin Adler.

  • fast/css-intrinsic-dimensions/fill-available-with-zero-width-expected.html: Added.
  • fast/css-intrinsic-dimensions/fill-available-with-zero-width.html: Added.
12:41 PM Changeset in webkit [202102] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Fix 2d canvas transform after r192900
https://bugs.webkit.org/show_bug.cgi?id=158725
Source/WebCore:

rdar://problem/26774230

Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-15
Reviewed by Dean Jackson.

Test: fast/canvas/canvas-transform-inverse.html

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::transform):
r192900 was intended to have no change in behavior, but I made a typo.
We need to apply the inverse of the original transform to the path to be correct.
This affects transforms applied to the canvas during the creation of a path.

LayoutTests:

Patch by Alex Christensen <achristensen@webkit.org> on 2016-06-15
Reviewed by Dean Jackson.

  • fast/canvas/canvas-transform-inverse-expected.html: Added.
  • fast/canvas/canvas-transform-inverse.html: Added.
12:40 PM Changeset in webkit [202101] by keith_miller@apple.com
  • 3 edits
    3 adds in trunk/Source/JavaScriptCore

DFGByteCodeParser should be able to infer the value of unset properties in MultiGetByOffset
https://bugs.webkit.org/show_bug.cgi?id=158802

Reviewed by Filip Pizlo.

This patch adds support for unset properties in MultiGetByOffset. Since MultiGetByOffset
already supports constant values this patch just adds a constant case where the fetched
value is undefined. Fortunately (or unfortunately) we don't support object allocation
sinking for constant cases of MultiGetByOffset, which means we don't need to adjust any
in that phase.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::planLoad):
(JSC::DFG::ByteCodeParser::handleGetById):

  • dfg/DFGMultiGetByOffsetData.h:
  • tests/stress/multi-get-by-offset-proto-or-unset.js: Added.

(foo):

  • tests/stress/multi-get-by-offset-proto-self-or-unset.js: Added.

(foo):

  • tests/stress/multi-get-by-offset-self-or-unset.js: Added.

(foo):

12:32 PM Changeset in webkit [202100] by eric.carlson@apple.com
  • 8 edits
    4 adds in trunk

[iOS] Make HTMLMediaElement.muted mutable
https://bugs.webkit.org/show_bug.cgi?id=158787
<rdar://problem/24452567>

Reviewed by Dean Jackson.

Source/WebCore:

Tests: media/audio-playback-restriction-removed-muted.html

media/audio-playback-restriction-removed-track-enabled.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::audioTrackEnabledChanged): Remove most behavior restrictions if

the track state was changed as a result of a user gesture.

(WebCore::HTMLMediaElement::setMuted): Ditto.
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture): Add mask

parameter so caller can choose which restrictions are removed.

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp:

(WebCore::restrictionName): Drive-by fix: remove duplicate label.

  • html/MediaElementSession.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Set muted on AVPlayer if setMuted

was called before the player was created.

(WebCore::MediaPlayerPrivateAVFoundationObjC::setVolume): Drive-by fix: return early if there

is no AVPlayer, not if we won't have metadata yet.

(WebCore::MediaPlayerPrivateAVFoundationObjC::setMuted): New.

LayoutTests:

  • media/audio-playback-restriction-removed-muted-expected.txt: Added.
  • media/audio-playback-restriction-removed-muted.html: Added.
  • media/audio-playback-restriction-removed-track-enabled-expected.txt: Added.
  • media/audio-playback-restriction-removed-track-enabled.html: Added.
12:30 PM Changeset in webkit [202099] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed GCC build fix after r202098.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::thresholdForJIT):

12:20 PM Changeset in webkit [202098] by ggaren@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

compilation policy should adapt to past behavior
https://bugs.webkit.org/show_bug.cgi?id=158759

Reviewed by Saam Barati.

This looks like a ~9% speedup on JSBench.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::~CodeBlock): Record when a CodeBlock dies without ever
making it to DFG.

(JSC::CodeBlock::thresholdForJIT): CodeBlocks that make it to DFG should
compile sooner; CodeBlocks that don't should compile later. The goal is
to use past behavior, in addition to execution counts, to determine
whether compilation is profitable.

(JSC::CodeBlock::jitAfterWarmUp):
(JSC::CodeBlock::jitSoon): Apply the thresholdForJIT rule.

  • bytecode/CodeBlock.h: Moved some code into the .cpp file so I could

change stuff without recompiling.
(JSC::CodeBlock::jitAfterWarmUp): Deleted.
(JSC::CodeBlock::jitSoon): Deleted.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::didOptimize):
(JSC::UnlinkedCodeBlock::setDidOptimize): Added a piece of data to track
whether we made it to DFG.

  • jit/JITOperations.cpp: Record when we make it to DFG.
12:17 PM Changeset in webkit [202097] by Simon Fraser
  • 2 edits in trunk/LayoutTests

fast/events/ios tests are marked as flakey, but really just fail in OpenSource and WK1
https://bugs.webkit.org/show_bug.cgi?id=158804

Test gardening.

fast/events/ios is skipped globally. Ideally it would be re-enabled in /ios-simulator-wk2/TestExpectations, but relies on unreleased
software, so leave disabled for now.

  • platform/ios-simulator/TestExpectations:
12:04 PM Changeset in webkit [202096] by Konstantin Tokarev
  • 4 edits in trunk/Source

Source/JavaScriptCore:
Only Mac port needs ObjC API for JSC.
https://bugs.webkit.org/show_bug.cgi?id=158780

Reviewed by Philippe Normand.

  • API/JSBase.h: Removed !defined(BUILDING_GTK)

Source/WTF:
Only Mac port needs ObjC API for JSC
https://bugs.webkit.org/show_bug.cgi?id=158780

Reviewed by Philippe Normand.

  • wtf/FeatureDefines.h:
11:40 AM WebKit2 edited by clopez@igalia.com
(diff)
10:08 AM Changeset in webkit [202095] by pvollan@apple.com
  • 3 edits in trunk/Tools

[Win][CMake] Changes in WebKit options are not reflected in incremental builds.
https://bugs.webkit.org/show_bug.cgi?id=158727

Reviewed by Alex Christensen.

Delete CMake cache file if WebKit options have been modified.

  • Scripts/build-webkit:
  • Scripts/webkitdirs.pm:

(shouldRemoveCMakeCache):

9:45 AM Changeset in webkit [202094] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

Unreviewed, follow up patch for r202092
https://bugs.webkit.org/show_bug.cgi?id=158661

During checking Windows port on EWS, accidentally introduce the regression.

  • wtf/Platform.h:
9:39 AM Changeset in webkit [202093] by keith_miller@apple.com
  • 6 edits
    1 add in trunk/Source/JavaScriptCore

DFGByteCodeParser should be able to infer a property is unset from the Baseline inline cache.
https://bugs.webkit.org/show_bug.cgi?id=158774

Reviewed by Filip Pizlo.

This patch allows the DFGByteCodeParser to speculatively convert a property access into a
constant if that access was always a miss in the Baseline inline cache. This patch does
not add support for MultiGetByOffset and unset properties. That functionality will come
a future patch.

  • bytecode/ComplexGetStatus.cpp:

(JSC::ComplexGetStatus::computeFor):

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback):

  • bytecode/GetByIdVariant.h:

(JSC::GetByIdVariant::isPropertyUnset):

  • bytecode/PutByIdVariant.h:

(JSC::PutByIdVariant::isPropertyUnset):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::load):
(JSC::DFG::ByteCodeParser::handleGetById):

  • tests/stress/undefined-access-then-self-change.js: Added.

(foo):

9:30 AM Changeset in webkit [202092] by Yusuke Suzuki
  • 6 edits in trunk/Source

[JSC] Move calling convention flags to WTF
https://bugs.webkit.org/show_bug.cgi?id=158661

Reviewed by Keith Miller.

Source/JavaScriptCore:

Due to some calling convention flags and JIT_OPERATION flags, MathCommon.h includes MacroAssemblerCodeRef and JITOperations.h.
But MacroAssembler and JIT part should not be necessary for the MathCommon component.
As with other calling convention flags like JSC_HOST_CALL, these flags should be in WTF.

  • assembler/MacroAssemblerCodeRef.h:
  • jit/JITOperations.h:

Add wtf/Platform.h inclusion driven by the Windows port build failure.

  • runtime/MathCommon.h:

Source/WTF:

  • wtf/Platform.h:
8:22 AM Changeset in webkit [202091] by commit-queue@webkit.org
  • 69 edits in trunk

Enabling Shadow DOM for all platforms
https://bugs.webkit.org/show_bug.cgi?id=158738

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-06-15
Reviewed by Ryosuke Niwa.

.:

Removed Shadow DOM from options (enabled by default)

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmake/tools/vsprops/FeatureDefines.props:
  • Source/cmake/tools/vsprops/FeatureDefinesCairo.props:

Source/JavaScriptCore:

Removed Shadow DOM from options (enabled by default)

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

No new tests (no new behavior to be tested).

Removed Shadow DOM from options (enabled by default)
(comprises removal of corresponding preprocessor directives)

  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.make:
  • bindings/generic/RuntimeEnabledFeatures.h:
  • bindings/js/JSDocumentFragmentCustom.cpp:
  • bindings/js/JSNodeCustom.cpp:
  • css/CSSGrammar.y.in:
  • css/CSSParser.cpp:
  • css/CSSParserValues.cpp:
  • css/CSSParserValues.h:
  • css/CSSSelector.cpp:
  • css/CSSSelector.h:
  • css/ElementRuleCollector.cpp:
  • css/ElementRuleCollector.h:
  • css/RuleSet.cpp:
  • css/RuleSet.h:
  • css/SelectorChecker.cpp:
  • css/SelectorChecker.h:
  • css/SelectorPseudoClassAndCompatibilityElementMap.in:
  • css/StyleResolver.cpp:
  • cssjit/SelectorCompiler.cpp:
  • dom/ComposedTreeAncestorIterator.h:
  • dom/ComposedTreeIterator.cpp:
  • dom/ComposedTreeIterator.h:
  • dom/ContainerNode.cpp:
  • dom/Document.cpp:
  • dom/Document.h:
  • dom/Element.cpp:
  • dom/Element.h:
  • dom/Element.idl:
  • dom/Event.idl:
  • dom/EventPath.cpp:
  • dom/Node.cpp:
  • dom/Node.h:
  • dom/NonDocumentTypeChildNode.idl:
  • dom/ShadowRoot.cpp:
  • dom/ShadowRoot.h:
  • dom/ShadowRoot.idl:
  • dom/SlotAssignment.cpp:
  • dom/SlotAssignment.h:
  • html/HTMLSlotElement.cpp:
  • html/HTMLSlotElement.h:
  • html/HTMLSlotElement.idl:
  • html/HTMLTagNames.in:
  • page/FocusController.cpp:
  • style/StyleSharingResolver.cpp:
  • style/StyleTreeResolver.cpp:

Source/WebKit/mac:

Removed Shadow DOM from options (enabled by default)

  • Configurations/FeatureDefines.xcconfig:
  • WebView/WebPreferences.mm:
  • WebView/WebView.mm:

Source/WebKit/win:

Removed Shadow DOM from options (enabled by default)
(comprises removal of corresponding preprocessor directives)

  • WebView.cpp:

Source/WebKit2:

Removed Shadow DOM from options (enabled by default)
(comprises removal of corresponding preprocessor directives)

  • Configurations/FeatureDefines.xcconfig:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:
  • WebProcess/WebPage/WebPage.cpp:

Tools:

Removed Shadow DOM from options (enabled by default)

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
8:13 AM Changeset in webkit [202090] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

[Cocoa] Add two notify listeners for poking the garbage collector.
<https://webkit.org/b/158783>

Reviewed by Antti Koivisto.

Add two new notify listeners:

  • com.apple.WebKit.fullGC

Trigger a full garbage collection in the main WebCore VM immediately.

  • com.apple.WebKit.deleteAllCode

Throw away all of JSC's linked and unlinked code, and do a full GC.

These will make it easier to diagnose memory growth issues by having a lever that
eliminates many of the large object graphs without going after behavior-changing things
like the memory cache.

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::platformInitialize):

  • platform/MemoryPressureHandler.h:
  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::platformInitialize):

7:12 AM Changeset in webkit [202089] by Antti Koivisto
  • 18 edits in trunk

Vary:Cookie validation doesn't work in private browsing
https://bugs.webkit.org/show_bug.cgi?id=158616
Source/WebCore:

<rdar://problem/26755067>

Reviewed by Andreas Kling.

There wasn't a way to get cookie based on SessionID from WebCore.

  • platform/CookiesStrategy.h:

Add a cookie retrival function that takes SessionID instead of NetworkStorageSession.

  • platform/network/CacheValidation.cpp:

(WebCore::headerValueForVary):

Use it.

(WebCore::verifyVaryingRequestHeaders):

Source/WebKit/mac:

<rdar://problem/26755067>

Reviewed by Andreas Kling.

  • WebCoreSupport/WebFrameNetworkingContext.h:

(WebFrameNetworkingContext::create):

  • WebCoreSupport/WebFrameNetworkingContext.mm:

(privateSession):
(WebFrameNetworkingContext::ensurePrivateBrowsingSession):

Expose the private browsing session.

(WebFrameNetworkingContext::destroyPrivateBrowsingSession):

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::cookieRequestHeaderFieldValue):

Implement SessionID version of the function.

(WebPlatformStrategies::getRawCookies):

Source/WebKit2:

<rdar://problem/26755067>

Reviewed by Andreas Kling.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):

Implement SessionID version of the function.

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

LayoutTests:

Reviewed by Darin Adler.

  • http/tests/cache/disk-cache/disk-cache-vary-cookie-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-vary-cookie.html:

Exapand the existing test to cover memory cache and private browsing.

2:55 AM Changeset in webkit [202088] by pvollan@apple.com
  • 4 edits in trunk

[Win] The test accessibility/selected-text-range-aria-elements.html is failing.
https://bugs.webkit.org/show_bug.cgi?id=158732

Reviewed by Brent Fulgham.

Source/WebCore:

Implement support for getting selected text range.

  • accessibility/win/AccessibilityObjectWrapperWin.cpp:

(WebCore::AccessibilityObjectWrapper::accessibilityAttributeValue):

Tools:

Implement selectedTextRange() method.

  • DumpRenderTree/win/AccessibilityUIElementWin.cpp:

(AccessibilityUIElement::selectedTextRange):

2:36 AM Changeset in webkit [202087] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win] MiniBrowser is not DPI aware.
https://bugs.webkit.org/show_bug.cgi?id=158733

Reviewed by Brent Fulgham.

Call Win32 api function to let Windows know that we will scale the contents ourselves.

  • MiniBrowser/win/WinMain.cpp:

(wWinMain):

2:26 AM Changeset in webkit [202086] by pvollan@apple.com
  • 2 edits in trunk/Tools

Unreviewed: add new email address to contributors.json.

  • Scripts/webkitpy/common/config/contributors.json:

Jun 14, 2016:

11:36 PM Changeset in webkit [202085] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Addressing post-review comments after r201971
https://bugs.webkit.org/show_bug.cgi?id=158450

Unreviewed.

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::add):
(WebCore::CSSFontFaceSet::remove):

10:04 PM Changeset in webkit [202084] by keith_miller@apple.com
  • 2 edits in trunk/Tools

JSBench should use geometric mean
https://bugs.webkit.org/show_bug.cgi?id=158775

Reviewed by Mark Lam.

For some reason JSBench was using algebraic mean. Since each test
is pretty substantially different it should use geometric mean
instead.

  • Scripts/run-jsc-benchmarks:
9:44 PM Changeset in webkit [202083] by mmaxfield@apple.com
  • 6 edits
    2 adds in trunk

Honor bidi unicode codepoints
https://bugs.webkit.org/show_bug.cgi?id=149170
<rdar://problem/26527378>

Reviewed by Simon Fraser.

Source/WebCore:

BidiResolver doesn't have any concept of isolate Unicode code points, so produces
unexpected output when they are present. Fix by considering such code points as
whitespace in the bidi algorithm. This is a stop-gap measure until we can support
the codepoints fully in our Bidi algorithm.

Test: fast/text/isolate-ignore.html

  • platform/graphics/Font.cpp:

(WebCore::createAndFillGlyphPage):

  • platform/text/BidiResolver.h:

(WebCore::Subclass>::createBidiRunsForLine):

Source/WTF:

  • wtf/unicode/CharacterNames.h:

LayoutTests:

  • fast/text/isolate-ignore-expected.html: Added.
  • fast/text/isolate-ignore.html: Added.
7:52 PM Changeset in webkit [202082] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Rename DataGrid.showColumn to setColumnVisible
https://bugs.webkit.org/show_bug.cgi?id=158764
<rdar://problem/26801448>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid):
Drive-by update to initialize "this._columnChooserEnabled".

(WebInspector.DataGrid.prototype.set identifier):
(WebInspector.DataGrid.prototype.insertColumn):
(WebInspector.DataGrid.prototype._collapseColumnGroupWithCell):
Use new method name.

(WebInspector.DataGrid.prototype._contextMenuInHeader):
Drive-by style update.

7:52 PM Changeset in webkit [202081] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Storage tab should allow hiding columns in the cookies grid
https://bugs.webkit.org/show_bug.cgi?id=158767
<rdar://problem/26803568>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CookieStorageContentView.js:

(WebInspector.CookieStorageContentView.prototype._rebuildTable):
Enable column chooser, exclude Name and Value columns.

7:18 PM Changeset in webkit [202080] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

Avoid constructing a AuthenticationChallenge unnecessarily in the NetworkLoad constructor
https://bugs.webkit.org/show_bug.cgi?id=158746

Reviewed by Darin Adler.

Avoid constructing a AuthenticationChallenge unnecessarily in the
NetworkLoad constructor by using WTF::Optional<> for this data
member.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):

  • NetworkProcess/NetworkLoad.h:
7:07 PM Changeset in webkit [202079] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] Play glyph is pixelated when the page zoom is large
https://bugs.webkit.org/show_bug.cgi?id=158770
<rdar://problem/26092124>

Patch by Antoine Quint <Antoine Quint> on 2016-06-14
Reviewed by Dean Jackson.

Use the same technique that we use to scale the video controls by using a combination
of CSS "zoom" and "transform" properties to have the video play glyph scaled at its
native size regardless of page zoom.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.set pageScaleFactor):

6:45 PM Changeset in webkit [202078] by ap@apple.com
  • 2 edits in trunk/Tools

Debug crash logs are not fully symbolicated on Yosemite
https://bugs.webkit.org/show_bug.cgi?id=158760

Reviewed by Darin Adler.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg: Don't enable dSYM generation

for debug builds on Yosemite.

6:31 PM Changeset in webkit [202077] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Add missing WTFMove() in NetworkResourceLoader::didReceiveResponse()
https://bugs.webkit.org/show_bug.cgi?id=158745

Reviewed by Darin Adler.

Add missing WTFMove() in NetworkResourceLoader::didReceiveResponse()
to avoid copying the ResourceResponse.

  • NetworkProcess/NetworkResourceLoader.cpp:
6:25 PM Changeset in webkit [202076] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Regression(r201534): Compile time greatly regressed
https://bugs.webkit.org/show_bug.cgi?id=158765
<rdar://problem/26587342>

Reviewed by Darin Adler.

Compile time greatly regressed by r201534 due to Document.h now including
TextAutoSizing.h. Move the TextAutoSizingTraits back to Document.h to
restore pre-r201534 behavior.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::TextAutoSizingTraits::constructDeletedValue):
(WebCore::TextAutoSizingTraits::isDeletedValue):

  • dom/Document.h:
  • rendering/TextAutoSizing.h:

(WebCore::TextAutoSizingTraits::constructDeletedValue): Deleted.
(WebCore::TextAutoSizingTraits::isDeletedValue): Deleted.

6:03 PM Changeset in webkit [202075] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Inline media controls cut off PiP and fullscreen buttons on cnn.com
https://bugs.webkit.org/show_bug.cgi?id=158766
<rdar://problem/24175161>

Patch by Antoine Quint <Antoine Quint> on 2016-06-14
Reviewed by Dean Jackson.

The display of the picture-in-picture and fullscreen buttons are dependent on the availability
of video tracks through a call to hasVideo(). We need to ensure that the display properties of
both those buttons are updated when the number of video tracks has changed since the controls
may be populated prior to the availability of video tracks.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateHasVideo):

5:45 PM Changeset in webkit [202074] by commit-queue@webkit.org
  • 5 edits in trunk

The parser doesn't properly parse "super" when default parameter is an
arrow function.
https://bugs.webkit.org/show_bug.cgi?id=157872.

Patch by Caio Lima <Caio Lima> on 2016-06-14
Reviewed by Saam Barati.

The "super" member or "super()" could not be used when default parameter is an
arrow function, resuling in sytax error. It happened because the
"closestOrdinaryFunctionScope" was not being initialized properly
before "parseFunctionParameters" step and the condition
"functionSuperBinding == SuperBinding::NotNeeded" or
"functionConstructorKind != ConstructorKind::Derived" on
"Parser<LexerType>::parseMemberExpression" step were being true
resulting in SyntaxError.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseFunctionInfo): setting
"functionScope->setExpectedSuperBinding(expectedSuperBinding)" and
"functionScope->setConstructorKind(constructorKind)" before
"parseFunctionParameters" step.

5:43 PM Changeset in webkit [202073] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Visual Sidebar: Remove "Text -> Content" subsection
https://bugs.webkit.org/show_bug.cgi?id=158758
<rdar://problem/26799628>

Reviewed by Timothy Hatcher.

"content" CSS property only works with pseudo elements ::before and ::after.
It doesn't do anything for regular (non pseudo) elements. Remove it to
reduce UI clutter.

  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel.prototype.initialLayout):
(WebInspector.VisualStyleDetailsPanel.prototype._populateContentSection): Deleted.

  • UserInterface/Views/VisualStylePropertyEditor.css:

(.visual-style-property-container > *:first-child:matches(.visual-style-property-value-container)): Deleted.

5:42 PM Changeset in webkit [202072] by commit-queue@webkit.org
  • 8 edits
    2 moves in trunk

Web Inspector: Rename Timeline.setAutoCaptureInstruments to Timeline.setInstruments
https://bugs.webkit.org/show_bug.cgi?id=158762

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-14
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

Rename the protocol methods since the backend may use the instruments
for purposes other then auto-capture, such as programmatic capture
via console.profile.

  • inspector/protocol/Timeline.json:

Source/WebCore:

Test: inspector/timeline/setInstruments-errors.html

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
(WebCore::InspectorTimelineAgent::setInstruments):
(WebCore::InspectorTimelineAgent::mainFrameStartedLoading):
(WebCore::InspectorTimelineAgent::setAutoCaptureInstruments): Deleted.

  • inspector/InspectorTimelineAgent.h:

Source/WebInspectorUI:

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager.prototype._updateAutoCaptureInstruments):
(WebInspector.TimelineManager):

LayoutTests:

  • inspector/timeline/setInstruments-errors-expected.txt: Renamed from LayoutTests/inspector/timeline/setAutoCaptureInstruments-errors-expected.txt.
  • inspector/timeline/setInstruments-errors.html: Renamed from LayoutTests/inspector/timeline/setAutoCaptureInstruments-errors.html.
4:38 PM Changeset in webkit [202071] by ap@apple.com
  • 3 edits in trunk/Tools

Tests don't work in iOS Simulator when ASan is enabled
https://bugs.webkit.org/show_bug.cgi?id=158726

Reviewed by David Kilzer.

  • Scripts/webkitpy/port/driver.py:

(Driver._setup_environ_for_driver): Added a FIXME.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort.setup_environ_for_server): Don't try to insert a dylib built for
simulator into LayoutTestRelay, which is a macOS tool.

4:28 PM Changeset in webkit [202070] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Continuous "Reentrancy avoided" error messages in run-webkit-tests if Simulator quits unexpectedly
https://bugs.webkit.org/show_bug.cgi?id=158756

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/xcode/simulator.py:

(Simulator.wait_until_device_is_booted): If checking Simulator boot state fails, verify if
the "simulator device" is still in booted state. Since we ensured that simulator device
was in booted state earlier in this method, this indicates that simulator device has shut down
unexpectedly.

3:56 PM Changeset in webkit [202069] by ddkilzer@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Document the native format of JSChar type
<http://webkit.org/b/156137>

Reviewed by Darin Adler.

  • API/JSStringRef.h:

(typedef JSChar): Update documentation.

3:47 PM Changeset in webkit [202068] by dino@apple.com
  • 6 edits
    2 adds in trunk

decompose4 return value is unchecked, leading to potentially uninitialized data.
https://bugs.webkit.org/show_bug.cgi?id=158761
<rdar://problem/17526268>

Reviewed by Simon Fraser.

Source/WebCore:

WebCore::decompose4 could return early without initializing data.
I now initialize it, but I also started checking the return
value at all the call sites to make sure everything is sensible.

Test: transforms/undecomposable.html

  • platform/graphics/transforms/PerspectiveTransformOperation.cpp:

(WebCore::PerspectiveTransformOperation::blend):

  • platform/graphics/transforms/RotateTransformOperation.cpp:

(WebCore::RotateTransformOperation::blend):

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::decompose4):
(WebCore::TransformationMatrix::blend4):

  • platform/graphics/transforms/TransformationMatrix.h:

LayoutTests:

  • transforms/undecomposable-expected.txt: Added.
  • transforms/undecomposable.html: Added.
3:34 PM Changeset in webkit [202067] by keith_miller@apple.com
  • 6 edits
    4 adds in trunk

The Array species constructor watchpoints should be created the first time they are needed rather than on creation
https://bugs.webkit.org/show_bug.cgi?id=158754

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

We use adaptive watchpoints for some Array prototype functions to
ensure that the user has not overridden the value of the
Array.prototype.constructor or Array[Symbol.species]. This patch
changes when the Array species constructor watchpoints are
initialized. Before, those watchpoints would be created when the
global object is initialized. This had the advantage that it did
not require validating the constructor and Symbol.species
properties. On the other hand, it also meant that if the user were
to reconfigure properties Array.prototype, which would cause the
structure of the property to become an uncachable dictionary,
prior to running code that the watchpoints would be
invalidated. It turns out that JSBench amazon, for instance, does
reconfigure some of Array.prototype's properties. This patch
initializes the watchpoints the first time they are needed. Since
we only initialize once we also flatten the structure of Array and
Array.prototype.

  • runtime/ArrayPrototype.cpp:

(JSC::speciesConstructArray):
(JSC::ArrayPrototype::attemptToInitializeSpeciesWatchpoint):
(JSC::ArrayPrototypeAdaptiveInferredPropertyWatchpoint::handleFire):
(JSC::ArrayPrototype::setConstructor): Deleted.

  • runtime/ArrayPrototype.h:

(JSC::ArrayPrototype::speciesWatchpointStatus):
(JSC::ArrayPrototype::didChangeConstructorOrSpeciesProperties): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::speciesGetterSetter):
(JSC::JSGlobalObject::arrayConstructor):

  • tests/stress/array-symbol-species-lazy-watchpoints.js: Added.

(test):
(arrayEq):
(A):

LayoutTests:

Add new micro-benchmark that tests the impact of lazily
initializing the array species watchpoints.

  • js/regress/lazy-array-species-watchpoints-expected.txt: Added.
  • js/regress/lazy-array-species-watchpoints.html: Added.
  • js/regress/script-tests/lazy-array-species-watchpoints.js: Added.

(test):

3:09 PM Changeset in webkit [202066] by commit-queue@webkit.org
  • 35 edits
    2 adds in trunk

Add the unprefixed version of the pseudo element ::placeholder
https://bugs.webkit.org/show_bug.cgi?id=158653

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-14
Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/forms/placeholder-pseudo-element-with-webkit-prefix.html

The pseudo element ::-webkit-input-placeholder is stupidly popular
which forces other engines to support this exact name.

The pseudo-element spec provides a new standard name we can adopt
to drop the prefix: https://drafts.csswg.org/css-pseudo-4/#placeholder-pseudo

This patch does just that, make ::placeholder the standard name to select
the placeholder element in the shadow dom of input elements.

Unlike pseudo classes, we did not have any support for prefixes and aliasing.
I want to keep the absurdly efficient matching we currently use for styling
because style updates are more common than stylesheet updates.
With that constraint in mind, the value of CSSSelector has to be the unprefixed
version for both forms of input.

This leaves us with the problem of displaying the CSSSelector for CSSOM.
To differentiate the legacy form from the standard form, I added
a new type of PseudoElement: PseudoElementWebKitCustomLegacyPrefixed.
When parsing, PseudoElementWebKitCustomLegacyPrefixed let us replace
the original value "-webkit-input-placeholder" by the standard value.
When creating the selectorText for CSSOM, PseudoElementWebKitCustomLegacyPrefixed
let us replace the standard for by the legacy form.

  • css/CSSParserValues.cpp:

(WebCore::CSSParserSelector::parsePseudoElementSelector):

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::pseudoId):
(WebCore::CSSSelector::selectorText):

  • css/CSSSelector.h:

(WebCore::CSSSelector::isCustomPseudoElement):
(WebCore::CSSSelector::isWebKitCustomPseudoElement):

  • css/SelectorChecker.cpp:

(WebCore::SelectorChecker::matchRecursively):

  • css/SelectorPseudoElementTypeMap.in:
  • css/html.css:

(::placeholder):
(input::placeholder, isindex::placeholder):
(textarea::placeholder):
(::-webkit-input-placeholder): Deleted.
(input::-webkit-input-placeholder, isindex::-webkit-input-placeholder): Deleted.
(textarea::-webkit-input-placeholder): Deleted.

  • features.json:
  • html/shadow/TextControlInnerElements.cpp:

(WebCore::TextControlPlaceholderElement::TextControlPlaceholderElement):

Source/WebInspectorUI:

  • UserInterface/Views/FilterBar.css:

(.filter-bar > input[type="search"]::placeholder):
(.filter-bar > input[type="search"]::-webkit-input-placeholder): Deleted.

  • UserInterface/Views/FindBanner.css:

(.find-banner.console-find-banner > input[type="search"]::placeholder):
(.find-banner.console-find-banner > input[type="search"]::-webkit-input-placeholder): Deleted.

  • UserInterface/Views/GoToLineDialog.css:

(.go-to-line-dialog > div > input::placeholder):
(.go-to-line-dialog > div > input::-webkit-input-placeholder): Deleted.

  • UserInterface/Views/OpenResourceDialog.css:

(.open-resource-dialog > .field > input::placeholder):
(.open-resource-dialog > .field > input::-webkit-input-placeholder): Deleted.

  • UserInterface/Views/SearchBar.css:

(.search-bar > input[type="search"]::placeholder):
(.search-bar > input[type="search"]::-webkit-input-placeholder): Deleted.

  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:

LayoutTests:

  • fast/css/css-selector-text-expected.txt:
  • fast/css/css-selector-text.html:
  • fast/css/css-set-selector-text-expected.txt:
  • fast/css/css-set-selector-text.html:

This covers CSSOM for the prefixed version.

  • fast/forms/placeholder-pseudo-element-with-webkit-prefix-expected.html: Added.
  • fast/forms/placeholder-pseudo-element-with-webkit-prefix.html: Added.

This verifies both version of the pseudo elements are equivalent.

  • fast/css/pseudo-cache-stale-expected.html:
  • fast/css/pseudo-cache-stale.html:
  • fast/forms/input-placeholder-paint-order-2-expected.html:
  • fast/forms/input-placeholder-paint-order-2.html:
  • fast/forms/input-placeholder-paint-order.html:
  • fast/forms/input-placeholder-text-indent.html:
  • fast/forms/input-user-modify.html:
  • fast/forms/isindex-placeholder.html:
  • fast/forms/placeholder-position.html:
  • fast/forms/placeholder-pseudo-style.html:
  • fast/forms/textarea-placeholder-pseudo-style.html:
  • fast/forms/textarea/textarea-placeholder-paint-order-2-expected.html:
  • fast/forms/textarea/textarea-placeholder-paint-order-2.html:
  • fast/forms/textarea/textarea-placeholder-paint-order.html:
3:02 PM Changeset in webkit [202065] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

Follow-up fix #2: REGRESSION (r202020): El Capitan CMake Debug build broken
<https://webkit.org/b/158743>

Unreviewed build fix.

  • DumpRenderTree/PlatformMac.cmake: Fix silly typo.
2:42 PM Changeset in webkit [202064] by Nikita Vasilyev
  • 13 edits in trunk/Source/WebInspectorUI

Web Inspector: Introduce --navigation-bar-height CSS variable
https://bugs.webkit.org/show_bug.cgi?id=158752

Reviewed by Timothy Hatcher.

Abstract a commonly repeated height value (29px) into a variable.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.css:

(.sidebar > .panel.details.css-style > .content.has-filter-bar):

  • UserInterface/Views/DebuggerSidebarPanel.css:

(.sidebar > .panel.navigation.debugger > :matches(.content, .empty-content-placeholder)):

  • UserInterface/Views/FilterBar.css:

(.filter-bar):

  • UserInterface/Views/NavigationBar.css:

(.navigation-bar):

  • UserInterface/Views/NavigationSidebarPanel.css:

(.sidebar > .panel.navigation > .content):
(.sidebar > .panel.navigation > .overflow-shadow.top):

  • UserInterface/Views/NetworkSidebarPanel.css:

(.sidebar > .panel.navigation.network > .title-bar):

  • UserInterface/Views/ResourceSidebarPanel.css:

(.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):

  • UserInterface/Views/SearchSidebarPanel.css:

(.sidebar > .panel.navigation.search > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.search > .search-bar):

  • UserInterface/Views/Sidebar.css:

(.sidebar.has-navigation-bar > .panel):

  • UserInterface/Views/StorageSidebarPanel.css:

(.sidebar > .panel.navigation.storage > :matches(.content, .empty-content-placeholder)):

  • UserInterface/Views/TimelineRecordingContentView.css:

(.content-view.timeline-recording > .content-browser .recording-progress):

  • UserInterface/Views/Variables.css:

(:root):

2:28 PM Changeset in webkit [202063] by d_russell@apple.com
  • 13 edits
    10 adds in trunk

AX: Form label text should be exposed as static text if it contains only static text
https://bugs.webkit.org/show_bug.cgi?id=158634

Reviewed by Chris Fleizach.

Use AccessibilityLabel to represent HTMLLabelElement to assistive technology.
AccessibilityLabel::containsOnlyStaticText() searches label subtree to evaluate
if all children are static text.
AccessibilityLabel::stringValue() consults containsOnlyStaticText() and returns
textUnderElement() if true.
WebAccessibilityObjectWrapperMac consults containsOnlyStaticText() and substitutes
StaticTextRole for LabelRole if true.
Cache containsOnlyStaticText() in the common case when updating children.

Source/WebCore:

Tests: accessibility/mac/label-element-all-text-string-value.html

accessibility/mac/label-element-with-link-string-value.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AXObjectCache.cpp:

(WebCore::createFromRenderer):

  • accessibility/AccessibilityAllInOne.cpp:
  • accessibility/AccessibilityLabel.cpp: Added.

(WebCore::AccessibilityLabel::AccessibilityLabel):
(WebCore::AccessibilityLabel::~AccessibilityLabel):
(WebCore::AccessibilityLabel::create):
(WebCore::AccessibilityLabel::computeAccessibilityIsIgnored):
(WebCore::AccessibilityLabel::stringValue):
(WebCore::childrenContainOnlyStaticText):
(WebCore::AccessibilityLabel::containsOnlyStaticText):
(WebCore::AccessibilityLabel::updateChildrenIfNecessary):
(WebCore::AccessibilityLabel::clearChildren):
(WebCore::AccessibilityLabel::insertChild):

  • accessibility/AccessibilityLabel.h: Added.
  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isLabel):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper role]):

LayoutTests:

  • accessibility/aria-labelledby-overrides-label-expected.txt:
  • accessibility/mac/label-element-all-text-string-value-expected.txt: Added.
  • accessibility/mac/label-element-all-text-string-value.html: Added.
  • accessibility/mac/label-element-with-hidden-control-expected.txt:
  • accessibility/mac/label-element-with-hidden-control.html:
  • accessibility/mac/label-element-with-link-string-value-expected.txt: Added.
  • accessibility/mac/label-element-with-link-string-value.html: Added.
  • accessibility/mac/slider-allows-title-ui-element-expected.txt:
  • accessibility/mac/slider-allows-title-ui-element.html:
2:27 PM Changeset in webkit [202062] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Too much log data generated during layout-tests on iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=158751

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort._quit_ios_simulator): Do not use -v flag.
(IOSSimulatorPort.clean_up_test_run): Ditto.
(IOSSimulatorPort._createSimulatorApp): Ditto.

1:35 PM Changeset in webkit [202061] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Increase timeouts for userscripts/window-onerror-for-isolated-world-3.html to fix flakiness.
https://bugs.webkit.org/show_bug.cgi?id=158750

Reviewed by Joseph Pecoraro.

  • userscripts/window-onerror-for-isolated-world-3.html:
1:17 PM Changeset in webkit [202060] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

Follow-up fix: REGRESSION (r202020): El Capitan CMake Debug build broken
<https://webkit.org/b/158743>

Unreviewed build fix.

The fix in r202056 clobbered DumpRenderTree_SOURCES and
TestNetscapePlugin_SOURCES from DumpRenderTree/CMakeLists.txt,
so the build failure is now that we're not building the common
sources.

Fix that by saving the common sources (which are all C++ source
files) into *_Cpp_SOURCES lists first, then setting the compiler
flags, then creating the final *_SOURCES lists.

  • DumpRenderTree/PlatformMac.cmake: Add

${TestNetscapePlugin_Cpp_SOURCES} to list that needs
"-std=c++14" compiler switch.
(TestNetscapePlugin_Cpp_SOURCES): Add new list for C++ source
files for TestNetscapePlugin. Seeded with
${TestNetscapePlugin_SOURCES} from CMakeLists.txt.
(TestNetscapePlugin_SOURCES): Add
${TestNetscapePlugin_Cpp_SOURCES} to the list of files.
(DumpRenderTree_Cpp_SOURCES): Seed list for C++ source files
with ${DumpRenderTree_SOURCES} from CMakeLists.txt.
(DumpRenderTree_SOURCES): Reformat and sort source lists.

1:15 PM Changeset in webkit [202059] by Ryan Haddad
  • 6 edits
    2 deletes in trunk

Unreviewed, rolling out r202057.
https://bugs.webkit.org/show_bug.cgi?id=158749

This change broke the Windows build. (Requested by ryanhaddad
on #webkit).

Reverted changeset:

"Honor bidi unicode codepoints"
https://bugs.webkit.org/show_bug.cgi?id=149170
http://trac.webkit.org/changeset/202057

Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-14

12:01 PM Changeset in webkit [202058] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(202002-202014): 845 32-bit JSC Stress Test failures
https://bugs.webkit.org/show_bug.cgi?id=158737

Reviewed by Filip Pizlo.

When the this child and arguments child for the varargs nodes was switched I missed one
case in the 32-bit build.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

11:59 AM Changeset in webkit [202057] by mmaxfield@apple.com
  • 6 edits
    2 adds in trunk

Honor bidi unicode codepoints
https://bugs.webkit.org/show_bug.cgi?id=149170
<rdar://problem/26527378>

Reviewed by Simon Fraser.

Source/WebCore:

BidiResolver doesn't have any concept of isolate Unicode code points, so produces
unexpected output when they are present. Fix by considering such code points as
whitespace in the bidi algorithm. This is a stop-gap measure until we can support
the codepoints fully in our Bidi algorithm.

Test: fast/text/isolate-ignore.html

  • platform/graphics/Font.cpp:

(WebCore::createAndFillGlyphPage):

  • platform/text/BidiResolver.h:

(WebCore::Subclass>::createBidiRunsForLine):

Source/WTF:

  • wtf/unicode/CharacterNames.h:

LayoutTests:

  • fast/text/isolate-ignore-expected.html: Added.
  • fast/text/isolate-ignore.html: Added.
11:51 AM Changeset in webkit [202056] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r202020): El Capitan CMake Debug build broken
<https://webkit.org/b/158743>

Reviewed by Alex Christensen.

The bug was that pure C++ source files (and Objective-C source
files) were being compiled as Objective-C++ source files. This
is obviously incorrect, so the fix was to split out the list of
source files by language, then define compiler switches based on
each file type.

  • DumpRenderTree/PlatformMac.cmake: Replace add_definitions()

with separate foreach loops that set compiler flags based on
each source file's type.
(TestNetscapePlugin_ObjCpp_SOURCES): Rename from
TestNetscapePlugin_SOURCES.
(TestNetscapePlugin_SOURCES): Create based on
${TestNetscapePlugin_ObjCpp_SOURCES}.
(DumpRenderTree_ObjC_SOURCES): Split from DumpRenderTree_SOURCES.
(DumpRenderTree_Cpp_SOURCES): Ditto.
(DumpRenderTree_ObjCpp_SOURCES): Ditto.
(DumpRenderTree_SOURCES): Create from above three lists.

11:42 AM Changeset in webkit [202055] by sbarati@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Follow up to: Web Inspector: Call Trees view should have a 'Top Functions'-like mode
https://bugs.webkit.org/show_bug.cgi?id=158555
<rdar://problem/26712544>

Unreviewed follow up patch.

  • Move a long if-else sequence to a switch statement.
  • Fix a copy-paste typo in a Symbol(.) enum.
  • UserInterface/Models/CallingContextTree.js:

(WebInspector.CallingContextTree.prototype.updateTreeWithStackTrace):

11:37 AM Changeset in webkit [202054] by Chris Dumez
  • 8 edits in trunk/Source/WebKit2

Reduce copying of NetworkLoadParameters
https://bugs.webkit.org/show_bug.cgi?id=158744

Reviewed by Alex Christensen.

Reduce copying of NetworkLoadParameters by moving it around instead.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload):

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::PendingDownload):

  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::NetworkLoad):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::startNetworkLoad):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):

11:09 AM Changeset in webkit [202053] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Removing duplicated TestExpectation and sorting others alphabetically

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:03 AM Changeset in webkit [202052] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/debugger/break-in-constructor-before-super.html as flaky on mac debug.
https://bugs.webkit.org/show_bug.cgi?id=158742

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:55 AM Changeset in webkit [202051] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Moving flaky expectation for inspector/heap/garbageCollected.html from mac-wk1 to mac
https://bugs.webkit.org/show_bug.cgi?id=153039

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
  • platform/mac/TestExpectations:
9:54 AM Changeset in webkit [202050] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Unreviewed, rolling out r200455.
https://bugs.webkit.org/show_bug.cgi?id=158740

hangs twitter/facebook (Requested by mcatanzaro on #webkit).

Reverted changeset:

"[GStreamer] Adaptive streaming issues"
https://bugs.webkit.org/show_bug.cgi?id=144040
http://trac.webkit.org/changeset/200455

9:46 AM Changeset in webkit [202049] by nael.ouedraogo@crf.canon.fr
  • 4 edits in trunk

WebRTC: RTCPeerConnection::addTrack() should throw InvalidAccessError instead of InvalidModificationError.
https://bugs.webkit.org/show_bug.cgi?id=158735

Reviewed by Eric Carlson.

Source/WebCore:

Throw InvalidAccessError instead of InvalidModificationError when track already exists in connection's
set of senders as per specification (https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-addtrack).

Updated existing test results: fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::addTrack):

LayoutTests:

Check that an InvalidAccessError exception is thrown when the track already exists in set of senders.

  • fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt:
9:41 AM Changeset in webkit [202048] by adam.bergkvist@ericsson.com
  • 8 edits
    2 adds in trunk

WebRTC: Imlement MediaEndpointPeerConnection::addIceCandidate()
https://bugs.webkit.org/show_bug.cgi?id=158690

Reviewed by Eric Carlson.

Source/WebCore:

Implement MediaEndpointPeerConnection::addIceCandidate() that is the MediaEndpoint
implementation of RTCPeerConnection.addIceCandidate() [1].

[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-peerconnection-addicecandidate

Test: fast/mediastream/RTCPeerConnection-addIceCandidate.html

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::addIceCandidate):
(WebCore::MediaEndpointPeerConnection::addIceCandidateTask):
Implemented.

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • platform/mediastream/MediaEndpoint.h:

Use mid instead of mdescIndex to identify the target media description in the backend.

  • platform/mock/MockMediaEndpoint.cpp:

Update mock method signature accordingly.
(WebCore::MockMediaEndpoint::addRemoteCandidate):

  • platform/mock/MockMediaEndpoint.h:

LayoutTests:

Add test for RTCPeerConnection.addIceCandidate() that verifies:

  • Candidate line parsing
  • That a underlying media description can be identified using either sdpMid or sdpMLineIndex
  • That sdpMid takes precedence over sdpMLineIndex
  • fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-addIceCandidate.html: Added.
  • platform/mac/TestExpectations:

The mac port is not building with WEB_RTC yet.

9:40 AM Changeset in webkit [202047] by Lucas Forschler
  • 2 edits in trunk/Tools

<rdar://problem/26685782>
Teach the copy-webkitlibraries-to-product-directory script about WebKitSystemInterfaceOSX10.12

Rubber-stamped by Jessie Berlin.

  • Scripts/copy-webkitlibraries-to-product-directory:
9:32 AM Changeset in webkit [202046] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Tools

Activate CMake export compile commands option
https://bugs.webkit.org/show_bug.cgi?id=158734

Reviewed by Alex Christensen.

  • Scripts/webkitdirs.pm:

(generateBuildSystemFromCMakeProject): Activating this option for all CMake builds.
This allows using ymcd for WebKit hacking.

9:32 AM Changeset in webkit [202045] by Lucas Forschler
  • 5 edits
    1 add in trunk/WebKitLibraries

Update existing WebKitSystemInterface Libraries.
Add macOS Sierra WebKitSystemInterface.

Rubber-stamped by Alexey Proskuryakov.

  • libWebKitSystemInterfaceElCapitan.a:
  • libWebKitSystemInterfaceIOSDevice9.2.a:
  • libWebKitSystemInterfaceIOSSimulator9.2.a:
  • libWebKitSystemInterfaceOSX10.12.a: Added.
  • libWebKitSystemInterfaceYosemite.a:
9:07 AM Changeset in webkit [202044] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Make RenderBlock::insertInto/RemoveFromTrackedRendererMaps functions static.
https://bugs.webkit.org/show_bug.cgi?id=158722

Reviewed by Simon Fraser.

These functions manipulate static tracker hashmaps. They don't need to be on RenderBlock.
This is also in preparation for decoupling positioned descendant tracking from descendent percentage height handling.
(gPositionedDescendantsMap and gPercentHeightDescendantsMap)

No change in functionality.

  • rendering/RenderBlock.cpp:

(WebCore::insertIntoTrackedRendererMaps):
(WebCore::removeFromTrackedRendererMaps):
(WebCore::removeBlockFromDescendantAndContainerMaps):
(WebCore::RenderBlock::insertPositionedObject):
(WebCore::RenderBlock::addPercentHeightDescendant):
(WebCore::RenderBlock::insertIntoTrackedRendererMaps): Deleted.
(WebCore::RenderBlock::removeFromTrackedRendererMaps): Deleted.

  • rendering/RenderBlock.h:
8:13 AM Changeset in webkit [202043] by adam.bergkvist@ericsson.com
  • 4 edits
    2 adds in trunk

WebRTC: Add media setup test where media is set up in one direction at a time
https://bugs.webkit.org/show_bug.cgi?id=158691

Reviewed by Eric Carlson.

Source/WebCore:

Add test for setting up media in one direction at a time. This requires a change in sdp.js
to allow an SDP that doesn't contain a stream id or track id (representing
a track being sent). In this test, the first answer doesn't contain any sending media.

Test: fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html

  • Modules/mediastream/sdp.js:

LayoutTests:

Test setting up media in one direction at a time. This is achieved by first negotiating
media in one direction. In a second step, an updated offer is sent to add bi-directional
media.

  • fast/mediastream/RTCPeerConnection-media-setup-two-dialogs-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-media-setup-two-dialogs.html: Added.
  • platform/mac/TestExpectations:

The mac port is not building with WEB_RTC yet.

7:31 AM Changeset in webkit [202042] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

[Cocoa] Avoid extra copy of headers dictionary in ResourceResponse::platformLazyInit()
https://bugs.webkit.org/show_bug.cgi?id=158717

Reviewed by Alex Christensen.

Avoid extra copy of headers dictionary in ResourceResponse::platformLazyInit() by
calling CFHTTPMessageCopyAllHeaderFields() instead of [NSURLResponse allHeaderFields].

CFHTTPMessageCopyAllHeaderFields() creates only 1 copy while
[NSURLResponse allHeaderFields] creates 2 (see <rdar://problem/26778863>).

  • platform/network/cocoa/ResourceResponseCocoa.mm:

(WebCore::addToHTTPHeaderMap):
(WebCore::ResourceResponse::platformLazyInit):

6:10 AM Changeset in webkit [202041] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION (r151608): Leak of QTMovieLayer or AVPlayerLayer in -[WebVideoFullscreenController setVideoElement:]
<https://webkit.org/b/158729>

Reviewed by Eric Carlson.

  • platform/mac/WebVideoFullscreenController.mm:

(-[WebVideoFullscreenController setVideoElement:]): Use
RetainPtr<> to prevent leaks.

  • platform/mac/WebVideoFullscreenHUDWindowController.mm:

Drive-by fix to remove unused <wtf/RetainPtr.h> import.

3:00 AM WebKitGTK/2.12.x edited by Carlos Garcia Campos
(diff)
2:58 AM Changeset in webkit [202040] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebKit2

[ThreadedCompositor] Opening the inspector in a window causes a crash.
https://bugs.webkit.org/show_bug.cgi?id=154444

Reviewed by Žan Doberšek.

The threaded compositor doesn't handle the case of changing or removing the native surface handle. When the web
view is reparented, the current native surface handle is destroyed when the view is removed from the parent, and
a new one is created when added to the new parent. We need to handle this case in the threaded compositor.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::CompositingRunLoop::stopUpdateTimer): Allow users to stop the update timer.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): Use performTaskSync because this is called
from a synchronous IPC message and right after it returns, the current native surface is destroyed by the UI
process. So we need to ensure we finish all pending operations for the current native surface in the compositing
thread before it's destroyed. Then we enable or disable the scene depending on whether the native surface has
been created or destroyed and destroy the current context in case the new handle is 0.
(WebKit::ThreadedCompositor::tryEnsureGLContext): Just renamed to make it clear that it can fail.
(WebKit::ThreadedCompositor::glContext):
(WebKit::ThreadedCompositor::renderLayerTree): Return early if scene is not active.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::setNativeSurfaceHandleForCompositing): Schedule a new layer flush
after the native surface handle changed.

1:08 AM Changeset in webkit [202039] by nael.ouedraogo@crf.canon.fr
  • 3 edits in trunk/Source/WebCore

The vector of mediastreams should be passed via a reference to RTCPeerConnection::addTrack()
https://bugs.webkit.org/show_bug.cgi?id=158701

Pass vector of mediastreams by reference.

Reviewed by Youenn Fablet.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::addTrack):

  • Modules/mediastream/RTCPeerConnection.h:
12:52 AM Changeset in webkit [202038] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

[Threaded Compositor] Modernize and simplify threaded compositor code
https://bugs.webkit.org/show_bug.cgi?id=158615

Reviewed by Žan Doberšek.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::CompositingRunLoop::performTask): Use NoncopyableFunction.
(WebKit::CompositingRunLoop::performTaskSync): Ditto.
(WebKit::CompositingRunLoop::startUpdateTimer): Just renamed to start instead of set.
(WebKit::CompositingRunLoop::run): Expose run/stop methods instead of the internal RunLoop object.
(WebKit::CompositingRunLoop::stop): Also stop the update timer instead of relying on the caller to do it.
(WebKit::CompositingRunLoop::setUpdateTimer): Deleted.
(WebKit::CompositingRunLoop::stopUpdateTimer): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing): Protects this directly in lambda capture.
(WebKit::ThreadedCompositor::setDeviceScaleFactor): Ditto.
(WebKit::ThreadedCompositor::didChangeViewportSize): Ditto.
(WebKit::ThreadedCompositor::didChangeViewportAttribute): Ditto.
(WebKit::ThreadedCompositor::didChangeContentsSize): Ditto.
(WebKit::ThreadedCompositor::scrollTo): Ditto.
(WebKit::ThreadedCompositor::scrollBy): Ditto.
(WebKit::ThreadedCompositor::updateViewport): Use startUpdateTimer().
(WebKit::ThreadedCompositor::scheduleDisplayImmediately): Ditto.
(WebKit::ThreadedCompositor::didChangeVisibleRect): Improve lambda captures.
(WebKit::ThreadedCompositor::renderLayerTree): Use m_viewportController directly.
(WebKit::ThreadedCompositor::createCompositingThread): Use createThread() version that receives a function.
(WebKit::ThreadedCompositor::runCompositingThread): Use run method and don't stop the update timer when the run
loop finishes.
(WebKit::ThreadedCompositor::terminateCompositingThread): Use stop method.
(WebKit::ThreadedCompositor::ThreadedCompositor): Deleted.
(WebKit::ThreadedCompositor::compositingThreadEntry): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:

(WebKit::ThreadedCompositor::viewportController): Deleted.

12:48 AM Changeset in webkit [202037] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

[Threaded Compositor] Flickering and rendering artifacts when resizing the web view
https://bugs.webkit.org/show_bug.cgi?id=154070

Reviewed by Žan Doberšek.

Resizing the web view is expected to be a sync operation, the UI process creates a new backing store state ID,
sends UpdateBackingStoreState message with the flag RespondImmediately to the web process and waits up to 500ms
for the reply (DidUpdateBackingStoreState message). When using the threaded compositor, we schedule a task in
the compositing thread to update the viewport size, and return immediately, so that we reply to the UI process
before the compositing thread has actually updated its size. There's a moment in which sizes are out of sync
causing the flickering and rendering artifacts, the UI process continues rendering at the new size, while the
web process is still rendering at the previous size. We can prevent this from happening just by making the
resize task synchronous in the threaded compositor.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::CompositingRunLoop::performTaskSync): Add sync version of performTask().

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::didChangeViewportSize): Use performTaskSync().

12:43 AM Changeset in webkit [202036] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix Soup downloads after r201943.

This is a follow up of r201943. The DownloadClient used in DownloadSoup was not updated to the new API of the
ResourceHandleClient because it was not using override on the virtual methods, so it was unnoticed. That broke
the downloads soup implementation, because didReceiveResponse is no longer used in the DownloadClient. This
patch updates the DownloadClient to the new ResourceHandleClient API adding also override to all the virtual
methods to prevent this from happening in the future.

  • NetworkProcess/Downloads/soup/DownloadSoup.cpp:

(WebKit::Download::start):
(WebKit::Download::startWithHandle):
(WebKit::DownloadClient::DownloadClient):
(WebKit::DownloadClient::downloadFailed):
(WebKit::DownloadClient::didReceiveResponse):
(WebKit::DownloadClient::didReceiveData):
(WebKit::DownloadClient::didFinishLoading):
(WebKit::DownloadClient::didFail):
(WebKit::DownloadClient::wasBlocked): Deleted.
(WebKit::DownloadClient::cannotShowURL): Deleted.
(WebKit::DownloadClient::cancel):
(WebKit::DownloadClient::handleResponse):

12:35 AM Changeset in webkit [202035] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash inside firstPositionInNode in checkLoadCompleteForThisFrame
https://bugs.webkit.org/show_bug.cgi?id=158724

Reviewed by Alex Christensen.

Added null checks for document and document element since they could be nullptr here.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::checkLoadCompleteForThisFrame):

12:10 AM Changeset in webkit [202034] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

Modernize DumpRenderTreeMac.h
<https://webkit.org/b/158721>

Reviewed by Andy Estes.

  • DumpRenderTree/mac/DumpRenderTreeMac.h:
  • Update copyright.
  • Update license.
  • Use #pragma once.
  • Use OBJC_CLASS macro.

Jun 13, 2016:

11:57 PM Changeset in webkit [202033] by barraclough@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

setUpStaticFunctionSlot does not handle Builtin|Accessor properties
https://bugs.webkit.org/show_bug.cgi?id=158637

Reviewed by Geoff Garen.

setUpStaticFunctionSlot contains a duplicate copy of the body of the function reifyStaticProperty

  • however it is missing handling for Accessor type under Builtin functions.

Fix the bug by de-duplicating - setUpStaticFunctionSlot should just call reifyStaticProperty.

  • runtime/Lookup.cpp:

(JSC::setUpStaticFunctionSlot):

  • should just call reifyStaticProperty.
  • runtime/Lookup.h:

(JSC::lookupPut):
(JSC::reifyStaticProperty):

  • changed reifyStaticProperty to take PropertyName.
11:36 PM Changeset in webkit [202032] by barraclough@apple.com
  • 2 edits in trunk/Source/WebCore

Remove hasStaticPropertyTable (part 3: JSLocation::putDelegate)
https://bugs.webkit.org/show_bug.cgi?id=158431

Unreviewed build fix.

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::putDelegate):

11:18 PM Changeset in webkit [202031] by barraclough@apple.com
  • 3 edits in trunk/Source/WebCore

Remove hasStaticPropertyTable (part 4: JSHTMLDocument & JSStorage)
https://bugs.webkit.org/show_bug.cgi?id=158431

Reviewed by Chris Dumez.

All uses of hasStaticPropertyTable flag generated by bindings are wrong.

JSHTMLDocument & JSStorage contain a number of static_asserts claiming that
various methods do not support static properties. These asserts were likely
correct at the time they were added, as JSObject::getOwnPropertySlot and
JSObject::deleteProperty did not support getting / deleting static value.
This is no longer the case, and these asserts are now incorrect.

  • bindings/js/JSHTMLDocumentCustom.cpp:

(WebCore::JSHTMLDocument::getOwnPropertySlot):

  • bindings/js/JSStorageCustom.cpp:

(WebCore::JSStorage::deleteProperty):
(WebCore::JSStorage::deletePropertyByIndex):
(WebCore::JSStorage::putDelegate):

  • remove incorrect static_asserts.
11:17 PM Changeset in webkit [202030] by barraclough@apple.com
  • 2 edits in trunk/Source/WebCore

Remove hasStaticPropertyTable (part 3: JSLocation::putDelegate)
https://bugs.webkit.org/show_bug.cgi?id=158431

Reviewed by Geoff Garen.

All uses of hasStaticPropertyTable flag generated by bindings are wrong.

JSLocation::putDelegate checks the static property table redundantly.

In the case of same origin access, if the property is not in the static
table the method will call JSObject::put and return true (indicating the
delegate handled the put). If the property is in the static table, the
method will return false (indicating the the delegate did not handle the
access) - in which case the calling function will call JSObject::put.
Checking for the property in the static table is redundant - same origin
access does not require any special handling, and should just always
return false & let the caller handle the put.

In the case of cross origin access, if the property is not in the static
table we return true (indicating the access was handled, and silently
blocking it). If it is a static property, we check the name, and if the
name is not 'href' we also return true, silently blocking. In the case
that the name is 'href' we'll return false, indicating to the caller
that the access was not handled by the delegate, resulting in it taking
place. The additional check of the static table is redundant, since we
only have special behaviour in the case of 'href'. (Moreover it is
unnecesszarily fragile, since if we made a change such that 'href' was no
longer implemented as a static property with would fail.)

  • for same origin, always return false.
  • for cross origin, return false for 'href', otherwise return true.
  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::putDelegate):

  • restructure & remove static table check.
11:09 PM Changeset in webkit [202029] by barraclough@apple.com
  • 2 edits in trunk/Source/WebCore

Remove hasStaticPropertyTable (part 2: JSPluginElement)
https://bugs.webkit.org/show_bug.cgi?id=158431

Reviewed by Chris Dumez.

All uses of hasStaticPropertyTable flag generated by bindings are wrong.

The check in pluginElementCustomGetOwnPropertySlot was somewhat dubious in the
first place (for types with static properties it would give precedence to both
static and also property storage properties; for types without static properties
it would check neither - an odd asymetry in the case of values in the storage
array, and was depending on an implementation detail that could change).

This is all now redundant anyway. None of these types have static properties.
All properties are now corretcly on the prototype (which is handled appropriately
below). This is just dead code.

  • bindings/js/JSPluginElementFunctions.h:

(WebCore::pluginElementCustomGetOwnPropertySlot):

  • remove dead code.
11:08 PM Changeset in webkit [202028] by barraclough@apple.com
  • 2 edits in trunk/Source/WebCore

Remove hasStaticPropertyTable (part 1: DOM bindings)
https://bugs.webkit.org/show_bug.cgi?id=158431

Reviewed by Chris Dumez.

All uses of hasStaticPropertyTable flag generated by bindings are wrong.

  • bindings/js/JSDOMBinding.h:

(WebCore::getStaticValueSlotEntryWithoutCaching): Deleted.
(WebCore::getStaticValueSlotEntryWithoutCaching<JSDOMObject>): Deleted.

  • this method is not used anywhere.
11:04 PM Changeset in webkit [202027] by barraclough@apple.com
  • 10 edits
    2 moves in trunk/Source/JavaScriptCore

JSBoundSlotBaseFunction no longer binds slot base
https://bugs.webkit.org/show_bug.cgi?id=157978

Reviewed by Geoff Garen.

This class is basically currently named after a bug. We should never have
been binding function to slot bases - this was not ever correct behavior.
This was fixed earlier in the year, but there is still some cruft including
the class name to clean up.

  • renamed JSBoundSlotBaseFunction -> JSCustomGetterSetterFunction
  • removed m_boundSlotBase - don't retain the original slot base (we were not really using it anyway).
  • ASSERT customGetterSetter->getter/setter are non-null, rather than checking.
  • Store the PropertyName such that we can pass this to the getter (we're currently reperforming the String->Identifier conversion every time).
  • Removed JSFunction::lookUpOrCreateNativeExecutable - this is just overhead, and not used consistently.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/JSBoundSlotBaseFunction.cpp: Removed.
  • runtime/JSBoundSlotBaseFunction.h: Removed.
    • JSBoundSlotBaseFunction -> JSCustomGetterSetterFunction
  • runtime/JSCustomGetterSetterFunction.cpp: Copied from Source/JavaScriptCore/runtime/JSBoundSlotBaseFunction.cpp.

(JSC::JSCustomGetterSetterFunction::customGetterSetterFunctionCall):

  • made a static function on JSCustomGetterSetterFunction such that accessor to member properties could be made private. Call variant of callCustomSetter that does not require slotBase, ASSERT getter/setter present, pass stored PropertyName to getter.

(JSC::JSCustomGetterSetterFunction::JSCustomGetterSetterFunction):

  • renamed, store propertyName.

(JSC::JSCustomGetterSetterFunction::create):

  • use same function name to Executable as is being passed to Function::finishCreation.

(JSC::JSCustomGetterSetterFunction::visitChildren):
(JSC::JSCustomGetterSetterFunction::finishCreation):

  • removed m_boundSlotBase.
  • runtime/JSCustomGetterSetterFunction.h: Copied from Source/JavaScriptCore/runtime/JSBoundSlotBaseFunction.h.

(JSC::JSCustomGetterSetterFunction::customGetterSetter):
(JSC::JSCustomGetterSetterFunction::isSetter):

  • made private.

(JSC::JSCustomGetterSetterFunction::propertyName):

  • new accessor.

(JSC::JSBoundSlotBaseFunction::boundSlotBase): Deleted.

  • removed.
  • runtime/JSFunction.cpp:

(JSC::JSFunction::create):
(JSC::JSFunction::lookUpOrCreateNativeExecutable): Deleted.

  • removed lookUpOrCreateNativeExecutable. This inconsistently used wrapper was providing no value, only bloat.
  • runtime/JSFunction.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • renamed JSBoundSlotBaseFunction -> JSCustomGetterSetterFunction, etc.
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::customGetterSetterFunctionStructure):
(JSC::JSGlobalObject::boundSlotBaseFunctionStructure): Deleted.

  • renamed JSBoundSlotBaseFunction -> JSCustomGetterSetterFunction, etc.
  • runtime/JSNativeStdFunction.cpp:

(JSC::JSNativeStdFunction::create):

  • removed lookUpOrCreateNativeExecutable.
  • runtime/JSObject.cpp:

(JSC::getCustomGetterSetterFunctionForGetterSetter):
(JSC::JSObject::getOwnPropertyDescriptor):
(JSC::getBoundSlotBaseFunctionForGetterSetter): Deleted.

  • renamed JSBoundSlotBaseFunction -> JSCustomGetterSetterFunction, etc.
  • runtime/VM.h:
    • renamed JSBoundSlotBaseFunction -> JSCustomGetterSetterFunction, etc.
11:04 PM Changeset in webkit [202026] by adam.bergkvist@ericsson.com
  • 15 edits in trunk

WebRTC: Imlement MediaEndpointPeerConnection::replaceTrack()
https://bugs.webkit.org/show_bug.cgi?id=158688

Reviewed by Eric Carlson.

Source/WebCore:

Implement MediaEndpointPeerConnection::replaceTrack() that is the MediaEndpoint implementation
of RTCRtpSender.replaceTrack() [1].

[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-rtcrtpsender-replacetrack

Updated fast/mediastream/RTCRtpSender-replaceTrack.html

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::replaceTrack):
(WebCore::MediaEndpointPeerConnection::replaceTrackTask):
Implemented.

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::replaceTrack):

  • Modules/mediastream/RTCPeerConnection.h:

Move the MediaStreamTrack instance of sending a reference to it. This change is the main
reason many files are touched by this change.

  • Modules/mediastream/RTCRtpSender.h:
  • Modules/mediastream/RTCRtpSender.idl:
  • platform/mediastream/MediaEndpoint.h:

Use mid instead of mdescIndex to identify the media description in the backend.

  • platform/mock/MockMediaEndpoint.cpp:

(WebCore::MockMediaEndpoint::replaceSendSource):

  • platform/mock/MockMediaEndpoint.h:

LayoutTests:

Update existing test for RTCRtpSender.replaceTrack.

  • fast/mediastream/RTCRtpSender-replaceTrack-expected.txt:
  • fast/mediastream/RTCRtpSender-replaceTrack.html:

Add test cases where a "not yet negotiated track" is directly replaced. Also check that the
old track id is used in later offers.

  • fast/mediastream/resources/promise-utils.js:

(promiseShouldResolve):
Added utility method to test promise expressions that are expected to resolve.

9:33 PM Changeset in webkit [202025] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Show Exception Stack in UncaughtExceptionReporter view
https://bugs.webkit.org/show_bug.cgi?id=158657
<rdar://problem/26754441>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-13
Reviewed by Darin Adler.

  • UserInterface/Debug/UncaughtExceptionReporter.css:

(.uncaught-exception-sheet li):
Make newlines significant.

  • UserInterface/Debug/UncaughtExceptionReporter.js:

(unblockEventHandlers):
(handleError):
(handleLinkClick):
(formattedEntry):
Format the exception and a possible stack with a bit of sanitizing.

9:10 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
9:03 PM Changeset in webkit [202024] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Mac] Web Content service with a restricted entitlement may load arbitrary dylibs
https://bugs.webkit.org/show_bug.cgi?id=156668
<rdar://problem/26714558>

Reviewed by Anders Carlsson.

  • Configurations/WebContentService.xcconfig: Enable library validation when the Web Content service is given the XPC domain extension entitlement when targeting macOS Sierra or later.
8:28 PM Changeset in webkit [202023] by commit-queue@webkit.org
  • 81 edits
    3 copies
    11 adds in trunk

window.onerror should pass the ErrorEvent's 'error' property as the 5th argument to the event handler
https://bugs.webkit.org/show_bug.cgi?id=55092
<rdar://problem/25731279>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-13
Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

This includes the actual Error in window.error / ErrorEvent:
https://html.spec.whatwg.org/multipage/webappapis.html#the-errorevent-interface

This is useful for scripts to be able to get an error stack
from uncaught exceptions, by checking the error itself.

Tests: fast/events/window-onerror17.html

http/tests/security/cross-origin-script-error-event-redirected.html
http/tests/security/cross-origin-script-error-event.html
http/tests/security/script-crossorigin-error-event-information.html
http/tests/security/script-no-crossorigin-error-event-should-be-sanitized.html
userscripts/window-onerror-for-isolated-world-3.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:

Add new custom error event file.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::reportException):
Include the JSC::Exception when reporting exceptions, so the error value is available.

  • bindings/js/JSErrorEventCustom.cpp:

(WebCore::JSErrorEvent::error):
Sanitized access to the ErrorEvent's error property to prevent leaking objects
across isolated world boundaries. This is like CustomEvent's data property.

  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSErrorHandler.h:

Include the error object as the 4th argument to the window.onerror event handler.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::sanitizeScriptError):
(WebCore::ScriptExecutionContext::reportException):
(WebCore::ScriptExecutionContext::dispatchErrorEvent):

  • dom/ScriptExecutionContext.h:

Include the error object in the ErrorEvent constructed when dispatching error events.

  • dom/ErrorEvent.cpp:

(WebCore::ErrorEvent::ErrorEvent):
(WebCore::ErrorEvent::sanitizedErrorValue):
(WebCore::ErrorEvent::trySerializeError):

  • dom/ErrorEvent.h:
  • dom/ErrorEvent.idl:

Include an any "error" property on the ErrorEvent, and allow it in initialization.

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::evaluate):

  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
Within the Worker world, the error is included in the event.
When re-dispatching the error on the world object in the world that spawned the
Worker the event does not include an error object. This matches other browsers
right now, but could be improved to have the same cross world serialization
as isolated worlds have with the error data.

  • dom/CustomEvent.h:

Remove unimplemented stale method.

LayoutTests:

  • platform/wk2/TestExpectations:

Skip new userscript test on WebKit2 like others.

  • fast/events/constructors/error-event-constructor-expected.txt:
  • fast/events/constructors/error-event-constructor.html:

Test for the new any "error" initialization property.

  • fast/events/event-leak-objects-expected.txt:
  • fast/events/event-leak-objects.html:
  • fast/events/event-properties-gc-expected.txt:
  • fast/events/event-properties-gc.html:

Like CustomEvent.details, ErrorEvent.error should not leak
objects across isolated worlds.

  • fast/events/window-onerror-exception-in-attr-expected.txt:
  • fast/events/window-onerror-exception-in-attr.html:
  • fast/events/window-onerror-syntax-error-in-attr-expected.txt:
  • fast/events/window-onerror-syntax-error-in-attr.html:
  • fast/events/window-onerror1-expected.txt:
  • fast/events/window-onerror1.html:
  • fast/events/window-onerror10-expected.txt:
  • fast/events/window-onerror10.html:
  • fast/events/window-onerror11-expected.txt:
  • fast/events/window-onerror11.html:
  • fast/events/window-onerror12-expected.txt:
  • fast/events/window-onerror12.html:
  • fast/events/window-onerror13.html:
  • fast/events/window-onerror14.html:
  • fast/events/window-onerror16.html:
  • fast/events/window-onerror17-expected.txt: Added.
  • fast/events/window-onerror17.html: Copied from LayoutTests/fast/events/window-onerror12.html.
  • fast/events/window-onerror2-expected.txt:
  • fast/events/window-onerror2.html:
  • fast/events/window-onerror3-expected.txt:
  • fast/events/window-onerror3.html:
  • fast/events/window-onerror4-expected.txt:
  • fast/events/window-onerror4.html:
  • fast/events/window-onerror5-expected.txt:
  • fast/events/window-onerror5.html:
  • fast/events/window-onerror6-expected.txt:
  • fast/events/window-onerror6.html:
  • fast/events/window-onerror7-expected.txt:
  • fast/events/window-onerror7.html:
  • fast/events/window-onerror8-expected.txt:
  • fast/events/window-onerror8.html:
  • fast/events/window-onerror9-expected.txt:
  • fast/events/window-onerror9.html:

Include output for the column number and error object where possible.

  • fast/files/resources/setup-for-read-common.js:
  • fast/files/workers/worker-apply-blob-url-to-xhr.html:
  • fast/workers/resources/worker-error-in-handling-script-error.js:
  • fast/workers/resources/worker-script-error-bubbled.js:
  • fast/workers/resources/worker-script-error-handled.js:
  • fast/workers/resources/worker-script-error.js:
  • fast/workers/worker-script-error-expected.txt:

Test "onerror" within Workers, and the "error" event on
the Worker from the spawning context.

  • http/tests/security/cross-origin-script-error-event-expected.txt: Added.
  • http/tests/security/cross-origin-script-error-event-redirected-expected.txt: Added.
  • http/tests/security/cross-origin-script-error-event-redirected.html: Added.
  • http/tests/security/cross-origin-script-error-event.html: Added.
  • http/tests/security/cross-origin-script-window-onerror-expected.txt:
  • http/tests/security/cross-origin-script-window-onerror-redirected-expected.txt:
  • http/tests/security/cross-origin-script-window-onerror-redirected.html:
  • http/tests/security/cross-origin-script-window-onerror.html:
  • http/tests/security/script-crossorigin-error-event-information-expected.txt: Added.
  • http/tests/security/script-crossorigin-error-event-information.html: Added.
  • http/tests/security/script-crossorigin-onerror-information-expected.txt:
  • http/tests/security/script-crossorigin-onerror-information.html:
  • http/tests/security/script-no-crossorigin-error-event-should-be-sanitized-expected.txt: Added.
  • http/tests/security/script-no-crossorigin-error-event-should-be-sanitized.html: Copied from LayoutTests/http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html.
  • http/tests/security/script-no-crossorigin-onerror-should-be-sanitized-expected.txt:
  • http/tests/security/script-no-crossorigin-onerror-should-be-sanitized.html:
  • http/tests/security/window-onerror-exception-in-iframe-expected.txt:
  • http/tests/security/window-onerror-exception-in-iframe.html:
  • http/tests/workers/worker-importScriptsOnError-expected.txt:
  • js/dom/exception-line-number-expected.txt:
  • js/dom/script-tests/exception-line-number.js:

(window.onerror):

  • userscripts/window-onerror-for-isolated-world-1-expected.txt:
  • userscripts/window-onerror-for-isolated-world-1.html:
  • userscripts/window-onerror-for-isolated-world-2-expected.txt:
  • userscripts/window-onerror-for-isolated-world-2.html:
  • userscripts/window-onerror-for-isolated-world-3-expected.txt: Added.
  • userscripts/window-onerror-for-isolated-world-3.html: Added.

Add an explicit test for error objects crossing isolated world boundaries.
In the Isolated World case, serializable values are cloned, but unserializable
values cause the error object to return to null to avoid leaking across worlds.

8:05 PM Changeset in webkit [202022] by dino@apple.com
  • 3 edits
    2 adds in trunk

SVG elements don't blend correctly into HTML
https://bugs.webkit.org/show_bug.cgi?id=158718
<rdar://problem/26782004>

Reviewed by Antoine Quint.

Source/WebCore:

We were not creating any transparency layers for the root SVG nodes.
This is ok if the SVG is the root document, because it is the backdrop.
However, if it is inline SVG, it needs to apply the operation in
order to composite into the document.

Test: svg/css/mix-blend-mode-with-inline-svg.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::beginTransparencyLayers):

LayoutTests:

  • svg/css/mix-blend-mode-with-inline-svg-expected.html: Added.
  • svg/css/mix-blend-mode-with-inline-svg.html: Added.
7:29 PM Changeset in webkit [202021] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

The sampling profiler should further protect itself against certain forms of sampling bias that arise due to the sampling interval being in sync with some other system process
https://bugs.webkit.org/show_bug.cgi?id=158678

Reviewed by Benjamin Poulain.

I first became aware of this problem when I read this paper:
http://plv.colorado.edu/papers/mytkowicz-pldi10.pdf

To provide background for this change, I'll quote a paragraph
from section 6.2:
"One statically sound method for collecting random samples is to collect a
sample at every t + r milliseconds, where t is the desired sampling interval
and r is a random number between −t and t. One might think that sampling every
t seconds is enough (i.e., drop the r component) but it is not: specifically,
if a profiler samples every t seconds, the sampling rate would be synchronized
with any program or system activity that occurs at regular time intervals [17].
For example, if the thread scheduler switches between threads every 10ms and our
sampling interval was also 10ms, then we may always take samples immediately after
a thread switch. Because performance is often different immediately after a thread
switch than at other points (e.g., due to cache and TLB warm-up effects) we would
get biased data. The random component, r, guards against such situations."

  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::timerLoop):

7:27 PM Changeset in webkit [202020] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

False-positive over-release of WebView in destroyWebViewAndOffscreenWindow() in DumpRenderTree.mm
<https://webkit.org/b/158716>

Reviewed by Andy Estes.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(destroyWebViewAndOffscreenWindow): Change this function to take
a WebView, and assert that it's the same as [mainFrame webView].
(dumpRenderTree): Pass 'webView' into
destroyWebViewAndOffscreenWindow().

  • DumpRenderTree/mac/DumpRenderTreeMac.h:

(createWebViewAndOffscreenWindow): Add NS_RETURNS_RETAINED since
this function returns a +1 WebView. Declare this method only for
Objective-C[++] source.

5:34 PM Changeset in webkit [202019] by beidson@apple.com
  • 6 edits in trunk

storage/indexeddb/modern/leaks-1.html leaks the database connection handle.
https://bugs.webkit.org/show_bug.cgi?id=158643

Reviewed by Alex Christensen.

Source/WebCore:

Tested by changes to existing test.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::hasPendingActivity):

  • dom/EventTarget.h:

(WebCore::EventTarget::eventTargetData):
(WebCore::EventTarget::hasEventListeners):

LayoutTests:

  • storage/indexeddb/modern/leak-1-expected.txt:
  • storage/indexeddb/modern/resources/leak-1.js:
5:17 PM Changeset in webkit [202018] by enrica@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(r201956): Failure to initialize new internal settings produced random test failures in release.
https://bugs.webkit.org/show_bug.cgi?id=158713
rdar://26769957

Reviewed by Simon Fraser.

Failed to initialize the new member variable in both Settings and InternalSettings classes.

  • page/Settings.cpp:

(WebCore::Settings::Settings):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):

5:11 PM Changeset in webkit [202017] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Drop HipChat hack introduced in r197548
https://bugs.webkit.org/show_bug.cgi?id=158711

Reviewed by Geoffrey Garen.

Drop HipChat hack introduced in r197548. This hack is no longer needed
as the bug was fixed in HipChat since then:
https://support.atlassian.com/servicedesk/customer/portal/32/HCP-7532

I have confirmed locally that the latest version (4.0.12.665) is able
to connect without the hack.

  • bindings/js/JSLocationCustom.cpp:

(WebCore::JSLocation::putDelegate): Deleted.

  • platform/RuntimeApplicationChecks.h:
  • platform/RuntimeApplicationChecks.mm:

(WebCore::MacApplication::isHipChat): Deleted.

4:52 PM Changeset in webkit [202016] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Minor style updates for figcaptions and post forewords.

  • wp-content/themes/webkit/style.css:

(article .foreword):
(figure.aligncenter figcaption):
(figure.aligncenter figcaption::before):

4:17 PM Changeset in webkit [202015] by oliver@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

DFG Validation fails when performing a concatenation with only a single entry
https://bugs.webkit.org/show_bug.cgi?id=158699

Reviewed by Saam Barati.

Fairly simple short circuiting of a single replacement template string
without any padding to be planted as a simple to string rather than
op_strcat.

  • bytecompiler/NodesCodegen.cpp:

(JSC::TemplateLiteralNode::emitBytecode):

  • tests/stress/template-literal.js:

(testSingleNode):

4:05 PM Changeset in webkit [202014] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: CrashTracer: com.apple.WebKit.WebContent at WebCore::AccessibilityRenderObject::remoteSVGRootElement const + 227
https://bugs.webkit.org/show_bug.cgi?id=158685

Reviewed by David Kilzer.

Crash reports show a null access at a line that tries to dereference a pointer.
I still don't have a way to layout test this, as it seems tied to tear down of the main document.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::remoteSVGRootElement):

3:57 PM Changeset in webkit [202013] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Use two video layer solution only on mac.
https://bugs.webkit.org/show_bug.cgi?id=158705
rdar://problem/26776360

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-06-13
Reviewed by Jer Noble.

Two video layer solution is only useful on the mac to prevent flicker, so don't do it elsewhere.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):

3:53 PM Changeset in webkit [202012] by Jon Davis
  • 3 edits in trunk/Websites/webkit.org

Adds support for foreword custom meta and display styles on blog posts.
https://bugs.webkit.org/show_bug.cgi?id=158707.

Reviewed by Timothy Hatcher.

  • wp-content/themes/webkit/functions.php:
  • wp-content/themes/webkit/style.css:

(article .foreword):

3:44 PM Changeset in webkit [202011] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Filter Records not applying to new records
https://bugs.webkit.org/show_bug.cgi?id=158213
<rdar://problem/26543912>

Reviewed by Timothy Hatcher.

This patch makes the following improvements to timeline grid filtering:

  • Records are filtered as they are added to the grid.
  • Timeline view no longer triggers a filter refresh while the current time changes while recording.
  • Filters are refreshed whenever the current timeline view changes.
  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.hasFilters):
Helper function to check for custom and text filters.

(WebInspector.DataGrid.prototype._applyFiltersToNodeAndDispatchEvent):
Encapsulate node state change and event dispatch, which was previously
done in multiple places.

(WebInspector.DataGrid.prototype.insertChild):
Filter incoming node if needed.

(WebInspector.DataGrid.prototype._updateFilter.createIteratorForNodesToBeFiltered):
(WebInspector.DataGrid.prototype._updateFilter):
(WebInspector.DataGrid.prototype.yieldableTaskWillProcessItem):
Use new convenience functions.

(WebInspector.DataGrid.prototype.hasCustomFilters): Deleted.
Renamed hasFilters.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
Refresh grid filters on view change.

  • UserInterface/Views/TimelineView.js:

(WebInspector.TimelineView.prototype.set startTime):
(WebInspector.TimelineView.prototype.set endTime):
Schedule filter change notification when selection bounds changes.

(WebInspector.TimelineView.prototype._timesDidChange):
(WebInspector.TimelineView.prototype._scheduleFilterDidChange):
(WebInspector.TimelineView):

3:43 PM Changeset in webkit [202010] by sbarati@apple.com
  • 7 edits
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: Call Trees view should have a 'Top Functions'-like mode
https://bugs.webkit.org/show_bug.cgi?id=158555
<rdar://problem/26712544>

Reviewed by Timothy Hatcher.

This patch adds a Top Functions view that is similar to Instruments'
Top Functions view. I really wanted to add this view because I've
been doing a lot of performance debugging and I've exclusively
used the Top Functions view and I want the Inspector to also have
this view. I like to think of it as a more sophisticated version of the bottom-up view.

Top Functions works by treating every frame as a root in the tree.
Top functions view then presents a list of "roots". This is the same
as all other views, which also present a list of roots, but in this case,
every frame is a root. Bottom Up is great for nailing in specific performance
problems in exactly one frame. But Bottom Up doesn't give you good context about where
a specific frame is in the call tree and how frames are related by having
a caller or some path of shared callers. For example, consider this call tree:

(program)
/ \

/ \

(many nodes...)

/

/

(parent)
/ \

/ \

(leaf1) (leaf2)

Suppose that 'leaf1' is super hot, and 'leaf2' is moderately hot.
If we look at this through Bottom Up view, we will see 'leaf1'
is super hot, but it will take more scrolling to see that 'leaf2'
is moderately hot. Lets say that 'parent' is also moderately hot,
but that the majority of its time isn't self time. With Bottom Up view,
there is no good way to see that 'leaf1' and 'leaf2' are both nodes under 'parent'.
With Top Down, you can find this information, but it requires a ton of drilling down into
the tree (i.e, you must expand past the 'many nodes...' I drew above). It's inconvenient to
use Top Down here for indentation alone. Bottom up will tell you that 'leaf1' is super hot,
and that 'leaf2' and 'parent' are moderately hot, but it doesn't show how they're related
in the original tree. It's important to see that 'parent's total time is very high
because it itself is moderately hot, and it has a child node that is super hot, and
another child that's moderately 'hot'. For the sake of this example, let's pretend
that 85% of the program's time is spent inside 'parent'. Seeing this information through
'Top Functions' is easy because this information filters to the top of the list. Specifically,
when using 'Top Functions' sorted by Total Time. Because every node is a root, there will be
a top-level entry for every frame in the program. Specifically, there will be a top-level node
for 'parent' in my above example. Because I've sorted this view by Total Time, I will see '(program)'
first. That's because 100% of execution time is under the '(program)' frame. Then, I might see
a few other nodes that also run the entire time because '(program)' calls them, and they eventually
call into other things that never leave the stack. These will also have time ranges near 100%.
But, only a few nodes after that, I'll see 'parent' in the list because it accounts for 85% of
execution time. Immediately, I will see that it has some self time, and that it has two child
nodes that have self time. This is really helpful.

Let's consider another example where it's not easy in Top Down to get the full picture of 'parent':

(program)

/ | \

(... many nodes...)

/ \

(many nodes...) (many nodes...)

/ \

parent parent

| |

leaf1 leaf2

If we viewed this program in Top Down, we don't get a full picture of 'parent'
because it has its time distributed in two different subsections of the tree.
Specifically, lets say it has 70% of time in the leaf1 path, and 30% of the
time in the leaf2 path. We want a way to see these things together. It's impossible
to do this in Top Down or Bottom Up. But, in Top Functions view, we get the view that
we want to see because we treat 'parent' as a root of the tree. Because we do this,
we will create the following sub tree in the Top Functions view:

parent

/ \

leaf1 leaf2

This happens naturally because when 'parent' is a root, we add all its children
to its subtree.

Constructing this tree is really easy. What we do is take any arbitrary stack
trace of length n, and treat is as n separate stack traces. Specifically, we
perform the following operation for any stack trace S.

S = [A, B, C, D]
(A is the entry frame, and D is the top of the stack).
We will transform this into a list of stack traces S' like so:
S' = A, B, C, D], [B, C, D], [C, D], [D

If we then run the normal top down tree algorithm on this set of stack
traces, all nodes get treated as roots, and voila, we get the Top Functions view.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Controllers/TimelineManager.js:
  • UserInterface/Main.html:
  • UserInterface/Models/CallingContextTree.js:
  • UserInterface/Models/TimelineRecording.js:
  • UserInterface/Views/ScriptProfileTimelineView.js:
  • UserInterface/Views/TextToggleButtonNavigationItem.css: Added.
  • UserInterface/Views/TextToggleButtonNavigationItem.js: Added.
3:41 PM Changeset in webkit [202009] by Matt Baker
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Add ability to show/hide DataGird columns
https://bugs.webkit.org/show_bug.cgi?id=158676
<rdar://problem/26761573>

Reviewed by Timothy Hatcher.

Make it possible to show/hide grid columns using the grid header
context menu. This patch enables the new behavior for most of the
timeline grids.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype.get identifier):
(WebInspector.DataGrid.prototype.set identifier):
An identifier for the grid instance, for managing per-grid settings.
Setting the id causes settings to be created, and their values to be
applied to the grid.

(WebInspector.DataGrid.prototype.get columnChooserEnabled):
(WebInspector.DataGrid.prototype.set columnChooserEnabled):
Enable showing/hiding columns via the grid header.

(WebInspector.DataGrid.prototype.insertColumn):
(WebInspector.DataGrid.prototype.showColumn):
Set column visibility and hidden column setting, then perform layout.

(WebInspector.DataGrid.prototype._collapseColumnGroupWithCell):
(WebInspector.DataGrid.prototype._contextMenuInHeader):
Create column chooser menu items if necessary.

(WebInspector.DataGrid.prototype._showColumn): Deleted.
(WebInspector.DataGrid.prototype._hideColumn): Deleted.
Replaced by showColumn.

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView):
Always show "type" and "name" columns.

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView):

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView):

  • UserInterface/Views/ScriptDetailsTimelineView.js:

(WebInspector.ScriptDetailsTimelineView):
Always show "name" column.

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid):
Enable column chooser.

3:25 PM Changeset in webkit [202008] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix. Strip out "use strict" everywhere so that the perf dashboard works on the shipping Safari.

  • tools/bundle-v3-scripts.py:

(main):

3:17 PM Changeset in webkit [202007] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

FTL::Output methods should be out-of-line whenever possible
https://bugs.webkit.org/show_bug.cgi?id=158704

Reviewed by Benjamin Poulain.

These methods turn into a non-trivial amount of code because of the template-based B3 API.
Inlining them didn't achieve any performance advantages for the FTL, but it did make the
code larger. This outlines most methods in FTL::Output. It makes FTL::LowerDFGToB3 smaller
and it doesn't change performance.

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::appendTo):
(JSC::FTL::Output::framePointer):
(JSC::FTL::Output::lockedStackSlot):
(JSC::FTL::Output::constBool):
(JSC::FTL::Output::constInt32):
(JSC::FTL::Output::constInt64):
(JSC::FTL::Output::constDouble):
(JSC::FTL::Output::phi):
(JSC::FTL::Output::add):
(JSC::FTL::Output::sub):
(JSC::FTL::Output::mul):
(JSC::FTL::Output::div):
(JSC::FTL::Output::chillDiv):
(JSC::FTL::Output::mod):
(JSC::FTL::Output::chillMod):
(JSC::FTL::Output::neg):
(JSC::FTL::Output::doubleAdd):
(JSC::FTL::Output::doubleSub):
(JSC::FTL::Output::doubleMul):
(JSC::FTL::Output::doubleDiv):
(JSC::FTL::Output::doubleMod):
(JSC::FTL::Output::bitAnd):
(JSC::FTL::Output::bitOr):
(JSC::FTL::Output::bitXor):
(JSC::FTL::Output::shl):
(JSC::FTL::Output::aShr):
(JSC::FTL::Output::lShr):
(JSC::FTL::Output::bitNot):
(JSC::FTL::Output::logicalNot):
(JSC::FTL::Output::ctlz32):
(JSC::FTL::Output::doubleAbs):
(JSC::FTL::Output::doubleCeil):
(JSC::FTL::Output::doubleFloor):
(JSC::FTL::Output::doubleTrunc):
(JSC::FTL::Output::doubleSin):
(JSC::FTL::Output::doubleCos):
(JSC::FTL::Output::doublePow):
(JSC::FTL::Output::doublePowi):
(JSC::FTL::Output::doubleSqrt):
(JSC::FTL::Output::doubleLog):
(JSC::FTL::Output::hasSensibleDoubleToInt):
(JSC::FTL::Output::doubleToUInt):
(JSC::FTL::Output::signExt32To64):
(JSC::FTL::Output::zeroExt):
(JSC::FTL::Output::intToDouble):
(JSC::FTL::Output::unsignedToDouble):
(JSC::FTL::Output::castToInt32):
(JSC::FTL::Output::doubleToFloat):
(JSC::FTL::Output::floatToDouble):
(JSC::FTL::Output::load):
(JSC::FTL::Output::load8SignExt32):
(JSC::FTL::Output::baseIndex):
(JSC::FTL::Output::equal):
(JSC::FTL::Output::notEqual):
(JSC::FTL::Output::above):
(JSC::FTL::Output::aboveOrEqual):
(JSC::FTL::Output::below):
(JSC::FTL::Output::belowOrEqual):
(JSC::FTL::Output::greaterThan):
(JSC::FTL::Output::greaterThanOrEqual):
(JSC::FTL::Output::lessThan):
(JSC::FTL::Output::lessThanOrEqual):
(JSC::FTL::Output::doubleEqual):
(JSC::FTL::Output::doubleEqualOrUnordered):
(JSC::FTL::Output::doubleNotEqualOrUnordered):
(JSC::FTL::Output::doubleLessThan):
(JSC::FTL::Output::doubleLessThanOrEqual):
(JSC::FTL::Output::doubleGreaterThan):
(JSC::FTL::Output::doubleGreaterThanOrEqual):
(JSC::FTL::Output::doubleNotEqualAndOrdered):
(JSC::FTL::Output::doubleLessThanOrUnordered):
(JSC::FTL::Output::doubleLessThanOrEqualOrUnordered):
(JSC::FTL::Output::doubleGreaterThanOrUnordered):
(JSC::FTL::Output::doubleGreaterThanOrEqualOrUnordered):
(JSC::FTL::Output::isZero32):
(JSC::FTL::Output::notZero32):
(JSC::FTL::Output::isZero64):
(JSC::FTL::Output::notZero64):
(JSC::FTL::Output::select):
(JSC::FTL::Output::jump):
(JSC::FTL::Output::branch):
(JSC::FTL::Output::check):
(JSC::FTL::Output::ret):
(JSC::FTL::Output::unreachable):
(JSC::FTL::Output::speculate):
(JSC::FTL::Output::speculateAdd):
(JSC::FTL::Output::speculateSub):
(JSC::FTL::Output::speculateMul):
(JSC::FTL::Output::patchpoint):
(JSC::FTL::Output::trap):
(JSC::FTL::Output::anchor):
(JSC::FTL::Output::bitCast):
(JSC::FTL::Output::fround):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::setOrigin):
(JSC::FTL::Output::origin):
(JSC::FTL::Output::constIntPtr):
(JSC::FTL::Output::doubleNeg):
(JSC::FTL::Output::zeroExtPtr):
(JSC::FTL::Output::load32NonNegative):
(JSC::FTL::Output::isNull):
(JSC::FTL::Output::notNull):
(JSC::FTL::Output::testIsZeroPtr):
(JSC::FTL::Output::testNonZeroPtr):
(JSC::FTL::Output::call):
(JSC::FTL::Output::operation):
(JSC::FTL::Output::branch):
(JSC::FTL::Output::switchInstruction):
(JSC::FTL::Output::addIncomingToPhi):
(JSC::FTL::Output::framePointer): Deleted.
(JSC::FTL::Output::constBool): Deleted.
(JSC::FTL::Output::constInt32): Deleted.
(JSC::FTL::Output::constInt64): Deleted.
(JSC::FTL::Output::constDouble): Deleted.
(JSC::FTL::Output::phi): Deleted.
(JSC::FTL::Output::add): Deleted.
(JSC::FTL::Output::sub): Deleted.
(JSC::FTL::Output::mul): Deleted.
(JSC::FTL::Output::div): Deleted.
(JSC::FTL::Output::chillDiv): Deleted.
(JSC::FTL::Output::mod): Deleted.
(JSC::FTL::Output::chillMod): Deleted.
(JSC::FTL::Output::doubleAdd): Deleted.
(JSC::FTL::Output::doubleSub): Deleted.
(JSC::FTL::Output::doubleMul): Deleted.
(JSC::FTL::Output::doubleDiv): Deleted.
(JSC::FTL::Output::doubleMod): Deleted.
(JSC::FTL::Output::bitAnd): Deleted.
(JSC::FTL::Output::bitOr): Deleted.
(JSC::FTL::Output::bitXor): Deleted.
(JSC::FTL::Output::shl): Deleted.
(JSC::FTL::Output::aShr): Deleted.
(JSC::FTL::Output::lShr): Deleted.
(JSC::FTL::Output::ctlz32): Deleted.
(JSC::FTL::Output::addWithOverflow32): Deleted.
(JSC::FTL::Output::subWithOverflow32): Deleted.
(JSC::FTL::Output::mulWithOverflow32): Deleted.
(JSC::FTL::Output::addWithOverflow64): Deleted.
(JSC::FTL::Output::subWithOverflow64): Deleted.
(JSC::FTL::Output::mulWithOverflow64): Deleted.
(JSC::FTL::Output::doubleAbs): Deleted.
(JSC::FTL::Output::doubleCeil): Deleted.
(JSC::FTL::Output::doubleFloor): Deleted.
(JSC::FTL::Output::doubleSin): Deleted.
(JSC::FTL::Output::doubleCos): Deleted.
(JSC::FTL::Output::doublePow): Deleted.
(JSC::FTL::Output::doubleSqrt): Deleted.
(JSC::FTL::Output::doubleLog): Deleted.
(JSC::FTL::Output::signExt32To64): Deleted.
(JSC::FTL::Output::zeroExt): Deleted.
(JSC::FTL::Output::intToDouble): Deleted.
(JSC::FTL::Output::castToInt32): Deleted.
(JSC::FTL::Output::doubleToFloat): Deleted.
(JSC::FTL::Output::floatToDouble): Deleted.
(JSC::FTL::Output::equal): Deleted.
(JSC::FTL::Output::notEqual): Deleted.
(JSC::FTL::Output::above): Deleted.
(JSC::FTL::Output::aboveOrEqual): Deleted.
(JSC::FTL::Output::below): Deleted.
(JSC::FTL::Output::belowOrEqual): Deleted.
(JSC::FTL::Output::greaterThan): Deleted.
(JSC::FTL::Output::greaterThanOrEqual): Deleted.
(JSC::FTL::Output::lessThan): Deleted.
(JSC::FTL::Output::lessThanOrEqual): Deleted.
(JSC::FTL::Output::doubleEqual): Deleted.
(JSC::FTL::Output::doubleEqualOrUnordered): Deleted.
(JSC::FTL::Output::doubleNotEqualOrUnordered): Deleted.
(JSC::FTL::Output::doubleLessThan): Deleted.
(JSC::FTL::Output::doubleLessThanOrEqual): Deleted.
(JSC::FTL::Output::doubleGreaterThan): Deleted.
(JSC::FTL::Output::doubleGreaterThanOrEqual): Deleted.
(JSC::FTL::Output::doubleNotEqualAndOrdered): Deleted.
(JSC::FTL::Output::doubleLessThanOrUnordered): Deleted.
(JSC::FTL::Output::doubleLessThanOrEqualOrUnordered): Deleted.
(JSC::FTL::Output::doubleGreaterThanOrUnordered): Deleted.
(JSC::FTL::Output::doubleGreaterThanOrEqualOrUnordered): Deleted.
(JSC::FTL::Output::isZero32): Deleted.
(JSC::FTL::Output::notZero32): Deleted.
(JSC::FTL::Output::isZero64): Deleted.
(JSC::FTL::Output::notZero64): Deleted.
(JSC::FTL::Output::select): Deleted.
(JSC::FTL::Output::extractValue): Deleted.
(JSC::FTL::Output::jump): Deleted.
(JSC::FTL::Output::ret): Deleted.
(JSC::FTL::Output::unreachable): Deleted.
(JSC::FTL::Output::speculate): Deleted.
(JSC::FTL::Output::speculateAdd): Deleted.
(JSC::FTL::Output::speculateSub): Deleted.
(JSC::FTL::Output::speculateMul): Deleted.
(JSC::FTL::Output::patchpoint): Deleted.
(JSC::FTL::Output::trap): Deleted.
(JSC::FTL::Output::anchor): Deleted.
(JSC::FTL::Output::bitCast): Deleted.
(JSC::FTL::Output::fround): Deleted.

3:00 PM Changeset in webkit [202006] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Decrease PiP flicker by not removing window prematurely.
https://bugs.webkit.org/show_bug.cgi?id=158436
<rdar://problem/19052639>

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-06-13
Reviewed by Darin Adler.

UIWindow shouldn't be removed until cleanupFullscreen, so the video layer has a chance
to be reparented in the DOM first.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture):

2:58 PM Changeset in webkit [202005] by achristensen@apple.com
  • 44 edits
    4 adds in trunk/Source

Add WebSocketProvider stub
https://bugs.webkit.org/show_bug.cgi?id=158702

Reviewed by Brady Eidson.

Source/WebCore:

No new tests. No change in behavior.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/DocumentMarkerController.cpp:
  • dom/ScriptedAnimationController.cpp:
  • html/HTMLMediaElement.cpp:
  • html/MediaDocument.cpp:
  • html/shadow/MediaControlElements.cpp:
  • html/shadow/MediaControls.cpp:
  • html/shadow/MediaControls.h:
  • html/shadow/MediaControlsApple.cpp:
  • inspector/InspectorInstrumentation.cpp:
  • inspector/InspectorInstrumentation.h:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::overlayPage):

  • loader/EmptyClients.h:
  • loader/FrameLoader.cpp:
  • loader/FrameLoader.h:
  • loader/appcache/ApplicationCacheHost.cpp:
  • loader/cache/CachedResource.cpp:
  • page/FrameView.cpp:
  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:

(WebCore::Page::applicationCacheStorage):
(WebCore::Page::databaseProvider):
(WebCore::Page::socketProvider):
(WebCore::Page::storageNamespaceProvider):

  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:
  • page/ResourceUsageOverlay.cpp:
  • page/SocketProvider.h: Added.

(WebCore::SocketProvider::~SocketProvider):

  • page/cocoa/ResourceUsageOverlayCocoa.mm:
  • rendering/RenderElement.cpp:
  • rendering/RenderLayerBacking.cpp:
  • style/StyleResolveForDocument.cpp:
  • style/StyleTreeResolver.cpp:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

  • testing/MockPageOverlayClient.cpp:

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • Misc/WebSocketProvider.h: Added.
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKit/win:

  • WebSocketProvider.h: Added.
  • WebView.cpp:

(WebView::initWithFrame):

Source/WebKit2:

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebSocketProvider.h: Added.
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_shouldDispatchFakeMouseMoveEvents):

Source/WTF:

  • wtf/UniqueRef.h:

(WTF::UniqueRef::operator->):
(WTF::UniqueRef::operator T&):
(WTF::UniqueRef::operator const T&):
Added operator T& to avoid unneeded .get() calls.

2:55 PM Changeset in webkit [202004] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, Cloop build fix.

  • bytecode/BytecodeList.json:
2:05 PM Changeset in webkit [202003] by keith_miller@apple.com
  • 32 edits
    1 add in trunk/Source/JavaScriptCore

Add new builtin opcode tailCallForwardArguments
https://bugs.webkit.org/show_bug.cgi?id=158666

Reviewed by Filip Pizlo.

We should support the ability to have a builtin forward its
arguments to a helper without allocating an arguments object. This
patch adds a new bytecode intrinsic @tailCallForwardArguments that
takes two values. The first is the target of the call and the
second is the new this value. This opcode will tail call to the
passed function without triggering an allocation of an arguments
object for the caller function.

In the LLInt and Baseline this function acts the same way a normal
tail call does. The bytecode will allocate a new stack frame
copying all the arguments of the caller function into the new
frame, along with the new this. Then when the actual call happens
the new frame is copied over the caller frame. While this is not
necessary, it allows the target function to have more arguments
than the caller function via arity fixup.

Once we get to the DFG we reuse existing DFG Nodes for forwarding
arguments, although there were some minor changes. This patch
swaps the meaning of the second and third children for each DFG
varargs node, exchanging the argmuments and this child,
respectively. It also makes the arguments child for each varargs
node, as well as the ForwardVarargs node optional. If the optional
child is missing, then forwarding node assumes that the arguments
for the node's inlineCallFrame should be used instead. Finally,
when inlining the target of an inlined
op_tail_call_forward_arguments we make sure the arguments of the
forwarding function are marked as non-unboxable since this would
normally be done by the caller's create arguments object node,
which does not exist in this case.

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::callTypeFor):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::finishCreation):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitCallForwardArgumentsInTailPosition):
(JSC::BytecodeGenerator::emitCallVarargs):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::BytecodeIntrinsicNode::emit_intrinsic_tailCallForwardArguments):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_tryGetById):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::getPredictionWithoutOSRExit):
(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleVarargsCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasArgumentsChild):
(JSC::DFG::Node::argumentsChild):

  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileForwardVarargs):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • dfg/DFGVarargsForwardingPhase.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileForwardVarargs):

  • interpreter/Interpreter.cpp:

(JSC::sizeFrameForForwardArguments):
(JSC::setupForwardArgumentsFrame):
(JSC::setupForwardArgumentsFrameAndSetThis):

  • interpreter/Interpreter.h:
  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITCall.cpp:

(JSC::JIT::compileSetupVarargsFrame):
(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):
(JSC::JIT::emit_op_tail_call_forward_arguments):
(JSC::JIT::emitSlow_op_tail_call_forward_arguments):

  • jit/JITCall32_64.cpp:

(JSC::JIT::emitSlow_op_tail_call_forward_arguments):
(JSC::JIT::emit_op_tail_call_forward_arguments):
(JSC::JIT::compileSetupVarargsFrame):
(JSC::JIT::compileOpCall):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::varargsSetup):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • tests/stress/tailCallForwardArguments.js: Added.

(putFuncToPrivateName.createBuiltin):
(putFuncToPrivateName):
(createTailCallForwardingFuncWith):
(baz):
(baz2):
(baz3):
(let.bodyText):
(baz4):
(baz5):
(arrayEq):

1:06 PM Changeset in webkit [202002] by commit-queue@webkit.org
  • 12 edits in trunk

Make HashMap and HashSet work with Refs
https://bugs.webkit.org/show_bug.cgi?id=158638

Patch by Sam Weinig <sam@webkit.org> on 2016-06-13
Reviewed by Darin Adler.

Source/WTF:

  • wtf/GetPtr.h:

Move HashTableDeletedValueType and HashTableEmptyValueType here, as they are now shared
by more than one smart pointer. This file should probably be renamed to something else
at some point to indicate that it contains helpers for pointer and ref related functionality.

  • wtf/HashFunctions.h:

Add a DefaultHash for Refs. Customize the PtrHash to indicate that it is not safe to compare
to empty or deleted Refs.

  • wtf/HashMap.h:

(WTF::HashMapTranslator::equal):
(WTF::HashMapTranslator::translate):
(WTF::HashMapEnsureTranslator::equal):
(WTF::HashMapEnsureTranslator::translate):

  • wtf/HashSet.h:

(WTF::IdentityExtractor::extract):
(WTF::HashSetTranslator::hash):
(WTF::HashSetTranslator::equal):
(WTF::HashSetTranslator::translate):

  • wtf/HashTable.h:

(WTF::IdentityHashTranslator::hash):
(WTF::IdentityHashTranslator::equal):
(WTF::IdentityHashTranslator::translate):
Use the new assignToEmpty trait function to allow uninitialized Ref's to be safely assigned to.

  • wtf/HashTraits.h:

(WTF::HashTraits<Ref<P>>::emptyValue):
(WTF::HashTraits<Ref<P>>::isEmptyValue):
(WTF::HashTraits<Ref<P>>::assignToEmpty):
(WTF::HashTraits<Ref<P>>::peek):
(WTF::HashTraits<Ref<P>>::customDeleteBucket):
Add custom HashTraits for Ref. Also, introduce a new trait function, assignToEmpty, for use
in translation assignments. This is necessary since the default assignment operator for Ref
will not allow assignment to the empty Ref, which we need to do here.

  • wtf/Ref.h:

(WTF::Ref::operator=):
(WTF::Ref::Ref):
(WTF::Ref::isHashTableDeletedValue):
(WTF::Ref::hashTableDeletedValue):
(WTF::Ref::isHashTableEmptyValue):
(WTF::Ref::hashTableEmptyValue):
Add explicit constructors/predicates for making deleted/empty Refs.

(WTF::Ref::assignToHashTableEmptyValue):
Add a special function that allows assignment to an empty Ref, which the
assignment operator does not.

(WTF::IsSmartPtr):
Add an IsSmartPtr override to indicate that Ref is a smart pointer.

  • wtf/RefPtr.h:

Move HashTableDeletedValueType to GetPtr.h.

Tools:

  • TestWebKitAPI/Tests/WTF/HashMap.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/HashSet.cpp:

(TestWebKitAPI::TEST):
Add tests for using Refs in HashMaps (both as key and value) and HashSets.

12:47 PM Changeset in webkit [202001] by rniwa@webkit.org
  • 9 edits
    3 adds in trunk/Websites/perf.webkit.org

Invalid token error when trying to create an A/B analysis for a range
https://bugs.webkit.org/show_bug.cgi?id=158679

Reviewed by Chris Dumez.

The problem in this particular case was due to another website overriding cookies for our subdomain.
Make PrivilegedAPI robust against its token becoming invalid in general to fix the bug since the cookie
is only available under /privileged-api/ and the v3 UI can't access it for security reasons.

This patch factors out PrivilegedAPI out of remote.js so that it can be tested separately in server tests
as well as unit tests even though RemoteAPI itself is implemented differently in each case.

  • init-database.sql: Added a forgotten default value "false" to run_marked_outlier.
  • public/v3/index.html:
  • public/v3/privileged-api.js: Added. Extracted out of public/v3/remote.js.

(PrivilegedAPI.sendRequest): Fixed the bug. When the initial request fails with "InvalidToken" error,
re-generate the token and re-issue the request.
(PrivilegedAPI.requestCSRFToken):

  • public/v3/remote.js:

(RemoteAPI.postJSON): Added to match tools/js/remote.js.
(RemoteAPI.postJSONWithStatus): Ditto.
(PrivilegedAPI): Moved to privileged-api.js.

  • server-tests/api-measurement-set-tests.js: Removed the unused require for crypto.
  • server-tests/privileged-api-upate-run-status.js: Added tests for /privileged-api/update-run-status.
  • server-tests/resources/test-server.js:

(TestServer.prototype.inject): Clear the cookies as well as tokens in PrivilegedAPI.

  • tools/js/remote.js:

(RemoteAPI): Added the support for PrivilegedAPI by making cookie set by the server persist.
(RemoteAPI.prototype.clearCookies): Added for tests.
(RemoteAPI.prototype.postJSON): Make sure sendHttpRequest always sends a valid JSON.
(RemoteAPI.prototype.postJSONWithStatus): Added since this API is used PrivilegedAPI.
(RemoteAPI.prototype.sendHttpRequest): Retain the cookie set by the server and send it back in each request.

  • tools/js/v3-models.js:
  • unit-tests/privileged-api-tests.js: Added unit tests for PrivilegedAPI.
  • unit-tests/resources/mock-remote-api.js:

(MockRemoteAPI.postJSON): Added for unit testing.
(MockRemoteAPI.postJSONWithStatus): Ditto.

12:40 PM Changeset in webkit [202000] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

/admin/tests is very slow
https://bugs.webkit.org/show_bug.cgi?id=158682

Reviewed by Chris Dumez.

The slowness came from TestNameResolver::construct, which was fetching the entire table of test_configurations,
which at this point contains more than 32,000 rows. Don't fetch the entire table in the constructor. Instead,
fetch a subset of rows as needed in configurations_for_metric_and_platform. Even though this results in many SQL
queries being issued, that's a lot more efficient in practice because we only fetch a few dozen rows in practice.

Also removed a whole bunch of features from /admin/tests to simplify the page. In particular, the ability to update
the list of triggerables has been removed now that sync-buildbot.js automatically updates that for us. This removed
the last use of test_exists_on_platform, which was also dependent on fetching test_configurations upfront.

  • public/admin/tests.php:
  • public/include/test-name-resolver.php:

(TestNameResolver::construct): Don't fetch the entire table of test_configurations.
(TestNameResolver::configurations_for_metric_and_platform): Just issue a SQL query for the specified platform and metric.
(TestNameResolver::test_exists_on_platform): Removed.

12:39 PM Changeset in webkit [201999] by adam.bergkvist@ericsson.com
  • 2 edits
    2 adds in trunk/LayoutTests

WebRTC: Add test that verifies that RTCPeerConnection.addTrack can reuse an existing RTCRtpSender
https://bugs.webkit.org/show_bug.cgi?id=158621

Reviewed by Eric Carlson.

Add test to verify that RTCPeerConnection.addTrack reuses an existing RTCRtpSender
under the right circumstances.

  • fast/mediastream/RTCPeerConnection-addTrack-reuse-sender-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-addTrack-reuse-sender.html: Added.
  • platform/mac/TestExpectations:

The mac port is not building with WEB_RTC yet.

12:38 PM Changeset in webkit [201998] by adam.bergkvist@ericsson.com
  • 2 edits
    2 adds in trunk/LayoutTests

WebRTC: Add media setup test with complete offer/answer dialog
https://bugs.webkit.org/show_bug.cgi?id=158620

Reviewed by Eric Carlson.

Test a complete SDP offer/answer dialog between two RTCPeerConnection instances in the same
page. Media is set up in both direction with a single dialog. Check the local- and
remoteDescription attributes and the RTCPeerConnection states.

  • fast/mediastream/RTCPeerConnection-media-setup-single-dialog-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-media-setup-single-dialog.html: Added.
  • platform/mac/TestExpectations:

The mac port is not building with WEB_RTC yet.

11:56 AM Changeset in webkit [201997] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Crashes in WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTask.
<rdar://problem/26768449> and https://bugs.webkit.org/show_bug.cgi?id=158696

Reviewed by David Kilzer.

No new tests (Covered by all existing tests in Gmalloc/ASAN configs).

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTask):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply):

11:08 AM Changeset in webkit [201996] by fpizlo@apple.com
  • 2 edits in trunk/PerformanceTests

Fix round-down goof in Air.js's ShuffleCustom.forEachArg
https://bugs.webkit.org/show_bug.cgi?id=158674

Reviewed by Michael Saboff.

x / 3 * 3 is not how you round down to multiples of 3 in JavaScript. You need to do
Math.floor(x / 3) * 3 instead.

This is a benign change, because having extra arguments to a Shuffle is not something we
actually take advantage of yet. But I think it's best to match the original C++ code's
intent.

  • Air.js/custom.js:

(const.ShuffleCustom.forEachArg):

10:32 AM Changeset in webkit [201995] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Modern IDB: IDBOpenDBRequest objects leak.
https://bugs.webkit.org/show_bug.cgi?id=158694

Reviewed by Alex Christensen.

No new tests (Currently have no testing strategy for guaranteeing lifetime of WebCore DOM objects)

  • Modules/indexeddb/client/IDBConnectionProxy.cpp:

(WebCore::IDBClient::IDBConnectionProxy::completeOpenDBRequest): At this point we never need the

request again, so remove it from the map.

10:28 AM Changeset in webkit [201994] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Make sure HTTPHeaderMap gets a move constructor / assignment operator
https://bugs.webkit.org/show_bug.cgi?id=158695
<rdar://problem/26729511>

Reviewed by Alex Christensen.

Make sure HTTPHeaderMap gets a move constructor / assignment operator.
It was not getting an implicit one because of its user-declared
destructor. This patch drops the user-declared destructor so that
HTTPHeaderMap now gets an implicit move constructor / assignment
operator.

Not having a move constructor / assignment operator is an issue because
we rely on HTTPHeaderMap::isolatedCopy() / WTFMove() since r201623 to
pass HTTPHeaderMap across thread.

  • platform/network/HTTPHeaderMap.cpp:

(WebCore::HTTPHeaderMap::~HTTPHeaderMap): Deleted.

  • platform/network/HTTPHeaderMap.h:
9:52 AM Changeset in webkit [201993] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, follow up patch for r201964
https://bugs.webkit.org/show_bug.cgi?id=158619

Fix typo in the comment.

  • runtime/MathCommon.h:

(JSC::toInt32):

9:46 AM Changeset in webkit [201992] by nael.ouedraogo@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

Remove useless parameter from GenerateParametersCheck signature
https://bugs.webkit.org/show_bug.cgi?id=158692

Reviewed by Chris Dumez.

Remove one parameter which is passed to GenerateParametersCheck
but never used in the caller code.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateParametersCheck):
(GenerateConstructorDefinition):

9:27 AM Changeset in webkit [201991] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Stack overflow at RefPtr::release on Windows port since r201782
https://bugs.webkit.org/show_bug.cgi?id=158687

Patch by Fujii Hironori <Fujii Hironori> on 2016-06-13
Reviewed by Chris Dumez.

RefPtr::release calls RefPtr::RefPtr, and RefPtr::RefPtr calls
RefPtr::release.

RefPtr::RefPtr does not need to call RefPtr::release.

  • wtf/RefPtr.h:

(WTF::RefPtr::RefPtr): Do not call RefPtr::release.

8:53 AM Changeset in webkit [201990] by mark.lam@apple.com
  • 14 edits in trunk

Add a mechanism for collecting LLINT stats.
https://bugs.webkit.org/show_bug.cgi?id=158668

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch will add a mechanism for collecting the stats on LLINT opcode
execution counts. The changes made to enable this are:

  1. Refactored how Options availability work so that we can add a new category: Configurable (in addition to the pre-existing Normal and Restricted availability).

Normal options - always available.
Restricted options - only available on debug builds.
Configurable options - depends on #define flag options.

This change is necessary so that:

  1. we won't have to rebuild the world when we want to enable that #define flag to make that Configurable option available.
  2. when the #define flag is disabled, the option will be invisible to the user.

With this, we add our first configurable option, JSC_reportLLIntStats, which
is dependent on the ENABLE_LLINT_STATS flag. See next.

  1. Added the ENABLE_LLINT_STATS flag in LLIntCommon.h. To enable LLINT stats collection, we'll need to set this flag to a non-zero value, and rebuilding the project. By design, this will only require a minimal set of files to be rebuilt.

ENABLE_LLINT_STATS is 0 (i.e. disabled) by default.

  1. Added a slow path callback to the LLINT's traceExecution() macro, to call _llint_count_opcode(), which in turns counts the opcode. This callback will only be built into the LLINT if ENABLE_LLINT_STATS is non-zero.
  1. Added s_opcodeStatsArray to LLInt::Data. This is where the stats are recorded and stored.
  1. Added calls to LLInt::Data::dumpStats() in jsc.cpp and DumpRenderTree.mm to dump the LLINT stats if enabled. If enabled, the LLINT stats will be sorted and dumped (via dataLog) before the programs terminate.
  • interpreter/Interpreter.h:
  • jsc.cpp:

(main):

  • llint/LLIntCommon.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):
(JSC::LLInt::Data::dumpStats):

  • llint/LLIntData.h:

(JSC::LLInt::Data::opcodeStats):

  • llint/LLIntOfflineAsmConfig.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::llint_crash):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • runtime/Options.cpp:

(JSC::parse):
(JSC::Options::isAvailable):
(JSC::overrideOptionWithHeuristic):
(JSC::scaleJITPolicy):
(JSC::Options::initialize):
(JSC::Options::setOptionWithoutAlias):
(JSC::Options::dumpAllOptions):
(JSC::Options::dumpOption):

  • runtime/Options.h:

(JSC::Option::Option):
(JSC::Option::operator!=):
(JSC::Option::id):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(DumpRenderTreeMain):

7:10 AM Changeset in webkit [201989] by commit-queue@webkit.org
  • 6 edits in trunk

[GTK] Enabling Shadow DOM by default
https://bugs.webkit.org/show_bug.cgi?id=158686

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-06-13
Reviewed by Carlos Garcia Campos.

.:

Added support for enabling Shadow DOM by default for GTK.

  • Source/cmake/OptionsGTK.cmake:

Tools:

Added support for enabling Shadow DOM by default for GTK.
Changed GTK test expectations for fast/shadow-dom tests (most tests
pass).

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

Changed GTK test expectations for fast/shadow-dom tests (most tests
pass).

  • platform/gtk/TestExpectations:
6:40 AM Changeset in webkit [201988] by nael.ouedraogo@crf.canon.fr
  • 9 edits in trunk/Source/WebCore

Improve code generator for functions with variadic parameters
https://bugs.webkit.org/show_bug.cgi?id=158529

Reviewed by Darin Adler.

JS bindings code of functions with variadic parameters is improved.

Functions with variadic parameters are skipped for ObjC and GObject code generators.

  • bindings/scripts/CodeGeneratorGObject.pm:

(SkipFunction): Skip functions with variadic parameters.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):

  • bindings/scripts/CodeGeneratorObjC.pm:

(SkipFunction): Skip functions with variadic parameters.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:

(webkit_dom_test_obj_any): Deleted.
(webkit_dom_test_obj_attach_shadow_root): Deleted.
(webkit_dom_test_obj_get_read_only_long_attr): Deleted.
(webkit_dom_test_obj_get_read_only_string_attr): Deleted.

  • bindings/scripts/test/GObject/WebKitDOMTestObj.h:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionOverloadedMethod12):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):

  • bindings/scripts/test/ObjC/DOMTestObj.h:
  • bindings/scripts/test/ObjC/DOMTestObj.mm:
2:06 AM Changeset in webkit [201987] by peavo@outlook.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

Unskip passing fast/workers tests.

  • platform/win/TestExpectations:

Jun 12, 2016:

8:57 PM Changeset in webkit [201986] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

run-safari/run-webkit-app fail to quit iOS simulator after Xcode installation
https://bugs.webkit.org/show_bug.cgi?id=158651
rdar://problem/26499824

Reviewed by Daniel Bates.

This change is to make our tools more robust. Sometimes run-safari/run-webkit-app fails
to start the tests as one of the first thing these scripts do is to relaunch iOS Simulators,
and in process call quitIOSSimulator. In case the Simulator is not registered in LaunchServices
for some reason, quitIOSSimulator fails and the script stops. This change will make the scripts
still continue when they fail to quit iOS Simuator, and modify the way Simulator is opened,
so that Simulator is implicitly registered with LaunchServices while opening it.

  • Scripts/webkitdirs.pm:

(relaunchIOSSimulator):
Launch iOS Simulator using complete path. Partially reverting http://trac.webkit.org/changeset/184202.
(quitIOSSimulator):
Do not die if quitting ios Simulator fails, so that relaunchIOSSimulator can still
attempt to launch the simulator.
(waitUntilIOSSimulatorDeviceIsInState):
Added a FIXME.

1:57 PM Changeset in webkit [201985] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Cleanup RenderBlock::removePositionedObjects
https://bugs.webkit.org/show_bug.cgi?id=158670

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::insertPositionedObject):
(WebCore::RenderBlock::removePositionedObject):
(WebCore::RenderBlock::removePositionedObjects):

  • rendering/RenderBlock.h:
1:45 PM Changeset in webkit [201984] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Remove positioned descendants when RenderBlock is no longer a containing block.
https://bugs.webkit.org/show_bug.cgi?id=158655
<rdar://problem/26510032>

Reviewed by Simon Fraser.

Normally the RenderView is the containing block for fixed positioned renderers.
However when a renderer acquires some transform related properties, it becomes the containing
block for all the fixed positioned renderers in its descendant tree.
When the last transform related property is removed, the renderer is no longer a containing block
and we need to remove all these positioned renderers from the descendant tracker map (gPositionedDescendantsMap).
They will be inserted back into the tracker map during the next layout (either under the RenderView or
under the next transformed renderer in the ancestor chain).

Source/WebCore:

Test: fast/block/fixed-position-reparent-when-transition-is-removed.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::removePositionedObjectsIfNeeded):

LayoutTests:

  • fast/block/fixed-position-reparent-when-transition-is-removed-expected.txt: Added.
  • fast/block/fixed-position-reparent-when-transition-is-removed.html: Added.
6:22 AM Changeset in webkit [201983] by ddkilzer@apple.com
  • 3 edits in trunk/Source/bmalloc

Crash in com.apple.WebKit.WebContent at std::1::call_once_proxy<std::__1::tuple<CrashReporterSupportLibrary()::$_0&&> >
<https://webkit.org/b/158660>
<rdar://problem/25652686>

Reviewed by Darin Adler.

  • bmalloc/Logging.cpp: Switch to use

BSOFT_LINK_PRIVATE_FRAMEWORK() to link
CrashReporterSupport.framework.

  • bmalloc/darwin/BSoftLinking.h:

(BSOFT_LINK_PRIVATE_FRAMEWORK): Rename from BSOFT_LINK_FRAMEWORK.
Switch to use /System/Library/PrivateFrameworks/.

Jun 11, 2016:

6:14 PM Changeset in webkit [201982] by mmaxfield@apple.com
  • 7 edits in trunk

Addressing post-review comments after r201978.
https://bugs.webkit.org/show_bug.cgi?id=158649
<rdar://problem/13258122>

Unreviewed.

Source/WebCore:

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::alternateFamilyName):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::platformAlternateFamilyName):

Source/WTF:

  • wtf/text/StringCommon.h:

(WTF::equal):
(WTF::naiveEqualWithoutPerformingUnicodeNormalization): Deleted.

Tools:

  • TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST):

4:44 PM Changeset in webkit [201981] by ap@apple.com
  • 2 edits in trunk/Tools

Unreviewed leak fix after r201863.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(dumpFramesAsText):

4:35 PM Changeset in webkit [201980] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Tighten code to build set of tag names
https://bugs.webkit.org/show_bug.cgi?id=158662

Reviewed by Alexey Proskuryakov.

  • dom/Element.cpp:

(WebCore::canAttachAuthorShadowRoot): Use an array of pointers that the loader
can initialize as part of loading the library, rather than an array that needs
to be initialized with code at runtime.

3:55 PM Changeset in webkit [201979] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

[Win] [EFL] Build fix after r201978.
https://bugs.webkit.org/show_bug.cgi?id=158649
<rdar://problem/13258122>

Unreviewed

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::FontCache::platformAlternateFamilyName):

  • platform/graphics/win/FontCacheWin.cpp:
2:48 PM Changeset in webkit [201978] by mmaxfield@apple.com
  • 16 edits
    4 adds in trunk

[Cocoa] Map commonly used Chinese Windows font names to names present on Cocoa operating systems
https://bugs.webkit.org/show_bug.cgi?id=158649
<rdar://problem/13258122>

Reviewed by Darin Adler.

Source/WebCore:

There are many Chinese websites which hardcode Windows font names.
We should map these to fonts which best match them on Cocoa operating
systems. We can do this by using our existing fallback font name
infrastructure.

Tests: fast/text/chinese-font-name-aliases-2.html

fast/text/chinese-font-name-aliases.html

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::alternateFamilyName):
(WebCore::alternateFamilyName): Deleted.

  • platform/graphics/FontCache.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::platformAlternateFamilyName):

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::FontCache::platformAlternateFamilyName):

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::FontCache::platformAlternateFamilyName):

Source/WTF:

  • wtf/text/StringCommon.h:

(WTF::naiveEqualWithoutPerformingUnicodeNormalization): Added.

Tools:

  • TestWebKitAPI/Tests/WTF/WTFString.h:

(TestWebKitAPI::TEST):

LayoutTests:

Because this tests platform-specific font names, the test must
be platform-specific. Because it's a ref test, make two tests which
are mutually-exclusive on Cocoa platforms, and expected to fail
everywhere else.

  • fast/text/chinese-font-name-aliases-2-expected.html: Added.
  • fast/text/chinese-font-name-aliases-2.html: Added.
  • fast/text/chinese-font-name-aliases-expected.html: Added.
  • fast/text/chinese-font-name-aliases.html: Added.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
1:05 PM Changeset in webkit [201977] by commit-queue@webkit.org
  • 11 edits
    1 delete in trunk

Unreviewed, rolling out r201967, r201968, and r201972.
https://bugs.webkit.org/show_bug.cgi?id=158665

Caused flaky failures on IndexedDB tests (Requested by ap on
#webkit).

Reverted changesets:

"Vary:Cookie validation doesn't work in private browsing"
https://bugs.webkit.org/show_bug.cgi?id=158616
http://trac.webkit.org/changeset/201967

"Build fix."
http://trac.webkit.org/changeset/201968

"WinCairo build fix attempt."
http://trac.webkit.org/changeset/201972

12:58 PM Changeset in webkit [201976] by mark.lam@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Minimize the amount of memcpy done for allocating Error stacks.
https://bugs.webkit.org/show_bug.cgi?id=158664

Reviewed by Darin Adler.

Currently, Vector<StackFrame> are being copied around multiple times in the
process of creating Error stacks.

This patch avoids this unnecessary copying by:

  1. Sizing the StackFrame vector correctly to begin with, and skipping undesirable top frames before filling in the vector.
  2. Using perfect forwarding or passing by reference to pass the vector data around instead of copying the vectors.
  3. Changing the Exception object to take a Vector<StackFrame> instead of a RefCountedArray<StackFrame>.

This patch has passed the JSC and layout tests. Benchmarks show that perf is
neutral.

  • API/tests/testapi.mm:

(testObjectiveCAPI):

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::createScriptCallStackFromException):

  • interpreter/Interpreter.cpp:

(JSC::GetStackTraceFunctor::GetStackTraceFunctor):
(JSC::GetStackTraceFunctor::operator()):
(JSC::Interpreter::getStackTrace):
(JSC::Interpreter::stackTraceAsString):
(JSC::findExceptionHandler):

  • interpreter/Interpreter.h:
  • runtime/Error.cpp:

(JSC::addErrorInfoAndGetBytecodeOffset):

  • runtime/Exception.cpp:

(JSC::Exception::finishCreation):

  • runtime/Exception.h:

(JSC::Exception::valueOffset):
(JSC::Exception::value):
(JSC::Exception::stack):
(JSC::Exception::didNotifyInspectorOfThrow):
(JSC::Exception::setDidNotifyInspectorOfThrow):

12:48 PM Changeset in webkit [201975] by fpizlo@apple.com
  • 2 edits in trunk/PerformanceTests

Unreviewed, skip Air.js. It got unskipped when I renamed it from JSAir.

  • Skipped:
11:53 AM Changeset in webkit [201974] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Tests that overflows the stack should not be run with the sampling profiler.
https://bugs.webkit.org/show_bug.cgi?id=158663

Reviewed by Saam Barati.

The sampling profiler will be sampling the whole stack, and the amount of memory
churn will make this tests time out, especially with debug builds. Hence,
let's not run the test with the sampling profiler configuration.

  • tests/stress/mutual-tail-call-no-stack-overflow.js:

(shouldThrow):

11:07 AM Changeset in webkit [201973] by Konstantin Tokarev
  • 2 edits in trunk/Source/WebCore

Fixed compilation of LocaleICU with ENABLE(DATE_AND_TIME_INPUT_TYPES)
https://bugs.webkit.org/show_bug.cgi?id=158659

Reviewed by Darin Adler.

No new tests needed.

  • platform/text/LocaleICU.cpp:

(WebCore::getFormatForSkeleton):
(WebCore::LocaleICU::monthFormat):
(WebCore::LocaleICU::shortMonthFormat):

10:58 AM Changeset in webkit [201972] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

WinCairo build fix attempt.

  • platform/network/NetworkStorageSession.cpp:
  • platform/network/NetworkStorageSession.h:
  • platform/network/NetworkStorageSessionStub.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::context):
(WebCore::NetworkStorageSession::createPrivateBrowsingSession):
(WebCore::NetworkStorageSession::switchToNewTestingSession):
(WebCore::NetworkStorageSession::~NetworkStorageSession): Deleted.
(WebCore::defaultSession): Deleted.
(WebCore::NetworkStorageSession::defaultStorageSession): Deleted.

10:52 AM Changeset in webkit [201971] by mmaxfield@apple.com
  • 10 edits
    2 adds in trunk

Deleting a CSSOM style rule invalidates any previously-added FontFaces
https://bugs.webkit.org/show_bug.cgi?id=158450

Reviewed by Darin Adler.

Source/WebCore:

This patch has two pieces: updating the CSSOM when the FontFace changes, and
updating the FontFace when the CSSOM changes.

1: Updating the CSSOM when the FontFace changes: CSSFontFaces already have a RefPtr
to their StyleRuleFontFace which represents their CSS-connection. When changing a
property of the CSSFontFace, we simply reach into the StyleRule and update it to
match. Our existing infrastructure of invalidation due to the attribute changes
makes sure that all the necessary updates occur.

  1. Updating the FontFace when the CSSOM changes: If the CSSOM changes in a trivial

way (for example, a new @font-face is appended to the end of the last <style>
element), we can handle it directly. However, when something more invasive occurs,
we end up clearing the entire CSSFontSelector, and then adding all the style rules
from scratch. This involves three steps:

a) CSSFontSelector::buildStarted() is run, which means "we're about to start

building up all the @font-face rules from scratch." We take this opportunity
to purge as many fonts as possible. This is valuable because, for example,
this function gets run when the page gets put into the page cache, so we
want to destroy as much as possible. Not everything can be purged, however -
only CSS-connected fonts which have never been inspected by script are
purgeable. We don't allow fonts inspected by script to be purged because
purging might result in a font appearing from JavaScript to transition from
a success -> failure state, which we don't allow.

b) Upon style recalc (possibly asynchronously) CSSFontSelector::addFontFaceRule()

is called for each @font-face rule. We actually detect that we're in the
middle of a style rebuild, and defer this step.

c) When we're done adding all the font face rules, we call

CSSFontSelector::buildCompleted(). This is where we compare the newly built-
up list of font faces with what existed previously (as remembered in
CSSFontSelector::buildStarted()) in order to detect font faces which were
deleted from the document. Fonts which were newly added to the document
are handled naturally.
Fonts which have a property modified on them are created as if they were new.
However, instead of simply adding the CSSFontFace, we search for the existing
CSSFontFace (by CSS connection pointer) and tell the existing FontFace to
adopt this new CSSFontFace. This means that the JavaScript object will just
pick up any newly-written values in the CSSOM. It also means that the
"status" attribute of the JavaScript object is reset, but this is expected
and allowed by the spec. (For example, if you change the "src" attribute of
an @font-face block via the CSSOM, all bets are off when you inspect the
FontFace JS object representing that block.)

Test: fast/text/font-face-set-cssom.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::setFamilies):
(WebCore::CSSFontFace::setStyle):
(WebCore::CSSFontFace::setWeight):
(WebCore::CSSFontFace::setUnicodeRange):
(WebCore::CSSFontFace::setVariantLigatures):
(WebCore::CSSFontFace::setVariantPosition):
(WebCore::CSSFontFace::setVariantCaps):
(WebCore::CSSFontFace::setVariantNumeric):
(WebCore::CSSFontFace::setVariantAlternates):
(WebCore::CSSFontFace::setVariantEastAsian):
(WebCore::CSSFontFace::setFeatureSettings):
(WebCore::CSSFontFace::initializeWrapper):
(WebCore::CSSFontFace::wrapper):
(WebCore::CSSFontFace::setWrapper):
(WebCore::CSSFontFace::purgeable):
(WebCore::CSSFontFace::updateStyleIfNeeded):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::remove):
(WebCore::CSSFontFaceSet::containsCSSConnection):
(WebCore::CSSFontFaceSet::purge):

  • css/CSSFontFaceSet.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::buildStarted):
(WebCore::CSSFontSelector::buildCompleted):
(WebCore::CSSFontSelector::addFontFaceRule):

  • css/CSSFontSelector.h:
  • css/FontFace.cpp:

(WebCore::FontFace::family):
(WebCore::FontFace::style):
(WebCore::FontFace::weight):
(WebCore::FontFace::unicodeRange):
(WebCore::FontFace::variant):
(WebCore::FontFace::featureSettings):
(WebCore::FontFace::adopt):

  • css/FontFace.h:

LayoutTests:

  • fast/text/font-face-set-cssom-expected.txt: Added.
  • fast/text/font-face-set-cssom.html: Added.
10:44 AM Changeset in webkit [201970] by Chris Dumez
  • 17 edits
    4 copies in trunk

WorkerNavigator is missing some attributes
https://bugs.webkit.org/show_bug.cgi?id=158593
<rdar://problem/26731334>

Reviewed by Darin Adler.

Source/WebCore:

Add attributes that are missing on WorkerNavigator:

  • appCodeName
  • hardwareConcurrency
  • language
  • product
  • productSub
  • vendor
  • vendorSub

Firefox and Chrome already expose those attributes.

Relevant specification:
https://html.spec.whatwg.org/multipage/workers.html#the-workernavigator-object

This patch also refactors the IDL to match the specification more
closely and promote sharing between Navigator and WorkerNavigator.

No new tests, updated existing test.

  • CMakeLists.txt:
  • DerivedSources.make:

Add new supplemental IDL files.

  • page/Navigator.cpp:
  • page/Navigator.h:

Moved language() / hardwareConcurrency() from Navigator to NavigatorBase
so that it can be used by NavigatorWorker as well.

  • page/NavigatorBase.h:
  • page/NavigatorBase.cpp:

(WebCore::NavigatorBase::language):
The implementation still calls defaultLanguage() but I updated it to be
thread safe on all platforms.

(WebCore::NavigatorBase::hardwareConcurrency):
Use std::call_once() for thread safety.

  • page/Navigator.idl:
  • page/NavigatorConcurrentHardware.idl: Copied from Source/WebCore/page/WorkerNavigator.idl.
  • page/NavigatorID.idl: Copied from Source/WebCore/page/WorkerNavigator.idl.
  • page/NavigatorLanguage.idl: Copied from Source/WebCore/page/WorkerNavigator.idl.
  • page/NavigatorOnLine.idl: Copied from Source/WebCore/page/WorkerNavigator.idl.
  • page/WorkerNavigator.idl:

Move several attributes to their own supplemental interfaces to match
the specification and promote sharing with WorkerNavigator.

  • platform/Language.cpp:

(WebCore::userPreferredLanguages):

  • platform/Language.h:

Made thread-safe on all platforms.

Source/WTF:

  • wtf/PlatformUserPreferredLanguages.h:
  • wtf/PlatformUserPreferredLanguagesWin.cpp:

(WTF::platformLanguage):
(WTF::platformUserPreferredLanguages):

Make platformUserPreferredLanguages() thread safe on Windows. The
Mac and Unix implementations are already thread-safe.

LayoutTests:

Improved test coverage for WorkerNavigator.

  • fast/workers/resources/worker-navigator.js:
4:46 AM Changeset in webkit [201969] by ddkilzer@apple.com
  • 5 edits in trunk/Source/bmalloc

Implement logging for RELEASE_BASSERT_WITH_MESSAGE() in BAssert.h
<http://webkit.org/b/155992>

Reviewed by Geoff Garen.

  • bmalloc/BAssert.h:

(BLOG_ERROR): Add method to always log error messages.
(RELEASE_BASSERT_WITH_MESSAGE): Use BLOG_ERROR() to implement
logging in Debug builds.

  • bmalloc/BPlatform.h:

(BPLATFORM_MAC): Add.
(BUSE): Add BUSE() macro.
(BATTRIBUTE_PRINTF): Add.
(BUSE_OS_LOG): Add.

  • bmalloc/Logging.cpp:

(bmalloc::reportAssertionFailureWithMessage): Add. Logs to
stderr.

  • bmalloc/Logging.h:

(bmalloc::reportAssertionFailureWithMessage): Add declaration.

4:20 AM Changeset in webkit [201968] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

Build fix.

  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::switchToNewTestingSession):

4:09 AM Changeset in webkit [201967] by Antti Koivisto
  • 10 edits
    1 add in trunk

Vary:Cookie validation doesn't work in private browsing
https://bugs.webkit.org/show_bug.cgi?id=158616
Source/WebCore:

rdar://problem/26755067

Reviewed by Darin Adler.

This wasn't implemented because there was no way to get NetworkStorageSession from
a SessionID on WebCore side.

The patch adds a simple WebCore level weak map that allows getting NetworkStorageSessions
from SessionID. This seemed like the cleanest way to do this without a big refactoring
around the currently WebKit2 level SessionTracker.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/network/CacheValidation.cpp:

(WebCore::headerValueForVary):

Get NetworkStorageSession from SessionID for cookies

(WebCore::verifyVaryingRequestHeaders):

  • platform/network/NetworkStorageSession.cpp: Added.

Add platform independent .cpp for NetworkStorageSession.
Implement a weak map for SessionID -> NetworkStorageSession.

(WebCore::sessionsMap):
(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::~NetworkStorageSession):
(WebCore::NetworkStorageSession::forSessionID):

Get NetworkStorageSession for sessionID.

  • platform/network/NetworkStorageSession.h:

(WebCore::NetworkStorageSession::sessionID):
(WebCore::NetworkStorageSession::credentialStorage):

  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession):

Call to common constructor.

(WebCore::defaultNetworkStorageSession):

  • platform/network/soup/NetworkStorageSessionSoup.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession):

Call to common constructor.

(WebCore::defaultSession):
(WebCore::NetworkStorageSession::~NetworkStorageSession): Deleted.

LayoutTests:

Reviewed by Darin Adler.

  • http/tests/cache/disk-cache/disk-cache-vary-cookie-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-vary-cookie.html:

Exapand the existing test to cover memory cache and private browsing.

Jun 10, 2016:

11:01 PM Changeset in webkit [201966] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, attempt to fix r201964 failure on Apple ports
https://bugs.webkit.org/show_bug.cgi?id=158619

Reviewed by Mark Lam.

Add Private attributes to MathCommon.h.

10:32 PM Changeset in webkit [201965] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: <template> content should not be hidden as Shadow Content
https://bugs.webkit.org/show_bug.cgi?id=158654

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-10
Reviewed by Ryosuke Niwa.

  • Localizations/en.lproj/localizedStrings.js:

New "Template Content" string.

  • UserInterface/Models/DOMNode.js:

(WebInspector.DOMNode):
Don't treat template content as shadow content.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
Custom string for template content fragment.

10:31 PM Changeset in webkit [201964] by Yusuke Suzuki
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Inline JSC::toInt32 to improve kraken
https://bugs.webkit.org/show_bug.cgi?id=158619

Reviewed by Mark Lam.

Several kraken benchmarks show that JSC::toInt32 is frequently called.
For example, stanford-crypto-pbkdf2 reports that the hottest runtime function is JSC::toInt32.

The data is below (taken by Linux perf tools).
5.50% jsc libJavaScriptCore.so.1.0.0 . _ZN3JSC7toInt32Ed
3.96% jsc libJavaScriptCore.so.1.0.0 . _ZN3JSC20arrayProtoFuncConcatEPNS_9ExecStateE
2.48% jsc libJavaScriptCore.so.1.0.0 . _ZN3JSC19arrayProtoFuncSliceEPNS_9ExecStateE
1.69% jsc libJavaScriptCore.so.1.0.0 . _ZNK3JSC9Structure27holesMustForwardToPrototypeERNS_2VME

This is because of CommonSlowPaths' bit operations's JSValue::toInt32.
Due to the slow path, in value | 0, value may be a double number value. In that case, JSC::toInt32 is called.

While JSC::toIn32 is hot, the function itself is very small. It's worth inlining.

This change offers the following kraken improvements.

baseline patched

Kraken:

audio-beat-detection 47.492+-1.701 46.657+-1.232 might be 1.0179x faster
stanford-crypto-aes 43.669+-0.210 42.862+-0.115 definitely 1.0188x faster
stanford-crypto-ccm 45.213+-1.424 44.490+-1.290 might be 1.0162x faster
stanford-crypto-pbkdf2 107.665+-0.581 106.229+-0.807 definitely 1.0135x faster

This patch only focused on the call to toInt32 from the runtime functions.
So JSC::toInt32 calls from the baseline / DFG remain.
We ensure that JIT code uses operationToInt32 instead of JSC::toInt32 since JSC::toInt32 is now marked as ALWAYS_INLINE.
Linux perf profiler also finds that this operationToInt32 is frequently called in the above benchmarks.
It may be good to introduce asm emit for that instead of calling JSC::toInt32 operation in the separated patch.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueToInt32):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::doubleToInt32):
(JSC::FTL::DFG::LowerDFGToB3::sensibleDoubleToInt32):

  • runtime/JSCJSValue.cpp:

(JSC::toInt32): Deleted.

  • runtime/JSCJSValueInlines.h:
  • runtime/MathCommon.cpp:

(JSC::operationToInt32):

  • runtime/MathCommon.h:

(JSC::toInt32):

9:37 PM Changeset in webkit [201963] by adachan@apple.com
  • 5 edits in trunk/Source

Use the video element's video box when getting the inline video rect in WebVideoFullscreenManager
https://bugs.webkit.org/show_bug.cgi?id=158351
<rdar://problem/26567938>

Reviewed by Darin Adler.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

Change the visibility of RenderVideo.h and RenderMedia.h since we'll be importing RenderVideo.h from WebKit2.

  • rendering/RenderVideo.h:

Source/WebKit2:

  • WebProcess/cocoa/WebVideoFullscreenManager.mm:

(WebKit::inlineVideoFrame):
(WebKit::WebVideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenManager::exitVideoFullscreenForVideoElement):
(WebKit::WebVideoFullscreenManager::fullscreenMayReturnToInline):
(WebKit::WebVideoFullscreenManager::setVideoLayerFrameFenced):
(WebKit::clientRectForElement): Deleted.

9:24 PM Changeset in webkit [201962] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix CMake build.

  • PlatformMac.cmake:
6:52 PM Changeset in webkit [201961] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/PerformanceTests

Make it easy to package Air.js
https://bugs.webkit.org/show_bug.cgi?id=158652

Reviewed by Benjamin Poulain.

If you want to give Air.js to someone, you can now do:

cd PerformanceTests/Air.js
./make_dist.sh

This will create Air.js.tar.gz and a directory called Air.js. If you want to send someone
the benchmark, just send either of those things and tell them to look at index.html.

You may have to edit make_dist.sh for wherever you have Markdown.pl. You can get that from
https://daringfireball.net/projects/markdown/

  • Air.js/make_dist.sh: Added.
  • Air.js/test.html:
6:32 PM Changeset in webkit [201960] by fpizlo@apple.com
  • 2 edits in trunk/PerformanceTests

Unreviewed, make the link to test.html into an actual link.

  • Air.js/README.md:
6:20 PM Changeset in webkit [201959] by fpizlo@apple.com
  • 2 edits in trunk/PerformanceTests

Fix some text in Air.js/README.md
https://bugs.webkit.org/show_bug.cgi?id=158650

Reviewed by Benjamin Poulain.

I read the text again and found bugs:

  • We never actually say how to run the benchmark. This change adds a blurb about how to run it.
  • We both say that allocateStack is responsible for the bulk of the running time and that we haven't measured where the bulk of the time is spent. This changes the text to say that it was a goal to make allocateStack be the hottest part of the benchmark, but that we did not measure this.
  • Air.js/README.md:
6:18 PM Changeset in webkit [201958] by benjamin@webkit.org
  • 37 edits
    10 adds in trunk

Add support for passive event listeners on touch events
https://bugs.webkit.org/show_bug.cgi?id=158601

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-10
Reviewed by Simon Fraser.

Source/WebCore:

This patch wires "passive" state of EventTarget to the delivery of touch
events in WebKit2.

Instead of having a NonFastScrollableRegion, we have a pair of regions
in EventTrackingRegions.
The "asynchronousDispatchRegion" tracks the area for which all event
listeners are passive. For those, events should be dispatched asynchronously.
The "synchronousDispatchRegion" tracks the area for which there is at
least one active event listener. Events have to be dispatched synchronously
for correctness.

Tests: fast/events/touch/ios/tap-with-active-listener-on-elements.html

fast/events/touch/ios/tap-with-active-listener-on-window.html
fast/events/touch/ios/tap-with-passive-listener-on-elements.html
fast/events/touch/ios/tap-with-passive-listener-on-window.html

  • WebCore.xcodeproj/project.pbxproj:
  • dom/Document.cpp:

(WebCore::Document::wheelEventHandlersChanged):
(WebCore::Document::Document): Deleted.

  • dom/Document.h:
  • dom/EventListenerMap.cpp:

(WebCore::EventListenerMap::containsActive):
If a Target has multiple listener for an event type, we want to know
if any of them is active.

  • dom/EventListenerMap.h:
  • dom/EventTarget.cpp:

(WebCore::EventTarget::hasActiveEventListeners):
(WebCore::EventTarget::hasActiveTouchEventListeners):

  • dom/EventTarget.h:
  • page/DebugPageOverlays.cpp:

(WebCore::NonFastScrollableRegionOverlay::updateRegion):
I did not change the debug overlays.
The NonFastScrollable area is the region for which events needs
synchronous dispatch. Everything else should scroll without delay.

  • page/FrameView.cpp:

(WebCore::FrameView::scrollableAreaSetChanged):

  • page/Page.cpp:

(WebCore::Page::nonFastScrollableRects):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::setEventTrackingRegionsDirty):
(WebCore::AsyncScrollingCoordinator::willCommitTree):
(WebCore::AsyncScrollingCoordinator::updateEventTrackingRegions):
(WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
(WebCore::AsyncScrollingCoordinator::frameViewEventTrackingRegionsChanged):
(WebCore::AsyncScrollingCoordinator::scrollingStateTreeAsText):
(WebCore::AsyncScrollingCoordinator::setNonFastScrollableRegionDirty): Deleted.
(WebCore::AsyncScrollingCoordinator::updateNonFastScrollableRegion): Deleted.
(WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged): Deleted.

  • page/scrolling/AsyncScrollingCoordinator.h:

(WebCore::AsyncScrollingCoordinator::eventTrackingRegionsDirty):
(WebCore::AsyncScrollingCoordinator::nonFastScrollableRegionDirty): Deleted.

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::absoluteEventTrackingRegionsForFrame):
(WebCore::ScrollingCoordinator::absoluteEventTrackingRegions):
(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame): Deleted.
(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegion): Deleted.
I intentionally left the Wheel event with synchronous dispatch.
This use case will need its own set of tests.

  • page/scrolling/ScrollingCoordinator.h:

(WebCore::ScrollingCoordinator::frameViewEventTrackingRegionsChanged):
(WebCore::ScrollingCoordinator::frameViewNonFastScrollableRegionChanged): Deleted.

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp:

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::setEventTrackingRegions):
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties):
(WebCore::ScrollingStateFrameScrollingNode::setNonFastScrollableRegion): Deleted.

  • page/scrolling/ScrollingStateFrameScrollingNode.h:
  • page/scrolling/ScrollingTree.cpp:

(WebCore::ScrollingTree::shouldHandleWheelEventSynchronously):
(WebCore::ScrollingTree::commitNewTreeState):
(WebCore::ScrollingTree::eventTrackingTypeForPoint):
(WebCore::ScrollingTree::isPointInNonFastScrollableRegion): Deleted.

  • page/scrolling/ScrollingTree.h:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:

(WebCore::ScrollingCoordinatorMac::scheduleTreeStateCommit):

  • platform/EventTrackingRegions.h: Added.

(WebCore::EventTrackingRegions::isEmpty):
(WebCore::EventTrackingRegions::trackingTypeForPoint):
(WebCore::operator==):

Source/WebKit2:

  • Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode):
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode):
(WebKit::dump):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<EventTrackingRegions>::encode):
(IPC::ArgumentCoder<EventTrackingRegions>::decode):

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::eventTrackingTypeForPoint):
(WebKit::RemoteScrollingCoordinatorProxy::isPointInNonFastScrollableRegion): Deleted.

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::touchEventTrackingType):
The type is the most restrictive type of all the touch points.
If any touch point needs synchronous tracking, everything has to be synchronous.

(WebKit::WebPageProxy::handleTouchEventSynchronously):
This is a very unfortunate design.

The upper layer dealing with UIKit knows about gesture and when something
can be dispatched asynchrnously because a gesture has started.
This layer knows about tracking and can use that extra inforamtion
to dispatch an event asynchrnously anyway.

In the future, we should refactor this to let WebPageProxy
always decide of the dispatch type. I am just concerned changing
the upper layer while we are stabilizing WebKit.

(WebKit::WebPageProxy::handleTouchEventAsynchronously):
(WebKit::WebPageProxy::handleTouchEvent):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::WebPageProxy): Deleted.
(WebKit::WebPageProxy::shouldStartTrackingTouchEvents): Deleted.

  • UIProcess/WebPageProxy.h:

LayoutTests:

  • fast/events/touch/ios/tap-with-active-listener-on-elements-expected.txt: Added.
  • fast/events/touch/ios/tap-with-active-listener-on-elements.html: Added.
  • fast/events/touch/ios/tap-with-active-listener-on-window-expected.txt: Added.
  • fast/events/touch/ios/tap-with-active-listener-on-window.html: Added.
  • fast/events/touch/ios/tap-with-passive-listener-inside-active-listener-expected.txt: Added.
  • fast/events/touch/ios/tap-with-passive-listener-on-elements-expected.txt: Added.
  • fast/events/touch/ios/tap-with-passive-listener-on-elements.html: Added.
  • fast/events/touch/ios/tap-with-passive-listener-on-window-expected.txt: Added.
  • fast/events/touch/ios/tap-with-passive-listener-on-window.html: Added.
5:48 PM Changeset in webkit [201957] by fpizlo@apple.com
  • 1 edit
    1 add in trunk/PerformanceTests

Air.js should have some documentation
https://bugs.webkit.org/show_bug.cgi?id=158648

Reviewed by Keith Miller.

I want to be able to point people at a document if they want to know more about this
benchmark.

  • Air.js/README.md: Added.
5:21 PM Changeset in webkit [201956] by enrica@apple.com
  • 9 edits
    2 adds in trunk

REGRESSION(r198177): Cannot paste an image when the pasteboard format is mime type.
https://bugs.webkit.org/show_bug.cgi?id=158590
rdar://problem/25471371

Reviewed by Darin Adler.

Source/WebCore:

When creating a fragment from an image resource, the resource needs to
be added to the document loader before setting the src attribute to the
image element, otherwise loading is triggered and the loading fails.
In r198177 the order of the operations was changed causing the bug.
This patch adds support to test the scenario where the image in the pasteboard
is available only as mime type (not WebArchive or RTFD), a situation that occurs
more frequently on iOS.

Test: editing/pasteboard/image-in-iframe.html

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::createFragmentForImageResourceAndAddResource):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::WebContentReader::readWebArchive):
(WebCore::Editor::WebContentReader::readRTFD):
(WebCore::Editor::WebContentReader::readRTF):
(WebCore::Editor::createFragmentForImageResourceAndAddResource):

  • page/Settings.cpp:

(WebCore::Settings::setImagesEnabled):
(WebCore::Settings::setPreferMimeTypeForImages):
(WebCore::Settings::setForcePendingWebGLPolicy):

  • page/Settings.h:

(WebCore::Settings::areImagesEnabled):
(WebCore::Settings::preferMimeTypeForImages):
(WebCore::Settings::arePluginsEnabled):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setLangAttributeAwareFormControlUIEnabled):
(WebCore::InternalSettings::setPreferMimeTypeForImages):
(WebCore::InternalSettings::setImagesEnabled):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

LayoutTests:

  • editing/pasteboard/image-in-iframe-expected.txt: Added.
  • editing/pasteboard/image-in-iframe.html: Added.
5:20 PM Changeset in webkit [201955] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix CMake build.

  • TestWebKitAPI/PlatformMac.cmake:
5:15 PM Changeset in webkit [201954] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Fix WinCairo build after r201943

  • platform/network/curl/MultipartHandle.cpp:

(WebCore::MultipartHandle::didReceiveResponse):

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::handleLocalReceiveResponse):
(WebCore::headerCallback):
(WebCore::ResourceHandleManager::dispatchSynchronousJob):

4:54 PM Changeset in webkit [201953] by fpizlo@apple.com
  • 3 edits
    6 copies
    1 move
    2 deletes in trunk

PerformanceTests:
Rename JSAir to Air.js.

Rubber stamped by Mark Lam.

  • Air.js: Copied from PerformanceTests/JSAir.
  • Air.js/airjs-tests.yaml: Copied from PerformanceTests/JSAir/jsair-tests.yaml.
  • Air.js/benchmark.js: Copied from PerformanceTests/JSAir/benchmark.js.

(Benchmark):

  • Air.js/jsair-tests.yaml: Removed.
  • Air.js/payload-airjs-ACLj8C.js: Copied from PerformanceTests/JSAir/payload-jsair-ACLj8C.js.
  • Air.js/payload-jsair-ACLj8C.js: Removed.
  • Air.js/stress-test.js: Copied from PerformanceTests/JSAir/stress-test.js.
  • Air.js/test.html: Copied from PerformanceTests/JSAir/test.html.
  • Air.js/test.js: Copied from PerformanceTests/JSAir/test.js.
  • JSAir: Removed.
  • JSAir/all.js: Removed.
  • JSAir/allocate_stack.js: Removed.
  • JSAir/arg.js: Removed.
  • JSAir/basic_block.js: Removed.
  • JSAir/benchmark.js: Removed.
  • JSAir/code.js: Removed.
  • JSAir/custom.js: Removed.
  • JSAir/frequented_block.js: Removed.
  • JSAir/insertion_set.js: Removed.
  • JSAir/inst.js: Removed.
  • JSAir/jsair-tests.yaml: Removed.
  • JSAir/liveness.js: Removed.
  • JSAir/opcode.js: Removed.
  • JSAir/payload-gbemu-executeIteration.js: Removed.
  • JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Removed.
  • JSAir/payload-jsair-ACLj8C.js: Removed.
  • JSAir/payload-typescript-scanIdentifier.js: Removed.
  • JSAir/reg.js: Removed.
  • JSAir/stack_slot.js: Removed.
  • JSAir/stress-test.js: Removed.
  • JSAir/strip-hash.rb: Removed.
  • JSAir/symbols.js: Removed.
  • JSAir/test.html: Removed.
  • JSAir/test.js: Removed.
  • JSAir/tmp.js: Removed.
  • JSAir/tmp_base.js: Removed.
  • JSAir/util.js: Removed.

Tools:
Rename JSAir to Air.js

Rubber stamped by Mark Lam.

  • Scripts/run-javascriptcore-tests:
4:29 PM Changeset in webkit [201952] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking imported/blink/storage/indexeddb/blob-delete-objectstore-db.html as flaky on Yosemite Release WK2
https://bugs.webkit.org/show_bug.cgi?id=158639

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:18 PM Changeset in webkit [201951] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/LayoutTests

Roll out r201287. rdar://problem/26605164

4:10 PM Changeset in webkit [201950] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/LayoutTests

Merge r201287. rdar://problem/26228555

4:05 PM Changeset in webkit [201949] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: heap snapshot comparison view shows nothing if later snapshot is chosen first
https://bugs.webkit.org/show_bug.cgi?id=158584
<rdar://problem/26727849>

Reviewed by Timothy Hatcher.

ALways compare the the later snapshot to the earlier snapshot,
regardless of selection order.

  • UserInterface/Views/HeapAllocationsTimelineView.js:

(WebInspector.HeapAllocationsTimelineView):
(WebInspector.HeapAllocationsTimelineView.prototype._dataGridNodeSelected):
Swap shapshots if the first has a greater identifier than the second.
Drive-by cleanup: null out _baselineDataGridNode since it isn't used
after the comparison completes.

4:00 PM Changeset in webkit [201948] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/LayoutTests

Merge r201287. rdar://problem/26605164

3:55 PM Changeset in webkit [201947] by fpizlo@apple.com
  • 7 edits
    1 add in trunk

JSC Stress Test failing: jsair-tests.yaml/test.js.ftl-eager-no-cjit
https://bugs.webkit.org/show_bug.cgi?id=158571

Reviewed by Keith Miller.

PerformanceTests:

Introduce a different harness for run-jsc-stress-tests, which runs for a minimum of 10
iterations and then tries to do any number of "bonus" iterations until it's been running for
two seconds. Since this is the sort of test that isn't really meant to stress anything in
particular, I think it's OK if it is time-limited in this way. The worst case is that some
of its failures will be flaky, but I think that they would have been flaky anyway given the
complexity of the test.

  • JSAir/benchmark.js:

(Benchmark):
(Benchmark.prototype.runIteration):
(benchmark): Deleted.

  • JSAir/jsair-tests.yaml:
  • JSAir/stress-test.js: Added.

(preciseTime):

  • JSAir/test.html:
  • JSAir/test.js:

Tools:

Unskip the JSAir test.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

3:26 PM Changeset in webkit [201946] by achristensen@apple.com
  • 3 edits
    2 deletes in trunk/Source/WebCore

handleDataURL is only used by curl
https://bugs.webkit.org/show_bug.cgi?id=158636

Reviewed by Tim Horton.

  • CMakeLists.txt:
  • platform/network/DataURL.cpp: Removed.
  • platform/network/DataURL.h: Removed.
  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::ResourceHandleManager::startScheduledJobs):
(WebCore::handleDataURL):
(WebCore::ResourceHandleManager::dispatchSynchronousJob):

3:18 PM Changeset in webkit [201945] by Beth Dakin
  • 3 edits in trunk/Source/WebKit2

Add requestExitFullScreen to WKFullScreenWindowController
https://bugs.webkit.org/show_bug.cgi?id=158633
-and corresponding-
rdar://problem/26564036

Reviewed by Tim Horton.

  • UIProcess/mac/WKFullScreenWindowController.h:
  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController requestExitFullScreen]):

3:15 PM Changeset in webkit [201944] by weinig@apple.com
  • 2 edits in trunk/Tools

Re-disable the UserMedia tests which are timing out.

They used to be accidentally disabled, due to not including
the FeatureDefines correctly, but not we explicitly disable it.

  • TestWebKitAPI/Tests/WebKit2/UserMedia.cpp:

(TestWebKitAPI::TEST):

3:02 PM Changeset in webkit [201943] by achristensen@apple.com
  • 37 edits in trunk/Source

Reduce ResourceResponse copying
https://bugs.webkit.org/show_bug.cgi?id=158232

Reviewed by Darin Adler.

Source/WebCore:

No new tests. No change in behavior except removing an unnecessary copy on cocoa platforms.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::didSendData):
(WebCore::ResourceLoader::didReceiveResponse):

  • loader/ResourceLoader.h:
  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::createResourceHandle):
(WebCore::ApplicationCacheGroup::didReceiveResponse):

  • loader/appcache/ApplicationCacheGroup.h:
  • platform/graphics/PlatformMediaResourceLoader.h:

(WebCore::PlatformMediaResourceClient::~PlatformMediaResourceClient):
(WebCore::PlatformMediaResourceClient::responseReceived):
(WebCore::PlatformMediaResourceClient::redirectReceived):
(WebCore::PlatformMediaResourceClient::shouldCacheResponse):
(WebCore::PlatformMediaResourceClient::dataSent):

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(ResourceHandleStreamingClient::willSendRequest):
(ResourceHandleStreamingClient::didReceiveResponse):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::notifyResponseOnSuccess):
(WebCore::BlobResourceHandle::notifyResponseOnError):
(WebCore::BlobResourceHandle::notifyReceiveData):

  • platform/network/DataURL.cpp:

(WebCore::handleDataURL):

  • platform/network/PingHandle.h:

(WebCore::PingHandle::PingHandle):

  • platform/network/ResourceHandleClient.cpp:

(WebCore::ResourceHandleClient::willSendRequestAsync):
(WebCore::ResourceHandleClient::didReceiveResponseAsync):

  • platform/network/ResourceHandleClient.h:

(WebCore::ResourceHandleClient::didSendData):
(WebCore::ResourceHandleClient::didReceiveResponse):
(WebCore::ResourceHandleClient::didReceiveData):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::ResourceResponseBase):
(WebCore::ResourceResponseBase::includeCertificateInfo):
(WebCore::ResourceResponseBase::suggestedFilename):
(WebCore::ResourceResponseBase::certificateInfo): Deleted.

  • platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::certificateInfo):
(WebCore::ResourceResponseBase::encode):
(WebCore::ResourceResponseBase::decode):
(WebCore::ResourceResponseBase::containsCertificateInfo): Deleted.

  • platform/network/SynchronousLoaderClient.cpp:

(WebCore::SynchronousLoaderClient::canAuthenticateAgainstProtectionSpace):
(WebCore::SynchronousLoaderClient::didReceiveResponse):
(WebCore::SynchronousLoaderClient::didReceiveData):

  • platform/network/SynchronousLoaderClient.h:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):

  • platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:

(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
(WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveData):

  • platform/network/mac/WebCoreResourceHandleAsDelegate.mm:

(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::nextMultipartResponsePartCallback):
(WebCore::sendRequestCallback):

Source/WebKit2:

  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueDidReceiveResponse):
(WebKit::NetworkLoad::sharedDidReceiveResponse):
(WebKit::NetworkLoad::sharedWillSendRedirectedRequest):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::didReceiveResponseAsync):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::abort):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/PingLoad.h:
  • NetworkProcess/cache/NetworkCacheCoders.h:

(WebKit::NetworkCache::Coder<Optional<T>>::encode):
(WebKit::NetworkCache::Coder<Optional<T>>::decode):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTask::didCompleteWithError):
(WebKit::NetworkDataTask::didReceiveResponse):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::url):
(WebKit::WebFrame::certificateInfo):
(WebKit::WebFrame::innerText):

3:00 PM Changeset in webkit [201942] by rniwa@webkit.org
  • 9 edits in trunk/Source

Add SPI to disable spellchecking on auto-fillable text fields
https://bugs.webkit.org/show_bug.cgi?id=158611

Reviewed by Anders Carlsson.

Source/WebCore:

Added a boolean flag m_isSpellCheckingEnabled to HTMLInputElement. This flag defaults to true, and can be set
to false by WebKit2 C API.

  • editing/Editor.cpp:

(WebCore::Editor::isSpellCheckingEnabledFor): Fixed a bug that we were calling isSpellCheckingEnabled on
the div inside an input element's shadow tree instead of the input element itself.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::HTMLInputElement): Initialize m_spellcheckEnabled to true (it's a bit field).
(WebCore::HTMLInputElement::isSpellCheckingEnabled): Added. Return false if m_spellcheckEnabled is false.

  • html/HTMLInputElement.h:

(WebCore::HTMLInputElement::setSpellcheckEnabled): Added.

Source/WebKit2:

Added WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled to disable spellchecking on a text field.

This is used by WebKit2 client which desires to disable spellchecking and notably autocorrection on
login forms, etc... where such feature would interfere with user's actions.

  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp:

(WKBundleNodeHandleSetHTMLInputElementSpellcheckEnabled): Added.

  • WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h:
  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:

(WebKit::InjectedBundleNodeHandle::setHTMLInputElementSpellcheckEnabled): Added.

  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.h:
2:26 PM Changeset in webkit [201941] by achristensen@apple.com
  • 20 edits
    2 adds in trunk

Introduce WTF::UniqueRef
https://bugs.webkit.org/show_bug.cgi?id=158596

Reviewed by Brady Eidson.

Source/WebCore:

No new tests. No change in behavior.

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::overlayPage):

  • loader/EmptyClients.cpp:

(WebCore::fillWithEmptyClients):

  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:

(WebCore::Page::canStartMedia):
(WebCore::Page::editorClient):
(WebCore::Page::plugInClient):
(WebCore::Page::mainFrame):
(WebCore::Page::groupPtr): Deleted.

  • page/PageConfiguration.cpp:

(WebCore::PageConfiguration::PageConfiguration):

  • page/PageConfiguration.h:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKit/win:

  • WebView.cpp:

(WebView::initWithFrame):

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_shouldDispatchFakeMouseMoveEvents):

Source/WTF:

WTF::UniqueRef is like a std::unique_ptr that is guaranteed to be non-null.
std::make_unique returns a non-null value that is put into a std::unique_ptr, a type
that could contain null values. To be able to pass such values around and store them
without wondering if they are null, we now have WTF::UniqueRef which cannot be null.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/UniqueRef.h: Added.

(WTF::makeUniqueRef):
(WTF::UniqueRef::UniqueRef):
(WTF::UniqueRef::get):
(WTF::UniqueRef::operator&):
(WTF::UniqueRef::operator->):

Tools:

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/UniqueRef.cpp: Added.

(TestWebKitAPI::B::B):
(TestWebKitAPI::C::C):
(TestWebKitAPI::function):
(TestWebKitAPI::TEST):

2:01 PM Changeset in webkit [201940] by beidson@apple.com
  • 1 edit
    3 adds in trunk/LayoutTests

Add an IDB leak test.
https://bugs.webkit.org/show_bug.cgi?id=158632

Reviewed by Alex Christensen.

  • storage/indexeddb/modern/leak-1-expected.txt: Added.
  • storage/indexeddb/modern/leak-1.html: Added.
  • storage/indexeddb/modern/resources/leak-1.js: Added.
1:59 PM Changeset in webkit [201939] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Cleanup InspectorIndexedDBAgent a bit
https://bugs.webkit.org/show_bug.cgi?id=158598

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-10
Reviewed by Darin Adler.

  • inspector/InspectorIndexedDBAgent.cpp:
1:38 PM Changeset in webkit [201938] by weinig@apple.com
  • 8 edits
    4 adds in trunk/Tools

Refactor TestWebKitAPI to allow just testing WTF
https://bugs.webkit.org/show_bug.cgi?id=158625

Reviewed by Tim Horton.

Extract all the WTF tests into a new target to allow a faster build / test / fix
cycle when working on WTF bugs and features.

By calling run-api-tests --wtf-only, you don't need to have a build of JavaScriptCore/WebCore/etc
to test WTF only changes.

  • Scripts/build-api-tests:
  • Scripts/run-api-tests:

(buildTestTool):
(testToolPaths):
Add new options to build-api-tests and run-api-tests to only build/run the WTF test runner.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/Configurations/TestWTF.xcconfig: Added.
  • TestWebKitAPI/Configurations/TestWTFLibrary.xcconfig: Added.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

Add two new targets, TestWTFLibrary which contains all the WTF tests, and TestWTF,
the test runner that runs the WTF tests.

  • TestWebKitAPI/Tests/WTF/RunLoop.cpp:

Use Utilities.h rather than PlatformUtilities.h.

  • TestWebKitAPI/Utilities.h: Added.
  • TestWebKitAPI/PlatformUtilities.h:
  • TestWebKitAPI/cocoa/PlatformUtilitiesCocoa.mm:
  • TestWebKitAPI/cocoa/UtilitiesCocoa.mm: Added.

Move the sleep and run functions into a new Utilities.h/cpp file. This file contains utilities
that don't depend on anything in the WebKit project.

12:59 PM Changeset in webkit [201937] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: rendering frames timeline "60fps" horizontal guide is mispositioned after switching timeline modes
https://bugs.webkit.org/show_bug.cgi?id=158587
<rdar://problem/26728174>

Reviewed by Timothy Hatcher.

When the view mode changes we iterate over all overview graphs, updating
their visibility as needed. Graphs being shown perform layout, even though
the overview's state is in transition: its offset height may still change.

A simple fix is to use TimelineOverviewGraph.height instead of the graph
element's offset height when performing layout.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

(WebInspector.RenderingFrameTimelineOverviewGraph.prototype.layout):

12:56 PM Changeset in webkit [201936] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

The backend should be happy to compile Unreachable even if AI didn't prove it to be unreachable
https://bugs.webkit.org/show_bug.cgi?id=158631

Reviewed by Keith Miller.

We've been slowly making the DFG Unreachable opcode behave like a grown-up. When we first
added it, it was a hack for Throw, and we could always rely on AI proving that Unreachable
was not reachable. But then we started using Unreachable as a proper Unreachable opcode,
like Oops in B3 for example, which has a more nuanced meaning: you use it whenever you
emit code that *you* know will not return, and you need some way of terminating the basic
block. The DFG is not a proof-carrying compiler, and it never will be. So, when you have
proved that something is not reachable, you should be able to use Unreachable even if
there is no guarantee that the compiler will later be able to replicate your proof. This
means that the backend may find itself compiling Unreachable because AI did not prove that
it was unreachable.

Prior to this change, we would crash compiling Unreachable because we would rely on AI
preventing us from reaching Unreachable in the backend. But that's silly! We don't want
users of Unreachable to have to also convince AI that their Unreachable is really
Unreachable.

This fixes crashes on real websites. I couldn't work out how to turn them into a reduced
test.

  • assembler/AbortReason.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitInvalidationPoint):
(JSC::DFG::SpeculativeJIT::unreachable):
(JSC::DFG::SpeculativeJIT::terminateSpeculativeExecution):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compilePutDynamicVar):
(JSC::FTL::DFG::LowerDFGToB3::compileUnreachable):
(JSC::FTL::DFG::LowerDFGToB3::compareEqObjectOrOtherToObject):

12:42 PM Changeset in webkit [201935] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r201538): Web Inspector: 1px gap above timeline progress view
https://bugs.webkit.org/show_bug.cgi?id=158626

Reviewed by Joseph Pecoraro.

Adjust progress view top position to account for grid border changes.

  • UserInterface/Views/TimelineRecordingContentView.css:

(.content-view.timeline-recording > .content-browser .recording-progress):

12:41 PM Changeset in webkit [201934] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION (r201538): Web Inspector: Border under JS Call Trees content view is too thick
https://bugs.webkit.org/show_bug.cgi?id=158624
<rdar://problem/26743633>

Reviewed by Joseph Pecoraro.

Remove top border from <th> elements.

  • UserInterface/Views/ProfileView.css:

(.profile > .data-grid th): Deleted.

11:49 AM Changeset in webkit [201933] by andersca@apple.com
  • 2 edits
    2 deletes in trunk/Source/WebKit2

Remove CommandLine class
https://bugs.webkit.org/show_bug.cgi?id=158628

Reviewed by Tim Horton.

  • Shared/CommandLine.h: Removed.

(WebKit::CommandLine::operator[]): Deleted.

  • Shared/posix/CommandLinePOSIX.cpp: Removed.

(WebKit::CommandLine::parse): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
11:49 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
11:49 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
11:43 AM Changeset in webkit [201932] by beidson@apple.com
  • 2 edits in trunk/Tools

REGRESSION(r201928?) API test WTF.StringOperators failing
https://bugs.webkit.org/show_bug.cgi?id=158623

Unreviewed, but buddy coded with Alex Christensen.

  • TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp:

(TestWebKitAPI::LifetimeLogger::fullName): Only one file in all of TestWebKitAPI is allowed

to use string concatenation, otherwise the linker will mess up on the symbol related to
this bizarre WTF_STRINGTYPEADAPTER_COPIED_WTF_STRING macro expansion.

11:41 AM Changeset in webkit [201931] by clopez@igalia.com
  • 6 edits in trunk/LayoutTests

[GTK] Unreviewed gardening.

Update the general expectations file to include also Timeout as
an expected failure.

  • platform/gtk/TestExpectations: Since r200320 resource-timing feature is a runtime flag and this causes failures.

Remove also one test that has been removed.

  • platform/gtk/fast/table/border-collapsing/cached-change-row-border-width-expected.txt: rebaseline after r201234
  • platform/gtk/fast/table/border-collapsing/cached-change-tbody-border-width-expected.txt: rebaseline after r201234
  • platform/gtk/fast/table/max-width-integer-overflow-expected.txt: rebaseline after r201234
11:17 AM Changeset in webkit [201930] by youenn.fablet@crf.canon.fr
  • 8 edits
    3 adds in trunk

Origin header is not included in CORS requests for preloaded cross-origin resources
https://bugs.webkit.org/show_bug.cgi?id=155761
<rdar://problem/25351850>

Reviewed by Alex Christensen.

Source/WebCore:

Making HTML preloader fully aware of crossorigin attribute value.
Introducing CachedResourceRequest::setAsPotentiallyCrossOrigin as a helper routine to activate CORS mode.
Making HTMLLinkElement and HTMLResourcePreloader use that routine.
Making TokenPreloadScanner store the crossorigin attribute value in preload requests.
Making TokenPreloadScanner store the crossorigin attribute value for link elements.

Test: http/tests/security/cross-origin-css-9.html

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • html/parser/HTMLResourcePreloader.cpp:

(WebCore::crossOriginModeAllowsCookies):
(WebCore::PreloadRequest::resourceRequest):

  • html/parser/HTMLResourcePreloader.h:

(WebCore::PreloadRequest::setCrossOriginMode):
(WebCore::PreloadRequest::PreloadRequest): Deleted.
(WebCore::PreloadRequest::resourceType): Deleted.

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setAsPotentiallyCrossOrigin):

  • loader/cache/CachedResourceRequest.h:

LayoutTests:

  • http/tests/security/cross-origin-css-9-expected.txt: Added.
  • http/tests/security/cross-origin-css-9.html: Added.
  • http/tests/security/resources/get-css-if-origin-header.php: Added.
11:01 AM Changeset in webkit [201929] by Simon Fraser
  • 3 edits in trunk/Source/WebKit2

[iOS WK2] Rare RELEASE_ASSERT under RemoteLayerTreeDrawingArea::flushLayers()
https://bugs.webkit.org/show_bug.cgi?id=158622
rdar://problem/26609452

Reviewed by Tim Horton.

It's possible for a CADisplayLink to fire after being paused sometimes, possibly
when an app is running another CADisplayLink whose callback takes some time. When
this happens, RemoteLayerTreeDrawingAreaProxy could erroneously send a second
didUpdate() to the web process between commits, which would clear the m_waitingForBackingStoreSwap
flag too early, and allow a subsequent RemoteLayerTreeDrawingArea::flushLayers()
to proceed when the m_pendingBackingStoreFlusher was still flushing.

Fix by preventing two didUpdates from being sent from the UI process between
commits.

Not easily testable.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::didRefreshDisplay):

10:04 AM Changeset in webkit [201928] by beidson@apple.com
  • 2 edits in trunk/Tools

WTF_CrossThreadTask.Basic fails in all non mac ports.
https://bugs.webkit.org/show_bug.cgi?id=158612

Reviewed by Alex Christensen.

The test is very sensitive to argument evaluation order which is explicitly undefined in C++.

Instead, we should just count the appropriate events to forget their order.

  • TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp:

(TestWebKitAPI::LifetimeLogger::LifetimeLogger):
(TestWebKitAPI::LifetimeLogger::~LifetimeLogger):
(TestWebKitAPI::LifetimeLogger::isolatedCopy):
(TestWebKitAPI::LifetimeLogger::fullName):
(TestWebKitAPI::testFunction):
(TestWebKitAPI::TEST):
(TestWebKitAPI::LifetimeLogger::log): Deleted.
(TestWebKitAPI::LifetimeLogger::takeLogStr): Deleted.

9:45 AM Changeset in webkit [201927] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/hidpi/hidpi-3x-device-pixel-ratio.html as failing on ios-simulator
https://bugs.webkit.org/show_bug.cgi?id=158618

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
9:19 AM Changeset in webkit [201926] by Chris Dumez
  • 5 edits in trunk

ErrorEvent / ProgressEvent should be exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=158606

Reviewed by Brady Eidson.

Source/WebCore:

ErrorEvent / ProgressEvent should be exposed to workers:

Firefox and Chrome both already expose those.

No new tests, rebaselined existing test.

  • dom/ErrorEvent.idl:
  • dom/ProgressEvent.idl:

LayoutTests:

Rebaseline test.

  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
7:47 AM Changeset in webkit [201925] by Chris Dumez
  • 4 edits in trunk

MessagePort should be exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=158607

Reviewed by Brady Eidson.

Source/WebCore:

MessagePort should be exposed to workers:
https://html.spec.whatwg.org/multipage/comms.html#messageport

Firefox and Chrome both already expose it.

No new tests, rebaselined existing test.

  • dom/MessagePort.idl:

LayoutTests:

Rebaseline test.

  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
6:26 AM Changeset in webkit [201924] by youenn.fablet@crf.canon.fr
  • 5 edits
    2 adds in trunk/Source/WebCore

Move preflight check code outside of DocumentThreadableLoader
https://bugs.webkit.org/show_bug.cgi?id=158425

Reviewed by Darin Adler.

Moving preflight check code in its own class.
This allows code to be easier to read, use/reuse and update.

Behavior should be the same as before except in the case of a preflight response
being a 3XX redirect response.
Before this patch, the 3XX response was directly passed to the code processing regular responses.
To keep compatibility with existing tests, a didFailRedirectCheck callback is called.
This should be change to a preflight failure.

Covered by existing tests.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • loader/CrossOriginPreflightChecker.cpp: Added.

(WebCore::CrossOriginPreflightChecker::CrossOriginPreflightChecker):
(WebCore::CrossOriginPreflightChecker::~CrossOriginPreflightChecker):
(WebCore::CrossOriginPreflightChecker::handleLoadingFailure):
(WebCore::CrossOriginPreflightChecker::validatePreflightResponse):
(WebCore::CrossOriginPreflightChecker::notifyFinished):
(WebCore::CrossOriginPreflightChecker::startPreflight):
(WebCore::CrossOriginPreflightChecker::doPreflight):
(WebCore::CrossOriginPreflightChecker::redirectReceived):
(WebCore::CrossOriginPreflightChecker::setDefersLoading):
(WebCore::CrossOriginPreflightChecker::isXMLHttpRequest):

  • loader/CrossOriginPreflightChecker.h: Added.
  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::create):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
(WebCore::DocumentThreadableLoader::setDefersLoading):
(WebCore::DocumentThreadableLoader::clearResource):
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::didReceiveData):
(WebCore::DocumentThreadableLoader::notifyFinished):
(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::didFail):
(WebCore::DocumentThreadableLoader::preflightSuccess):
(WebCore::DocumentThreadableLoader::preflightFailure):
(WebCore::DocumentThreadableLoader::loadRequest):
(WebCore::DocumentThreadableLoader::responseReceived): Deleted.
(WebCore::DocumentThreadableLoader::dataReceived): Deleted.
(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy): Deleted.

  • loader/DocumentThreadableLoader.h:

(WebCore::DocumentThreadableLoader::options):
(WebCore::DocumentThreadableLoader::isLoading):
(WebCore::DocumentThreadableLoader::document):

5:58 AM Changeset in webkit [201923] by Carlos Garcia Campos
  • 7 edits in trunk/Source/WebKit2

[Threaded Compositor] Content and viewport sizes are mixed
https://bugs.webkit.org/show_bug.cgi?id=158564

Reviewed by Žan Doberšek.

Make ThreadedCoordinatedLayerTreeHost::sizeDidChange() update the viewport size for consistency with all other
LayerTreeHost implementations and rename viewportSizeChanged() as contentsSizeChanged() and update the contents
size.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::contentsSizeChanged): Remove ifdefed code here, the drawing area is notified two lines below.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:

(WebKit::CoordinatedDrawingArea::mainFrameContentSizeChanged): Update the viewport size to the contents size
only when using a fixed layout here instead of in cross-platform code.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::contentsSizeChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::sizeDidChange):
(WebKit::ThreadedCoordinatedLayerTreeHost::viewportSizeChanged): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::mainFrameContentSizeChanged): Call LayerTreeHost::contentsSizeChanged().
(WebKit::DrawingAreaImpl::updateBackingStoreState): Remove ifdefed code for the threadecd compositor since it's
now consistent with all other LayerTreeHost implementations.

  • WebProcess/WebPage/LayerTreeHost.h:
5:52 AM Changeset in webkit [201922] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

[Threaded Compositor] Make it clear that compositing thread operations are always scheduled from the main thread
https://bugs.webkit.org/show_bug.cgi?id=158562

Reviewed by Žan Doberšek.

The code is written as if the compositor thread could also call callOnCompositingRunLoop() which makes the code
confusing. This patch no longer checks if the task was scheduled in the compositing thread, and instead it adds
an ASSERT to ensure it's always called from the main thread as expected. It also adds some more ASSERTS to ensure
and clarify the methods are called from the expected thread.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::CompositingRunLoop::performTask):
(WebKit::CompositingRunLoop::callOnCompositingRunLoop): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::glContext):
(WebKit::ThreadedCompositor::didChangeVisibleRect):
(WebKit::ThreadedCompositor::renderLayerTree):
(WebKit::ThreadedCompositor::updateSceneState):
(WebKit::ThreadedCompositor::callOnCompositingThread): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
5:50 AM Changeset in webkit [201921] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Browser plugins crash under Wayland
https://bugs.webkit.org/show_bug.cgi?id=157605

Reviewed by Michael Catanzaro.

Fail the initialization of windowed plugins if we don't have a platform implementation.

  • WebProcess/Plugins/Netscape/unix/NetscapePluginUnix.cpp:

(WebKit::NetscapePlugin::platformPostInitialize):

2:15 AM Changeset in webkit [201920] by adam.bergkvist@ericsson.com
  • 5 edits
    2 adds in trunk

WebRTC: Imlement MediaEndpointPeerConnection::createAnswer()
https://bugs.webkit.org/show_bug.cgi?id=158566

Reviewed by Eric Carlson.

Source/WebCore:

Add the MediaEndpointPeerConnection implementation of RTCPeerConnection.createAnswer [1].
createAnswer() creates a 'reply' to an remote offer set with setRemoteDescription(),
completes the offer/answer dialog and brings the RTCPeerConnection back to the 'stable'
signaling state.

[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-rtcpeerconnection-createanswer

Test: fast/mediastream/RTCPeerConnection-inspect-answer.html

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::createOfferTask):
Align creation of RTCSessionDescription with createAnswerTask.
(WebCore::MediaEndpointPeerConnection::createAnswer):
(WebCore::MediaEndpointPeerConnection::createAnswerTask):
Add Implementation.

  • Modules/mediastream/MediaEndpointPeerConnection.h:

LayoutTests:

Add test for RTCPeerConnection.createAnswer.

  • fast/mediastream/RTCPeerConnection-inspect-answer-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-inspect-answer.html: Added.

Generate two answers, one with audio only and a second with audio and video, and inspect
the result.

  • platform/mac/TestExpectations:

Skip tests for mac that require building with WEB_RTC enabled.

12:41 AM Changeset in webkit [201919] by svillar@igalia.com
  • 5 edits
    2 adds in trunk

[css-grid] CRASH when getting the computed style of a grid with only absolutely positioned children
https://bugs.webkit.org/show_bug.cgi?id=158537

Reviewed by Darin Adler.

Source/WebCore:

Absolute positioning occurs after layout of the grid and its in-flow contents, and does not
contribute to the sizing of any grid tracks or affect the size/configuration of the grid in
any way. This means that we should treat as empty any grid whose only children are
absolutely positioned items.

Since r201510 empty grids are no longer internally represented by a 1x1 matrix. As we were
not considering grids-with-only-absolutely-positioned-children as empty, we were trying to
access some invalid position in the internal representation of the grid triggering an ASSERT
in debug builds and a crash in release.

Test: fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackList):

LayoutTests:

  • fast/css-grid-layout/grid-only-abspos-item-computed-style-crash-expected.txt: Added.
  • fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html: Added.
  • fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt: Adjusted, grid-template

does create explicit tracks so we should return 0px instead of none.

  • fast/css-grid-layout/grid-template-shorthand-get-set.html: Ditto.
12:37 AM Changeset in webkit [201918] by Chris Dumez
  • 4 edits in trunk

DOMException should be exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=158608

Reviewed by Alex Christensen.

Source/WebCore:

DOMException should be exposed to workers:
https://heycam.github.io/webidl/#es-DOMException-call

Both Firefox and Chrome expose DOMException to workers already.

No new tests, rebaselined existing test.

  • dom/DOMCoreException.idl:

LayoutTests:

Rebaseline existing test.

  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:

Jun 9, 2016:

11:50 PM Changeset in webkit [201917] by achristensen@apple.com
  • 1 edit
    2 deletes in trunk/WebKitLibraries

Clean up Visual Studio properties files after switching to CMake.

  • win/tools/WinTools.make: Removed.
  • win/tools/vsprops: Removed.
  • win/tools/vsprops/FeatureDefines.props: Removed.
  • win/tools/vsprops/FeatureDefinesCairo.props: Removed.
  • win/tools/vsprops/GStreamer32.props: Removed.
  • win/tools/vsprops/GStreamer64.props: Removed.
  • win/tools/vsprops/GStreamerCommon.props: Removed.
  • win/tools/vsprops/WinCairo.props: Removed.
  • win/tools/vsprops/cURL.props: Removed.
  • win/tools/vsprops/common.props: Removed.
  • win/tools/vsprops/debug.props: Removed.
  • win/tools/vsprops/debug_wincairo.props: Removed.
  • win/tools/vsprops/debugsuffix.props: Removed.
  • win/tools/vsprops/production.props: Removed.
  • win/tools/vsprops/release.props: Removed.
11:48 PM Changeset in webkit [201916] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix CMake build.

  • PlatformMac.cmake:
11:36 PM Changeset in webkit [201915] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

Fix AppleWin build after r201901.
https://bugs.webkit.org/show_bug.cgi?id=119839

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::backingStoreAttached):
(PlatformCALayerWin::userInteractionEnabled):
(PlatformCALayerWin::setUserInteractionEnabled):
(PlatformCALayerWin::geometryFlipped):

  • platform/graphics/ca/win/PlatformCALayerWin.h:
11:11 PM Changeset in webkit [201914] by achristensen@apple.com
  • 3 edits
    9 copies
    5 deletes in trunk/Tools

Clean up Tools *.vcxproj after switching to CMake.

  • DumpRenderTree/DumpRenderTree.sln: Removed.
  • DumpRenderTree/DumpRenderTree.vcxproj: Removed.
  • DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin: Removed.
  • DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.def: Removed.
  • DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.rc: Removed.
  • DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/resource.h: Removed.
  • DumpRenderTree/PlatformWin.cmake:
  • DumpRenderTree/win/TestNetscapePlugin.def: Copied from DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.def.
  • DumpRenderTree/win/TestNetscapePlugin.rc: Copied from DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/TestNetscapePlugin.rc.
  • DumpRenderTree/win/resource.h: Copied from DumpRenderTree/DumpRenderTree.vcxproj/TestNetscapePlugin/resource.h.
  • MiniBrowser/MiniBrowser.vcxproj: Removed.
  • MiniBrowser/MiniBrowser.vcxproj/MiniBrowser.ico: Removed.
  • MiniBrowser/MiniBrowser.vcxproj/MiniBrowser.rc: Removed.
  • MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLib.rc: Removed.
  • MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLibResource.h: Removed.
  • MiniBrowser/MiniBrowser.vcxproj/MiniBrowserResource.h: Removed.
  • MiniBrowser/MiniBrowser.vcxproj/small.ico: Removed.
  • MiniBrowser/win/CMakeLists.txt:
  • MiniBrowser/win/MiniBrowser.ico: Copied from MiniBrowser/MiniBrowser.vcxproj/MiniBrowser.ico.
  • MiniBrowser/win/MiniBrowser.rc: Copied from MiniBrowser/MiniBrowser.vcxproj/MiniBrowser.rc.
  • MiniBrowser/win/MiniBrowserLib.rc: Copied from MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLib.rc.
  • MiniBrowser/win/MiniBrowserLibResource.h: Copied from MiniBrowser/MiniBrowser.vcxproj/MiniBrowserLibResource.h.
  • MiniBrowser/win/MiniBrowserResource.h: Copied from MiniBrowser/MiniBrowser.vcxproj/MiniBrowserResource.h.
  • MiniBrowser/win/small.ico: Copied from MiniBrowser/MiniBrowser.vcxproj/small.ico.
  • WebKitTestRunner/WebKitTestRunner.sln: Removed.
  • win/DLLLauncher/DLLLauncherWinCairo.props: Removed.
11:06 PM Changeset in webkit [201913] by Chris Fleizach
  • 8 edits
    1 add in trunk

AX: VoiceOver Unable to View Download Progress or Completion Status for Mail Attachments
https://bugs.webkit.org/show_bug.cgi?id=158581

Reviewed by Darin Adler.

Source/WebCore:

Update attachment element accessibility so that:

1) the action name comes first to match UI
2) on iOS, it has the updates frequently trait

Make sure this test now runs on iOS as well.

Modified tests: accessibility/attachment-element.html

  • accessibility/AccessibilityAttachment.cpp:

(WebCore::AccessibilityAttachment::accessibilityText):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
(-[WebAccessibilityObjectWrapper accessibilityTraits]):
(-[WebAccessibilityObjectWrapper accessibilityValue]):
(-[WebAccessibilityObjectWrapper accessibilityIsAttachmentElement]):
(-[WebAccessibilityObjectWrapper accessibilityIsComboBox]):

LayoutTests:

  • accessibility/attachment-element-expected.txt:
  • accessibility/attachment-element.html:
  • accessibility/ios-simulator/attributed-string-for-range-expected.txt:
  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/accessibility/attachment-element-expected.txt: Added.
10:53 PM Changeset in webkit [201912] by achristensen@apple.com
  • 2 edits
    1 copy
    4 deletes in trunk/Source/JavaScriptCore

Clean up JavaScriptCore.vcxproj directory after switching to CMake.

10:42 PM Changeset in webkit [201911] by achristensen@apple.com
  • 1 edit
    2 deletes in trunk/Source/WebCore

Clean up WebCore.vcxproj after switching to CMake.

  • WebCore.vcxproj/QTMovieWin: Removed.
  • WebCore.vcxproj/QTMovieWin/QTMovieWinCairoDebug.props: Removed.
  • WebCore.vcxproj/QTMovieWin/QTMovieWinCairoRelease.props: Removed.
  • WebCore.vcxproj/QTMovieWin/QTMovieWinCommon.props: Removed.
  • WebCore.vcxproj/QTMovieWin/QTMovieWinDebug.props: Removed.
  • WebCore.vcxproj/QTMovieWin/QTMovieWinPostBuild.cmd: Removed.
  • WebCore.vcxproj/QTMovieWin/QTMovieWinPreBuild.cmd: Removed.
  • WebCore.vcxproj/QTMovieWin/QTMovieWinPreLink.cmd: Removed.
  • WebCore.vcxproj/QTMovieWin/QTMovieWinProduction.props: Removed.
  • WebCore.vcxproj/QTMovieWin/QTMovieWinRelease.props: Removed.
  • WebCore.vcxproj/xcopy.excludes: Removed.
10:39 PM Changeset in webkit [201910] by achristensen@apple.com
  • 1 edit
    1 move in trunk/Source/WebKit/win

Fix Windows build.

  • WebKit.resources/resource.h: Removed.
  • resource.h: Copied from WebKit.resources/resource.h.
10:34 PM Changeset in webkit [201909] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit/win

Actually fix Windows build after r201894
https://bugs.webkit.org/show_bug.cgi?id=158588

  • WebView.cpp:

(WebView::initWithFrame):

10:33 PM Changeset in webkit [201908] by achristensen@apple.com
  • 3 edits
    1 copy
    3 deletes in trunk/Source/WebKit

Clean up WebKit.vcxproj directory after switching to CMake.

Source/WebKit:

  • PlatformWin.cmake:
  • WebKit.vcxproj/Interfaces: Removed.
  • WebKit.vcxproj/WebKit: Removed.
  • WebKit.vcxproj/WebKit/resource.h: Removed.
  • WebKit.vcxproj/WebKitGUID: Removed.
  • WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj: Removed.
  • WebKit.vcxproj/WebKitGUID/WebKitGUID.vcxproj.filters: Removed.
  • WebKit.vcxproj/WebKitGUID/WebKitGUIDCommon.props: Removed.
  • WebKit.vcxproj/WebKitGUID/WebKitGUIDDebug.props: Removed.
  • WebKit.vcxproj/WebKitGUID/WebKitGUIDDebugWinCairo.props: Removed.
  • WebKit.vcxproj/WebKitGUID/WebKitGUIDPostBuild.cmd: Removed.
  • WebKit.vcxproj/WebKitGUID/WebKitGUIDPreBuild.cmd: Removed.
  • WebKit.vcxproj/WebKitGUID/WebKitGUIDProduction.props: Removed.
  • WebKit.vcxproj/WebKitGUID/WebKitGUIDRelease.props: Removed.
  • WebKit.vcxproj/WebKitGUID/WebKitGUIDReleaseWinCairo.props: Removed.

Source/WebKit/win:

  • WebKit.resources/resource.h: Copied from WebKit.vcxproj/WebKit/resource.h.
10:27 PM Changeset in webkit [201907] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Hairline borders do not show up on 3x displays.
https://bugs.webkit.org/show_bug.cgi?id=158604
<rdar://problem/26511679>

Reviewed by Simon Fraser.

On a 3x display, when we convert a 1/3px hairline border from float
to LayoutUnit and pixel floor the result, we end up with a 0px width border.
It's because float to LayoutUnit is lossy and since the current kFixedPointDenominator % 3 != 0,
flooring LayoutUnit(1/3px) ends up being 0px. (float: 1/3 -> LayoutUnit: (1/3 - 1/kFixedPointDenominator) -> floor: 0)
This patch eliminates the (unnecessary) float -> LayoutUnit - float conversion on border width.

Source/WebCore:

Test: fast/borders/hidpi-3x-input-hairline-border.html

  • rendering/BorderEdge.cpp:

(WebCore::BorderEdge::BorderEdge):

  • rendering/BorderEdge.h:

LayoutTests:

  • fast/borders/hidpi-3x-input-hairline-border-expected-mismatch.html: Added.
  • fast/borders/hidpi-3x-input-hairline-border.html: Added.
10:24 PM Changeset in webkit [201906] by Ryan Haddad
  • 10 edits
    2 deletes in trunk

Unreviewed, rolling out r201887.
https://bugs.webkit.org/show_bug.cgi?id=158610

This change caused LayoutTest crashes under GuardMalloc and
ASan (Requested by ryanhaddad on #webkit).

Reverted changeset:

"Deleting a CSSOM style rule invalidates any previously-added
FontFaces"
https://bugs.webkit.org/show_bug.cgi?id=158450
http://trac.webkit.org/changeset/201887

Patch by Commit Queue <commit-queue@webkit.org> on 2016-06-09

10:17 PM Changeset in webkit [201905] by achristensen@apple.com
  • 4 edits in trunk/Source/WebKit/win

Unreviewed build fix after r201894
https://bugs.webkit.org/show_bug.cgi?id=158588

  • WebCoreSupport/WebEditorClient.cpp:

(WebEditorClient::~WebEditorClient):
(WebEditorClient::isContinuousSpellCheckingEnabled):
(WebEditorClient::pageDestroyed): Deleted.

  • WebCoreSupport/WebEditorClient.h:
  • WebView.cpp:

(WebView::initWithFrame):

8:31 PM Changeset in webkit [201904] by Alan Bujtas
  • 6 edits
    2 adds in trunk

Add testing support for 3x device scale factor.
https://bugs.webkit.org/show_bug.cgi?id=158597

Reviewed by Simon Fraser.

Set 3x device scale factor on the test canvas when the test url is prefixed with hidpi-3x-.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(changeWindowScaleIfNeeded):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::updateWindowScaleForTest):

  • WebKitTestRunner/TestOptions.cpp:

(WTR::deviceScaleFactorForTest):
(WTR::TestOptions::TestOptions):
(WTR::isHiDPITestPath): Deleted.

  • WebKitTestRunner/TestOptions.h:

LayoutTests:

  • fast/hidpi/hidpi-3x-device-pixel-ratio-expected.txt: Added.
  • fast/hidpi/hidpi-3x-device-pixel-ratio.html: Added.
8:20 PM Changeset in webkit [201903] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Address Darin's review comment on r201898.
https://bugs.webkit.org/show_bug.cgi?id=158576

Reviewed by Darin Adler.

  • page/Base64Utilities.h:
7:45 PM Changeset in webkit [201902] by rniwa@webkit.org
  • 3 edits in trunk/LayoutTests

REGRESSION(r201823) editing/selection/selection-in-iframe-removed-crash.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=158569

Commit the test fix that was supposed to be landed as a part of r201823,
and remove the flaky test expectation.

  • editing/selection/selection-in-iframe-removed-crash.html:
  • platform/mac/TestExpectations:
7:06 PM Changeset in webkit [201901] by commit-queue@webkit.org
  • 16 edits
    2 adds in trunk

[iOS] -webkit-overflow-scrolling: touch; ignores pointer-events: none;
https://bugs.webkit.org/show_bug.cgi?id=119839
<rdar://problem/9671514>

Patch by Antoine Quint <Antoine Quint> on 2016-06-09
Reviewed by Simon Fraser.

Source/WebCore:

Propagate a "userInteractionEnabled" flag from the Web process which is used to turn off
user interaction on a UIScrollView created for -webkit-overflow-scrolling: touch.

Test: fast/scrolling/ios/touch-scroll-pointer-events-none.html

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::GraphicsLayer):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::userInteractionEnabled):
(WebCore::GraphicsLayer::setUserInteractionEnabled):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setUserInteractionEnabled):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateUserInteractionEnabled):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::userInteractionEnabled):
(PlatformCALayerCocoa::setUserInteractionEnabled):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateAfterDescendants):

Source/WebKit2:

Propagate a "userInteractionEnabled" flag from the Web process which is used to turn off
user interaction on a UIScrollView created for -webkit-overflow-scrolling: touch.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(WebKit::RemoteLayerTreePropertyApplier::applyProperties):

  • Shared/mac/RemoteLayerTreeTransaction.h:
  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::dumpChangedLayers):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::userInteractionEnabled):
(WebKit::PlatformCALayerRemote::setUserInteractionEnabled):

  • WebProcess/WebPage/mac/PlatformCALayerRemote.h:

LayoutTests:

  • fast/scrolling/ios/touch-scroll-pointer-events-none-expected.txt: Added.
  • fast/scrolling/ios/touch-scroll-pointer-events-none.html: Added.
7:03 PM Changeset in webkit [201900] by fpizlo@apple.com
  • 4 edits
    2 adds in trunk/Source/JavaScriptCore

Rare failure in stress/v8-deltablue-strict.js.ftl-eager
https://bugs.webkit.org/show_bug.cgi?id=158591

Reviewed by Saam Barati.

This is a simple and sensible fix to an amazing compiler bug that previously only
manifested rarely in the v8-deltablue-strict test. It required on average 1000 runs while
the system was under load for the bug to manifest. Fortunately, the bug is 100% repro with
concurrent JIT disabled in the new "constant-fold-multi-get-by-offset-to-get-by-offset-on-
prototype-and-sink-allocation.js" test.

The problem here is that we were allowing ourselves to be super sloppy with the meaning of
the two children of GetByOffset, and to a lesser extent, PutByOffset. The first two
children of these nodes have these meanings:

child1: the storage from which to load (or to which to store)
child2: the logical object base

Normally, child1 == child2, but child1 may point to a node that vends the storage pointer
in case we are using multiple indirections to get to the property. That's fairly common.

Where this gets nutty is that we don't validate the behavior of child1. Previously, the
DFG::Validate phase would accept code that had child1 point to one object and child2 point
to another object. That's bad because then, analyses will assume that we're loading from
one object while we are actually loading from another. One of the fixes is to make
Validate smarter about this, so that future problems with this get caught sooner.

The actual bug was in ConstantFoldingPhase. When we first wrote ConstantFoldingPhase's
logic for converting GetByIds and MultiGetByOffsets to GetByOffset, we assumed that this
was only for non-prototype loads. This was becuase the logic was originally written based
on a static GetByIdStatus analysis, which does not handle prototypes. So, as a shortcut,
we would convert the GetById (or MultiGetByOffset) to a GetByOffset by doing this
shuffling of children:

child1 got the storage pointer, which might be a new GetButterfly node that we created.
child2 got the old value of child1.

The bug was introduced when I later made it possible for a monomorphic prototype
MultiGetByOffset to be converted to a GetByOffset. Then this algorithm would mean that:

child1 got either a pointer to the prototype or a storage pointer derived from the

prototype.

child2 got the old value of child1, which was a pointer to the base object (i.e. not the

prototype).


This happens super rarely because most prototype loads that we can statically reason about
also happen to load constants, so we don't convert to GetByOffset at all. You need the
strange combination of a MultiGetByOffset (not GetById or GetByOffset) on some prototypes
and some static reasoning about the base so that we can convert it to a GetByOffset, but
not enough static reasoning that we can convert it to a constant.

Even if the bad thing happened, then this is not enough for it to cause symptons. If we
did nothing else - like none of the other optimizations succeeded - then this would
be OK because the backend will emit code based on child1, which is right. But disaster
strikes when the code otherwise looks sane enough for ObjectAllocationSinkingPhase to kick
in. This phase operates on child2, as any good phase should: child1 is only interesting
for knowing *how* to load, not *what* we are loading. The phase is right to ignore child1.

So the phase would assume that we are loading the prototype property ("f" in the new test
or "addToGraph" in deltablue) from the sunken base object allocation in the inlined
constructor. The base object has no such property, but the phase conservatively assumes
that it does indeed have such a property. That's just how the phase does things: it is
very abstract and general, so it assumes that the set of properties on an allocation is
the set of properties that accesses to the allocation speak of. Clearly, this GetByOffset
was speaking of the property as being on the allocation. When sinking completed, it would
convert the GetByOffset to the sunken (a.k.a. promoted) property. But nobody stored to
this property on the allocation, so we'd get the bottom value, which is 1927. Why 1927? I
don't remember anymore, but apparently I chose it. It helped here - when I started seeing
that value come up, it took a quick grep to realize that this was the object allocation
sinking phase's bottom value.

The real fix to the bug is to make Node::convertToGetByOffset() take an explicit new base
since its clients will use it to potentially create a load on a different object than the
base of the original operation, as in the relatively new
MultiGetByOffset(prototype)->GetByOffset optimization. As far as I know, the PutByOffset
code did not have the same bug because we don't have any optimizations that turn a PutById
or MultiPutByOffset into a PutByOffset on anything but the base object. But the logical
bug is definitely there: there's code in ConstantFoldingPhase that claims to be able to
convert any node to a PutByOffset on any base, but it actually silently reuses the
original node's child1 as the logical base (i.e. child2). This patch makes all of this
stuff explicit. You can't make this mistake anymore.

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::emitGetByOffset):
(JSC::DFG::ConstantFoldingPhase::emitPutByOffset):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToGetStack):
(JSC::DFG::Node::convertToGetByOffset):
(JSC::DFG::Node::convertToMultiGetByOffset):
(JSC::DFG::Node::convertToPutByOffset):

  • dfg/DFGValidate.cpp:
  • tests/stress/constant-fold-multi-get-by-offset-to-get-by-offset-on-prototype-and-sink-allocation.js: Added.

(ThingA):
(ThingB):
(foo):
(bar):

  • tests/stress/sink-to-impossible-multi-get-by-offset-on-prototypes.js: Added.

(ThingA):
(ThingB):
(ThingC):
(bar):
(foo):

6:54 PM Changeset in webkit [201899] by Chris Dumez
  • 4 edits in trunk

WorkerNavigator property should exist on WorkerGlobalScope
https://bugs.webkit.org/show_bug.cgi?id=158574
<rdar://problem/26725108>

Reviewed by Darin Adler.

Source/WebCore:

WorkerNavigator property should exist on WorkerGlobalScope:
https://html.spec.whatwg.org/multipage/workers.html#the-workernavigator-object

Fixing this gets the number of failures on http://w3c-test.org/workers/interfaces.worker
from 34 to 23.

No new tests, rebaselined existing test.

  • page/WorkerNavigator.idl:

LayoutTests:

Rebaseline existing test now that WorkerNavigator is exposed to workers.

  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
6:42 PM Changeset in webkit [201898] by Chris Dumez
  • 12 edits
    1 move
    5 adds
    1 delete in trunk

atob() / btoa() API should be exposed to workers
https://bugs.webkit.org/show_bug.cgi?id=158576
<rdar://problem/26729340>

Reviewed by Sam Weinig.

Source/WebCore:

Expose atob() / btoa() API to workers as per:
https://html.spec.whatwg.org/multipage/webappapis.html#windoworworkerglobalscope

This aligns our behavior with Firefox and Chrome as well.

Test: fast/workers/atob-btoa.html

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • page/Base64Utilities.cpp: Added.

(WebCore::Base64Utilities::btoa):
(WebCore::Base64Utilities::atob):

  • page/Base64Utilities.h: Added.
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::find): Deleted.
(WebCore::DOMWindow::offscreenBuffering): Deleted.
(WebCore::DOMWindow::outerHeight): Deleted.
(WebCore::DOMWindow::outerWidth): Deleted.

  • page/DOMWindow.h:
  • page/DOMWindow.idl:
  • page/WindowBase64.idl: Removed.
  • page/WindowOrWorkerGlobalScope.idl: Renamed from Source/WebCore/page/WindowTimers.idl.
  • workers/WorkerGlobalScope.h:
  • workers/WorkerGlobalScope.idl:

LayoutTests:

Add test for atob() / btoa() in workers.

  • fast/workers/atob-btoa-expected.txt: Added.
  • fast/workers/atob-btoa.html: Added.
  • fast/workers/resources/worker-atob-btoa.js: Added.
6:11 PM Changeset in webkit [201897] by andersca@apple.com
  • 3 edits
    2 deletes in trunk/Source/WebKit2

Remove OriginAndDatabases.cpp, it's unused
https://bugs.webkit.org/show_bug.cgi?id=158595

Reviewed by Sam Weinig.

  • CMakeLists.txt:
  • Shared/OriginAndDatabases.cpp: Removed.

(WebKit::OriginAndDatabases::encode): Deleted.
(WebKit::OriginAndDatabases::decode): Deleted.

  • Shared/OriginAndDatabases.h: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
5:42 PM Changeset in webkit [201896] by mark.lam@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Make some methods const.
https://bugs.webkit.org/show_bug.cgi?id=158594

Reviewed by Benjamin Poulain.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::columnNumberForBytecodeOffset):
(JSC::CodeBlock::expressionRangeForBytecodeOffset):

  • bytecode/CodeBlock.h:
  • bytecode/ExpressionRangeInfo.h:

(JSC::ExpressionRangeInfo::encodeFatColumnMode):
(JSC::ExpressionRangeInfo::decodeFatLineMode):
(JSC::ExpressionRangeInfo::decodeFatColumnMode):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::lineNumberForBytecodeOffset):
(JSC::UnlinkedCodeBlock::getLineAndColumn):
(JSC::UnlinkedCodeBlock::expressionRangeForBytecodeOffset):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::createRareDataIfNecessary):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::isOpcode):
(JSC::StackFrame::computeLineAndColumn):
(JSC::StackFrame::toString):

  • interpreter/Interpreter.h:

(JSC::StackFrame::isNative):

5:21 PM Changeset in webkit [201895] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

Restrict HTTP/0.9 responses to default ports and cancel HTTP/0.9 resource loads if the document was loaded with another HTTP protocol
https://bugs.webkit.org/show_bug.cgi?id=158589
<rdar://problem/25757454>

Patch by John Wilander <wilander@apple.com> on 2016-06-09
Reviewed by Brent Fulgham.

No new tests. Our layout test environment does not allow for headerless responses
nor does it allow you to set an explicit HTTP/0.9 status header in PHP. I have
manually tested this change with a Python socket setup doing both headerless and
HTTP/0.9 header tests for positive and negative cases.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived):

Cancel loads if the request was made to a non-default port.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::didReceiveResponse):

Cancel loads if the request was made to a non-default port or if the document
was loaded with another protocol. Cancelation is handled as a fail so as to
fire the onerror event and allow sites to handle it gracefully.

4:53 PM Changeset in webkit [201894] by achristensen@apple.com
  • 19 edits in trunk/Source

Clean up EditorClient lifetime
https://bugs.webkit.org/show_bug.cgi?id=158588

Reviewed by Anders Carlsson.

Source/WebCore:

No new tests. This patch does two things, all of which do not change behavior:

  1. Use a std::unique_ptr<EditorClient> owned by the Page instead of allocating

with new in WebKit/WebKit2 and deleting in WebEditorClient::pageDestroyed.

  1. Give the Page a PageConfiguration&& instead of a PageConfiguration& in its constructor.
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::overlayPage):

  • loader/EmptyClients.cpp:

(WebCore::fillWithEmptyClients):

  • loader/EmptyClients.h:

(WebCore::EmptyEditorClient::EmptyEditorClient):
(WebCore::EmptyEditorClient::~EmptyEditorClient):

  • page/EditorClient.h:

(WebCore::EditorClient::~EditorClient):

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::setViewMode):
(WebCore::Page::clearUndoRedoOperations):
(WebCore::Page::inLowQualityImageInterpolationMode):
(WebCore::Page::invalidateStylesForAllLinks):
(WebCore::Page::invalidateStylesForLink):
(WebCore::Page::invalidateInjectedStyleSheetCacheInAllFrames):
(WebCore::Page::setDebugger):
(WebCore::Page::setIsVisibleInternal):
(WebCore::Page::setAllowsMediaDocumentInlinePlayback):

  • page/Page.h:

(WebCore::Page::canStartMedia):
(WebCore::Page::editorClient):
(WebCore::Page::plugInClient):
(WebCore::Page::mainFrame):
(WebCore::Page::group):

  • page/PageConfiguration.cpp:
  • page/PageConfiguration.h:
  • page/mac/PageMac.mm:

(WebCore::Page::addSchedulePair):
(WebCore::Page::removeSchedulePair):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

Source/WebKit/mac:

  • WebCoreSupport/WebEditorClient.h:
  • WebCoreSupport/WebEditorClient.mm:

(WebEditorClient::WebEditorClient):
(WebEditorClient::pageDestroyed): Deleted.

  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::generateTextCheckingRequestID):
(WebKit::WebEditorClient::shouldDeleteRange):
(WebKit::WebEditorClient::pageDestroyed): Deleted.

  • WebProcess/WebCoreSupport/WebEditorClient.h:

(WebKit::WebEditorClient::WebEditorClient):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_shouldDispatchFakeMouseMoveEvents):

4:48 PM Changeset in webkit [201893] by commit-queue@webkit.org
  • 5 edits in trunk/Source

REGRESSION: Web Inspector: IndexedDB does not show ObjectStore data
https://bugs.webkit.org/show_bug.cgi?id=158592
<rdar://problem/26730696>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-09
Reviewed by Timothy Hatcher.

Source/WebCore:

  • inspector/InspectorIndexedDBAgent.cpp:

(WebCore::DataLoader::execute):
Ensure the IDBTransaction is active when attempting to open a cursor.

(WebCore::OpenCursorCallback::handleEvent):
End, when the cursor result is empty, like we do for script results.

Source/WebInspectorUI:

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype._noteRowRemoved):
(WebInspector.DataGridNode.prototype._detach):
When rows are removed in the non-Virtual DataGrids, we should
actually remove the row.

  • UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:

(WebInspector.IndexedDatabaseObjectStoreContentView):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData.processEntries):
(WebInspector.IndexedDatabaseObjectStoreContentView.prototype._fetchMoreData):
Don't use the delete operator. Use a boolean.

4:30 PM Changeset in webkit [201892] by msaboff@apple.com
  • 5 edits in trunk

ES6: Reusing function name as a parameter name shouldn't throw Syntax Error
https://bugs.webkit.org/show_bug.cgi?id=158575

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

The check for a parameter with a duplicate name doesn't take into account the
type of the prior variable. Added a check that the duplicate is also a
parameter.

See the relevant spec section at:
http://www.ecma-international.org/ecma-262/6.0/#sec-function-definitions-static-semantics-early-errors

  • parser/Parser.h:

(JSC::Scope::declareParameter):

LayoutTests:

Added a new test case.

  • js/basic-strict-mode-expected.txt:
  • js/script-tests/basic-strict-mode.js:
3:55 PM Changeset in webkit [201891] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Support Command-P for quick open
https://bugs.webkit.org/show_bug.cgi?id=158579
<rdar://problem/26726751>

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):

3:49 PM Changeset in webkit [201890] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

REGRESSION (r194717): Web Inspector: Elements tab: an element loses focus when selected by Up/Down key
https://bugs.webkit.org/show_bug.cgi?id=157768
<rdar://problem/26311155>

Reviewed by Timothy Hatcher.

Remove _previousFocusedSection and _newInspectorRuleSelector since it was used only
to focus on a newly created section (added by clicking on "+" button).

Introduce _inspectorSection and _isInspectorSectionPendingFocus.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorBlurActiveEditor): Deleted.
(WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste): Deleted.
No longer needed, it was only used by _previousFocusedSection and _newInspectorRuleSelector.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.): Deleted.
No londer needed, it was only used by _previousFocusedSection.

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
(WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
(WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused): Deleted.
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionBlurActiveEditor): Deleted.
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionFocusNewInspectorRuleWithSelector): Deleted.

3:34 PM Changeset in webkit [201889] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Changing canvas height immediately after page load does not relayout canvas
https://bugs.webkit.org/show_bug.cgi?id=156097

Patch by Antoine Quint <Antoine Quint> on 2016-06-09
Reviewed by Zalan Bujtas.

Source/WebCore:

Promote the logic use to identify whether we should perform a layout after a change of
intrinsic size from RenderImage to RenderReplaced such that RenderCanvas may use it
in canvasSizeChanged() and correctly update its layout in the case where the width
or height attribute is updated and there are no explicit sizing performed with CSS.
Additionally, this will also account for the object-fix property to only perform
a layout if necessary.

Test: fast/canvas/canvas-css-size-after-height-change-with-display-flex.html

  • rendering/RenderHTMLCanvas.cpp:

(WebCore::RenderHTMLCanvas::canvasSizeChanged):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::repaintOrMarkForLayout):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::setNeedsLayoutIfNeededAfterIntrinsicSizeChange):

  • rendering/RenderReplaced.h:

LayoutTests:

  • fast/canvas/canvas-css-size-after-height-change-with-display-flex-expected.html: Added.
  • fast/canvas/canvas-css-size-after-height-change-with-display-flex.html: Added.
3:05 PM Changeset in webkit [201888] by aestes@apple.com
  • 16 edits
    1 add in trunk/Source/WebKit2

WKWebView does not render PDF pages in AirPrint
https://bugs.webkit.org/show_bug.cgi?id=151386
rdar://problem/22499157

Reviewed by Tim Horton.

_WKWebViewPrintFormatter originally attempted to handle PDFs, but the code path was never
properly tested since Safari prints PDFs by setting a printingItem on the
UIPrintInteractionController instead of going through a print formatter. The existing code
almost worked, if it weren't for CGContextScaleCTM() scaling each page into oblivion due to
_totalScaleFactor equaling 0.

This patch properly implements -[_WKWebViewPrintFormatter drawInRect:forPageAtIndex:] to
handle drawing both PDFs generated by WebKit and PDFs loaded in the main frame. It also
takes the opportunity to clean up a number of issues in the existing code:

  • Handling of -[_WKWebViewPrintFormatter startPage] is now correct. I had previously assumed this property represented the first page of output to print, but it actually represents the first page in the overall print job that the print formatter renders. In other words, regardless of -startPage, the print formatter should always print all its pages.
  • Code specific to webpage and PDF printing was factored out into WKContentView and WKPDFView, respectively. Each conforms to @protocol(_WKWebViewPrintProvider), and _WKWebViewPrintFormatter accesses the provider via -[WKWebView _printProvider].
  • Instead of piping the printed PDF data from WebPageProxy to WKWebView via PageClient, use the GenericCallback mechanism to have WebPageProxy call a lambda specified by WKContentView when the printed PDF is available.
  • Removed _totalScaleFactor and used CGPDFPageGetDrawingTransform() to transform both webpages and PDFs. For webpages, _totalScaleFactor will always equal the ratio of the paper width to the PDF page width, so CGPDFPageGetDrawingTransform() will apply the same scaling as CGContextScaleCTM(_totalScaleFactor, _totalScaleFactor) would.
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _printProvider]): Added. Returns _currentContentView if it conforms to
@protocol(_WKWebViewPrintProvider).
(-[WKWebView _computePageCountAndStartDrawingToPDFForFrame:printInfo:firstPage:computedTotalScaleFactor:]):
Moved code to _wk_pageCountForPrintFormatter in WKContentView and WKPDFView.
(-[WKWebView _endPrinting]): Deleted.
(-[WKWebView _printedDocument]): Deleted.
(-[WKWebView _setPrintedDocument:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h: Declared the _printProvider property.
  • UIProcess/PageClient.h: Removed didFinishDrawingPagesToPDF().
  • UIProcess/WebPageProxy.h: Declared computePagesForPrintingAndDrawToPDF() and

drawToPDFCallback().

  • UIProcess/WebPageProxy.messages.in: Renamed DidFinishDrawingPagesToPDF to

DrawToPDFCallback.

  • UIProcess/_WKWebViewPrintFormatter.mm: Backed the frameToPrint property with a RetainPtr

ivar so that it doesn't need to be released manually in -dealloc; removed _totalScaleFactor
and _printInfo ivars and added a _printedDocument ivar; removed the property declaration for
webView.
(-[_WKWebViewPrintFormatter frameToPrint]): Added a custom getter for the frameToPrint
property.
(-[_WKWebViewPrintFormatter setFrameToPrint:]): Added a custom setter for the frameToPrint
property.
(-[_WKWebViewPrintFormatter _webView]): Renamed from webView; added an underscore since this
is a private method.
(-[_WKWebViewPrintFormatter _recalcPageCount]): Retrieved the page count from the print
provider and clamped its value to NSIntegerMax.
(-[_WKWebViewPrintFormatter drawInRect:forPageAtIndex:]): Retrieved the printed document
from the print provider if needed; modified the CTM transformations to work for both
webpages and PDFs.
(-[_WKWebViewPrintFormatter dealloc]): Deleted.
(-[_WKWebViewPrintFormatter webView]): Renamed to _webView.
(-[_WKWebViewPrintFormatter rectForPageAtIndex:]): Deleted.

  • UIProcess/_WKWebViewPrintFormatterInternal.h: Added. Moved a UIPrintFormatter internal

method declaration to here and defined the _WKWebViewPrintProvider protocol.

  • UIProcess/ios/PageClientImplIOS.h: Removed didFinishDrawingPagesToPDF().
  • UIProcess/ios/PageClientImplIOS.mm: Ditto.

(WebKit::PageClientImpl::didFinishDrawingPagesToPDF): Deleted.

  • UIProcess/ios/WKContentView.mm: Conformed to @protocol(_WKWebViewPrintProvider).

(-[WKContentView _wk_pageCountForPrintFormatter:]): Moved the code to compute page count
from WKWebView to here.
(-[WKContentView _wk_printedDocument]): Moved the code to get the printed document from
WKWebView to here.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView _wk_pageCountForPrintFormatter:]): Moved the code to compute the page count
from WKWebView to here; added a call to CGPDFDocumentAllowsPrinting(), returning 0 if
printing is not allowed.
(-[WKPDFView _wk_printedDocument]): Moved the code to get the printed document from
WKWebView to here.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF): Registered the callback with
m_callbacks and sent Messages::WebPage::ComputePagesForPrintingAndDrawToPDF; returned the
synchronously-returned page count.
(WebKit::WebPageProxy::drawToPDFCallback): Added to perform the callback when drawing to PDF
is complete.
(WebKit::WebPageProxy::didFinishDrawingPagesToPDF): Deleted.

  • WebKit2.xcodeproj/project.pbxproj: Added _WKWebViewPrintFormatterInternal.h.
  • WebProcess/WebPage/WebPage.h: Renamed computePagesForPrintingAndStartDrawingToPDF() to

computePagesForPrintingAndDrawToPDF().

  • WebProcess/WebPage/WebPage.messages.in: Renamed

ComputePagesForPrintingAndStartDrawingToPDF to ComputePagesForPrintingAndDrawToPDF. Removed
the startPage parameter and added a callbackID.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::computePagesForPrintingAndDrawToPDF): Renamed from
computePagesForPrintingAndStartDrawingToPDF(). Added a call to endPrinting() after sending
Messages::WebPageProxy::DrawToPDFCallback.
(WebKit::WebPage::computePagesForPrintingAndStartDrawingToPDF): Renamed to
computePagesForPrintingAndDrawToPDF.

3:03 PM Changeset in webkit [201887] by mmaxfield@apple.com
  • 10 edits
    2 adds in trunk

Deleting a CSSOM style rule invalidates any previously-added FontFaces
https://bugs.webkit.org/show_bug.cgi?id=158450

Reviewed by Darin Adler.

Source/WebCore:

This patch has two pieces: updating the CSSOM when the FontFace changes, and
updating the FontFace when the CSSOM changes.

1: Updating the CSSOM when the FontFace changes: CSSFontFaces already have a RefPtr
to their StyleRuleFontFace which represents their CSS-connection. When changing a
property of the CSSFontFace, we simply reach into the StyleRule and update it to
match. Our existing infrastructure of invalidation due to the attribute changes
makes sure that all the necessary updates occur.

  1. Updating the FontFace when the CSSOM changes: If the CSSOM changes in a trivial

way (for example, a new @font-face is appended to the end of the last <style>
element), we can handle it directly. However, when something more invasive occurs,
we end up clearing the entire CSSFontSelector, and then adding all the style rules
from scratch. This involves three steps:

a) CSSFontSelector::buildStarted() is run, which means "we're about to start

building up all the @font-face rules from scratch." We take this opportunity
to purge as many fonts as possible. This is valuable because, for example,
this function gets run when the page gets put into the page cache, so we
want to destroy as much as possible. Not everything can be purged, however -
only CSS-connected fonts which have never been inspected by script are
purgeable. We don't allow fonts inspected by script to be purged because
purging might result in a font appearing from JavaScript to transition from
a success -> failure state, which we don't allow.

b) Upon style recalc (possibly asynchronously) CSSFontSelector::addFontFaceRule()

is called for each @font-face rule. We actually detect that we're in the
middle of a style rebuild, and defer this step.

c) When we're done adding all the font face rules, we call

CSSFontSelector::buildCompleted(). This is where we compare the newly built-
up list of font faces with what existed previously (as remembered in
CSSFontSelector::buildStarted()) in order to detect font faces which were
deleted from the document. Fonts which were newly added to the document
are handled naturally.
Fonts which have a property modified on them are created as if they were new.
However, instead of simply adding the CSSFontFace, we search for the existing
CSSFontFace (by CSS connection pointer) and tell the existing FontFace to
adopt this new CSSFontFace. This means that the JavaScript object will just
pick up any newly-written values in the CSSOM. It also means that the
"status" attribute of the JavaScript object is reset, but this is expected
and allowed by the spec. (For example, if you change the "src" attribute of
an @font-face block via the CSSOM, all bets are off when you inspect the
FontFace JS object representing that block.)

Test: fast/text/font-face-set-cssom.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::CSSFontFace):
(WebCore::CSSFontFace::setFamilies):
(WebCore::CSSFontFace::setStyle):
(WebCore::CSSFontFace::setWeight):
(WebCore::CSSFontFace::setUnicodeRange):
(WebCore::CSSFontFace::setVariantLigatures):
(WebCore::CSSFontFace::setVariantPosition):
(WebCore::CSSFontFace::setVariantCaps):
(WebCore::CSSFontFace::setVariantNumeric):
(WebCore::CSSFontFace::setVariantAlternates):
(WebCore::CSSFontFace::setVariantEastAsian):
(WebCore::CSSFontFace::setFeatureSettings):
(WebCore::CSSFontFace::initializeWrapper):
(WebCore::CSSFontFace::wrapper):
(WebCore::CSSFontFace::setWrapper):
(WebCore::CSSFontFace::purgeable):
(WebCore::CSSFontFace::updateStyleIfNeeded):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::remove):
(WebCore::CSSFontFaceSet::containsCSSConnection):
(WebCore::CSSFontFaceSet::purge):

  • css/CSSFontFaceSet.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::buildStarted):
(WebCore::CSSFontSelector::buildCompleted):
(WebCore::CSSFontSelector::addFontFaceRule):

  • css/CSSFontSelector.h:
  • css/FontFace.cpp:

(WebCore::FontFace::family):
(WebCore::FontFace::style):
(WebCore::FontFace::weight):
(WebCore::FontFace::unicodeRange):
(WebCore::FontFace::variant):
(WebCore::FontFace::featureSettings):
(WebCore::FontFace::adopt):

  • css/FontFace.h:

LayoutTests:

  • fast/text/font-face-set-cssom-expected.txt: Added.
  • fast/text/font-face-set-cssom.html: Added.
2:41 PM Changeset in webkit [201886] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking webgl/webgl-backing-store-size-update.html as a flaky timeout on mac-wk1
https://bugs.webkit.org/show_bug.cgi?id=158585

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:38 PM Changeset in webkit [201885] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Removing Mavericks-specific TestExpectations from mac-wk1 TestExpectations file.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
2:34 PM Changeset in webkit [201884] by aestes@apple.com
  • 5 edits in trunk/Source

Define printing{Minimum,Maximum}ShrinkFactor in only one place
https://bugs.webkit.org/show_bug.cgi?id=158580

Reviewed by Tim Horton.

Source/WebCore:

  • page/PrintContext.cpp: Removed printingMinimumShrinkFactor and printingMaximumShrinkFactor.

(WebCore::PrintContext::begin): Used minimumShrinkFactor() and maximumShrinkFactor() instead
of printingMinimumShrinkFactor and printingMaximumShrinkFactor.
(WebCore::PrintContext::computeAutomaticScaleFactor): Ditto.

  • page/PrintContext.h:

(WebCore::PrintContext::minimumShrinkFactor): Added to return the same value as
printingMinimumShrinkFactor.
(WebCore::PrintContext::maximumShrinkFactor): Added to return the same value as
printingMaximumShrinkFactor.

Source/WebKit/mac:

  • WebView/WebHTMLView.mm: Initialized _WebHTMLViewPrintingMinimumShrinkFactor and

_WebHTMLViewPrintingMaximumShrinkFactor with PrintContext::minimumShrinkFactor() and
PrintContext::maximumShrinkFactor() instead of with duplicated float literals.

2:30 PM Changeset in webkit [201883] by eric.carlson@apple.com
  • 4 edits
    2 adds in trunk

Don't show the caption menu if a video has only forced tracks
https://bugs.webkit.org/show_bug.cgi?id=158573
<rdar://problem/24632384>

Reviewed by Jer Noble.

Source/WebCore:

Test: media/controls/forced-tracks-only.html

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateCaptionButton): Don't show the button of there are no user-selectable

text or audio tracks.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu): Return an empty Vector if

there are no user-selectable tracks.

LayoutTests:

  • media/controls/forced-tracks-only-expected.txt: Added.
  • media/controls/forced-tracks-only.html: Added.
2:01 PM Changeset in webkit [201882] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

Pass through play state and toggle state to the WebPlaybackControlsManager
https://bugs.webkit.org/show_bug.cgi?id=158578
<rdar://problem/25045616>

Reviewed by Beth Dakin.

Pass through the isPlaying portion of setRate() and allow toggling when a model is present.

  • platform/mac/WebPlaybackControlsManager.h:
  • platform/mac/WebPlaybackControlsManager.mm:
  • platform/mac/WebPlaybackSessionInterfaceMac.mm:

(WebCore::WebPlaybackSessionInterfaceMac::setRate):
(WebCore::WebPlaybackSessionInterfaceMac::setPlayBackControlsManager):

1:54 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:50 PM Changeset in webkit [201881] by fred.wang@free.fr
  • 4 edits in trunk/Source/WebCore

RenderMathOperator: Move calculation of preferred width into MathOperator
https://bugs.webkit.org/show_bug.cgi?id=157071

Reviewed by Brent Fulgham.

No new tests, behavior is not change.

  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::setOperator): Introduce a style parameter and call reset.
(WebCore::MathOperator::reset): New helper function to reset the operator.
For now we only set the width of the base glyph and the preferred max width.
(WebCore::MathOperator::calculateDisplayStyleLargeOperator): Calculate the m_maxPreferredWidth.
(WebCore::MathOperator::calculateStretchyData): Change the signature of the function and directly set m_maxPreferredWidth.

  • rendering/mathml/MathOperator.h: Add m_maxPreferredWidth member and update some declarations.

(WebCore::MathOperator::width): New helper function.
(WebCore::MathOperator::maxPreferredWidth): New helper function.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): This function performs wrong
operations that will be fixed in bug 152244 when we update the tests.
For now, let's just use maxPreferredWidth() for non-horizontal operators.
(WebCore::RenderMathMLOperator::updateStyle): Use the new signature of the functions.

1:10 PM Changeset in webkit [201880] by achristensen@apple.com
  • 29 edits in trunk/Source

Clean up WebSocket code
https://bugs.webkit.org/show_bug.cgi?id=158551

Reviewed by Darin Adler.

Source/WebCore:

No new tests. There is no change in behavior.
There seems to be no reason why SocketStreamHandle should be an AuthenticationClient.

  • Modules/websockets/ThreadableWebSocketChannel.h:
  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::setSendRequestResult):
(WebCore::ThreadableWebSocketChannelClientWrapper::bufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::setBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::joinStrings):
(WebCore::saturateAdd):
(WebCore::WebSocket::send):
(WebCore::WebSocket::readyState):
(WebCore::WebSocket::bufferedAmount):
(WebCore::WebSocket::didReceiveBinaryData):
(WebCore::WebSocket::didReceiveMessageError):
(WebCore::WebSocket::didUpdateBufferedAmount):
(WebCore::WebSocket::didStartClosingHandshake):
(WebCore::WebSocket::didClose):

  • Modules/websockets/WebSocket.h:
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::WebSocketChannel):
(WebCore::WebSocketChannel::~WebSocketChannel):
(WebCore::WebSocketChannel::send):
(WebCore::WebSocketChannel::bufferedAmount):
(WebCore::WebSocketChannel::resume):
(WebCore::WebSocketChannel::willOpenSocketStream):
(WebCore::WebSocketChannel::didOpenSocketStream):
(WebCore::WebSocketChannel::didCloseSocketStream):
(WebCore::WebSocketChannel::didReceiveSocketStreamData):
(WebCore::WebSocketChannel::didUpdateBufferedAmount):
(WebCore::WebSocketChannel::didFailSocketStream):
(WebCore::WebSocketChannel::didStartLoading):
(WebCore::WebSocketChannel::appendToBuffer):
(WebCore::WebSocketChannel::processBuffer):
(WebCore::WebSocketChannel::resumeTimerFired):
(WebCore::WebSocketChannel::startClosingHandshake):
(WebCore::WebSocketChannel::didReceiveAuthenticationChallenge): Deleted.
(WebCore::WebSocketChannel::didCancelAuthenticationChallenge): Deleted.

  • Modules/websockets/WebSocketChannel.h:
  • Modules/websockets/WebSocketChannelClient.h:

(WebCore::WebSocketChannelClient::~WebSocketChannelClient):
(WebCore::WebSocketChannelClient::didConnect):
(WebCore::WebSocketChannelClient::didReceiveMessage):
(WebCore::WebSocketChannelClient::didReceiveBinaryData):
(WebCore::WebSocketChannelClient::didReceiveMessageError):
(WebCore::WebSocketChannelClient::didUpdateBufferedAmount):
(WebCore::WebSocketChannelClient::didStartClosingHandshake):
(WebCore::WebSocketChannelClient::didClose):
(WebCore::WebSocketChannelClient::WebSocketChannelClient):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::send):
(WebCore::WorkerThreadableWebSocketChannel::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • platform/network/BlobData.cpp:

(WebCore::BlobData::appendData):
(WebCore::BlobData::appendFile):

  • platform/network/BlobData.h:

(WebCore::BlobDataItem::BlobDataItem):

  • platform/network/BlobRegistry.h:
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::appendStorageItems):
(WebCore::BlobRegistryImpl::registerFileBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURL):
(WebCore::BlobRegistryImpl::registerBlobURLOptionallyFileBacked):
(WebCore::BlobRegistryImpl::registerBlobURLForSlice):

  • platform/network/BlobRegistryImpl.h:
  • platform/network/SocketStreamHandleBase.cpp:

(WebCore::SocketStreamHandleBase::send):
(WebCore::SocketStreamHandleBase::disconnect):
(WebCore::SocketStreamHandleBase::sendPendingData):

  • platform/network/SocketStreamHandleBase.h:
  • platform/network/SocketStreamHandleClient.h:

(WebCore::SocketStreamHandleClient::~SocketStreamHandleClient):
(WebCore::SocketStreamHandleClient::willOpenSocketStream):
(WebCore::SocketStreamHandleClient::didOpenSocketStream):
(WebCore::SocketStreamHandleClient::didCloseSocketStream):
(WebCore::SocketStreamHandleClient::didReceiveSocketStreamData):
(WebCore::SocketStreamHandleClient::didUpdateBufferedAmount):
(WebCore::SocketStreamHandleClient::didFailSocketStream):
(WebCore::SocketStreamHandleClient::didReceiveAuthenticationChallenge): Deleted.
(WebCore::SocketStreamHandleClient::didCancelAuthenticationChallenge): Deleted.

  • platform/network/cf/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):
(WebCore::SocketStreamHandle::refAuthenticationClient): Deleted.
(WebCore::SocketStreamHandle::derefAuthenticationClient): Deleted.

  • platform/network/cf/SocketStreamHandleCFNet.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::addCONNECTCredentials):
(WebCore::SocketStreamHandle::copyCFStreamDescription):
(WebCore::SocketStreamHandle::readStreamCallback):
(WebCore::SocketStreamHandle::writeStreamCallback):
(WebCore::SocketStreamHandle::reportErrorToClient):
(WebCore::SocketStreamHandle::~SocketStreamHandle):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::port):
(WebCore::SocketStreamHandle::receivedCredential): Deleted.
(WebCore::SocketStreamHandle::receivedRequestToContinueWithoutCredential): Deleted.
(WebCore::SocketStreamHandle::receivedCancellation): Deleted.
(WebCore::SocketStreamHandle::receivedRequestToPerformDefaultHandling): Deleted.
(WebCore::SocketStreamHandle::receivedChallengeRejection): Deleted.

  • platform/network/curl/ResourceHandleCurl.cpp:
  • platform/network/curl/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::SocketData::SocketData):

  • platform/network/curl/SocketStreamHandleCurl.cpp:

(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::readData):
(WebCore::SocketStreamHandle::didReceiveData):
(WebCore::SocketStreamHandle::didOpenSocket):
(WebCore::SocketStreamHandle::createCopy):
(WebCore::SocketStreamHandle::didReceiveAuthenticationChallenge): Deleted.
(WebCore::SocketStreamHandle::receivedCredential): Deleted.
(WebCore::SocketStreamHandle::receivedRequestToContinueWithoutCredential): Deleted.
(WebCore::SocketStreamHandle::receivedCancellation): Deleted.
(WebCore::SocketStreamHandle::receivedRequestToPerformDefaultHandling): Deleted.
(WebCore::SocketStreamHandle::receivedChallengeRejection): Deleted.

  • platform/network/soup/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::getHandleFromId):
(WebCore::deactivateHandle):
(WebCore::activateHandle):
(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::~SocketStreamHandle):
(WebCore::SocketStreamHandle::connected):
(WebCore::SocketStreamHandle::readBytes):
(WebCore::SocketStreamHandle::platformSend):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::beginWaitingForSocketWritability):
(WebCore::SocketStreamHandle::didReceiveAuthenticationChallenge): Deleted.
(WebCore::SocketStreamHandle::receivedCredential): Deleted.
(WebCore::SocketStreamHandle::receivedRequestToContinueWithoutCredential): Deleted.
(WebCore::SocketStreamHandle::receivedCancellation): Deleted.
(WebCore::SocketStreamHandle::receivedRequestToPerformDefaultHandling): Deleted.
(WebCore::SocketStreamHandle::receivedChallengeRejection): Deleted.

Source/WebKit2:

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerFileBlobURL):

  • WebProcess/FileAPI/BlobRegistryProxy.h:
1:09 PM Changeset in webkit [201879] by Michael Catanzaro
  • 4 edits in trunk

Add comments to clarify feature enablement
https://bugs.webkit.org/show_bug.cgi?id=158567

Reviewed by Alex Christensen.

.:

  • Source/cmake/WebKitFeatures.cmake:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
12:24 PM Changeset in webkit [201878] by fpizlo@apple.com
  • 4 edits in trunk

PerformanceTests:
Unreviewed, teach the perf bots not to run JSAir.

  • Skipped:

Tools:
Unreviewed, skip jsair tests while we figure out the debug timeouts.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

11:52 AM Changeset in webkit [201877] by commit-queue@webkit.org
  • 5 edits in trunk

Unreviewed, rolling out r201815.
https://bugs.webkit.org/show_bug.cgi?id=158570

This broke the cmake build. (Requested by lforschler on
#webkit).

Reverted changeset:

"Teach cmake about libWebKitSystemInterfaceOSX10.12"
http://trac.webkit.org/changeset/201815

11:47 AM Changeset in webkit [201876] by Chris Dumez
  • 5 edits
    2 adds in trunk

WorkerGlobalScope attributes / operations should be on the prototype
https://bugs.webkit.org/show_bug.cgi?id=158568
<rdar://problem/26720079>

Reviewed by Geoffrey Garen.

Source/WebCore:

WorkerGlobalScope attributes / operations should be on the prototype
because WorkerGlobalScope is not marked as [Global] / [PrimaryGlobal]:

DedicatedWorkerGlobalScope is the interface that is marked as [Global]
and whose attributes / operations should be on the instance.

This brings the number of failures on http://w3c-test.org/workers/interfaces.worker
from 65 to 34. It also aligns our behavior with Firefox and Chrome.

Test: fast/workers/WorkerGlobalScope-properties-prototype.html

  • bindings/scripts/CodeGeneratorJS.pm:

(InterfaceRequiresAttributesOnInstance):
(OperationShouldBeOnInstance):

LayoutTests:

  • fast/workers/WorkerGlobalScope-properties-prototype-expected.txt: Added.
  • fast/workers/WorkerGlobalScope-properties-prototype.html: Added.

Add layout test coverage.

  • fast/workers/self-hasOwnProperty-expected.txt:
  • fast/workers/self-hasOwnProperty.html:

Update test I added a couple of days ago because it wrongly expected
the 'navigator' property to be on the instance. This check was failing
in other browsers (Firefox and Chrome).

11:33 AM Changeset in webkit [201875] by timothy_horton@apple.com
  • 5 edits
    2 adds in trunk

Writing-mode-dependent properties don't apply if their value is a variable
https://bugs.webkit.org/show_bug.cgi?id=158449
<rdar://problem/26662478>

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/css/variables/direction-dependent-variable-properties.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseVariableDependentValue):

  • css/CSSParser.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::resolvedVariableValue):
CSSVariableDependentValue stores the unresolved (direction-dependent) property ID,
because the property that it resolves to cannot be determined until style resolution time.
Plumb the requisite direction and writing mode information into parseVariableDependentValue
at style resolution time so that the property can be resolved to the correct
non-direction-dependent property for each use of the value.

LayoutTests:

  • fast/css/variables/direction-dependent-variable-properties-expected.html: Added.
  • fast/css/variables/direction-dependent-variable-properties.html: Added.

Add a test ensuring that direction-dependent properties work correctly,
including flipping when the direction is flipped.

11:27 AM Changeset in webkit [201874] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking editing/selection/selection-in-iframe-removed-crash.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=158569

Unreviewed test gardening.

  • platform/mac/TestExpectations:
10:42 AM Changeset in webkit [201873] by beidson@apple.com
  • 2 edits in trunk/Source/WTF

Unaddressed review feedback from r201872

  • wtf/CrossThreadTask.h:

(WTF::callFunctionForCrossThreadTask): Fix typo.

10:34 AM Changeset in webkit [201872] by beidson@apple.com
  • 4 edits in trunk

Greatly simplify CrossThreadTask.h.
https://bugs.webkit.org/show_bug.cgi?id=158542

Reviewed by Darin Adler.

Source/WTF:

  • wtf/CrossThreadTask.h:

(WTF::crossThreadCopy):
(WTF::callFunctionForCrossThreadTaskImpl):
(WTF::callFunctionForCrossThreadTask):
(WTF::createCrossThreadTask):
(WTF::callMemberFunctionForCrossThreadTaskImpl):
(WTF::callMemberFunctionForCrossThreadTask):

Tools:

  • TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp:

(TestWebKitAPI::TEST):

10:31 AM Changeset in webkit [201871] by beidson@apple.com
  • 3 edits in trunk/LayoutTests

LayoutTest storage/indexeddb/modern/handle-user-delete.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=158501

Reviewed by Darin Adler.

The order in which the transaction abort happens doesn't matter; It only matters that it happens.

Update the test to reflect this.

  • storage/indexeddb/modern/handle-user-delete-expected.txt:
  • storage/indexeddb/modern/resources/handle-user-delete.js:
10:12 AM Changeset in webkit [201870] by Ryan Haddad
  • 2 edits in trunk/Source/WebCore

Attempt to fix the iOS build.

Unreviewed build fix.

  • platform/network/mac/ResourceErrorMac.mm:

(WebCore::ResourceError::ResourceError):

10:07 AM Changeset in webkit [201869] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit2

Update properties for UIWKTextInteractionAssistant
<https://webkit.org/b/158559>

Reviewed by Darin Adler.

  • Platform/spi/ios/UIKitSPI.h:

(UIWKTextInteractionAssistant.loupeGesture):
(UIWKTextInteractionAssistant.singleTapGesture):
Change from retain to assign since UIWKTextInteractionAssistant
is not responsible for their lifetime. Sort alphabetically.

9:59 AM Changeset in webkit [201868] by Simon Fraser
  • 4 edits
    7 adds in trunk

border-radius with different width and height rendered wrong
https://bugs.webkit.org/show_bug.cgi?id=158300
<rdar://problem/26672922>

Reviewed by Zalan Bujtas.
Source/WebCore:

Borders with border-radius close to 100% 100% got oddly clipped. This happened because
of the clipping we do to achieve the diagonal corner joins; RenderBoxModelObject::clipBorderSidePolygon()
created trapezoids for each side, but only extended them to the center of the inner border rect.
This clipped out parts of these borders.

Fix by computing the trapezoids by intersecting the corner diagonal line with a line that passes
through the adjacent corners of the inner rect, whose intersection is always going to be inside the
rounded border. Also fix the quads used to do the antialiased/non-antialiased clipping,
by adding a point rather than moving a corner point to ensure we don't mistakenly clip out any
parts of the border.

Finally, improve the rendering of non-renderable cases by actually doing the diagonal
corner joins rather than just giving up.

Tests: fast/borders/border-non-renderable-radius-inner-clip.html

fast/borders/border-radius-inner-clip-vertical.html
fast/borders/border-radius-inner-clip.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::calculateAdjustedInnerBorder): Moved up.
(WebCore::RenderBoxModelObject::paintOneBorderSide):
(WebCore::RenderBoxModelObject::clipBorderSidePolygon):
(WebCore::findInnerVertex): Deleted.
(WebCore::calculateSideRectIncludingInner): Deleted.
(WebCore::RenderBoxModelObject::clipBorderSideForComplexInnerPath): Deleted.

  • rendering/RenderBoxModelObject.h:

LayoutTests:

  • fast/borders/border-non-renderable-radius-inner-clip-expected.html: Added.
  • fast/borders/border-non-renderable-radius-inner-clip.html: Added.
  • fast/borders/border-radius-inner-clip-expected-mismatch.html: Added.
  • fast/borders/border-radius-inner-clip-vertical-expected-mismatch.html: Added.
  • fast/borders/border-radius-inner-clip-vertical.html: Added.
  • fast/borders/border-radius-inner-clip.html: Added.
  • fast/borders/resources/border-radius-helpers.js: Added.

(createContainer):
(createReferenceContainer):

9:49 AM Changeset in webkit [201867] by peavo@outlook.com
  • 2 edits in trunk/LayoutTests

Unreviewed test gardening.

Unskip passing websocket tests.

  • platform/win/TestExpectations:
9:31 AM Changeset in webkit [201866] by Chris Dumez
  • 5 edits in trunk

Unreviewed, rolling out r201836, r201845, and r201848.

Looks like a 1-2% PLT regression on iOS

Reverted changesets:

"[JSC] Change some parameters based on a random search"
https://bugs.webkit.org/show_bug.cgi?id=158514
http://trac.webkit.org/changeset/201836

"Tempory fix for the debug bots"
http://trac.webkit.org/changeset/201845

"Change thresholdForOptimizeSoon to match
thresholdForOptimizeAfterWarmUp"
http://trac.webkit.org/changeset/201848

8:56 AM Changeset in webkit [201865] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed, rolling out r201842.

The change that prompted this rebaseline was rolled out.

Reverted changeset:

"Rebaseline js/dom/global-constructors-attributes.html for Mac
after r201810"
http://trac.webkit.org/changeset/201842

8:15 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
8:14 AM Changeset in webkit [201864] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, fixing compilation issue with WebRTC

The code dependencies of the SDP processor were not right.

  • PlatformGTK.cmake:
8:04 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
7:54 AM Changeset in webkit [201863] by msaboff@apple.com
  • 7 edits
    2 adds in trunk

WebKitTestRunner and DumpRenderTree do not handle dangling surrogate characters
https://bugs.webkit.org/show_bug.cgi?id=154863

Reviewed by Alexey Proskuryakov.

Source/WebKit2:

Added a non-strict verions of WKStringGetUTF8CString() that will handle dangling
surrogates called WKStringGetUTF8CStringNonStrict().

  • Shared/API/c/WKString.cpp:

(WKStringGetUTF8CStringImpl):
(WKStringGetUTF8CString):
(WKStringGetUTF8CStringNonStrict):

  • Shared/API/c/WKString.h:

Tools:

Added a non-strict verions of WKStringGetUTF8CString() that will handle dangling
surrogates. Changed the extraction of inner text from frames in DumpRenderTree
to use the new WKStringGetUTF8CStringNonStrict() function instead of NSString
conversion since NSString doesn't have a way to handle dangling surrogates.
The code added in DumpRenderTree matches what was changed in WebKitTestRunner.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(dumpFramesAsText):

  • WebKitTestRunner/StringFunctions.h:

(WTR::toWTFString):

LayoutTests:

New tests.

  • fast/text/dangling-surrogates-expected.txt: Added.
  • fast/text/dangling-surrogates.html: Added.
7:50 AM Changeset in webkit [201862] by fred.wang@free.fr
  • 4 edits in trunk/Source/WebCore

Introduce MathOperator::Type
https://bugs.webkit.org/show_bug.cgi?id=156950

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-09
Reviewed by Sergio Villar Senin.

No new tests, behavior is not change.

An enum Type is introduced in MathOperator in order to indicate
which kind of stretching is requested. In follow-up work, this will
allow to just call setOperator and stretchTo without having to
explicitly call calculateDisplayStyleLargeOperator or calculateStretchyData.

  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::setOperator): Use Type instead of a boolean.
(WebCore::MathOperator::setGlyphAssembly): Add an assert to ensure that the function is correctly used.
(WebCore::MathOperator::calculateDisplayStyleLargeOperator): Ditto, this makes the assert more accurate.
(WebCore::MathOperator::calculateStretchyData): Ditto and replace m_isVertical with a local isVertical variable.
(WebCore::MathOperator::fillWithVerticalExtensionGlyph): Ditto.
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Ditto.
(WebCore::MathOperator::paintVerticalGlyphAssembly): Ditto.
(WebCore::MathOperator::paintHorizontalGlyphAssembly): Ditto.

  • rendering/mathml/MathOperator.h: Add the Type enum.

(WebCore::MathOperator::stretchSize): Use Type instead of a boolean and add an
assert to ensure that the function is correctly used.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Call setOperator with the correct value.
(WebCore::RenderMathMLOperator::updateStyle): Ditto.

5:59 AM Changeset in webkit [201861] by commit-queue@webkit.org
  • 28 edits
    11 deletes in trunk

Unreviewed, rolling out r201810.
https://bugs.webkit.org/show_bug.cgi?id=158563

breaks build without ENABLE_WEB_ANIMATION (Requested by
mcatanzaro on #webkit).

Reverted changeset:

"[web-animations] Add Animatable, AnimationEffect,
KeyframeEffect and Animation interface"
https://bugs.webkit.org/show_bug.cgi?id=156096
http://trac.webkit.org/changeset/201810

5:09 AM Changeset in webkit [201860] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[Threaded Compositor] Many layout tests crash when threaded compositor is enabled
https://bugs.webkit.org/show_bug.cgi?id=158560

Reviewed by Žan Doberšek.

This is because CoordinatedGraphicsLayer::notifyFlushRequired() assumes it has a valid compositor when it's
called. But the compositor is only present when GraphicsLayer::create() is called with a
GraphicsLayerFactory. When running the layout tests, layers are created without a factory because DrawingAreaImpl
is not entering AC mode as expected and the layer tree host is not created, making
DrawingAreaImpl::graphicsLayerFactory() always return nullptr. This happens because DrawingAreaImpl is checking
acceleratedDrawingEnabled setting to decide whether to always use compositing mode or not, and WTR sets that
setting to false (changing its default value). The thing is that acceleratedDrawingEnabled setting doesn't have
any effect in non-Mac ports, what we really want to check there is whether acceleratedCompositingEnabled is true
or false.

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::updatePreferences):

5:07 AM Changeset in webkit [201859] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[Threaded Compositor] Remove ThreadedCompositor::setNeedsDisplay()
https://bugs.webkit.org/show_bug.cgi?id=158523

Reviewed by Michael Catanzaro.

ThreadedCompositor::setNeedsDisplay() is always called from the main thread and schedules a task to the
compositing thread to schedule an immediate update. But RunLoop::Timer is thread-safe so we don't really need to
schedule a task to the update the timer in the compositing thread, we can do that directly in the main
thread. And that's exactly what scheduleDisplayImmediately() does, so we can use it instead of setNeedsDisplay().

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::setNeedsDisplay(): Deleted.
(WebKit::ThreadedCompositor::updateSceneState):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
2:09 AM Changeset in webkit [201858] by rniwa@webkit.org
  • 10 edits in trunk

slotchange event should be fired at the end of microtask
https://bugs.webkit.org/show_bug.cgi?id=157374
<rdar://problem/26154024>

Reviewed by Antti Koivisto.

Source/WebCore:

Dispatch slotchange event at the end of every microtask after delivering records to mutation observers
as specified in: https://dom.spec.whatwg.org/#notify-mutation-observers

Test: fast/shadow-dom/slotchange-event.html

  • dom/Document.cpp:

(WebCore::Document::enqueueSlotchangeEvent): Deleted.

  • dom/Document.h:
  • dom/MutationObserver.cpp:

(WebCore::signalSlotList): Added.
(WebCore::MutationObserverMicrotask::run): mutationObserverCompoundMicrotaskQueuedFlag is now unset in
notifyMutationObservers to better match the concept to "notify mutation observers".
(WebCore::MutationObserver::enqueueSlotChangeEvent): Added.
(WebCore::MutationObserver::notifyMutationObservers): Renamed from deliverAllMutations. Added the code
to dispatch slotchange events as spec'ed, and also added comments for each step.

  • dom/MutationObserver.h:
  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::enqueueSlotChangeEvent): Use MutationObserver::enqueueSlotChangeEvent. Don't
create an event here since that is only needed when dispatching the event, and to keep track of whether
we've already scheduled an event or not. Use a boolean flag instead for the latter.
(WebCore::HTMLSlotElement::dispatchSlotChangeEvent): Added. Creates and dispatches an event.
(WebCore::HTMLSlotElement::dispatchEvent): Deleted.

  • html/HTMLSlotElement.h:

(WebCore::HTMLSlotElement::didRemoveFromSignalSlotList): Added.

LayoutTests:

Added a test case to ensure slotchange event is dispatched at the end of a microtask.

  • fast/shadow-dom/slotchange-event-expected.txt:
  • fast/shadow-dom/slotchange-event.html:
2:07 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:41 AM Changeset in webkit [201857] by Antti Koivisto
  • 2 edits in trunk/Source/WebKit2

Increase disk cache capacity when there is lots of free space
https://bugs.webkit.org/show_bug.cgi?id=158526

Reviewed by Chris Dumez.

Our maximum disk cache capacity has been 175MB for a very long time. Meanwhile the average resource size has grown
massively. 175MB is now enough for cacheable resources of a few dozen sites at most. Using bigger caches when there is
room for it can reduce network traffic, reduce disk writes, save battery and speed up page loading.

This patch changes cache size for PrimaryWebBrowser cache model

=16GB free: 175MB -> 500MB

8-16GB free: 150MB -> 250MB

and modestly for DocumentBrowser

=16GB free: 50MB -> 75MB

Note that if system (on Cocoa platforms) really needs disk space it will wipe out caches so this doesn't reduce
available disk space in scenarios like software installation.

  • Shared/CacheModel.cpp:

(WebKit::calculateCacheSizes):

Jun 8, 2016:

11:55 PM Changeset in webkit [201856] by youenn.fablet@crf.canon.fr
  • 16 edits in trunk/Source

Introduce ResourceErrorBase::type
https://bugs.webkit.org/show_bug.cgi?id=158299

Reviewed by Alex Christensen.

Source/WebCore:

Introducing an enum type for ResourceErrorBase.
In most cases, the type is set at construction time.
By default, constructor with no parameters will set type to Null.
Constructor with parameters will set type to General.

Removed boolean state error fields.

Introduced a type setter. It should only be used to make the type
more precise (when type is Null or General).

Updating related calling code.

No change of behavior.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::stopLoadingForPolicyChange):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::cancel):

  • loader/EmptyClients.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::cancelledError):
(WebCore::FrameLoader::blockedError):

  • loader/WorkerThreadableLoader.cpp:

(WebCore::WorkerThreadableLoader::MainThreadBridge::cancel):

  • platform/network/ResourceErrorBase.cpp:

(WebCore::ResourceErrorBase::isolatedCopy):
(WebCore::ResourceErrorBase::setType):
(WebCore::ResourceErrorBase::compare):

  • platform/network/ResourceErrorBase.h:

(WebCore::ResourceErrorBase::isNull):
(WebCore::ResourceErrorBase::isCancellation):
(WebCore::ResourceErrorBase::isTimeout):
(WebCore::ResourceErrorBase::type):
(WebCore::ResourceErrorBase::ResourceErrorBase):
(WebCore::ResourceErrorBase::domain):

  • platform/network/cf/ResourceError.h:

(WebCore::ResourceError::ResourceError):

  • platform/network/cf/ResourceErrorCF.cpp:

(WebCore::ResourceError::ResourceError):
(WebCore::ResourceError::cfError):

  • platform/network/curl/ResourceError.h:

(WebCore::ResourceError::ResourceError):

  • platform/network/mac/ResourceErrorMac.mm:

(WebCore::m_platformError):
(WebCore::ResourceError::nsError):
(WebCore::ResourceError::ResourceError):
(WebCore::ResourceError::platformLazyInit):

  • platform/network/soup/ResourceError.h:

(WebCore::ResourceError::ResourceError):

  • platform/network/soup/ResourceErrorSoup.cpp:

(WebCore::ResourceError::timeoutError):

Source/WebKit2:

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<ResourceError>::encodePlatformData):
(IPC::ArgumentCoder<ResourceError>::decodePlatformData):

11:20 PM Changeset in webkit [201855] by commit-queue@webkit.org
  • 19 edits in trunk

REGRESSION: Web Inspector: Should be able to evaluate "{a:1, b:2}" in the console
https://bugs.webkit.org/show_bug.cgi?id=158548
<rdar://problem/26708513>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-08
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Controllers/RuntimeManager.js:

(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
Switch the many parameters to an options dictionary.
Include a new option for sourceURL appender, so that
Console evaluations can have its own append.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
Use the appendWebInspectorConsoleEvaluationSourceURL appender.

  • UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:

(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.evaluated):

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection.):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection):
Use the new options dictionary.

LayoutTests:

  • inspector/console/addInspectedNode.html:
  • inspector/console/command-line-api-copy.html:
  • inspector/console/command-line-api.html:
  • inspector/console/console-api.html:
  • inspector/console/console-table.html:
  • inspector/console/messagesCleared.html:
  • inspector/controller/runtime-controller.html:
  • inspector/debugger/command-line-api-exception-nested-catch.html:
  • inspector/debugger/command-line-api-exception.html:
  • inspector/model/remote-object-get-properties.html:
  • inspector/model/remote-object-weak-collection.html:
  • inspector/model/remote-object.html:
  • inspector/timeline/exception-in-injected-script-while-recording.html:

Update evaluateInInspectedWindow callsites to use options dictionary.

11:17 PM Changeset in webkit [201854] by fred.wang@free.fr
  • 5 edits
    2 adds in trunk/Source/WebCore

Move selection and drawing of stretchy operators into a separate MathOperator class
https://bugs.webkit.org/show_bug.cgi?id=156921

Patch by Frederic Wang <fwang@igalia.com> on 2016-06-08
Reviewed by Martin Robinson.

No new tests, behavior is not changed.

  • CMakeLists.txt: Add the MathOperator files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • rendering/mathml/MathOperator.cpp: Added.

(WebCore::boundsForGlyph): Moved from RenderMathMLOperator.
(WebCore::heightForGlyph): Moved from RenderMathMLOperator.
(WebCore::advanceWidthForGlyph): Moved from RenderMathMLOperator.
(WebCore::MathOperator::MathOperator):
(WebCore::MathOperator::setOperator):
(WebCore::MathOperator::getBaseGlyph): Moved from RenderMathMLOperator.
(WebCore::MathOperator::setSizeVariant): Moved from RenderMathMLOperator.
(WebCore::MathOperator::setGlyphAssembly): Moved from RenderMathMLOperator.
(WebCore::MathOperator::calculateDisplayStyleLargeOperator): Moved from RenderMathMLOperator with additional style parameter.
(WebCore::MathOperator::calculateGlyphAssemblyFallBack): Ditto.
(WebCore::MathOperator::calculateStretchyData): Ditto.
(WebCore::MathOperator::paintGlyph): Ditto.
(WebCore::MathOperator::fillWithVerticalExtensionGlyph): Ditto.
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph): Ditto.
(WebCore::MathOperator::paintVerticalGlyphAssembly): Ditto.
(WebCore::MathOperator::paintHorizontalGlyphAssembly): Ditto.

  • rendering/mathml/MathOperator.h: Added.

(WebCore::MathOperator::italicCorrection):
(WebCore::MathOperator::isStretched):
(WebCore::MathOperator::unstretch):
(WebCore::MathOperator::GlyphAssemblyData::GlyphAssemblyData): Moved from RenderMathMLOperator.
(WebCore::MathOperator::stretchSize):

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Updated to use MathOperator members.
For now we call setOperator to transmit information to m_mathOperator.
(WebCore::RenderMathMLOperator::updateStyle): Updated to use MathOperator members.
For now we set some m_mathOperator members to transmit it some information.
(WebCore::RenderMathMLOperator::firstLineBaseline): Updated to use MathOperator members.
(WebCore::RenderMathMLOperator::computeLogicalHeight): Ditto.
(WebCore::RenderMathMLOperator::paint): Ditto.
For now we set some m_mathOperator members to transmit it some information.
(WebCore::RenderMathMLOperator::paintChildren): Updated to use MathOperator members.
(WebCore::RenderMathMLOperator::trailingSpaceError): Ditto.
(WebCore::RenderMathMLOperator::getBaseGlyph): Deleted.
(WebCore::RenderMathMLOperator::setSizeVariant): Deleted.
(WebCore::RenderMathMLOperator::setGlyphAssembly): Deleted.
(WebCore::RenderMathMLOperator::calculateGlyphAssemblyFallBack): Deleted.
(WebCore::RenderMathMLOperator::calculateDisplayStyleLargeOperator): Deleted.
(WebCore::RenderMathMLOperator::calculateStretchyData): Deleted.
(WebCore::RenderMathMLOperator::paintGlyph): Deleted.
(WebCore::RenderMathMLOperator::fillWithVerticalExtensionGlyph): Deleted.
(WebCore::RenderMathMLOperator::fillWithHorizontalExtensionGlyph): Deleted.
(WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): Deleted.
(WebCore::RenderMathMLOperator::paintHorizontalGlyphAssembly): Deleted.

  • rendering/mathml/RenderMathMLOperator.h:

(WebCore::RenderMathMLOperator::italicCorrection): Updated to use MathOperator members.
(WebCore::RenderMathMLOperator::GlyphAssemblyData::GlyphAssemblyData): Deleted.

10:43 PM Changeset in webkit [201853] by barraclough@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

JSObject::reifyAllStaticProperties cleanup
https://bugs.webkit.org/show_bug.cgi?id=158543

Reviewed by Mark Lam.

  • JSObject & Structure contain fields labeled 'staticFunctionsReified', however reification now affects all properties, not just functions. Rename to 'staticPropertiesReified'.
  • reifyAllStaticProperties relies on a 'hasStaticProperties' method on ClassInfo that walks the ClassInfo inheritance chain looking for static property tables. We can now more efficiently get this information from TypeInfo.
  • reifyAllStaticProperties triggers a 'toUncacheableDictionaryTransition'; this is overzealous, cacheable dictionary is sufficient - this is what we do in the case of DOM prototype property reification (see 'reifyStaticProperties' in Lookup.h). (Changing this with an eye on switching
DOM prototype property reification to use JSObject
reifyAllStaticProperties, rather than having its own special purpose code path.)
  • runtime/ClassInfo.h:

(JSC::ClassInfo::hasStaticProperties): Deleted.

  • deprecated by TypeInfo::hasStaticPropertyTable.
  • runtime/JSObject.cpp:

(JSC::JSObject::putInlineSlow):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::getOwnNonIndexPropertyNames):

  • staticFunctionsReified -> staticPropertiesReified

(JSC::JSObject::reifyAllStaticProperties):

  • hasStaticProperties -> TypeInfo::hasStaticPropertyTable
  • toUncacheableDictionaryTransition -> toCacheableDictionaryTransition
  • staticFunctionsReified -> staticPropertiesReified
  • runtime/JSObject.h:

(JSC::JSObject::staticPropertiesReified):
(JSC::JSObject::staticFunctionsReified): Deleted.

  • runtime/Lookup.cpp:

(JSC::setUpStaticFunctionSlot):

  • runtime/Lookup.h:

(JSC::getStaticPropertySlotFromTable):
(JSC::replaceStaticPropertySlot):

  • runtime/Structure.cpp:

(JSC::Structure::Structure):

  • runtime/Structure.h:
    • staticFunctionsReified -> staticPropertiesReified
10:18 PM Changeset in webkit [201852] by Chris Dumez
  • 4 edits
    2 adds in trunk

DedicatedWorkerGlobalScope prototype chain is incorrect
https://bugs.webkit.org/show_bug.cgi?id=158544

Reviewed by Brady Eidson.

Source/WebCore:

There were several issues with the prototype chain of DedicatedWorkerGlobalScope:

  1. Object.getPrototypeOf(DedicatedWorkerGlobalScope.prototype) was not WorkerGlobalScope.prototype.
  2. WorkerGlobalScope.prototype was a DedicatedWorkerGlobalScopePrototype object and was equal to DedicatedWorkerGlobalScope.prototype.
  3. Object.getPrototypeOf(WorkerGlobalScope.prototype) was not EventTarget.prototype.

Those issues were identified by the following W3C web-platform-test:
http://w3c-test.org/workers/interfaces.worker

This patch fixes the issue so that the prototype chain is now as per the
specification.

Test: fast/workers/DedicatedWorkerGlobalScope-prototype-chain.html

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::initScript):

  • Stop creating the WorkerGlobalScopePrototype and let JSWorkerGlobalScope create it.
  • Set DedicatedWorkerGlobalScopePrototype's prototype to JSWorkerGlobalScope's prototype after creating the JSDedicatedWorkerGlobalScope object.
  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldUseGlobalObjectPrototype):
(GenerateHeader):
(GenerateImplementation):
(GenerateConstructorHelperMethods):

  • Do not use globalObject.getPrototypeDirect() as 'prototype' property for WorkerGlobalScope. The globalObject is a DedicatedWorkerGlobalScope, not a WorkerGlobalScope.
  • Generate the code to create / get a prototype object for WorkerGlobalScope.

LayoutTests:

Add test coverage for the DedicatedWorkerGlobalScope prototype chain.

  • fast/workers/DedicatedWorkerGlobalScope-prototype-chain-expected.txt: Added.
  • fast/workers/DedicatedWorkerGlobalScope-prototype-chain.html: Added.
10:09 PM Changeset in webkit [201851] by adam.bergkvist@ericsson.com
  • 17 edits
    4 adds in trunk

WebRTC: Imlement MediaEndpointPeerConnection::setRemoteDescription()
https://bugs.webkit.org/show_bug.cgi?id=158467

Reviewed by Eric Carlson.

Source/WebCore:

Implement MediaEndpointPeerConnection::setRemoteDescription() which verifies a
remote offer or answer, configures the WebRTC backend and dispatches the 'track' events
that represent the incoming media [1].

This change also updates the RTCTrackEvent [2] with a streams and a transceiver attribute.

[1] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#dom-rtcpeerconnection-setremotedescription
[2] https://w3c.github.io/webrtc-pc/archives/20160513/webrtc.html#rtctrackevent

Tests: fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html

fast/mediastream/RTCTrackEvent-constructor.html

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::createSourceMap):
(WebCore::MediaEndpointPeerConnection::setLocalDescriptionTask):
(WebCore::MediaEndpointPeerConnection::setRemoteDescription):
(WebCore::MediaEndpointPeerConnection::setRemoteDescriptionTask):
Implemented.
(WebCore::MediaEndpointPeerConnection::remoteDescription):
(WebCore::MediaEndpointPeerConnection::currentRemoteDescription):
(WebCore::MediaEndpointPeerConnection::pendingRemoteDescription):
(WebCore::MediaEndpointPeerConnection::remoteDescriptionTypeValidForState):
(WebCore::MediaEndpointPeerConnection::internalRemoteDescription):

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::addTransceiver):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCRtpReceiver.h:

(WebCore::RTCRtpReceiver::isDispatched):
(WebCore::RTCRtpReceiver::setDispatched):

  • Modules/mediastream/RTCTrackEvent.cpp:

(WebCore::RTCTrackEvent::create):
(WebCore::RTCTrackEvent::RTCTrackEvent):

  • Modules/mediastream/RTCTrackEvent.h:

(WebCore::RTCTrackEvent::streams):
(WebCore::RTCTrackEvent::transceiver):

  • Modules/mediastream/RTCTrackEvent.idl:

Add streams and transceiver attributes.

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

  • bindings/js/JSDictionary.h:
  • platform/mediastream/MediaEndpoint.h:
  • platform/mock/MockMediaEndpoint.cpp:

(WebCore::MockMediaEndpoint::filterPayloads):
(WebCore::MockMediaEndpoint::updateSendConfiguration):

  • platform/mock/MockMediaEndpoint.h:

LayoutTests:

Add tests for RTCPeerConnection.setRemoteDescription() and the RTCTrackEvent constructor.

  • fast/mediastream/RTCPeerConnection-setRemoteDescription-offer-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-setRemoteDescription-offer.html: Added.

Verify the description set, the expected RTCPeerConnection state changes and that the
'track' event is fired before the setRemoteDescription() promise fulfills.

  • fast/mediastream/RTCTrackEvent-constructor-expected.txt: Added.
  • fast/mediastream/RTCTrackEvent-constructor.html: Added.

This test has some expected failures since the bindings generator don't support 'required'
dictionary members for event init dictionaries.

  • platform/mac/TestExpectations:

Skip tests for mac that require building with WEB_RTC enabled.

10:07 PM Changeset in webkit [201850] by Brent Fulgham
  • 3 edits
    10 adds in trunk

Perform IDNA encoding on parameters for setHostAndPort and setHost
https://bugs.webkit.org/show_bug.cgi?id=158371
<rdar://problem/16869342>

Patch by John Wilander <wilander@apple.com> on 2016-06-08
Reviewed by Brent Fulgham.

Source/WebCore:

Tests: fast/dom/set-document-location-host-to-unaccepted-values.html

fast/dom/set-document-location-hostname-to-unaccepted-values.html
http/tests/dom/set-document-location-host-to-accepted-values.html
http/tests/dom/set-document-location-hostname-to-accepted-values.html

  • platform/URL.cpp:

(WebCore::containsOnlyASCII):

Moved up to enable usage in URL::setHost and URL::setHostAndPort.

(WebCore::appendEncodedHostname):

Moved up to enable usage in URL::setHost and URL::setHostAndPort.

(WebCore::URL::setHost):

Now disallows the colon character, does IDNA encoding, and uses StringBuilder.

(WebCore::URL::setHostAndPort):

Now disallows multiple colons, disallows non-numeric ports, disallows the empty
string, does IDNA encoding, and uses StringBuilder.

LayoutTests:

  • fast/dom/resources/set-document-location-iframe.html: Added.
  • fast/dom/set-document-location-host-to-unaccepted-values-expected.txt: Added.
  • fast/dom/set-document-location-host-to-unaccepted-values.html: Added.
  • fast/dom/set-document-location-hostname-to-unaccepted-values-expected.txt: Added.
  • fast/dom/set-document-location-hostname-to-unaccepted-values.html: Added.
  • http/tests/dom/resources/set-document-location-iframe.html: Added.
  • http/tests/dom/set-document-location-host-to-accepted-values-expected.txt: Added.
  • http/tests/dom/set-document-location-host-to-accepted-values.html: Added.
  • http/tests/dom/set-document-location-hostname-to-accepted-values-expected.txt: Added.
  • http/tests/dom/set-document-location-hostname-to-accepted-values.html: Added.
7:41 PM Changeset in webkit [201849] by Hunseop Jeong
  • 2 edits in trunk/Tools

Try to fix the EFL build.

Unreviewed.

  • TestWebKitAPI/CMakeLists.txt:
7:05 PM Changeset in webkit [201848] by benjamin@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Change thresholdForOptimizeSoon to match thresholdForOptimizeAfterWarmUp

Unreviewed.

This adds back the assertion removed in r201845.
Making those threshold equal is completely perf neutral
(on Haswell rMBP with 20 runs).

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-08

  • runtime/Options.cpp:

(JSC::Options::initialize):

  • runtime/Options.h:
6:00 PM Changeset in webkit [201847] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix WinCairo build

  • DumpRenderTree/cairo/PixelDumpSupportCairo.h:
5:49 PM Changeset in webkit [201846] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix WinCairo build.

  • platform/network/curl/MultipartHandle.cpp:

(WebCore::MultipartHandle::didReceiveResponse):

5:41 PM Changeset in webkit [201845] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Tempory fix for the debug bots

Unreviewed.

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-08

  • runtime/Options.cpp:

(JSC::Options::initialize):
Weaken an assertion while I test values for thresholdForOptimizeSoon.

4:19 PM Changeset in webkit [201844] by achristensen@apple.com
  • 4 edits in trunk

Source/WebCore:
Fix WinCairo build.

  • platform/network/curl/MultipartHandle.cpp:

(WebCore::MultipartHandle::didReceiveResponse):

Tools:
Fix WinCairo build

  • DumpRenderTree/cairo/PixelDumpSupportCairo.h:

(BitmapContext::createByAdoptingBitmapAndContext):
(BitmapContext::~BitmapContext):

4:17 PM Changeset in webkit [201843] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: an error is encountered when trying to delete nodes that have children
https://bugs.webkit.org/show_bug.cgi?id=158541
<rdar://problem/26705901>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype.adjustCollapsedRange):
Offset into the array variable instead of a variable holding its length.

4:11 PM Changeset in webkit [201842] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline js/dom/global-constructors-attributes.html for Mac after r201810

Unreviewed test gardening.

  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
4:09 PM Changeset in webkit [201841] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

With audio user gesture restriction in place, video.src = 'file', video.play() succeeds where it should fail.
https://bugs.webkit.org/show_bug.cgi?id=158546

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/video-playback-restriction-play-before-load.html

Don't check that the media element isPlaying(); that will only return true if playback has begun.
Instead, check !paused(), as that will be true as soon as the play() method returns.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
(WebCore::HTMLMediaElement::updateShouldPlay):

  • rendering/RenderLayer.h:

LayoutTests:

  • media/video-playback-restriction-play-before-load-expected.txt: Added.
  • media/video-playback-restriction-play-before-load.html: Added.
4:04 PM Changeset in webkit [201840] by BJ Burg
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: DOMTreeOutline selection areas should be created and updated lazily
https://bugs.webkit.org/show_bug.cgi?id=158513
<rdar://problem/26689646>

Reviewed by Timothy Hatcher.

Selection areas for DOMTreeElements are used for several things: drag markers,
element hover styles, element selection styles, and showing forced pseudo states
for an element. Fortunately it's easy to tell when any of these things is necessary.

Change DOMTreeOutline and DOMTreeElement so they don't create selection areas
unless they are needed for one of these tasks. This significantly reduces
forced layouts that are required to update the selection area height in case the
element has new attributes that cause the tag to become more or less wrapped.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype.set hovered):
Modernize this method a bit.

(WebInspector.DOMTreeElement.prototype.updateSelectionArea):
If a selection area is not necessary, don't create one.
If one exists and it's not needed, then remove it.

(WebInspector.DOMTreeElement.prototype.onattach):
Remove redundant calls to updateSelection(). This is already called in
updateTitle().

(WebInspector.DOMTreeElement.prototype.onselect):
Ask the DOMTreeOutline to update the selection rather than forcing the
element to do it. This is consistent with other updates to user selection.

(WebInspector.DOMTreeElement.prototype._insertInLastAttributePosition):
(WebInspector.DOMTreeElement.prototype._startEditingAsHTML.dispose):
(WebInspector.DOMTreeElement.prototype._startEditingAsHTML):
Use renamed method.

(WebInspector.DOMTreeElement.prototype.updateTitle):
Add a comment to explain why the selection area is nulled out here.

(WebInspector.DOMTreeElement.prototype.get pseudoClassesEnabled):
(WebInspector.DOMTreeElement.prototype._nodePseudoClassesDidChange):
Update the selection area in case one does not exist for this tree element.
The indicator for forced pseudo classes is a pseudo element of the selection area.

(WebInspector.DOMTreeElement.prototype.updateSelection): Renamed.
(WebInspector.DOMTreeElement.prototype.onexpand):
(WebInspector.DOMTreeElement.prototype.oncollapse):
Remove redundant calls to updateSelection(). This is already called in
updateTitle().

  • UserInterface/Views/DOMTreeOutline.css:

(.tree-outline.dom):
(.tree-outline.dom li.hovered:not(.selected) .selection-area):
(.tree-outline.dom li .selection-area):
(.tree-outline.dom li.selected .selection-area):
(.tree-outline.dom li.elements-drag-over .selection-area):
(.tree-outline.dom:focus li.selected .selection-area):
(.tree-outline.dom li.pseudo-class-enabled > .selection-area::before):
(.tree-outline.dom:focus li.selected.pseudo-class-enabled > .selection-area::before):
(.tree-outline.dom li.hovered:not(.selected) .selection): Deleted.
(.tree-outline.dom li .selection): Deleted.
(.tree-outline.dom li.selected .selection): Deleted.
(.tree-outline.dom li.elements-drag-over .selection): Deleted.
(.tree-outline.dom:focus li.selected .selection): Deleted.
(.tree-outline.dom li.pseudo-class-enabled > .selection::before): Deleted.
(.tree-outline.dom:focus li.selected.pseudo-class-enabled > .selection::before): Deleted.
Rename the selector to be less ambiguous.

  • UserInterface/Views/DOMTreeOutline.js:

(WebInspector.DOMTreeOutline.prototype.updateSelection): Simplify. The call
to update the selection area will bail out if there is nothing to be done.

(WebInspector.DOMTreeOutline.prototype.findTreeElement):
(WebInspector.DOMTreeOutline.prototype._onmousemove):
(WebInspector.DOMTreeOutline.prototype._onmouseout):
Clean up and use let and arrow functions.

(WebInspector.DOMTreeOutline.prototype._ondragover):
(WebInspector.DOMTreeOutline.prototype._clearDragOverTreeElementMarker):
Clear the dragging element before updating the selection area since it looks at
the dragging element to determine whether anything needs to be done.

  • UserInterface/Views/FormattedValue.css:

(.formatted-node > .tree-outline.dom li.hovered:not(.selected) .selection-area):
(.formatted-node > .tree-outline.dom li.hovered:not(.selected) .selection): Deleted.
Rename the selector to be less ambiguous.

4:02 PM Changeset in webkit [201839] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Uncaught Exception in TimelineDataGrid._updatePopoverForSelectedNode()
https://bugs.webkit.org/show_bug.cgi?id=158502
<rdar://problem/26687038>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid.prototype._updatePopoverForSelectedNode):
It appears that this expression was moved around since it accesses
targetFrame before it's initialized. Check rect.size.height directly.

3:35 PM Changeset in webkit [201838] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

_web_didAddMediaControlsManager should take a controlsManager as a parameter
https://bugs.webkit.org/show_bug.cgi?id=158545

Reviewed by Tim Horton.

  • UIProcess/Cocoa/WebViewImpl.h:
3:27 PM Changeset in webkit [201837] by achristensen@apple.com
  • 10 edits in trunk/Source/WebCore

Modernize WebSocket code
https://bugs.webkit.org/show_bug.cgi?id=158539

Reviewed by Brady Eidson.

No new tests, no change in behavior.

  • Modules/websockets/ThreadableWebSocketChannel.cpp:

(WebCore::ThreadableWebSocketChannel::create):

  • Modules/websockets/ThreadableWebSocketChannel.h:

(WebCore::ThreadableWebSocketChannel::ThreadableWebSocketChannel):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
(WebCore::ThreadableWebSocketChannelClientWrapper::create):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::WebSocketChannel):

  • Modules/websockets/WebSocketChannel.h:

(WebCore::WebSocketChannel::create):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::WorkerThreadableWebSocketChannel):
(WebCore::WorkerThreadableWebSocketChannel::subprotocol):
(WebCore::WorkerThreadableWebSocketChannel::extensions):
(WebCore::WorkerThreadableWebSocketChannel::resume):
(WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
(WebCore::WorkerThreadableWebSocketChannel::Peer::send):
(WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::~Bridge):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::close):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::setMethodNotCompleted):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion):

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:

(WebCore::WorkerThreadableWebSocketChannel::create):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::create):

3:22 PM Changeset in webkit [201836] by commit-queue@webkit.org
  • 5 edits in trunk

[JSC] Change some parameters based on a random search
https://bugs.webkit.org/show_bug.cgi?id=158514

Source/JavaScriptCore:

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-06-08
Reviewed by Filip Pizlo.

Over the weekend, I left an iMac running the JSC benchmarks
while changing a bunch of parameters.

The parameters were changed randomly, with a random deviation
from the original value.
To converge toward good values, the range was subject
to exponential annealing over time.

The values in this patch is the best outcome my iMac could
find over the weekend. It is about 1% better on the Haswell
machines I tested.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::optimizationThresholdScalingFactor):

  • runtime/Options.h:

Tools:

Patch by Benjamin Poulain <benjamin@webkit.org> on 2016-06-08
Reviewed by Filip Pizlo.

  • Scripts/run-jsc-stress-tests:
3:14 PM Changeset in webkit [201835] by Chris Dumez
  • 6 edits
    2 adds in trunk

First parameter to MessagePort / DedicatedWorkerGlobalScope.postMessage() should be mandatory
https://bugs.webkit.org/show_bug.cgi?id=158540

Reviewed by Geoffrey Garen.

Source/WebCore:

First parameter to MessagePort / DedicatedWorkerGlobalScope.postMessage() should be mandatory:

Previously, WebKit send a bogus MessageEvent whose data attribute is undefined. This would
cause a testharness error when running the following W3C test:

Firefox and Chrome already correctly throw in this case. Our Window.postMessage() API is also
already throwing in this case.

Test: fast/workers/postMessage-missing-parameter.html

  • bindings/js/JSMessagePortCustom.h:

(WebCore::handlePostMessage):

LayoutTests:

Add test coverage.

  • fast/files/workers/inline-worker-via-blob-url.html:
  • fast/workers/postMessage-missing-parameter-expected.txt: Added.
  • fast/workers/postMessage-missing-parameter.html: Added.
  • fast/workers/worker-messageport-expected.txt:
  • fast/workers/worker-messageport.html:
2:49 PM Changeset in webkit [201834] by barraclough@apple.com
  • 6 edits in trunk/Source

Remove removeDirect
https://bugs.webkit.org/show_bug.cgi?id=158516

Reviewed by Ryosuke Niwa.

removeDirect is typically used as a subroutine of deleteProperty, but is also available to
call directly. Having this functionality factored out to a separate routine is a bad idea
on a couple of fronts:

  • for the main use within deleteProperty there is redundancy (presence of the property was being checked twice) and inconsistency (the two functions returned different results in the case of a nonexistent property; the result from removeDirect was never observed).
  • all uses of removeDirect are in practical terms incorrect. removeDirect had the advantage of ignoring the configurable (DontDelete) attributes, but this is achievable using the DeletePropertyMode setting - and the disadvantage of failing delete static table properties. Last uses were one that was removed in bug #158295 (where failure to delete static properties was a problem), and as addressed in this patch removeDirect is being used to implement runtime enabled features. This only works because we currently force reification of all properties on the DOM prototype objects, so in effect there are no static properties. In order to make the code robust such that runtime enabled features would still work even if we were not reifying static properties (a change we may want to make) we should be calling deleteProperty in this case too.

Source/JavaScriptCore:

  • runtime/JSObject.cpp:

(JSC::JSObject::deleteProperty):

  • incorporated removeDirect functionality, added comments & ASSERT.

(JSC::JSObject::removeDirect): Deleted.

  • removed.
  • runtime/JSObject.h:
    • removed removeDirect.

Source/WebCore:

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • changed to call deleteProperty instead of removeDirect.
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObjPrototype::finishCreation):

  • updated bindings test results.
2:17 PM Changeset in webkit [201833] by BJ Burg
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: reduce redundant attribute modification updates in DOMTreeUpdater and DOMTreeElement
https://bugs.webkit.org/show_bug.cgi?id=158504
<rdar://problem/25561452>

Reviewed by Timothy Hatcher.

When the frontend gets lots of DOM.attributeModified events, it forwards these on to
DOMTreeUpdater, which pushes a record for every single modification. It then updates
the DOM elements with the attibute changes on an animation frame. However, since it
doesn't do any deduplication of the modification records, a lot of time is wasted
on updating DOMTreeElements with intermediate (non-final) attribute values.

This patch rewrites DOMTreeUpdater to precisely track which nodes and attributes
of each node need to be updated on the next animation frame. This is done using
Sets and Maps that only hold onto the most recent attribute values rather than
pushing a record object for every single mutation.

This improves the performance of the Elements tab on an SVG particle simulator
dramatically so that the Inspector will not immediately hang. It still only achieves
a few updates per second in this case, so there is still optimization to be done on
the frontend and throttling to be done on the backend.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement):
(WebInspector.DOMTreeElement.prototype.attributeDidChange):
(WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
(WebInspector.DOMTreeElement.prototype._markNodeChanged):
(WebInspector.DOMTreeElement.prototype._nodeChangedAnimationEnd):
(WebInspector.DOMTreeElement.prototype._fireDidChange):
(WebInspector.DOMTreeElement.prototype.nodeStateChanged): Deleted.
Simplify the list of modified attributes a little bit. This still uses a worklist
approach, so it's possible that duplicate updates for the same attribute could accumulate
if DOMTreeUpdater pushes updates faster than DOMTreeElement can render them.

  • UserInterface/Views/DOMTreeUpdater.js:

(WebInspector.DOMTreeUpdater):
(WebInspector.DOMTreeUpdater.prototype._attributesUpdated):
(WebInspector.DOMTreeUpdater.prototype._characterDataModified):
(WebInspector.DOMTreeUpdater.prototype._nodeAttributeModified):
(WebInspector.DOMTreeUpdater.prototype._nodeInserted):
(WebInspector.DOMTreeUpdater.prototype._nodeRemoved):
(WebInspector.DOMTreeUpdater.prototype._childNodeCountUpdated):
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
(WebInspector.DOMTreeUpdater.prototype._reset):
Rewrite this class to separately track insertions, deletions, and modifications. Use
Sets and Maps so redundant entries are not kept around. Split the main work loop
and use fewer enum-like properties to control how each DOM element change is handled.

Attempt to update all inserted children before modifying their attributes. This
wasn't done previously, but enough duplicate attribute modifications occurred that
usually some of them would be processed after being added to the tree. There is only
one chance to do this now.

2:15 PM Changeset in webkit [201832] by n_wang@apple.com
  • 10 edits
    2 adds in trunk

For keyboard users, activating a fragment URL should transfer focus and caret to the destination
https://bugs.webkit.org/show_bug.cgi?id=116046

Reviewed by Ryosuke Niwa.

Source/WebCore:

Added a sequential focus navigation starting node to document. When TAB or SHIFT-TAB is pressed
and there is no focused element, we start searching for next focus candidates at the sequential
focus navigation node.
Spec: https://html.spec.whatwg.org/multipage/interaction.html#sequential-focus-navigation-starting-point

Test: fast/events/sequential-focus-navigation-starting-point.html

  • dom/Document.cpp:

(WebCore::Document::removedLastRef):
(WebCore::Document::destroyRenderTree):
(WebCore::Document::styleResolverChanged):
(WebCore::isNodeInSubtree):
(WebCore::Document::removeFocusedNodeOfSubtree):
(WebCore::Document::hoveredElementDidDetach):
(WebCore::Document::setFocusedElement):
(WebCore::shouldResetFocusNavigationStartingNode):
(WebCore::Document::setFocusNavigationStartingNode):
(WebCore::Document::focusNavigationStartingNode):
(WebCore::Document::setCSSTarget):
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):
(WebCore::fallbackFocusNavigationStartingNodeAfterRemoval):
(WebCore::Document::removeFocusNavigationNodeOfSubtree):
(WebCore::Document::textInserted):

  • dom/Document.h:

(WebCore::Document::userActionElements):

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):

  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollToAnchor):

LayoutTests:

Added a layout test to check that mouse pressing, fragment navigation, focusing an element and removing
the focused element will give us the expected focus navigation starting point.

Also updated the fragment activation test because now that navigating to an unfocusable fragment will
unfocus the current focused element.

  • fast/dom/fragment-activation-focuses-target-expected.txt:
  • fast/dom/fragment-activation-focuses-target.html:
  • fast/events/sequential-focus-navigation-starting-point-expected.txt: Added.
  • fast/events/sequential-focus-navigation-starting-point.html: Added.
  • platform/ios-simulator/TestExpectations:
2:07 PM Changeset in webkit [201831] by eric.carlson@apple.com
  • 4 edits
    2 adds in trunk/Source/WebCore

HTMLMediaElement.prototype.canPlayType accounting for 250-750ms first loading theverge.com
https://bugs.webkit.org/show_bug.cgi?id=158335
<rdar://problem/26615416>

Reviewed by Brent Fulgham.

  • WebCore.xcodeproj/project.pbxproj: Add AVFoundationMIMETypeCache.
  • platform/graphics/avfoundation/objc/AVFoundationMIMETypeCache.h: Added.
  • platform/graphics/avfoundation/objc/AVFoundationMIMETypeCache.mm: Added.

(WebCore::AVFoundationMIMETypeCache::AVFoundationMIMETypeCache):
(WebCore::AVFoundationMIMETypeCache::loadTypes):
(WebCore::AVFoundationMIMETypeCache::types):
(WebCore::AVFoundationMIMETypeCache::singleton):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Start MIME type loading.
(WebCore::MediaPlayerPrivateAVFoundationObjC::getSupportedTypes): Use AVFoundationMIMETypeCache.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem): Ditto.
(WebCore::avfMIMETypes): Deleted.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine): Start MIME type loading.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::isAvailable): Use AVFoundationMIMETypeCache.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::getSupportedTypes): Ditto.
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): Ditto.
(WebCore::mimeTypeCache): Deleted.

1:59 PM Changeset in webkit [201830] by mark.lam@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Simplify Interpreter::StackFrame.
https://bugs.webkit.org/show_bug.cgi?id=158498

Reviewed by Saam Barati.

Previously, Interpreter::StackFrame (which is used to capture info for
Error.stack) eagerly extracts info out of CodeBlock and duplicates the work that
CodeBlock does to compute line and column numbers (amongst other things).

This patch does away with the eager extraction and only stashes the CodeBlock
pointer in the Interpreter::StackFrame. Instead, Interpreter::StackFrame will
provide methods for computing the desired values on request later.

One difference in implementation: the old StackFrame offers a sourceURL and a
friendlySourceURL(). The only difference between the 2 is that for native
functions, sourceURL returns an empty string, and friendlySourceURL() returns
"[native code]". This is how it affects the clients of StackFrame:

  • In the old code, the Error object's addErrorInfoAndGetBytecodeOffset() and the inspector's createScriptCallStackFromException() would check if sourceURL is empty. If so, they will use this as an indicator to use alternate source info in the Error object e.g. url and line numbers from the parser that produced a SyntaxError.
  • In the new implementation, StackFrame only has a sourceURL() function that behaves like the old friendlySourceURL(). The client code which were relying on sourceURL being empty, will now explicitly check if the StackFrame is for native code using a new isNative() query in addition to the sourceURL being empty. This achieve functional parity with the old behavior.

Also fix Error.cpp's addErrorInfoAndGetBytecodeOffset() to take a bytecodeOffset
pointer instead of a reference. The bytecodeOffset arg is supposed to be
optional, but was implemented in a unclear way. This change clarifies it.

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::createScriptCallStackFromException):

  • interpreter/Interpreter.cpp:

(JSC::StackFrame::sourceID):
(JSC::StackFrame::sourceURL):
(JSC::StackFrame::functionName):
(JSC::eval):
(JSC::Interpreter::isOpcode):
(JSC::StackFrame::computeLineAndColumn):
(JSC::StackFrame::toString):
(JSC::GetStackTraceFunctor::operator()):
(JSC::StackFrame::friendlySourceURL): Deleted.
(JSC::StackFrame::friendlyFunctionName): Deleted.
(JSC::getStackFrameCodeType): Deleted.
(JSC::StackFrame::expressionInfo): Deleted.

  • interpreter/Interpreter.h:

(JSC::StackFrame::isNative):

  • runtime/Error.cpp:

(JSC::addErrorInfoAndGetBytecodeOffset):
(JSC::addErrorInfo):

  • runtime/Error.h:
  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::finishCreation):

1:56 PM Changeset in webkit [201829] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r158219): Web Inspector: Border under the default Timeline content view is too thick
https://bugs.webkit.org/show_bug.cgi?id=158533

Reviewed by Timothy Hatcher.

  • UserInterface/Views/OverviewTimelineView.css:

(.timeline-view.overview > .data-grid th): Deleted.

1:43 PM Changeset in webkit [201828] by rniwa@webkit.org
  • 1 edit
    2 adds in trunk/Websites/perf.webkit.org

sync-buildbot.js should update the list of tests and platforms associated with a triggerable
https://bugs.webkit.org/show_bug.cgi?id=158406

Reviewed by Chris Dumez.

Add /api/update-triggerable and a test for it, which were supposed to be added in r201718
but for which I forgot to run svn add.

  • public/api/update-triggerable.php: Added.

(main):

  • server-tests/api-update-triggerable.js: Added.
1:21 PM Changeset in webkit [201827] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Command-W should not close Web Inspector tabs; it should close the window
https://bugs.webkit.org/show_bug.cgi?id=158538
rdar://problem/26699215

Reviewed by Brian Burg.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser): Change shortcut to Command-Shift-W.

12:50 PM Changeset in webkit [201826] by Chris Dumez
  • 2 edits
    2 adds in trunk/LayoutTests/imported/w3c

Import new AddEventListenerOptions test from W3C web-platform-tests
https://bugs.webkit.org/show_bug.cgi?id=158535

Reviewed by Ryosuke Niwa.

Import new AddEventListenerOptions test from W3C web-platform-tests.

  • web-platform-tests/dom/events/AddEventListenerOptions-passive-expected.txt: Added.
  • web-platform-tests/dom/events/AddEventListenerOptions-passive.html: Added.
  • web-platform-tests/dom/events/EventListenerOptions-capture.html:
12:40 PM Changeset in webkit [201825] by keith_miller@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

We should be able to lookup symbols by identifier in builtins
https://bugs.webkit.org/show_bug.cgi?id=158530

Reviewed by Mark Lam.

This patch allows us to lookup the value of a symbol property on a
object by identifier in builtins. Before, it was only possible to
do so if we were directly emitting the bytecodes, such as in a
for-of loop looking for Symbol.iterator. As we tier up we convert
the builtin's get_by_val symbol lookups into get_by_id
lookups. However, there is still a significant performance
difference between get_by_id and get_by_val in the LLInt, where
this transformation does not take place.

In order to make this work we hijack BuiltinNames'
m_publicToPrivateMap so that it points the @<symbol>Symbol to the
appropriate vm symbol. This way when we lex the identifier it will
become the appropriate symbol's identifier. Currently, if the
symbol is used to name a property in an object literal we will not
keep a cache of the Symbol objects we have already seen. We could
add a map for symbols but since we can only load symbols by
identifier in builtins its likely not worth it. Additionally, even
in builtins it is extremely rare to use Symbols in object
literals.

  • builtins/ArrayConstructor.js:

(from):

  • builtins/ArrayPrototype.js:

(filter):
(map):

  • builtins/BuiltinNames.h:

(JSC::BuiltinNames::BuiltinNames):

  • builtins/BuiltinUtils.h:
  • builtins/GlobalObject.js:

(speciesConstructor):

  • builtins/StringPrototype.js:

(match):
(intrinsic.StringPrototypeReplaceIntrinsic.replace):
(search):
(split):

  • builtins/TypedArrayConstructor.js:

(from):

  • builtins/TypedArrayPrototype.js:

(map):
(filter):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry): Deleted.

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitLoad):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseInner):

12:20 PM Changeset in webkit [201824] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

12:19 PM Changeset in webkit [201823] by rniwa@webkit.org
  • 16 edits in trunk
REGRESSION (r201667): ASSERTION FAILED: !m_anchorNode
!editingIgnoresContent(*m_anchorNode)

https://bugs.webkit.org/show_bug.cgi?id=158373
Source/WebCore:

<rdar://problem/26690795>

Reviewed by Brent Fulgham.

The bug was caused by VisibleSelection::toNormalizedRange calling parentAnchoredEquivalent on an orphaned Position.
Fixed it by checking that condition and exiting early since we can't create a Range with a detached node anyway.

Also renamed isNonOrphanedCaretOrRange to isNoneOrOrphaned after negating the semantics for clarity.

Test: editing/selection/selection-in-iframe-removed-crash.html

  • editing/EditorCommand.cpp:

(WebCore::valueFormatBlock):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance):

  • editing/InsertLineBreakCommand.cpp:

(WebCore::InsertLineBreakCommand::doApply):

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApply):

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::doApply):

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::doApply):

  • editing/RemoveFormatCommand.cpp:

(WebCore::RemoveFormatCommand::doApply):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::doApply):

  • editing/SetSelectionCommand.cpp:

(WebCore::SetSelectionCommand::doApply):
(WebCore::SetSelectionCommand::doUnapply):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::doApply):

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::firstRange): Also added a check for isNoneOrOrphaned since this function can hit the same
assertion when the selection end points are orphaned.
(WebCore::VisibleSelection::toNormalizedRange): Fixed the bug.

  • editing/VisibleSelection.h:

(WebCore::VisibleSelection::isNoneOrOrphaned): Renamed from isNonOrphanedCaretOrRange and negated the semantics.

LayoutTests:

Reviewed by Brent Fulgham.

Fixed a test so that the assertion failure happens within the test instead of affecting the subsequent test.

  • editing/selection/selection-in-iframe-removed-crash-expected.txt:
  • editing/selection/selection-in-iframe-removed-crash.html:
12:18 PM Changeset in webkit [201822] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.36

New tag.

12:17 PM Changeset in webkit [201821] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

tests fail if display sleeps while run-webkit-tests is running
https://bugs.webkit.org/show_bug.cgi?id=153919

Reviewed by Alexey Proskuryakov.

  • DumpRenderTree/mac/LayoutTestHelper.m:

(releaseSleepAssertions): Release both Display sleep and System sleep assertions.
(addSleepAssertions): Add sleep assertion for both Display sleep and System sleep.

11:52 AM Changeset in webkit [201820] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking css3/filters/backdrop/dynamic-backdrop-filter-change.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=158534

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:47 AM Changeset in webkit [201819] by Lucas Forschler
  • 2 edits in trunk/Tools

Reverted changeset 201814.

  • Scripts/copy-webkitlibraries-to-product-directory:
11:46 AM Changeset in webkit [201818] by dino@apple.com
  • 5 edits
    2 adds in trunk

Multiple selectors break keyframes animation
https://bugs.webkit.org/show_bug.cgi?id=158199
<rdar://problem/26652591>

Reviewed by Simon Fraser.

Source/WebCore:

If we came across a duplicate key entry in a keyframe, we
were replacing the existing entry, instead of merging.

Test: animations/duplicate-keys.html

  • css/CSSKeyframeRule.h:

(WebCore::StyleKeyframe::setKey): Add a way to set the key of a rule
as a number, rather than going through a string and the CSS parser.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::keyframeStylesForAnimation): Check if the rule
has duplicates, and if it does, merge all the common entries.

  • rendering/style/KeyframeList.cpp:

(WebCore::KeyframeList::insert): Now that we've removed duplicates at
the processing time, we should never come across a duplicate while
building this list.

LayoutTests:

  • animations/duplicate-keys-expected.html: Added.
  • animations/duplicate-keys.html: Added.
11:45 AM Changeset in webkit [201817] by peavo@outlook.com
  • 12 edits in trunk

[Win] Shadow DOM tests are failing.
https://bugs.webkit.org/show_bug.cgi?id=158524

Reviewed by Brent Fulgham.

.:

Enable Shadow DOM.

  • Source/cmake/OptionsWin.cmake:

Source/WebKit/win:

Add preference for enabling Shadow DOM.

  • Interfaces/IWebPreferencesPrivate.idl:
  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::shadowDOMEnabled):
(WebPreferences::setShadowDOMEnabled):

  • WebPreferences.h:
  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

Enable Shadow DOM when running tests.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(resetWebPreferencesToConsistentValues):

LayoutTests:

Update test expectations for Shadow DOM.

  • platform/win/TestExpectations:
11:45 AM Changeset in webkit [201816] by Ryan Haddad
  • 3 edits in trunk/Source/WebCore

Rebaseline bindings tests after r201808

Unreviewed test gardening.

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::finishCreation):

  • bindings/scripts/test/JS/JSTestGlobalObject.h:
11:37 AM Changeset in webkit [201815] by Lucas Forschler
  • 5 edits in trunk

Teach cmake about libWebKitSystemInterfaceOSX10.12
Source/WebCore:


Rubber-stamped by Matt Hanson and Alex Christensen.

  • PlatformMac.cmake:

Tools:

This patch also removes duplicated logic inside DumpRenderTree/PlatformMac.cmake

Rubber-stamped by Alex Christensen.

  • DumpRenderTree/PlatformMac.cmake:
  • WebKitTestRunner/PlatformMac.cmake:
11:25 AM Changeset in webkit [201814] by Lucas Forschler
  • 2 edits in trunk/Tools

<rdar://problem/26685782>
Teach the copy-webkitlibraries-to-product-directory script about WebKitSystemInterfaceOSX10.12

Rubber-stamped by Jessie Berlin.

  • Scripts/copy-webkitlibraries-to-product-directory:
11:13 AM Changeset in webkit [201813] by fpizlo@apple.com
  • 10 edits in trunk/PerformanceTests

Use more ES6 features in JSAir
https://bugs.webkit.org/show_bug.cgi?id=158497

Reviewed by Keith Miller.

This improves JSAir with the following ES6 features suggested by JoePeck:

  • String interpolation.
  • Destructuring inside PatchCustom.
  • Default arguments.


All of these things are on hot paths.

Note that I didn't use string interpolation everywhere that I could, only in those places
where it made the code more readable. In Ruby, I used the style that if the interpolation
expression has any non-trivial stuff (like a ternary operator, a chain of calls, or embedded
strings) then it's better to use regular strcat. I think that's what I carried over to here.

Note that the previous change (Add result validation to JSAir) also made the Proxy code not
dead, though it's not necessarily on the hot path. The Proxy isn't called into frequently
but it's used from a function that is otherwise hot, so if calling into the Proxy prevents
that function from being optimized then it will hurt so good.

I also reenabled tail calls in a few places.

This change doesn't seem to change the performance of the benchmark for us. That's expected
since these ES6 features are cheap. Note that this claim doesn't include Proxy, which was
added in a separate change and that change did make the benchmark overall more expensive.

  • JSAir/allocate_stack.js:

(allocateStack):

  • JSAir/arg.js:

(Arg.createBitImm64):
(Arg.createAddr):
(Arg.createStack):
(Arg.logScale):
(Arg.createIndex):

  • JSAir/basic_block.js:

(BasicBlock.get headerString):
(BasicBlock.prototype.get if):
(BasicBlock):

  • JSAir/benchmark.js:

(benchmark):

  • JSAir/code.js:

(Code):
(Code.prototype.addBlock):
(Code.prototype.addStackSlot):
(Code.prototype.newTmp):
(Code.prototype.get size):
(Code.prototype.get blocks):
(Code.prototype.get stackSlots):
(Code.prototype.tmps):
(Code.prototype.get callArgAreaSize):
(Code.prototype.toString):

  • JSAir/custom.js:

(const.PatchCustom.forEachArg):

  • JSAir/inst.js:

(Inst):

  • JSAir/reg.js:

(Reg.prototype.toString):

  • JSAir/util.js:

(symbolName):
(lowerSymbolName):

11:03 AM Changeset in webkit [201812] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Don't try to cleanup non-existing ios Simulators
https://bugs.webkit.org/show_bug.cgi?id=158510

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort.clean_up_test_run):
Check if simulator exists before trying to clean it up.

10:46 AM Changeset in webkit [201811] by beidson@apple.com
  • 2 edits in trunk/Tools

Try to fix the Windows build.

Unreviewed.

  • TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp:

(TestWebKitAPI::LifetimeLogger::log):
(TestWebKitAPI::LifetimeLogger::takeLogStr):
(TestWebKitAPI::testFunction):
(TestWebKitAPI::TEST):
(TestWebKitAPI::log): Deleted. (VS was seeing it as a dupe symbol)
(TestWebKitAPI::takeLogStr): Deleted. (VS was seeing it as a dupe symbol)

10:32 AM Changeset in webkit [201810] by commit-queue@webkit.org
  • 28 edits
    10 copies
    5 adds in trunk

[web-animations] Add Animatable, AnimationEffect, KeyframeEffect and Animation interface
https://bugs.webkit.org/show_bug.cgi?id=156096

Patch by Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> on 2016-06-08
Reviewed by Dean Jackson.

Adds:
Source/JavaScriptCore:

  • Animatable interface and implementation of getAnimations in Element
  • Interface and implementation for Document getAnimations method.
  • AnimationEffect interface and class stub.
  • KeyframeEffect interface and constructor implementation.
  • 'Animation' interface, constructor and query methods for effect and timeline.
  • Remove runtime condition on Web animation interfaces (compile time flag is specified).
  • runtime/CommonIdentifiers.h:

Source/WebCore:

  • Animatable interface and implementation of getAnimations in Element
  • Interface and implementation for Document getAnimations method.
  • AnimationEffect interface and class stub.
  • KeyframeEffect interface and constructor implementation.
  • 'Animation' interface, constructor and query methods for effect and timeline.
  • Remove runtime condition on Web animation interfaces (compile time flag is specified).

Test: webanimations/Document.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • PlatformGTK.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • animation/Animatable.idl: Copied from Source/WebCore/animation/DocumentAnimation.idl.
  • animation/AnimationEffect.cpp: Copied from Source/WebCore/animation/AnimationTimeline.cpp.

(WebCore::AnimationEffect::AnimationEffect):
(WebCore::AnimationEffect::~AnimationEffect):
(WebCore::AnimationEffect::setAnimation):
(WebCore::AnimationEffect::isCurrent):
(WebCore::AnimationEffect::isInEffect):

  • animation/AnimationEffect.h: Copied from Source/WebCore/animation/DocumentTimeline.cpp.
  • animation/AnimationEffect.idl: Copied from Source/WebCore/animation/AnimationTimeline.idl.
  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::destroy):
(WebCore::AnimationTimeline::attachAnimation):
(WebCore::AnimationTimeline::detachAnimation):

  • animation/AnimationTimeline.h:
  • animation/AnimationTimeline.idl:
  • animation/DocumentAnimation.cpp:

(WebCore::DocumentAnimation::timeline):
(WebCore::DocumentAnimation::getAnimations):
(WebCore::DocumentAnimation::addAnimation):
(WebCore::DocumentAnimation::removeAnimation):

  • animation/DocumentAnimation.h:

(WebCore::DocumentAnimation::getAnimations):

  • animation/DocumentAnimation.idl:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::create):
(WebCore::DocumentTimeline::DocumentTimeline):
(WebCore::DocumentTimeline::attach):
(WebCore::DocumentTimeline::detach):

  • animation/DocumentTimeline.h:
  • animation/DocumentTimeline.idl:
  • animation/KeyframeEffect.cpp: Copied from Source/WebCore/animation/DocumentTimeline.cpp.

(WebCore::KeyframeEffect::create):
(WebCore::KeyframeEffect::KeyframeEffect):
(WebCore::KeyframeEffect::~KeyframeEffect):

  • animation/KeyframeEffect.h: Copied from Source/WebCore/animation/DocumentTimeline.h.
  • animation/KeyframeEffect.idl: Copied from Source/WebCore/animation/AnimationTimeline.idl.
  • animation/WebAnimation.cpp: Copied from Source/WebCore/animation/DocumentAnimation.cpp.

(WebCore::WebAnimation::create):
(WebCore::WebAnimation::WebAnimation):
(WebCore::WebAnimation::~WebAnimation):

  • animation/WebAnimation.h: Copied from Source/WebCore/animation/DocumentAnimation.h.
  • animation/WebAnimation.idl: Copied from Source/WebCore/animation/DocumentTimeline.idl.
  • bindings/scripts/CodeGeneratorGObject.pm:
  • dom/Element.cpp:

(WebCore::Element::getAnimations):

  • dom/Element.h:
  • dom/Element.idl:

Source/WebKit/mac:

  • Setup interface for enabling runtime flag for Web animations through preferences.
  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences webAnimationsEnabled]):
(-[WebPreferences setWebAnimationsEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

LayoutTests:

  • Animatable interface and implementation of getAnimations in Element
  • Interface and implementation for Document getAnimations method.
  • AnimationEffect interface and class stub.
  • KeyframeEffect interface and constructor implementation.
  • 'Animation' interface, constructor and query methods for effect and timeline.
  • Remove runtime condition on Web animation interfaces (compile time flag is specified).
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • webanimations/Document-expected.txt: Added.
  • webanimations/Document.html: Added.
  • webanimations/script-tests/Document.js: Added.
10:31 AM Changeset in webkit [201809] by beidson@apple.com
  • 4 edits in trunk

Make CrossThreadCopier more efficient (fewer copies!).
https://bugs.webkit.org/show_bug.cgi?id=158456

Reviewed by Alex Christensen.

Source/WTF:

Previously, we'd run all arguments through CrossThreadCopier, then immediately make
an unnecessary copy of the result during lambda capture.

Instead, we should just put the CrossThreadCopier generated objects directly in lambdas,
which are then captured by NoncopyableFunctions.

This reduces the number of constructor calls per argument from 2 copies to 1 move.

  • wtf/CrossThreadTask.h:

(WTF::CrossThreadTask::CrossThreadTask):
(WTF::createCrossThreadTask):

Tools:

  • TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp:

(TestWebKitAPI::TEST):

10:31 AM Changeset in webkit [201808] by Chris Dumez
  • 8 edits
    4 adds in trunk

self.hasOwnProperty() does not work inside Web workers
https://bugs.webkit.org/show_bug.cgi?id=158446
<rdar://problem/26638397>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Add a factory function to JSProxy to create a JSProxy without a target.
Also make the setTarget() method public so that the target can now be
set after creation. This is needed so that we can create a proxy for
JSWorkerGlobalScope, then create the JSWorkerGlobalScope object,
passing it the proxy and finally set the target on the proxy.

  • runtime/JSProxy.h:

(JSC::JSProxy::create):

Source/WebCore:

W3C tests for workers were severely broken on WebKit because
self.hasOwnProperty() did not work inside workers. The reason is that
hasOwnProperty() (and other methods like toString()) call toThis() in
StrictMode on thisValue. However, in the case of 'self' in workers,
self was a DedicatedWorkerGlobalScope, which is a JSGlobalObject.
JSGlobalObject::toThis() returns jsUndefined() when called in strict
mode. As a result, we would end up with exceptions such as "undefined
is not an object" when calling self.hasOwnProperty() in workers.

To address the problem, this patch introduces a JSProxy whose proxy
type is PureForwardingProxyType and whose target is the
WorkerGlobalScope. This JSProxy is what we expose to the JavaScript,
instead of the JSWorkerGlobalScope itself. As a result, toThis() now
behaves as expected and self.hasOwnProperty() works inside workers.

This patch greatly improves our pass rate on several W3C tests:
http://w3c-test.org/workers/interfaces.worker: 20 passes -> 50 passes (out of 128)
http://w3c-test.org/IndexedDB/interfaces.worker 0 passes -> 145 passes (out of 156)

Tests: fast/workers/self-hasOwnProperty.html

fast/workers/self-toString.html

  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::finishCreation):
(WebCore::JSWorkerGlobalScopeBase::visitChildren):
(WebCore::toJS):

  • bindings/js/JSWorkerGlobalScopeBase.h:

(WebCore::JSWorkerGlobalScopeBase::proxy):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::initScript):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):

LayoutTests:

Add tests to make sure that self.toString() and self.hasOwnProperty()
now work in workers.

  • fast/workers/self-hasOwnProperty-expected.txt: Added.
  • fast/workers/self-hasOwnProperty.html: Added.
  • fast/workers/self-toString-expected.txt: Added.
  • fast/workers/self-toString.html: Added.
10:21 AM Changeset in webkit [201807] by fpizlo@apple.com
  • 31 edits
    2 adds in trunk

Add result validation to JSAir
https://bugs.webkit.org/show_bug.cgi?id=158493

Reviewed by Saam Barati.

PerformanceTests:

This adds the ability to hash a Code in a way that matches the C++ code's hashing of Code.
This allows us to check if the Code that JSAir sees is the code that C++ saw. We use this to
check the Code before and after allocateStack, and compare against hashes we got from C++.

Doing this uncovered bugs. roundUpToMultipleOf wasn't doing anything. allocateStack was not
allocating things correctly because I was concatting a Set to an Array, which doesn't really
work. Now these bugs are fixed.

The checking step adds to the running time so I reduced the number of iterations. The
benchmark spends a decent amount of its time computing Code hashes; I think it's around 1/3
total. This is probably OK. It's better to verify the results even if the running time is
not all in the "core" of the algorithm.

Also add a run-jsc-stress-tests yaml file to allow this to run as a test.

  • JSAir/allocate_stack.js:
  • JSAir/arg.js:

(Arg.createImm):
(Arg.createBigImm):
(Arg.createBitImm):
(Arg.createBitImm64):
(Arg.createWidth):
(Arg.createSpecial):
(Arg.prototype.get kind):
(Arg.prototype.get isTmp):
(Arg.prototype.get isImm):
(Arg.prototype.get isSomeImm):
(Arg.prototype.get isSomeBigImm):
(Arg.prototype.get isCondition):
(Arg.prototype.get isWidth):
(Arg.prototype.get isSpecial):
(Arg.prototype.get isAlive):
(Arg.prototype.get tmp):
(Arg.prototype.get value):
(Arg.prototype.get lowValue):
(Arg.prototype.get highValue):
(Arg.prototype.get base):
(Arg.prototype.get isGP):
(Arg.prototype.get isFP):
(Arg.prototype.isValidForm):
(Arg.prototype.get isInvertible):
(Arg.kindCode):
(Arg.prototype.hash):
(Arg.prototype.toString):
(Arg):

  • JSAir/basic_block.js:

(BasicBlock.get successorBlocks):

  • JSAir/benchmark.js:

(benchmark):

  • JSAir/code.js:

(Code.prototype.setFrameSize):
(Code.prototype.hash):
(Code.prototype.toString):
(Code):

  • JSAir/inst.js:

(Inst.prototype.get hasNonArgEffects):
(Inst.prototype.hash):
(Inst.prototype.toString):
(Inst):

  • JSAir/jsair-tests.yaml: Added.
  • JSAir/opcode.js:

(Inst_forEachArg):
(Inst_hasNonArgEffects):
(opcodeCode):

  • JSAir/payload-gbemu-executeIteration.js:

(createPayloadGbemuExecuteIteration):

  • JSAir/payload-imaging-gaussian-blur-gaussianBlur.js:

(createPayloadImagingGaussianBlurGaussianBlur):

  • JSAir/payload-jsair-ACLj8C.js:

(createPayloadJSAirACLj8C):

  • JSAir/payload-typescript-scanIdentifier.js:

(createPayloadTypescriptScanIdentifier):

  • JSAir/reg.js:

(Reg.prototype.get isReg):
(Reg.prototype.hash):
(Reg.prototype.toString):

  • JSAir/stack_slot.js:

(StackSlot.prototype.setOffsetFromFP):
(StackSlot.prototype.hash):
(StackSlot.prototype.toString):

  • JSAir/symbols.js:

(relCondCode):
(resCondCode):
(doubleCondCode):

  • JSAir/test.html:
  • JSAir/tmp.js:

(Tmp.prototype.get isReg):
(Tmp.prototype.hash):
(Tmp.prototype.toString):

  • JSAir/util.js:

(roundUpToMultipleOf):
(symbolName):

Source/JavaScriptCore:

Add a ::jsHash() method to some things, to compute a hash code that is suitable for
comparing a C++ Code to a JSAir Code. This is different from existing hashing functionality
because it errs on the side of easy reproducibility from JS rather than speed.

  • b3/air/AirArg.cpp:

(JSC::B3::Air::Arg::isCompatibleType):
(JSC::B3::Air::Arg::jsHash):
(JSC::B3::Air::Arg::dump):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::asDoubleCondition):
(JSC::B3::Air::Arg::isInvertible):
(JSC::B3::Air::Arg::isUnsignedCond):
(JSC::B3::Air::Arg::Arg):

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::addFastTmp):
(JSC::B3::Air::Code::jsHash):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::lastPhaseName):

  • b3/air/AirDumpAsJS.cpp:

(JSC::B3::Air::dumpAsJS):

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):

  • b3/air/AirInst.cpp:

(JSC::B3::Air::Inst::hasArgEffects):
(JSC::B3::Air::Inst::jsHash):
(JSC::B3::Air::Inst::dump):

  • b3/air/AirInst.h:
  • b3/air/AirStackSlot.cpp:

(JSC::B3::Air::StackSlot::setOffsetFromFP):
(JSC::B3::Air::StackSlot::jsHash):
(JSC::B3::Air::StackSlot::dump):

  • b3/air/AirStackSlot.h:
  • b3/air/opcode_generator.rb:

Tools:

Run JSAir.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

9:48 AM Changeset in webkit [201806] by beidson@apple.com
  • 3 edits
    1 add in trunk/Tools

Add an API test that confirms object constructor/destructor calls during creation of a CrossThreadTask.
https://bugs.webkit.org/show_bug.cgi?id=158528

Reviewed by Alex Christensen.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/CrossThreadTask.cpp: Added.

(TestWebKitAPI::log):
(TestWebKitAPI::takeLogStr):
(TestWebKitAPI::LifetimeLogger::LifetimeLogger):
(TestWebKitAPI::LifetimeLogger::~LifetimeLogger):
(TestWebKitAPI::LifetimeLogger::isolatedCopy):
(TestWebKitAPI::testFunction):
(TestWebKitAPI::TEST):

8:20 AM WebKitGTK/2.12.x edited by Michael Catanzaro
(diff)
6:37 AM Changeset in webkit [201805] by Antti Koivisto
  • 11 edits in trunk

WebKit memory cache doesn't respect Vary header
https://bugs.webkit.org/show_bug.cgi?id=71509
<rdar://problem/26651033>

Reviewed by Sam Weinig.

Source/WebCore:

Implement Vary header support in WebCore memory cache.

The patch moves Vary header code from WebKit2 Network Cache to WebCore and uses it to
verify the headers for CachedResources.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::failBeforeStarting):
(WebCore::addAdditionalRequestHeadersToRequest):

Factor into standalone function so we can use it from varyHeaderValuesMatch.

(WebCore::CachedResource::addAdditionalRequestHeaders):
(WebCore::CachedResource::load):
(WebCore::CachedResource::setResponse):

Collect the Vary header values when we receive a response.

(WebCore::CachedResource::responseReceived):
(WebCore::CachedResource::redirectChainAllowsReuse):
(WebCore::CachedResource::varyHeaderValuesMatch):

Test for Vary match.

(WebCore::CachedResource::overheadSize):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::isCacheValidator):
(WebCore::CachedResource::resourceToRevalidate):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::determineRevalidationPolicy):

Reload on Vary mismatch.

  • platform/network/CacheValidation.cpp:

(WebCore::parseCacheControlDirectives):
(WebCore::headerValueForVary):
(WebCore::collectVaryingRequestHeaders):
(WebCore::verifyVaryingRequestHeaders):

Vary header collection and validation code moves here.

  • platform/network/CacheValidation.h:

Source/WebKit2:

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeCacheKey):
(WebKit::NetworkCache::cachePolicyAllowsExpired):
(WebKit::NetworkCache::makeUseDecision):
(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::storeRedirect):
(WebKit::NetworkCache::Cache::update):
(WebKit::NetworkCache::headerValueForVary): Deleted.
(WebKit::NetworkCache::collectVaryingRequestHeaders): Deleted.
(WebKit::NetworkCache::verifyVaryingRequestHeaders): Deleted.

These move to WebCore.

LayoutTests:

  • http/tests/cache/disk-cache/disk-cache-vary-expected.txt:
  • http/tests/cache/disk-cache/disk-cache-vary-no-body-expected.txt:
5:56 AM Changeset in webkit [201804] by Konstantin Tokarev
  • 2 edits in trunk/Tools

TestWebKitAPI: Removed redunandant check PLATFORM(GTK) && !defined(BUILDING_WEBKIT2)
https://bugs.webkit.org/show_bug.cgi?id=158521

Reviewed by Carlos Garcia Campos.

  • TestWebKitAPI/config.h:
5:48 AM Changeset in webkit [201803] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix GTK+ build with threaded compositor enabled after r201802.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::create):

5:13 AM Changeset in webkit [201802] by Carlos Garcia Campos
  • 11 edits in trunk/Source/WebKit2

LayerTreeHost should be created with a WebPage reference instead of a pointer
https://bugs.webkit.org/show_bug.cgi?id=158520

Reviewed by Žan Doberšek.

We are indeed creating the LayerTreeHost always from a WebPage reference but getting its address to pass it to
the LayerTreeHost create() function.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:

(WebKit::CoordinatedDrawingArea::enterAcceleratedCompositingMode):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::create):
(WebKit::CoordinatedLayerTreeHost::CoordinatedLayerTreeHost):
(WebKit::CoordinatedLayerTreeHost::didFlushRootLayer):
(WebKit::CoordinatedLayerTreeHost::performScheduledLayerFlush):
(WebKit::CoordinatedLayerTreeHost::commitSceneState):
(WebKit::CoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::create):
(WebKit::ThreadedCoordinatedLayerTreeHost::ThreadedCoordinatedLayerTreeHost):
(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::compositorDidFlushLayers):
(WebKit::ThreadedCoordinatedLayerTreeHost::didScaleFactorChanged):
(WebKit::ThreadedCoordinatedLayerTreeHost::setVisibleContentsRect):

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::enterAcceleratedCompositingMode):

  • WebProcess/WebPage/LayerTreeHost.cpp:

(WebKit::LayerTreeHost::create):
(WebKit::LayerTreeHost::LayerTreeHost):

  • WebProcess/WebPage/LayerTreeHost.h:
  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::create):
(WebKit::LayerTreeHostGtk::LayerTreeHostGtk):
(WebKit::LayerTreeHostGtk::makeContextCurrent):
(WebKit::LayerTreeHostGtk::deviceOrPageScaleFactorChanged):
(WebKit::LayerTreeHostGtk::paintContents):
(WebKit::LayerTreeHostGtk::deviceScaleFactor):
(WebKit::LayerTreeHostGtk::pageScaleFactor):
(WebKit::LayerTreeHostGtk::flushPendingLayerChanges):
(WebKit::LayerTreeHostGtk::flushAndRenderLayers):
(WebKit::LayerTreeHostGtk::pageBackgroundTransparencyChanged):
(WebKit::LayerTreeHostGtk::initialize): Deleted.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.h:
2:06 AM Changeset in webkit [201801] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Unreviewed, rolling out r201800.
https://bugs.webkit.org/show_bug.cgi?id=158518

Missing WebKit2 pieces (Requested by anttik on #webkit).

Reverted changeset:

"WebKit memory cache doesn't respect Vary header"
https://bugs.webkit.org/show_bug.cgi?id=71509
http://trac.webkit.org/changeset/201800

2:01 AM Changeset in webkit [201800] by Antti Koivisto
  • 6 edits in trunk/Source/WebCore

WebKit memory cache doesn't respect Vary header
https://bugs.webkit.org/show_bug.cgi?id=71509
<rdar://problem/26651033>

Reviewed by Sam Weinig.

Implement Vary header support in WebCore memory cache.

The patch moves Vary header code from WebKit2 Network Cache to WebCore and uses it to
verify the headers for CachedResources.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::failBeforeStarting):
(WebCore::addAdditionalRequestHeadersToRequest):

Factor into standalone function so we can use it from varyHeaderValuesMatch.

(WebCore::CachedResource::addAdditionalRequestHeaders):
(WebCore::CachedResource::load):
(WebCore::CachedResource::setResponse):

Collect the Vary header values when we receive a response.

(WebCore::CachedResource::responseReceived):
(WebCore::CachedResource::redirectChainAllowsReuse):
(WebCore::CachedResource::varyHeaderValuesMatch):

Test for Vary match.

(WebCore::CachedResource::overheadSize):

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::isCacheValidator):
(WebCore::CachedResource::resourceToRevalidate):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::determineRevalidationPolicy):

Reload on Vary mismatch.

  • platform/network/CacheValidation.cpp:

(WebCore::parseCacheControlDirectives):
(WebCore::headerValueForVary):
(WebCore::collectVaryingRequestHeaders):
(WebCore::verifyVaryingRequestHeaders):

Vary header collection and validation code moves here.

  • platform/network/CacheValidation.h:
1:00 AM Changeset in webkit [201799] by mmaxfield@apple.com
  • 9 edits in trunk/Source/WebCore

Extend CSSFontSelector's lifetime to be longer than the Document's lifetime
https://bugs.webkit.org/show_bug.cgi?id=154101

Reviewed by Darin Adler.

Rather than destroying the Document's CSSFontSelector, instead, the object should
live for the lifetime of the document, and it should instead be asked to clear its
contents.

This is important for the CSS Font Loading API, where the identity of objects the
CSSFontSelector references needs to persist throughout the lifetime of the
Document. This patch represents the first step to implementing this correctly.
The second step is for the CSSFontSelector to perform a diff instead of a
wholesale clear of its contents. Once this is done, font loading objects can
survive through a call to Document::clearStyleResolver().

This patch gives the CSSFontSelector two states: building underway and building not
underway. The state is building underway in between calls to clearStyleResolver()
and when the style resolver gets built back up. Otherwise, the state is building
not underway. Because of this new design, creation of all FontFace objects can be
postponed until a state transition from building underway to building not underway.
A subsequent patch will perform the diff at this point. An ASSERT() makes sure that
we never service a font lookup request while Building.

No new tests because there is no behavior change.

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::clear):

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::buildStarted):
(WebCore::CSSFontSelector::buildCompleted):
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::fontRangesForFamily):
(WebCore::CSSFontSelector::CSSFontSelector): Deleted.
(WebCore::CSSFontSelector::clearDocument): Deleted.

  • css/CSSFontSelector.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::appendAuthorStyleSheets):

  • dom/Document.cpp:

(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::Document::clearStyleResolver):
(WebCore::Document::fontSelector): Deleted.

  • dom/Document.h:

(WebCore::Document::fontSelector):

12:37 AM Changeset in webkit [201798] by adam.bergkvist@ericsson.com
  • 7 edits
    4 adds in trunk

WebRTC: Imlement MediaEndpointPeerConnection::setLocalDescription()
https://bugs.webkit.org/show_bug.cgi?id=158190

Reviewed by Eric Carlson.

Source/WebCore:

Add implementation for MediaEndpointPeerConnection::setLocalDescription. This function
parses the input SDP, configures the media backend and updates the
RTCPeerConnection state.

This change adds MediaEndpointSessionDescription which is an object representation
of an RTCSessionDescription (which contains an SDP string).

Test: fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html

  • CMakeLists.txt:

Add MediaEndpointSessionDescription.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::hasUnassociatedTransceivers):
(WebCore::MediaEndpointPeerConnection::createOfferTask):
(WebCore::MediaEndpointPeerConnection::setLocalDescription):
(WebCore::MediaEndpointPeerConnection::setLocalDescriptionTask):
Add implementation.
(WebCore::MediaEndpointPeerConnection::localDescription):
(WebCore::MediaEndpointPeerConnection::currentLocalDescription):
(WebCore::MediaEndpointPeerConnection::pendingLocalDescription):
(WebCore::MediaEndpointPeerConnection::localDescriptionTypeValidForState):
(WebCore::MediaEndpointPeerConnection::internalLocalDescription):
(WebCore::MediaEndpointPeerConnection::createRTCSessionDescription):

  • Modules/mediastream/MediaEndpointPeerConnection.h:
  • Modules/mediastream/MediaEndpointSessionDescription.cpp: Added.

(WebCore::MediaEndpointSessionDescription::create):
(WebCore::MediaEndpointSessionDescription::toRTCSessionDescription):
(WebCore::MediaEndpointSessionDescription::typeString):
(WebCore::MediaEndpointSessionDescription::isLaterThan):

  • Modules/mediastream/MediaEndpointSessionDescription.h: Added.

(WebCore::MediaEndpointSessionDescription::~MediaEndpointSessionDescription):
(WebCore::MediaEndpointSessionDescription::type):
(WebCore::MediaEndpointSessionDescription::configuration):
(WebCore::MediaEndpointSessionDescription::MediaEndpointSessionDescription):

  • WebCore.xcodeproj/project.pbxproj:

Add MediaEndpointSessionDescription.

LayoutTests:

Add new test for RTCPeerConnection.setLocalDescription.

  • fast/mediastream/RTCPeerConnection-setLocalDescription-offer-expected.txt: Added.
  • fast/mediastream/RTCPeerConnection-setLocalDescription-offer.html: Added.

Set two local offers as local descriptions and inspect the state changes. Also set some
descriptions with bad types.

  • platform/mac/TestExpectations:

Skip the above test for mac (not building with WEB_RTC)

Jun 7, 2016:

11:54 PM Changeset in webkit [201797] by Carlos Garcia Campos
  • 2 edits in trunk

[GTK] Enable IndexedDB in workers
https://bugs.webkit.org/show_bug.cgi?id=158475

Reviewed by Antonio Gomes.

This is working now and many tests are failing only because we don't enable it.

  • Source/cmake/OptionsGTK.cmake:
11:51 PM Changeset in webkit [201796] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[GLIB] Implement hardLinkOrCopyFile() in FileSystemGlib
https://bugs.webkit.org/show_bug.cgi?id=158473

Reviewed by Michael Catanzaro.

It was added in r199230 to be used by IndexedDB blob support, but never implemented for GLib.

  • platform/glib/FileSystemGlib.cpp:

(WebCore::hardLinkOrCopyFile):

11:49 PM Changeset in webkit [201795] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

[GTK] Use a longer timeout for glib unit tests
https://bugs.webkit.org/show_bug.cgi?id=158476

Reviewed by Darin Adler.

The timeout is supposed to be per test case, but in the case of GLib tests it affects all the tests cases of the
same test program. Some test programs like TestLoaderClient, that have a lot of test cases, often time out in
the bots because the timeout is not enough to run all the tests cases. So, we should use a longer timeout for
GLib tests.

  • Scripts/run-gtk-tests:

(TestRunner._run_test_glib):

11:30 PM Changeset in webkit [201794] by adam.bergkvist@ericsson.com
  • 2 edits in trunk/Source/WebCore

WebRTC: Refactor: Use captures with initializers in MediaEndpointPeerConnection::createOffer()
https://bugs.webkit.org/show_bug.cgi?id=158486

Reviewed by Eric Carlson.

Use initializers for the capture list when scheduling the "create offer task".

No change in behavior.

  • Modules/mediastream/MediaEndpointPeerConnection.cpp:

(WebCore::MediaEndpointPeerConnection::createOffer):
(WebCore::WrappedSessionDescriptionPromise::create): Deleted.
(WebCore::WrappedSessionDescriptionPromise::promise): Deleted.
(WebCore::WrappedSessionDescriptionPromise::WrappedSessionDescriptionPromise): Deleted.
Not needed anymore.

11:11 PM Changeset in webkit [201793] by nael.ouedraogo@crf.canon.fr
  • 4 edits in trunk/Source/WebCore

TouchList::append() should take a Ref instead of RefPtr
https://bugs.webkit.org/show_bug.cgi?id=158469

Reviewed by Chris Dumez.

RefPtr<Touch> items handled in TouchList cannot be null. Thus
RefPtr<Touch> is replaced by Ref<Touch> objects.

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::createTouchList):

  • dom/TouchList.cpp:

(WebCore::TouchList::item):

  • dom/TouchList.h:

(WebCore::TouchList::append):

10:42 PM Changeset in webkit [201792] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebCore

EFL build has been broken since r201761
https://bugs.webkit.org/show_bug.cgi?id=158512

Unreviewed build fix.

  • platform/posix/SharedBufferPOSIX.cpp:

(WebCore::SharedBuffer::createFromReadingFile):
Do not use ? operand in return line. Additionally return nullptr instead of 0.

10:28 PM Changeset in webkit [201791] by Chris Dumez
  • 5 edits in trunk

Expose Event / EventTarget properties on WorkerGlobalScope
https://bugs.webkit.org/show_bug.cgi?id=158511

Reviewed by Sam Weinig.

Source/WebCore:

Expose Event / EventTarget properties on WorkerGlobalScope, as per the
latest DOM specification:

No new tests, rebaselined existing test.

  • dom/Event.idl:
  • dom/EventTarget.idl:

LayoutTests:

Rebaseline existing test.

  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
9:27 PM Changeset in webkit [201790] by jh718.park@samsung.com
  • 2 edits in trunk/Source/WebCore

[EFL] Build fix related with SharedBuffer::createFromReadingFile in SharedBufferPosix.cpp
https://bugs.webkit.org/show_bug.cgi?id=158515

  • platform/posix/SharedBufferPOSIX.cpp:

(WebCore::SharedBuffer::createFromReadingFile):

8:39 PM Changeset in webkit [201789] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.35.0.1/Source/WebCore

Merged r201687. rdar://problem/26628125

8:38 PM Changeset in webkit [201788] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.35.0.1/Source

Versioning.

7:53 PM Changeset in webkit [201787] by mark.lam@apple.com
  • 22 edits
    1 add in trunk/Source

Need an exception check after constructEmptyArray().
https://bugs.webkit.org/show_bug.cgi?id=158411

Reviewed by Saam Barati.

Source/JavaScriptCore:

Added an exception check after each call to constructEmptyArray().

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::getInternalProperties):
(Inspector::JSInjectedScriptHost::weakMapEntries):
(Inspector::JSInjectedScriptHost::weakSetEntries):
(Inspector::JSInjectedScriptHost::iteratorEntries):

  • interpreter/ShadowChicken.cpp:

(JSC::ShadowChicken::functionsOnStack):

  • profiler/ProfilerBytecodeSequence.cpp:

(JSC::Profiler::BytecodeSequence::addSequenceProperties):

  • profiler/ProfilerCompilation.cpp:

(JSC::Profiler::Compilation::toJS):

  • profiler/ProfilerDatabase.cpp:

(JSC::Profiler::Database::toJS):

  • profiler/ProfilerOSRExitSite.cpp:

(JSC::Profiler::OSRExitSite::toJS):

  • profiler/ProfilerOriginStack.cpp:

(JSC::Profiler::OriginStack::toJS):

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncConcat):
(JSC::arrayProtoFuncSlice):
(JSC::arrayProtoFuncSplice):

  • runtime/LiteralParser.cpp:

(JSC::LiteralParser<CharType>::parse):

  • runtime/ModuleLoaderObject.cpp:

(JSC::moduleLoaderObjectRequestedModules):

  • runtime/ObjectConstructor.cpp:

(JSC::ownPropertyKeys):

  • runtime/RegExpObject.cpp:

(JSC::collectMatches):

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncSplitFast):

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncSplitFast):

  • runtime/TemplateRegistry.cpp:

(JSC::TemplateRegistry::getTemplateObject):

  • tests/stress/regress-158411.js: Added.

Source/WebCore:

A stress test for this was added in JavaScriptCore.

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::toJS):

  • bindings/js/JSCommandLineAPIHostCustom.cpp:

(WebCore::getJSListenerFunctions):

  • bindings/js/JSCryptoKeySerializationJWK.cpp:

(WebCore::buildJSONForRSAComponents):
(WebCore::addBoolToJSON):
(WebCore::addUsagesToJSON):
(WebCore::JSCryptoKeySerializationJWK::serialize):

  • bindings/js/JSDOMBinding.h:

(WebCore::toJS):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::deserialize):

7:47 PM Changeset in webkit [201786] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.35.0.1

New tag.

7:07 PM Changeset in webkit [201785] by commit-queue@webkit.org
  • 6 edits
    12 adds in trunk

The backdrop-filter property does not respect border-radius
https://bugs.webkit.org/show_bug.cgi?id=158483
<rdar://problem/24210257>

Patch by Antoine Quint <Antoine Quint> on 2016-06-07
Reviewed by Simon Fraser.

Source/WebCore:

In order to correctly support border-radius and backdrop-filter together, we change
the value set as the m_backdropFiltersRect from a FloatRect to FloatRoundedRect so
that it accounts for values set by the border-radius property. Then we add a new
m_backdropClippingLayer PlatformCALayer member to clip the backdrop layer in the
event that the border-radius is non-zero in updateBackdropFiltersRect(). Finally,
we follow the same pattern used for other PlatformCALayers owned by a GraphicsLayerCA
to support cloning of the new m_backdropClippingLayer.

Tests: css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-add.html

css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-remove.html
css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection.html
css3/filters/backdrop/backdrop-filter-with-border-radius-value-change.html
css3/filters/backdrop/backdrop-filter-with-border-radius-value-remove.html
css3/filters/backdrop/backdrop-filter-with-border-radius.html

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setBackdropFiltersRect):
(WebCore::GraphicsLayer::backdropFiltersRect):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::willBeDestroyed):
(WebCore::GraphicsLayerCA::setBackdropFiltersRect):
(WebCore::GraphicsLayerCA::updateBackdropFiltersRect):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
Use a rounded rect if there is no clip and we have non-zero border-radius set on the renderer.

LayoutTests:

Adding new tests checking that border-radius correctly affects clipping of the backdrop layer
in a basic scenario, when we change border-radius to a different value, when we set border-radius
back to 0 and when we add a reflection.

  • css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-add-expected.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-add.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-expected.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-remove-expected.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection-remove.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-border-radius-and-reflection.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-border-radius-expected.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-border-radius-value-change-expected.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-border-radius-value-change.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-border-radius-value-remove-expected.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-border-radius-value-remove.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-border-radius.html: Added.
6:53 PM Changeset in webkit [201784] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

CachedScript should avoid recomputing its hash multiple times.
<https://webkit.org/b/158506>

Reviewed by Saam Barati.

JSBench was hitting CachedScript::script() hard and spending lots of time hashing scripts.
Since we're already caching the hash in a member variable, don't bother rehashing if we've
already done it before.

This takes total time spent in StringImpl::hashSlowCase() from 1600ms to 77ms on my MBP.

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::script):

6:43 PM Changeset in webkit [201783] by fpizlo@apple.com
  • 23 edits
    27 adds in trunk

Implement Air::allocateStack() in ES6 to see how much of a bad idea that is
https://bugs.webkit.org/show_bug.cgi?id=158318

Reviewed by Saam Barati.
PerformanceTests:


This adds a new benchmark for us to play with called JSAir. It's a complete ES6
implementation of Air's allocateStack() phase along with all of Air needed to run that
phase. This includes things like stack slots, registers, temporaries, basic blocks,
instructions, and all of the code for iterating over, inspecting, and modifying those
things.

To make this work, JSC can now dump Air just before allocateStack() in the form of JS code
that creates a Code object that matches exactly what C++ Air saw. This benchmark comprises
four Air IRs:

  • Octane/gbemu's largest function, executeIteration.
  • Kraken/imaging-gaussian-blur's largest function in OSR entry mode, gaussuanBlur.
  • Octane/typescript's largest function that is actually hot, scanIdentifier.
  • JSAir's largest hot function, which is anonymous, so we call it by its hash (ACLj8C).


This runs in about 2 seconds on my machine in JSC trunk. It includes both a commandline
harness and a web harness. JSAir is almost exactly 100x slower in ES6 in WebKit than the
C++ Air::allocateStack() phase on which it is based.

JSAir uses the following ES6 features:

  • Symbol.
  • for-of.
  • arrow functions.
  • Map/Set.
  • let/const.
  • classes.


All of these things are used in anger and should end up on the hot path. There is also code
that uses Proxies, but it ends up being dead.

We can improve this even more:
I still need to add result validation: https://bugs.webkit.org/show_bug.cgi?id=158493
I want to make it use more ES6 features: https://bugs.webkit.org/show_bug.cgi?id=158497

  • JSAir: Added.
  • JSAir/all.js: Added.
  • JSAir/allocate_stack.js: Added.

(allocateStack.attemptAssignment):
(allocateStack.assign):
(allocateStack.interfere):
(allocateStack.):
(allocateStack):

  • JSAir/arg.js: Added.

(Arg):
(Arg.isAnyUse):
(Arg.isColdUse):
(Arg.isWarmUse):
(Arg.cooled):
(Arg.isEarlyUse):
(Arg.isLateUse):
(Arg.isAnyDef):
(Arg.isEarlyDef):
(Arg.isLateDef):
(Arg.isZDef):
(Arg.typeForB3Type):
(Arg.widthForB3Type):
(Arg.conservativeWidth):
(Arg.minimumWidth):
(Arg.bytes):
(Arg.widthForBytes):
(Arg.createTmp):
(Arg.fromReg):
(Arg.createImm):
(Arg.createBigImm):
(Arg.createBitImm):
(Arg.createBitImm64):
(Arg.createAddr):
(Arg.createStack):
(Arg.createCallArg):
(Arg.createStackAddr):
(Arg.isValidScale):
(Arg.logScale):
(Arg.createIndex):
(Arg.createRelCond):
(Arg.createResCond):
(Arg.createDoubleCond):
(Arg.createWidth):
(Arg.prototype.get kind):
(Arg.prototype.get isTmp):
(Arg.prototype.get isImm):
(Arg.prototype.get isBigImm):
(Arg.prototype.get isBitImm):
(Arg.prototype.get isBitImm64):
(Arg.prototype.get isSomeImm):
(Arg.prototype.get isAddr):
(Arg.prototype.get isStack):
(Arg.prototype.get isCallArg):
(Arg.prototype.get isIndex):
(Arg.prototype.get isMemory):
(Arg.prototype.get isStackMemory):
(Arg.prototype.get isRelCond):
(Arg.prototype.get isResCond):
(Arg.prototype.get isDoubleCond):
(Arg.prototype.get isCondition):
(Arg.prototype.get isWidth):
(Arg.prototype.get isAlive):
(Arg.prototype.get tmp):
(Arg.prototype.get value):
(Arg.prototype.get base):
(Arg.prototype.get hasOffset):
(Arg.prototype.get offset):
(Arg.prototype.get stackSlot):
(Arg.prototype.get index):
(Arg.prototype.get scale):
(Arg.prototype.get logScale):
(Arg.prototype.get width):
(Arg.prototype.get isGPTmp):
(Arg.prototype.get isFPTmp):
(Arg.prototype.get isGP):
(Arg.prototype.get isFP):
(Arg.prototype.get hasType):
(Arg.prototype.get type):
(Arg.prototype.isType):
(Arg.prototype.isCompatibleType):
(Arg.prototype.get isGPR):
(Arg.prototype.get gpr):
(Arg.prototype.get isFPR):
(Arg.prototype.get fpr):
(Arg.prototype.get isReg):
(Arg.prototype.get reg):
(Arg.isValidImmForm):
(Arg.isValidBitImmForm):
(Arg.isValidBitImm64Form):
(Arg.isValidAddrForm):
(Arg.isValidIndexForm):
(Arg.prototype.isValidForm):
(Arg.prototype.forEachTmpFast):
(Arg.prototype.usesTmp):
(Arg.prototype.forEachTmp):
(Arg.prototype.is):
(Arg.prototype.as):
(Arg.prototype.forEachFast):
(Arg.prototype.forEach):
(Arg.extract):
(Arg.forEachFast):
(Arg.forEach):
(Arg.prototype.get condition):
(Arg.prototype.get isInvertible):
(Arg.prototype.toString):

  • JSAir/basic_block.js: Added.

(BasicBlock):
(BasicBlock.prototype.get index):
(BasicBlock.prototype.get size):
(BasicBlock.prototype.Symbol.iterator):
(BasicBlock.prototype.at):
(BasicBlock.get last):
(BasicBlock.get insts):
(BasicBlock.get numSuccessors):
(BasicBlock.get successors):
(BasicBlock.get successorBlocks.):
(BasicBlock.get successorBlocks):
(BasicBlock.set get numPredecessors):
(BasicBlock.get predecessors):
(BasicBlock.get frequency):
(BasicBlock.get headerString):
(BasicBlock.get footerString):

  • JSAir/benchmark.js: Added.

(benchmark):

  • JSAir/code.js: Added.

(Code):
(Code.prototype.addBlock):
(Code.prototype.addStackSlot):
(Code.prototype.newTmp):
(Code.prototype.get size):
(Code.prototype.at):
(Code.prototype.Symbol.iterator):
(Code.prototype.get blocks):
(Code.prototype.get stackSlots):
(Code.prototype.tmps):
(Code.prototype.get callArgAreaSize):
(Code.prototype.requestCallArgAreaSize):
(Code.prototype.get frameSize):
(Code.prototype.setFrameSize):
(Code.prototype.toString):

  • JSAir/custom.js: Added.

(const.ShuffleCustom.forEachArg):
(const.ShuffleCustom.hasNonArgNonControlEffects):
(const.PatchCustom.forEachArg):
(const.PatchCustom.hasNonArgNonControlEffects):
(const.CCallCustom.forEachArg):
(const.CCallCustom.hasNonArgNonControlEffects):
(const.ColdCCallCustom.forEachArg):
(const.ColdCCallCustom.hasNonArgNonControlEffects):

  • JSAir/frequented_block.js: Added.

(FrequentedBlock):
(FrequentedBlock.prototype.toString):

  • JSAir/insertion_set.js: Added.

(Insertion):
(Insertion.prototype.get index):
(Insertion.prototype.get element):
(Insertion.prototype.lessThan):
(InsertionSet):
(InsertionSet.prototype.appendInsertion):
(InsertionSet.prototype.append):
(InsertionSet.prototype.execute):

  • JSAir/inst.js: Added.

(Inst):
(Inst.prototype.append):
(Inst.prototype.clear):
(Inst.prototype.get opcode):
(Inst.prototype.get args):
(Inst.prototype.visitArg):
(Inst.prototype.forEachTmpFast):
(Inst.prototype.forEachArg):
(Inst.prototype.forEachTmp):
(Inst.prototype.forEach):
(Inst.forEachDef):
(Inst.forEachDefWithExtraClobberedRegs):
(Inst.prototype.get hasNonArgEffects):
(Inst.prototype.toString):

  • JSAir/liveness.js: Added.

(Liveness):
(Liveness.prototype.get thing):
(Liveness.prototype.get code):
(Liveness.prototype.get liveAtHead):
(Liveness.prototype.get liveAtTail):
(Liveness.prototype.localCalc.LocalCalc):
(Liveness.prototype.localCalc.LocalCalc.prototype.get liveSet):
(Liveness.prototype.localCalc.LocalCalc.prototype.execute):
(Liveness.prototype.localCalc):

  • JSAir/opcode.js: Added.

(Inst_forEachArg):
(Inst_hasNonArgEffects):

  • JSAir/payload-gbemu-executeIteration.js: Added.

(createPayloadGbemuExecuteIteration):

  • JSAir/payload-imaging-gaussian-blur-gaussianBlur.js: Added.

(createPayloadImagingGaussianBlurGaussianBlur):

  • JSAir/payload-jsair-ACLj8C.js: Added.

(createPayloadJSAirACLj8C):

  • JSAir/payload-typescript-scanIdentifier.js: Added.

(createPayloadTypescriptScanIdentifier):

  • JSAir/reg.js: Added.

(Reg):
(Reg.fromReg):
(Reg.prototype.get index):
(Reg.prototype.get type):
(Reg.prototype.get name):
(Reg.prototype.get isCalleeSave):
(Reg.prototype.get isReg):
(Reg.prototype.toString):
(Reg.extract):
(Reg.forEachFast):
(Reg.forEach):
(newGPR):
(Reg.gprs.Reg.fprs.Reg.calleeSaveGPRs.Reg.calleeSaveFPRs.Reg.calleeSaves):

  • JSAir/stack_slot.js: Added.

(StackSlot):
(StackSlot.prototype.get byteSize):
(StackSlot.prototype.get kind):
(StackSlot.prototype.get isLocked):
(StackSlot.prototype.get isSpill):
(StackSlot.prototype.get index):
(StackSlot.prototype.ensureSize):
(StackSlot.prototype.get alignment):
(StackSlot.prototype.get offsetFromFP):
(StackSlot.prototype.setOffsetFromFP):
(StackSlot.prototype.toString):
(StackSlot.extract):
(StackSlot.forEachFast):
(StackSlot.forEach):

  • JSAir/symbols.js: Added.
  • JSAir/test.html: Added.
  • JSAir/test.js: Added.
  • JSAir/tmp.js: Added.

(Tmp):
(Tmp.fromReg):
(Tmp.prototype.get index):
(Tmp.prototype.get type):
(Tmp.prototype.get isReg):
(Tmp.prototype.toString):
(Tmp.extract):
(Tmp.forEachFast):
(Tmp.forEach):

  • JSAir/tmp_base.js: Added.

(TmpBase.prototype.get isGP):
(TmpBase.prototype.get isFP):
(TmpBase.prototype.get isGPR):
(TmpBase.prototype.get isFPR):
(TmpBase.prototype.get reg):
(TmpBase.prototype.get gpr):
(TmpBase.prototype.get fpr):
(TmpBase):

  • JSAir/util.js: Added.

(isRepresentableAsInt32):
(addIndexed):
(roundUpToMultipleOf):
(symbolName):
(mergeIntoSet):
(nonEmptyRangesOverlap):
(rangesOverlap):
(removeAllMatching):
(swap):
(bubble):
(bubbleSort):
(currentTime):
(else.currentTime):

Source/JavaScriptCore:


Most of these changes are to support dumpAsJS(). But I also found some duplicate and dead
code while rewriting it to JS.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/air/AirAllocateStack.cpp:
  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isSomeImm):
(JSC::B3::Air::Arg::isAddr):
(JSC::B3::Air::Arg::tmpIndex):
(JSC::B3::Air::Arg::isValidImmForm):
(JSC::B3::Air::Arg::withOffset): Deleted. This was dead code.

  • b3/air/AirArgInlines.h: It turns out that Inst has a ForEach thing that duplicated some of the logic of ArgThingHelper, so I just made ArgThingHelper more powerful.

(JSC::B3::Air::ArgThingHelper<Arg>::forEach):
(JSC::B3::Air::ArgThingHelper<Reg>::is):
(JSC::B3::Air::ArgThingHelper<Reg>::as):
(JSC::B3::Air::ArgThingHelper<Reg>::forEachFast):
(JSC::B3::Air::ArgThingHelper<Reg>::forEach):
(JSC::B3::Air::Arg::is):

  • b3/air/AirDumpAsJS.cpp: Added.

(JSC::B3::Air::dumpAsJS):

  • b3/air/AirDumpAsJS.h: Added.
  • b3/air/AirFixObviousSpills.cpp:
  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):

  • b3/air/AirInstInlines.h:

(JSC::B3::Air::Inst::forEach):
(JSC::B3::Air::Inst::extraClobberedRegs):
(JSC::B3::Air::ForEach<Tmp>::forEach): Deleted. This was doing what ArgThingHelper would have done but not as well.
(JSC::B3::Air::ForEach<Arg>::forEach): Deleted.
(JSC::B3::Air::ForEach<Reg>::forEach): Deleted.

  • b3/air/AirLogRegisterPressure.cpp:
  • b3/air/AirReportUsedRegisters.cpp:
  • b3/air/AirSpillEverything.cpp:
  • b3/air/opcode_generator.rb: Make this dump opcode.js, which is like what it dumps for C++.
  • jit/Reg.cpp:

(JSC::Reg::debugName):
(JSC::Reg::dump):

  • jit/Reg.h:

(JSC::Reg::hash):

  • jsc.cpp: Fix jsc so that it reports the filename and line number of parser errors.

(dumpException):

  • parser/ParserError.h: Make it easier to debug this code.

(WTF::printInternal):

  • runtime/Options.h:

Source/WTF:

  • wtf/Insertion.h:

(WTF::executeInsertions): I found a bug while rewriting this code in JS.

  • wtf/PrintStream.h:

(WTF::PrintStream::print):
(WTF::PrintStream::println): This is useful to have.

6:31 PM Changeset in webkit [201782] by Keith Rollin
  • 34 edits in trunk

Remove all uses of PassRefPtr in WTF
https://bugs.webkit.org/show_bug.cgi?id=157596
<rdar://problem/26234391>

Reviewed by Chris Dumez.

Source/JavaScriptCore:

Update calls to interfaces that no longer take or return PassRefPtrs.

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRope):

  • runtime/JSString.h:

(JSC::JSString::JSString):
(JSC::jsSubstring):

  • runtime/PrivateName.h:

(JSC::PrivateName::PrivateName):

  • runtime/SmallStrings.cpp:

(JSC::SmallStringsStorage::SmallStringsStorage):

  • runtime/StringConstructor.cpp:

(JSC::stringFromCharCodeSlowCase):

  • runtime/StringPrototype.cpp:

(JSC::jsSpliceSubstrings):
(JSC::jsSpliceSubstringsWithSeparators):
(JSC::replaceUsingStringSearch):
(JSC::repeatCharacter):
(JSC::stringProtoFuncFontsize):
(JSC::stringProtoFuncLink):
(JSC::normalize):

Source/WebCore:

Update calls to interfaces that no longer take or return PassRefPtrs.

No new tests: no new functionality so changes are covered by existing
tests.

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::formatNumberValue):

  • dom/Document.cpp:

(WebCore::Document::displayStringModifiedByEncoding):

  • xml/XPathGrammar.y:

Source/WTF:

Remove/update most interfaces that take or return PassRefPtrs.
Remaining references include those in non-Cocoa implementations and
those required for continued compatibility with modules that still use
PassRefPtrs (specifically: Forward.h, RefPtr interoperability,
SizeLimits.h, WorkQueue (Windows) DispatchQueueEfl,
DispatchWorkItemEfl, and PassRefPtr itself).

Update calls to interfaces that no longer take or return PassRefPtrs.

Update adoptRef(T*) to return a RefPtr instead of a PassRefPtr and
move it to RefPtr.h from PassRefPtr.h.

  • wtf/MetaAllocator.cpp:

(WTF::MetaAllocator::allocate):

  • wtf/MetaAllocator.h:
  • wtf/ParallelJobsGeneric.h:

(WTF::ParallelEnvironment::ThreadPrivate::create):

  • wtf/text/AtomicStringImpl.cpp:

(WTF::HashAndUTF8CharactersTranslator::translate):
(WTF::SubstringTranslator::translate):

  • wtf/text/CString.cpp:

(WTF::CStringBuffer::createUninitialized):

  • wtf/text/CString.h:
  • wtf/text/StringBuilder.cpp:

(WTF::StringBuilder::reifyString):
(WTF::StringBuilder::resize):
(WTF::StringBuilder::reallocateBuffer<LChar>):
(WTF::StringBuilder::reallocateBuffer<UChar>):

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::reallocateInternal):
(WTF::StringImpl::reallocate):
(WTF::StringImpl::create8BitIfPossible):
(WTF::StringImpl::createSymbol):
(WTF::StringImpl::createNullSymbol):
(WTF::StringImpl::convertToLowercaseWithoutLocale):
(WTF::StringImpl::convertToUppercaseWithoutLocale):
(WTF::StringImpl::convertToLowercaseWithLocale):
(WTF::StringImpl::convertToUppercaseWithLocale):
(WTF::StringImpl::convertASCIICase):

  • wtf/text/StringImpl.h:

(WTF::StringImpl::StringImpl):
(WTF::StringImpl::createSubstringSharingImpl):
(WTF::StringImpl::tryCreateUninitialized):
(WTF::StringImpl::extractFoldedStringInSymbol):

  • wtf/text/SymbolRegistry.cpp:

(WTF::SymbolRegistry::symbolForKey):

  • wtf/text/WTFString.cpp:

(WTF::String::substringSharingImpl):

  • wtf/text/WTFString.h:

(WTF::String::String): Deleted.

  • wtf/text/cf/StringImplCF.cpp:

Tools:

Update calls to interfaces that no longer take or return PassRefPtrs.

  • TestWebKitAPI/Tests/WTF/StringImpl.cpp:

(TestWebKitAPI::stringFromUTF8):
(TestWebKitAPI::TEST):

6:30 PM Changeset in webkit [201781] by weinig@apple.com
  • 4 edits in trunk/LayoutTests

Update tests to work around https://bugs.webkit.org/show_bug.cgi?id=158507.

Re-enable now passing test.

  • animations/script-tests/spring-computed-style.js:
  • animations/script-tests/spring-parsing.js:

Use a non-body element to do the testing.

5:44 PM Changeset in webkit [201780] by weinig@apple.com
  • 2 edits in trunk/LayoutTests

Mark animations/spring-computed-style.html as failing temporarily.

5:36 PM Changeset in webkit [201779] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline fast/events/touch/document-create-touch-list-ios.html

Unreviewed test gardening.

  • fast/events/touch/document-create-touch-list-ios-expected.txt:
5:32 PM Changeset in webkit [201778] by BJ Burg
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: reduce timer churn when processing many DOM.attributeModified messages
https://bugs.webkit.org/show_bug.cgi?id=158491
<rdar://problem/25561452>

Reviewed by Timothy Hatcher.

When the backend sends thousands of DOM.attributeModified events to the frontend, it
slows to a crawl. This is partly because redundant messages are being sent, and
because the frontend is taking too long to render attribute updates in the elements tab.

This patch is a first step to improve performance by reducing unnecessary work. It
coalesces all attribute state updates to only happen once per animation frame. This
reduces timer churn because we previously used a debouncing timer with interval of 0ms,
and that had to be cleared and restarted on every call. This change also eliminates
forced layouts when updating the selection highlights, since the DOM tree outline has
been reflowed by the time we start updating selections in a requestAnimationFrame callback.

There is still a lot of optimization to be done here, but this reduces the problem
considerably by keeping the event loop clear and making it obvious which selection
update operations are still too expensive.

  • UserInterface/Base/Utilities.js:

Add a 'onNextFrame' proxy to Object. It works like debounce, except it coalesces calls
up until the next animation frame rather than a fixed timeout. It also does not extend
the timeout interval for each call.

  • UserInterface/Views/DOMTreeUpdater.js:

(WebInspector.DOMTreeUpdater.prototype._attributesUpdated):
(WebInspector.DOMTreeUpdater.prototype._characterDataModified):
(WebInspector.DOMTreeUpdater.prototype._nodeInserted):
(WebInspector.DOMTreeUpdater.prototype._nodeRemoved):
(WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
Update on the next frame rather than on a zero delay timeout.

  • UserInterface/Views/TreeOutline.js:

(WebInspector.TreeOutline.WebInspector.TreeElement.prototype.didChange):
(WebInspector.TreeOutline.WebInspector.TreeElement.prototype._fireDidChange):
Update on the next frame rather than on a zero delay timeout.

5:06 PM Changeset in webkit [201777] by mmaxfield@apple.com
  • 6 edits
    6 adds in trunk

Text-decoration-style: dashed / dotted rendered as solid
https://bugs.webkit.org/show_bug.cgi?id=134336

Reviewed by Dean Jackson.

Source/WebCore:

We already had most of the infrastructure for dotted / dashed underlines.
Previously, we were setting the stroke style for the underlines, but then
filling the underlines (which means the stroke styles is irrelevant).
Instead, we should just compute the individual dots / dashes to fill.

The implementation of this is done inside GraphicsContext because
GraphicsContext is already responsible for handling the single / double
underline distinction. Extending it to be responsible for dotted / dashed
is the natural thing to do.

Tests: fast/css3-text/css3-text-decoration/text-decoration-dashed.html

fast/css3-text/css3-text-decoration/text-decoration-dotted-dashed.html
fast/css3-text/css3-text-decoration/text-decoration-dotted.html

  • platform/graphics/GraphicsContext.h:
  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawLineForText):
(WebCore::GraphicsContext::drawLinesForText):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::GraphicsContext::drawLineForText):
(WebCore::GraphicsContext::drawLinesForText):

  • rendering/TextDecorationPainter.cpp:

(WebCore::drawSkipInkUnderline):
(WebCore::TextDecorationPainter::paintTextDecoration):

LayoutTests:

Make sure that the dotted / dashed / solid renderings are all distinct.

  • fast/css3-text/css3-text-decoration/text-decoration-dashed-expected-mismatch.html: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-dashed.html: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-dotted-dashed-expected-mismatch.html: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-dotted-dashed.html: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-dotted-expected-mismatch.html: Added.
  • fast/css3-text/css3-text-decoration/text-decoration-dotted.html: Added.
4:45 PM Changeset in webkit [201776] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

InvalidationPointInjectionPhase creates bogus InvalidationPoints that may even be inserted when it's not OK to exit
https://bugs.webkit.org/show_bug.cgi?id=158499
<rdar://problem/26647473>

Reviewed by Mark Lam and Benjamin Poulain.

InvalidationPointInjectionPhase forgot to clear m_originThatHadFire
before analyzing the current block it's analyzing. This meant that
the phase allowed a residual m_originThatHadFire that was set from the
previous block to effect a completely unrelated block. This is usually
harmless, but sometimes we would insert an InvalidationPoint at a point
in the graph when exiting is invalid. This would cause a crash.

  • dfg/DFGInvalidationPointInjectionPhase.cpp:

(JSC::DFG::InvalidationPointInjectionPhase::run):

  • tests/stress/dont-crash-on-bad-invalidation-point.js: Added.

(dontCrash):

4:40 PM Changeset in webkit [201775] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix after r201739. attachShadow was throwing an exception on this component.

  • public/v3/pages/analysis-category-toolbar.js:

(AnalysisCategoryToolbar):

3:45 PM Changeset in webkit [201774] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

AX: iOS: Need to expose whether object is a dialog element
https://bugs.webkit.org/show_bug.cgi?id=158487
<rdar://problem/26678218>

Reviewed by Joanmarie Diggs.

Expose whether an object is a dialog type. This will allow decisions higher up the stack to be made in regards to where to move VoiceOver focus.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityIsDialog]):

3:32 PM Changeset in webkit [201773] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r158219): Web Inspector: Border under Memory content view is too thick
https://bugs.webkit.org/show_bug.cgi?id=158495
<rdar://problem/26683428>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/MemoryTimelineView.css:

(.timeline-view.memory): Deleted.

2:09 PM Changeset in webkit [201772] by Brent Fulgham
  • 2 edits in trunk/Source/bmalloc

Prevents integer overflow in Vector.h
https://bugs.webkit.org/show_bug.cgi?id=158455
<rdar://problem/20235469>

Patch by Pranjal Jumde <pjumde@apple.com> on 2016-06-07
Reviewed by Mark Lam.

  • bmalloc/Vector.h:

(bmalloc::Vector<T>::reallocateBuffer):

1:46 PM Changeset in webkit [201771] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Yosemite build.
https://bugs.webkit.org/show_bug.cgi?id=158403

  • platform/spi/cocoa/QuartzCoreSPI.h:
1:32 PM Changeset in webkit [201770] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix 10.10 build.

  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:

(WebKit::addAnimationToLayer):

1:24 PM Changeset in webkit [201769] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix WinCairo build.

  • platform/network/curl/MultipartHandle.cpp:

(WebCore::MultipartHandle::didReceiveResponse):

1:07 PM Changeset in webkit [201768] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

operationProcessTypeProfilerLogDFG doesn't update topCallFrame
https://bugs.webkit.org/show_bug.cgi?id=158428
<rdar://problem/26571493>

Reviewed by Mark Lam.

  • dfg/DFGOperations.cpp:
1:05 PM Changeset in webkit [201767] by achristensen@apple.com
  • 5 edits in trunk/Source/WebCore

Build fix non-cocoa platforms.
https://bugs.webkit.org/show_bug.cgi?id=158332

  • loader/cache/CachedFont.cpp:

(WebCore::CachedFont::createCustomFontData):

  • platform/network/ResourceHandle.cpp:

(WebCore::ResourceHandle::continueWillSendRequest):

  • platform/network/curl/MultipartHandle.cpp:

(WebCore::MultipartHandle::didReceiveResponse):

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::headerCallback):

12:51 PM Changeset in webkit [201766] by mark.lam@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

calculatedDisplayName() and friends actually need a VM& and not a ExecState/CallFrame.
https://bugs.webkit.org/show_bug.cgi?id=158488

Reviewed by Geoffrey Garen.

calculatedDisplayName() (and some of its friends) actually just need a VM&.
Their work has nothing to do with an ExecState at all. This patch will make that
clear by changing these functions to take a VM& arg instead of an ExecState* or
CallFrame*.

Also removed the JS_EXPORT_PRIVATE attribute from Interpreter::StackFrame::toString().
The JS_EXPORT_PRIVATE attribute was a holdover from the days when WebInspector
was entirely in WebCore. It is no longer needed.

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::functionName):

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::functionDetails):

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::createScriptCallStackFromException):

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::friendlyFunctionName):

  • interpreter/Interpreter.cpp:

(JSC::StackFrame::friendlySourceURL):
(JSC::StackFrame::friendlyFunctionName):
(JSC::StackFrame::expressionInfo):
(JSC::StackFrame::toString):
(JSC::Interpreter::stackTraceAsString):

  • interpreter/Interpreter.h:
  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::functionName):

  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::name):
(JSC::InternalFunction::displayName):
(JSC::InternalFunction::getCallData):
(JSC::InternalFunction::calculatedDisplayName):

  • runtime/InternalFunction.h:

(JSC::InternalFunction::createStructure):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::name):
(JSC::JSFunction::displayName):
(JSC::JSFunction::calculatedDisplayName):
(JSC::JSFunction::getConstructData):
(JSC::getCalculatedDisplayName):

  • runtime/JSFunction.h:

(JSC::JSFunction::executable):

  • runtime/JSObject.cpp:

(JSC::JSObject::calculatedClassName):

12:31 PM Changeset in webkit [201765] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping http/tests/websocket/tests/hybi/upgrade-simple-ws.html
https://bugs.webkit.org/show_bug.cgi?id=158480

Unreviewed test gardening.

12:22 PM Changeset in webkit [201764] by weinig@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix the 10.10 build.

  • platform/spi/cocoa/QuartzCoreSPI.h:
11:56 AM Changeset in webkit [201763] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebKit/mac

[iOS WK1] Remove unused -_webkit_unescapedQueryValue and -_webkit_queryKeysAndValues NSString category methods
<https://webkit.org/b/158485>
<rdar://problem/16960445>

Reviewed by Dan Bernstein.

  • Misc/WebNSURLExtras.h:

(-[NSString _webkit_unescapedQueryValue]): Deleted declaration.
(-[NSString _webkit_queryKeysAndValues]): Deleted declaration.

  • Misc/WebNSURLExtras.mm:

(-[NSString _webkit_unescapedQueryValue]): Deleted.
(-[NSString _webkit_queryKeysAndValues]): Deleted.

11:55 AM Changeset in webkit [201762] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: add a keyboard shortcut to open the new tab tab
https://bugs.webkit.org/show_bug.cgi?id=158365
<rdar://problem/26631897>

Unreviewed, fix a typo introduced in r201692.
This caused the new tab button to stop working.

  • UserInterface/Base/Main.js:

(WebInspector._updateNewTabButtonState):

11:52 AM Changeset in webkit [201761] by achristensen@apple.com
  • 46 edits in trunk/Source

Modernize loading code
https://bugs.webkit.org/show_bug.cgi?id=158332

Reviewed by Darin Adler.

Source/WebCore:

No new tests, no change in behavior.

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::cachedResourceContent):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::continueAfterContentPolicy):

  • loader/FrameLoader.h:
  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::didReceiveData):
(WebCore::NetscapePlugInStreamLoader::didReceiveBuffer):
(WebCore::NetscapePlugInStreamLoader::didReceiveDataOrBuffer):
(WebCore::NetscapePlugInStreamLoader::didFinishLoading):

  • loader/NetscapePlugInStreamLoader.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::deliverResponseAndData):
(WebCore::ResourceLoader::loadDataURL):
(WebCore::ResourceLoader::addDataOrBuffer):
(WebCore::ResourceLoader::clearResourceData):
(WebCore::ResourceLoader::didReceiveData):
(WebCore::ResourceLoader::didReceiveBuffer):
(WebCore::ResourceLoader::didReceiveDataOrBuffer):
(WebCore::ResourceLoader::didFinishLoading):

  • loader/ResourceLoader.h:

(WebCore::ResourceLoader::wasCancelled):
(WebCore::ResourceLoader::options):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveData):
(WebCore::SubresourceLoader::didReceiveBuffer):
(WebCore::SubresourceLoader::didReceiveDataOrBuffer):

  • loader/SubresourceLoader.h:
  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::abort):
(WebCore::ApplicationCacheGroup::createResourceHandle):

  • loader/appcache/ApplicationCacheGroup.h:
  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::addData):

  • loader/cache/CachedRawResourceClient.h:
  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::createWithContentsOfFile):
(WebCore::SharedBuffer::adoptVector):
(WebCore::SharedBuffer::duplicateDataBufferIfNecessary):
(WebCore::SharedBuffer::appendToDataBuffer):
(WebCore::SharedBuffer::clearDataBuffer):

  • platform/SharedBuffer.h:

(WebCore::SharedBuffer::create):

  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBuffer::maybeAppendPlatformData):
(WebCore::SharedBuffer::wrapCFDataArray):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(ResourceHandleStreamingClient::didReceiveData):
(ResourceHandleStreamingClient::didReceiveBuffer):

  • platform/mac/SharedBufferMac.mm:

(WebCore::SharedBuffer::createCFData):
(WebCore::SharedBuffer::createFromReadingFile):

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::~BlobRegistryImpl):
(WebCore::createBlobResourceHandle):
(WebCore::loadBlobResourceSynchronously):
(WebCore::registerBlobResourceHandleConstructor):
(WebCore::BlobRegistryImpl::createResourceHandle):
(WebCore::BlobRegistryImpl::appendStorageItems):
(WebCore::createResourceHandle): Deleted.
(WebCore::loadResourceSynchronously): Deleted.

  • platform/network/BlobRegistryImpl.h:
  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::createAsync):
(WebCore::BlobResourceHandle::loadResourceSynchronously):
Removed the overridden didReceiveData and didFinishLoading,
which did nothing and were identical to the function they overwrote.

  • platform/network/BlobResourceHandle.h:
  • platform/network/PingHandle.h:
  • platform/network/ResourceHandle.cpp:

(WebCore::ResourceHandle::ResourceHandle):
(WebCore::ResourceHandle::create):
(WebCore::ResourceHandle::scheduleFailure):

  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleClient.cpp:

(WebCore::ResourceHandleClient::willCacheResponseAsync):
(WebCore::ResourceHandleClient::didReceiveBuffer):

  • platform/network/ResourceHandleClient.h:

(WebCore::ResourceHandleClient::didReceiveResponse):
(WebCore::ResourceHandleClient::didReceiveData):
(WebCore::ResourceHandleClient::didFinishLoading):
(WebCore::ResourceHandleClient::didFail):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask resource:receivedData:length:]):
This data must be copied in order to put it in a refcounted NSData because it comes
from IPC from the Network Process and is an IPC::DataReference which will be deallocated
when the message handling is done.

  • platform/soup/SharedBufferSoup.cpp:

(WebCore::SharedBuffer::SharedBuffer):

  • testing/MockContentFilter.cpp:

(WebCore::MockContentFilter::replacementData):
(WebCore::MockContentFilter::unblockHandler):

Source/WebKit2:

  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/NetworkDataTask.h:

(WebKit::NetworkDataTask::client):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveResponseNetworkSession):
(WebKit::NetworkLoad::didReceiveData):
(WebKit::NetworkLoad::didReceiveBuffer):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveBuffer):
(WebKit::NetworkResourceLoader::didFinishLoading):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/PingLoad.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::didReceiveBuffer):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTask::didReceiveResponse):
(WebKit::NetworkDataTask::didReceiveData):

  • Shared/WebHitTestResultData.cpp:
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResource):

11:22 AM WebInspector edited by clopez@igalia.com
(diff)
11:21 AM WebInspector edited by clopez@igalia.com
(diff)
11:20 AM Changeset in webkit [201760] by peavo@outlook.com
  • 2 edits in trunk/Tools

[Win] Imported markup insertion test is failing.
https://bugs.webkit.org/show_bug.cgi?id=158477

Reviewed by Darin Adler.

Make sure the empty synchronous request is loaded after each test.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(runTest):

11:15 AM Changeset in webkit [201759] by weinig@apple.com
  • 29 edits
    9 adds in trunk

Add experimental support for spring based CSS animations
https://bugs.webkit.org/show_bug.cgi?id=158403

Reviewed by Dean Jackson.

Source/WebCore:

Adds experimental support for a new CSS animation timing function that uses
spring to model the time function. To use it you replace your normal timing
function, be it cubic-bezier or steps, with a new function called spring().
For instance, for a transition you would write:

transition-timing-function: spring(1 100 10 0);


The parameters are, in order:

  • Mass
  • Stiffness
  • Damping
  • Initial Velocity

Tests: animations/spring-computed-style.html

animations/spring-function.html
animations/spring-parsing.html

  • WebCore.xcodeproj/project.pbxproj:

Add new file.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::createTimingFunctionValue):
Modernize and add support for the spring function.

  • css/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::parseTransformOriginShorthand):
(WebCore::CSSParser::isSpringTimingFunctionEnabled):
(WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
(WebCore::CSSParser::parseSpringTimingFunctionValue):
(WebCore::CSSParser::parseAnimationTimingFunction):

  • css/CSSParser.h:
  • css/CSSParserMode.h:

Add parsing support for the spring() function.

  • css/CSSTimingFunctionValue.cpp:

(WebCore::CSSCubicBezierTimingFunctionValue::customCSSText):
(WebCore::CSSCubicBezierTimingFunctionValue::equals):
(WebCore::CSSStepsTimingFunctionValue::customCSSText):
(WebCore::CSSStepsTimingFunctionValue::equals):
(WebCore::CSSSpringTimingFunctionValue::customCSSText):
(WebCore::CSSSpringTimingFunctionValue::equals):

  • css/CSSTimingFunctionValue.h:

(WebCore::CSSSpringTimingFunctionValue::create):
(WebCore::CSSSpringTimingFunctionValue::mass):
(WebCore::CSSSpringTimingFunctionValue::stiffness):
(WebCore::CSSSpringTimingFunctionValue::damping):
(WebCore::CSSSpringTimingFunctionValue::initialVelocity):
(WebCore::CSSSpringTimingFunctionValue::CSSSpringTimingFunctionValue):
Modernize and add support for the spring function.

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapAnimationTimingFunction):
Pipe the spring function into the animation.

  • css/CSSValue.cpp:

(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isSpringTimingFunctionValue):
Add support for the spring function.

  • page/Settings.in:

Add a setting to control if the spring function is enabled.

  • page/animation/AnimationBase.cpp:

(WebCore::solveSpringFunction):
(WebCore::AnimationBase::progress):
Add support for solving the spring function. Since the spring requires time to be absolute,
get the real time by multiplying the ratio t, to the total duration.

  • platform/animation/TimingFunction.cpp:

(WebCore::operator<<):

  • platform/animation/TimingFunction.h:

(WebCore::TimingFunction::~TimingFunction):
(WebCore::TimingFunction::isSpringTimingFunction):
Add support for the spring timing function.

  • platform/graphics/SpringSolver.h: Added.

(WebCore::SpringSolver::SpringSolver):
(WebCore::SpringSolver::solve):
Add a Spring solver that matches the one in CoreAnimation.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::createAnimationFromKeyframes):
(WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
(WebCore::GraphicsLayerCA::createBasicAnimation):
(WebCore::GraphicsLayerCA::createSpringAnimation):
(WebCore::GraphicsLayerCA::setupAnimation):

  • platform/graphics/ca/GraphicsLayerCA.h:

Map animations with spring timing functions to CASpringAnimations.

  • platform/graphics/ca/PlatformCAAnimation.cpp:

(WebCore::operator<<):
(WebCore::PlatformCAAnimation::isBasicAnimation):

  • platform/graphics/ca/PlatformCAAnimation.h:

(WebCore::PlatformCAAnimation::setActualStartTimeIfNeeded):
(WebCore::PlatformCAAnimation::PlatformCAAnimation):

  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:

(WebCore::toCAMediaTimingFunction):
(PlatformCAAnimationCocoa::PlatformCAAnimationCocoa):
(PlatformCAAnimationCocoa::setTimingFunction):
(PlatformCAAnimationCocoa::copyTimingFunctionFrom):
(PlatformCAAnimationCocoa::setFromValue):
(PlatformCAAnimationCocoa::copyFromValueFrom):
(PlatformCAAnimationCocoa::setToValue):
(PlatformCAAnimationCocoa::copyToValueFrom):
Add a new type of PlatformCAAnimation, Spring, which is a sub-type of Basic.

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<StepsTimingFunction>::decode):
(IPC::ArgumentCoder<SpringTimingFunction>::encode):
(IPC::ArgumentCoder<SpringTimingFunction>::decode):
(IPC::ArgumentCoder<FloatPoint>::encode):

  • Shared/WebCoreArgumentCoders.h:
  • Shared/WebPreferencesDefinitions.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:

(WebKit::PlatformCAAnimationRemote::Properties::encode):
(WebKit::PlatformCAAnimationRemote::Properties::decode):
(WebKit::addAnimationToLayer):
Pipe through support for the Spring animation.

LayoutTests:

  • animations/script-tests/spring-computed-style.js: Added.
  • animations/script-tests/spring-parsing.js: Added.
  • animations/spring-computed-style-expected.txt: Added.
  • animations/spring-computed-style.html: Added.
  • animations/spring-function-expected.txt: Added.
  • animations/spring-function.html: Added.
  • animations/spring-parsing-expected.txt: Added.
  • animations/spring-parsing.html: Added.

Add tests for the spring timing function.

11:13 AM Changeset in webkit [201758] by achristensen@apple.com
  • 2 edits
    1 add in trunk/Source/WebKit/mac

Adopt [PDFView documentScrollView]
https://bugs.webkit.org/show_bug.cgi?id=158454
rdar://problem/25875390

Reviewed by Tim Horton.

  • WebView/PDFViewSPI.h: Added.
  • WebView/WebPDFView.mm:

(-[WebPDFView _clipViewForPDFDocumentView]):

11:12 AM WebInspector edited by clopez@igalia.com
(diff)
11:10 AM EnvironmentVariables edited by clopez@igalia.com
(diff)
11:01 AM EnvironmentVariables edited by clopez@igalia.com
(diff)
10:53 AM Changeset in webkit [201757] by Chris Dumez
  • 25 edits
    23 adds in trunk

Implement EventListenerOptions argument to addEventListener
https://bugs.webkit.org/show_bug.cgi?id=149466
<rdar://problem/22802031>

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Import new test from W3C that covers EventListenerOptions.

  • web-platform-tests/dom/events/EventListenerOptions-capture-expected.txt: Added.
  • web-platform-tests/dom/events/EventListenerOptions-capture.html: Added.

Source/WebCore:

Implement AddEventListenerOptions dictionary argument to addEventListener()
and EventListenerOptions dictionary argument to removeEventListener(), as
per the latest DOM specification:

Firefox and Chrome already support this.

Support for AddEventListenerOptions in this patch is as follows:

  • 'capture': fully supported.
  • 'once': fully supported.
  • 'passive': supported in the sense that preventDefault() will be ignored

for passive event listeners. There are however currently no
performance benefits from passing this flag. Those optimizations
will be implemented in follow-up patches (in particular for
Touch and Scroll events).

Tests: fast/events/AddEventListenerOptions-once-recursive.html

fast/events/AddEventListenerOptions-once.html
fast/events/AddEventListenerOptions-passive.html
fast/events/removeEventListener-EventListenerOptions-capture.html
imported/w3c/web-platform-tests/dom/events/EventListenerOptions-capture.html

  • Modules/webaudio/AudioScheduledSourceNode.cpp:

(WebCore::AudioScheduledSourceNode::addEventListener):
(WebCore::AudioScheduledSourceNode::removeEventListener):

  • Modules/webaudio/AudioScheduledSourceNode.h:
  • Modules/webaudio/ScriptProcessorNode.cpp:

(WebCore::ScriptProcessorNode::addEventListener):
(WebCore::ScriptProcessorNode::removeEventListener):

  • Modules/webaudio/ScriptProcessorNode.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheckExpression):

  • dom/Event.h:

(WebCore::Event::preventDefault):
(WebCore::Event::setInPassiveListener):

  • dom/EventListenerMap.cpp:

(WebCore::addListenerToVector):
(WebCore::EventListenerMap::add):

  • dom/EventListenerMap.h:
  • dom/EventTarget.cpp:

(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):
(WebCore::EventTarget::removeEventListener):
(WebCore::EventTarget::setAttributeEventListener):
(WebCore::EventTarget::fireEventListeners):

  • dom/EventTarget.h:

(WebCore::EventTarget::ListenerOptions::ListenerOptions):
(WebCore::EventTarget::AddEventListenerOptions::AddEventListenerOptions):
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::addEventListenerForBindings):
(WebCore::EventTarget::removeEventListenerForBindings):

  • dom/EventTarget.idl:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::addEventListener):

  • dom/MessagePort.h:
  • dom/Node.cpp:

(WebCore::tryAddEventListener):
(WebCore::Node::addEventListener):
(WebCore::tryRemoveEventListener):
(WebCore::Node::removeEventListener):

  • dom/Node.h:
  • dom/RegisteredEventListener.h:

(WebCore::RegisteredEventListener::Options::Options):
(WebCore::RegisteredEventListener::RegisteredEventListener):
(WebCore::operator==):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::addEventListener):
(WebCore::HTMLMediaElement::removeEventListener):

  • html/HTMLMediaElement.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):

  • page/DOMWindow.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::addEventListener):
(WebCore::SVGElement::removeEventListener):

  • svg/SVGElement.h:

LayoutTests:

  • fast/events/AddEventListenerOptions-once-expected.txt: Added.
  • fast/events/AddEventListenerOptions-once-recursive-expected.txt: Added.
  • fast/events/AddEventListenerOptions-once-recursive.html: Added.
  • fast/events/AddEventListenerOptions-once.html: Added.
  • fast/events/AddEventListenerOptions-passive-expected.txt: Added.
  • fast/events/AddEventListenerOptions-passive.html: Added.
  • fast/events/removeEventListener-EventListenerOptions-capture-expected.txt: Added.
  • fast/events/removeEventListener-EventListenerOptions-capture.html: Added.

Add layout testing coverage for various aspects of the functionality.

  • imported/blink/fast/events/eventlisteneroptions/capture_default-expected.txt: Added.
  • imported/blink/fast/events/eventlisteneroptions/capture_default.html: Added.
  • imported/blink/fast/events/eventlisteneroptions/capture_equality-expected.txt: Added.
  • imported/blink/fast/events/eventlisteneroptions/capture_equality.html: Added.
  • imported/blink/fast/events/eventlisteneroptions/capture_query-expected.txt: Added.
  • imported/blink/fast/events/eventlisteneroptions/capture_query.html: Added.
  • imported/blink/fast/events/eventlisteneroptions/passive_dispatch-expected.txt: Added.
  • imported/blink/fast/events/eventlisteneroptions/passive_dispatch.html: Added.
  • imported/blink/fast/events/eventlisteneroptions/passive_inequality-expected.txt: Added.
  • imported/blink/fast/events/eventlisteneroptions/passive_inequality.html: Added.
  • imported/blink/fast/events/eventlisteneroptions/passive_query-expected.txt: Added.
  • imported/blink/fast/events/eventlisteneroptions/passive_query.html: Added.

Import blink tests for this functionality.

10:23 AM Changeset in webkit [201756] by Yusuke Suzuki
  • 4 edits
    6 adds in trunk/Source

[JSC] Do not allocate unnecessary UTF-8 string for encodeXXX functions
https://bugs.webkit.org/show_bug.cgi?id=158416

Reviewed by Darin Adler and Geoffrey Garen.

Source/JavaScriptCore:

Previously, encodeXXX functions first allocate new UTF-8 string, and generate (& allocate) the results from this UTF-8 string.
It is costly since this UTF-8 string is always wasted. In this patch, we generate the results without this UTF-8 string.
We precisely implement ECMA262's Encode abstract operation[1].

This optimized encodeXXX functions provide great improvement in kraken stanford-crypto-sha256-iterative since it frequently calls
these functions. We can see 6 - 7% improvements.

baseline patched

stanford-crypto-sha256-iterative 37.952+-0.155 35.484+-0.265 definitely 1.0695x faster

[1]: https://tc39.github.io/ecma262/#sec-encode

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::toSafeView):
Use this helper function to retrieve JSString::SafeView.

(JSC::makeCharacterBitmap):
(JSC::encode):
In encode, we reserve N length buffer at first. This is important when the length of the given string is long enough,
preventing frequent unnecessary buffer reallocations. This reserving contributes to 1% kraken stanford-crypto-sha256-iterative progression.

(JSC::decode):
Previously, Bitmap accidentally includes \0. And instead of removing this \0, we checked character != 0.
This patch fixes it for the Bitmap not to include \0.

(JSC::globalFuncParseInt):
(JSC::globalFuncEscape):
(JSC::globalFuncUnescape):

  • tests/stress/encode-decode-ascii.js: Added.

(shouldBe):

  • tests/stress/encode-decode-unicode.js: Added.

(shouldBe):
(isLowSurrogate):
(isHighSurrogate):
(isSurrogate):

  • tests/stress/encode-decode-uri-component-surrogates.js: Added.

(shouldBe):
(toHighSurrogate):
(toLowSurrogate):

  • tests/stress/encode-decode-uri-surrogates.js: Added.

(shouldBe):
(toHighSurrogate):
(toLowSurrogate):

  • tests/stress/encode-decode-zero.js: Added.

(shouldBe):

  • tests/stress/escape-unescape-surrogates.js: Added.

(shouldBe):
(toHighSurrogate):
(toLowSurrogate):

Source/WTF:

  • wtf/Bitmap.h:

(WTF::Bitmap::size):
(WTF::WordType>::Bitmap):
(WTF::WordType>::get):
(WTF::WordType>::set):
(WTF::WordType>::testAndSet):
(WTF::WordType>::testAndClear):
(WTF::WordType>::concurrentTestAndSet):
(WTF::WordType>::concurrentTestAndClear):
(WTF::WordType>::clear):
(WTF::WordType>::clearAll):
(WTF::WordType>::nextPossiblyUnset):
(WTF::WordType>::findRunOfZeros):
(WTF::WordType>::count):
(WTF::WordType>::isEmpty):
(WTF::WordType>::isFull):

9:37 AM Changeset in webkit [201755] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[GTK] Include locale.h before using LC_ALL
https://bugs.webkit.org/show_bug.cgi?id=158470

Patch by Ting-Wei Lan <Ting-Wei Lan> on 2016-06-07
Reviewed by Darin Adler.

  • jsc.cpp:
9:19 AM Changeset in webkit [201754] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

Unskip generator related stress tests
https://bugs.webkit.org/show_bug.cgi?id=158461

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-07
Reviewed by Darin Adler.

  • tests/stress/generator-methods.js:
  • tests/stress/generator-syntax.js:
  • tests/stress/yield-and-line-terminator.js:
  • tests/stress/yield-label-generator.js:
  • tests/stress/yield-named-accessors-generator.js:
  • tests/stress/yield-named-variable-generator.js:
  • tests/stress/yield-out-of-generator.js:
8:47 AM Changeset in webkit [201753] by Brent Fulgham
  • 23 edits
    64 adds in trunk

CSP: Content Security Policy directive, upgrade-insecure-requests (UIR)
https://bugs.webkit.org/show_bug.cgi?id=143653
<rdar://problem/23032067>

Reviewed by Andy Estes.

Source/WebCore:

Modify our loading logic so that we recognize and upgrade insecure requests to secure
requests if the Content Security Policy directive 'upgrade-insecure-requests' is
present.

Add a static helper function to ContentSecurityPolicy to upgrade insecure URLs so
that we don't have to sprinkle the same code all over the loader system.

Tests: http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.php

http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-nested.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-simple-ws.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe.html
http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content.html
http/tests/ssl/iframe-upgrade.https.html
http/tests/ssl/upgrade-origin-usage.html
http/tests/websocket/tests/hybi/upgrade-simple-ws.html

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect): Upgrade insecure requests if the CSP
indicates we should.

  • dom/Document.cpp:

(WebCore::Document::initSecurityContext): Populate new document CSP with sets of upgrade host and port combinations.

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestScript): Upgrade insecure requests if
the CSP indicates we should.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::loadResource): Ditto.

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::begin): Ditto.

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create): Ditto.
(WebCore::FormSubmission::populateFrameLoadRequest): Add "Upgrade-Insecure-Requests"
header to frame load requests.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::addExtraFieldsToMainResourceRequest): Add the
'Update-Insecure-Requests' header field if necessary.
(WebCore::FrameLoader::addHTTPUpgradeInsecureRequestsIfNeeded): Added helper function.
(WebCore::FrameLoader::loadPostRequest): Upgrade insecure requests if the CSP
indicates we should.
(WebCore::FrameLoader::loadResourceSynchronously): Ditto.
(WebCore::FrameLoader::loadDifferentDocumentItem): If loading a form, add the
'Update-Insecure-Requests' header field if necessary.
(WebCore::createWindow): Upgrade insecure requests if the CSP
indicates we should.

  • loader/FrameLoader.h:
  • loader/PingLoader.cpp:

(WebCore::PingLoader::loadImage): Upgrade insecure requests if the CSP
indicates we should.
(WebCore::PingLoader::sendPing): Ditto.
(WebCore::PingLoader::sendViolationReport): Ditto.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::willSendRequestInternal): Ditto.

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::requestFrame): Ditto.
(WebCore::SubframeLoader::requestObject): Ditto.

  • loader/appcache/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::shouldLoadResourceFromApplicationCache): Ditto.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestImage): Ditto.
(WebCore::CachedResourceLoader::requestResource): Ditto.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow): Add the 'Update-Insecure-Requests' header
field if necessary.

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::copyStateFrom): Populate upgraded resource set
from other context.
(WebCore::ContentSecurityPolicy::upgradeInsecureRequestIfNeeded): Added helper function
to upgrade requests when the upgrade-insecure-requests CSP policy is present, or if
the host and port combination have previously been upgraded.
(WebCore::ContentSecurityPolicy::upgradeInsecureNavigationRequestIfNeeded): Added
helper function to upgrade requests that have been previously upgraded. Cross-site
navigations only get upgraded when they have been previously upgraded.
(WebCore::ContentSecurityPolicy::addInsecureNavigationRequestsToUpgrade): Added.
(WebCore::ContentSecurityPolicy::populateInsecureNavigationRequestsToUpgradeFromOther): Added.

  • page/csp/ContentSecurityPolicy.h:

(WebCore::ContentSecurityPolicy::setUpgradeInsecureRequests): Added.
(WebCore::ContentSecurityPolicy::upgradeInsecureRequests): Added.

  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::ContentSecurityPolicyDirectiveList): Use
more C++11 initializations.
(WebCore::ContentSecurityPolicyDirectiveList::setUpgradeInsecureRequests): Added.
(WebCore::ContentSecurityPolicyDirectiveList::addDirective): Teach this function to
recognize the new directive.

  • page/csp/ContentSecurityPolicyDirectiveList.h:
  • page/csp/ContentSecurityPolicyDirectiveNames.cpp:
  • page/csp/ContentSecurityPolicyDirectiveNames.h:
  • platform/network/HTTPHeaderNames.in: Add new 'Upgrade-Insecure-Requests' header field.
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::open): Upgrade insecure requests if the CSP if needed.

LayoutTests:

Some of these tests are based on a set of Blink patches by Mike West <mkwst@chromium.org>.
<https://src.chromium.org/viewvc/blink?revision=192607&view=revision>,
<https://codereview.chromium.org/1178093002>, <https://codereview.chromium.org/1964303003>

The rest of them are based on our own mixedContent tests, revised for upgraded requests.

Note that WebSockets are not part of this testing at present due to https://bugs.webkit.org/show_bug.cgi?id=157884.

  • http/tests/security/contentSecurityPolicy/report-only-upgrade-insecure.php: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade-cors.https.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/basic-upgrade.https.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/form-upgrade.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-auxiliary.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-nested-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-nested.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-subresource.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/https-header-top-level.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/iframe-upgrade.https.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-nested-upgrades.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/proper-open-window-upgrades.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/basic-upgrade-cors.https.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/check-https-header.pl: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/echo-https-header.pl: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-insecure-audio-video.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-insecure-css.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-insecure-image.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-redirect-http-to-https-script.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/frame-with-redirect-https-to-http-script.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/insecure-xhr-in-main-frame-window.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/mixed-content-with-upgrade.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/resources/post-https-header.pl: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-audio-video-in-main-frame.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-css-in-iframe.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-image-in-main-frame.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-insecure-xhr-in-main-frame.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-http-to-https-script-in-iframe.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-redirect-https-to-http-script-in-iframe.html: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrades-mixed-content.html: Added.
  • http/tests/security/resources/post-origin-to-parent.html: Added.
  • http/tests/ssl/iframe-upgrade.https-expected.txt: Added.
  • http/tests/ssl/iframe-upgrade.https.html: Added.
  • http/tests/ssl/upgrade-origin-usage-expected.txt: Added.
  • http/tests/ssl/upgrade-origin-usage.html: Added.
  • http/tests/ssl/resources/origin-usage-iframe-1.html: Added.
  • http/tests/ssl/resources/origin-usage-iframe-1.manifest: Added.
  • http/tests/ssl/resources/origin-usage-iframe-2.html: Added.
  • http/tests/ssl/resources/origin-usage-iframe-2.manifest: Added.
  • http/tests/websocket/tests/hybi/upgrade-simple-ws-expected.txt: Added.
  • http/tests/websocket/tests/hybi/upgrade-simple-ws.html: Added.
  • TestExpectations: Skip http/tests/security/contentSecurityPolicy/upgrade-insecure-requests/upgrade-simple-ws.html since the

WebSocket server does not currently support wss sockets.

8:03 AM Changeset in webkit [201752] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Video elements are painted twice, in PaintPhaseForeground and PaintPhaseSelfOutline
https://bugs.webkit.org/show_bug.cgi?id=158247

Patch by Fujii Hironori <Fujii Hironori> on 2016-06-07
Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/replaced/outline-replaced-elements-offset.html

In <http://trac.webkit.org/changeset/105247>,
RenderReplaced::paint was changed to call
RenderReplaced::paintReplaced in PaintPhaseOutline and
PaintPhaseSelfOutline to paint outline of SVG.

As the result, RenderVideo::paintReplaced paints twice,
in forground and outline phase.

It was changed to paint outline of SVG in PaintPhaseForeground
since <http://trac.webkit.org/changeset/168645>. No need to call
RenderReplaced::paintReplaced in outline phases anymore.

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint): Return early if
PaintPhaseOutline or PaintPhaseSelfOutline.
Return early unless PaintPhaseForeground nor PaintPhaseSelection,
even if canHaveChildren().

LayoutTests:

  • fast/replaced/outline-replaced-elements-offset-expected.html: Added.
  • fast/replaced/outline-replaced-elements-offset.html: Added.
7:32 AM Changeset in webkit [201751] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] Mark fast/text/international/system-language/han-quotes.html as flaky

Unreviewed gardening

  • platform/gtk/TestExpectations:
7:22 AM Changeset in webkit [201750] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit

[Mac][cmake] Unreviewed trivial buildfix after r201689. Just for fun.

  • PlatformMac.cmake:
7:12 AM Changeset in webkit [201749] by Michael Catanzaro
  • 3 edits in trunk/Source/WebKit2

[GTK] Hide GTK+ 2 plugins if GTK+ 2 plugin process was built but is not installed
https://bugs.webkit.org/show_bug.cgi?id=158419

Reviewed by Carlos Garcia Campos.

  • UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:

(WebKit::PluginInfoStore::getPluginInfo):

  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:

(WebKit::PluginProcessProxy::scanPlugin):

5:43 AM Changeset in webkit [201748] by peavo@outlook.com
  • 2 edits in trunk/Source/WebKit/win

[Win][IndexedDB] Crash when running worker test.
https://bugs.webkit.org/show_bug.cgi?id=158434

Reviewed by Alex Christensen.

Initialize main runloop, otherwise RunLoop::main() will return nullptr.

  • WebView.cpp:

(WebView::WebView):

3:06 AM Changeset in webkit [201747] by nael.ouedraogo@crf.canon.fr
  • 8 edits in trunk

Creating a TouchList with non Touch items should throw an exception
https://bugs.webkit.org/show_bug.cgi?id=158302

Reviewed by Youenn Fablet.

Source/WebCore:

Only Touch items should be passed to CreateTouchList function as per specification
(https://w3c.github.io/touch-events/#extensions-to-the-document-interface).
CreateTouchList function behavior is modified. An exception is thrown when non Touch items
are passed as parameters instead of adding null items in the TouchList.

Tests have been modified to check whether behavior of CreateTouchList is correct.

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::createTouchList):

  • dom/Document.idl:

LayoutTests:

Only Touch items should be passed to CreateTouchList function as
per specification (https://w3c.github.io/touch-events/#extensions-to-the-document-interface).

Tests have been modified to check whether behavior of CreateTouchList is correct.

  • fast/events/touch/document-create-touch-list-crash-expected.txt:
  • fast/events/touch/document-create-touch-list-expected.txt:
  • fast/events/touch/script-tests/document-create-touch-list-crash.js:
  • fast/events/touch/script-tests/document-create-touch-list.js:
1:33 AM Changeset in webkit [201746] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Unskip js/script-tests/class-syntax-scoping.js
https://bugs.webkit.org/show_bug.cgi?id=158458

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-06-07
Reviewed by Ryosuke Niwa.

  • js/script-tests/class-syntax-scoping.js:
Note: See TracTimeline for information about the timeline view.