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

Timeline



Jul 27, 2016:

11:37 PM Changeset in webkit [203814] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Streams API] Use makeThisTypeError in ReadableStreamDefaultReader.js
​https://bugs.webkit.org/show_bug.cgi?id=160254

Patch by Romain Bellessort <​romain.bellessort@crf.canon.fr> on 2016-07-27
Reviewed by Darin Adler.

Use makeThisTypeError and makeGetterTypeError in ReadableStreamDefaultReader.js

No change in functionality.

  • Modules/streams/ReadableStreamDefaultReader.js:

(cancel):
(read):
(releaseLock):
(closed):

11:28 PM Changeset in webkit [203813] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[soup] Incorrect usage of relaxAdoptionRequirement in the constructor of SocketStreamHandle
​https://bugs.webkit.org/show_bug.cgi?id=160281

Patch by Fujii Hironori <Fujii Hironori> on 2016-07-27
Reviewed by Carlos Garcia Campos.

No new tests (No behavior change).

Incrementing refcount in a constructor causes an assertion failure
that it's not adopted yet. So, relaxAdoptionRequirement() was
used to avoid the problem in the constructors of
SocketStreamHandle. This is a incorrect solution. The correct
solution is to make SocketStreamHandle::create() increment the
refcount after calling the constructor.

  • platform/network/soup/SocketStreamHandle.h: Removed the second

constructor of SocketStreamHandle which is not used anymore.
Uninlined create() because this is not trivial anymore.

  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::SocketStreamHandle::create): Do the rest of jobs which
was done by the constructors.
(WebCore::SocketStreamHandle::SocketStreamHandle): Move the jobs
after initialization to create().
Removed the second constructor.

10:59 PM Changeset in webkit [203812] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Remove some unused code from FTL
​https://bugs.webkit.org/show_bug.cgi?id=160285

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-07-27
Reviewed by Mark Lam.

All the liveness and swapping is done inside B3,
this code is no longer needed.

  • dfg/DFGEdge.h:

(JSC::DFG::Edge::doesNotKill): Deleted.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::doesKill): Deleted.

10:47 PM Changeset in webkit [203811] by ap@apple.com
  • 2 edits in trunk/Tools

LayoutTestRelay should wait for WebKitTestRunnerApp installation to complete
​https://bugs.webkit.org/show_bug.cgi?id=160262

Reviewed by Daniel Bates.

  • LayoutTestRelay/LayoutTestRelay/LTRelayController.m:

(-[LTRelayController installApp]):

9:45 PM Changeset in webkit [203810] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking http/tests/loading/basic-credentials-sent-automatically.html as flaky on mac and ios-sim wk2
​https://bugs.webkit.org/show_bug.cgi?id=159427

Unreivewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
6:59 PM Changeset in webkit [203809] by aestes@apple.com
  • 4 edits in trunk/Source/WebKit2

[iOS] Add WKUIDelegate SPI for specifying that an attachment list is from a managed source
​https://bugs.webkit.org/show_bug.cgi?id=160280
<rdar://problem/27471815>

Reviewed by Dan Bernstein.

  • Platform/spi/ios/UIKitSPI.h: Declared

UIPreviewItemTypeAttachment, UIPreviewDataAttachmentList, and UIPreviewDataAttachmentIndex.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h: Declared -_attachmentListForWebView:sourceIsManaged:.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dataForPreviewItemController:atPosition:type:]): Used UIPreviewItemTypeAttachment,
UIPreviewDataAttachmentList, and UIPreviewDataAttachmentIndex. If uiDelegate responds to
-_attachmentListForWebView:sourceIsManaged:, called it instead of -_attachmentListForWebView:.
Set sourceIsManaged as the value for the UIPreviewDataAttachmentListSourceIsManaged key in dataForPreview.

6:36 PM Changeset in webkit [203808] by commit-queue@webkit.org
  • 23 edits
    4 deletes in trunk/Source/JavaScriptCore

[JSC] DFG::Node should not have its own allocator
​https://bugs.webkit.org/show_bug.cgi?id=160098

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

We need some design changes for DFG::Node:
-Accessing the index must be fast. B3 uses indices for sets

and maps, it is a lot faster than hashing pointers.

-We should be able to subclass DFG::Node to specialize it.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGAllocator.h: Removed.

(JSC::DFG::Allocator::Region::size): Deleted.
(JSC::DFG::Allocator::Region::headerSize): Deleted.
(JSC::DFG::Allocator::Region::numberOfThingsPerRegion): Deleted.
(JSC::DFG::Allocator::Region::data): Deleted.
(JSC::DFG::Allocator::Region::isInThisRegion): Deleted.
(JSC::DFG::Allocator::Region::regionFor): Deleted.
(JSC::DFG::Allocator<T>::Allocator): Deleted.
(JSC::DFG::Allocator<T>::~Allocator): Deleted.
(JSC::DFG::Allocator<T>::allocate): Deleted.
(JSC::DFG::Allocator<T>::free): Deleted.
(JSC::DFG::Allocator<T>::freeAll): Deleted.
(JSC::DFG::Allocator<T>::reset): Deleted.
(JSC::DFG::Allocator<T>::indexOf): Deleted.
(JSC::DFG::Allocator<T>::allocatorOf): Deleted.
(JSC::DFG::Allocator<T>::bumpAllocate): Deleted.
(JSC::DFG::Allocator<T>::freeListAllocate): Deleted.
(JSC::DFG::Allocator<T>::allocateSlow): Deleted.
(JSC::DFG::Allocator<T>::freeRegionsStartingAt): Deleted.
(JSC::DFG::Allocator<T>::startBumpingIn): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addToGraph):

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::freeUnnecessaryNodes):
(JSC::DFG::CPSRethreadingPhase::addPhiSilently):

  • dfg/DFGCleanUpPhase.cpp:

(JSC::DFG::CleanUpPhase::run):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::run):

  • dfg/DFGConstantHoistingPhase.cpp:
  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::fixupBlock):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::deleteNode):
(JSC::DFG::Graph::killBlockAndItsContents):
(JSC::DFG::Graph::~Graph): Deleted.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addNode):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGLongLivedState.cpp: Removed.

(JSC::DFG::LongLivedState::LongLivedState): Deleted.
(JSC::DFG::LongLivedState::~LongLivedState): Deleted.
(JSC::DFG::LongLivedState::shrinkToFit): Deleted.

  • dfg/DFGLongLivedState.h: Removed.
  • dfg/DFGNode.cpp:

(JSC::DFG::Node::index): Deleted.

  • dfg/DFGNode.h:

(JSC::DFG::Node::index):

  • dfg/DFGNodeAllocator.h: Removed.

(operator new ): Deleted.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGPlan.h:
  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::runThread):

  • runtime/VM.cpp:

(JSC::VM::VM): Deleted.

  • runtime/VM.h:
4:54 PM Changeset in webkit [203807] by Nikita Vasilyev
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Visual Styles Sidebar should have only one column when it's narrow
​https://bugs.webkit.org/show_bug.cgi?id=159905
<rdar://problem/27413248>

Reviewed by Joseph Pecoraro.

Many CSS values often get clipped in the two colunm layout. Change the layout to one colunm
when visual style rows get too narrow.

  • UserInterface/Views/VisualStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .metric-section-row):
Wrap all rows except for position/padding/margin controls.

(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .content .group > .row > .visual-style-property-container:not(.layout-reversed):last-child): Deleted.
Margin between the first and the second column doesn't make sense one column layout.
Set the margin in .visual-style-property-container instead.

  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WebInspector.VisualStyleDetailsPanel.prototype._generateMetricSectionRows):

  • UserInterface/Views/VisualStylePropertyEditor.css:

(.visual-style-property-container):

4:50 PM Changeset in webkit [203806] by Chris Dumez
  • 9 edits in trunk

First parameter to HTMLMediaElement.canPlayType() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160275

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline w3c test now that more checks are passing.

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

Source/WebCore:

First parameter to HTMLMediaElement.canPlayType() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLMediaElement.idl:

LayoutTests:

Update existing tests to reflect behavior change.

  • media/encrypted-media/encrypted-media-can-play-type.html:
  • media/media-can-play-type-expected.txt:
  • media/media-can-play-type.html:
  • platform/mac/media/encrypted-media/encrypted-media-can-play-type-expected.txt:
4:50 PM Changeset in webkit [203805] by Chris Dumez
  • 5 edits in trunk

First parameter to setTimeout() / setInterval() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160277

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

First parameter to setTimeout() / setInterval() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::setTimeout):
(WebCore::JSDOMWindow::setInterval):

  • bindings/js/JSWorkerGlobalScopeCustom.cpp:

(WebCore::JSWorkerGlobalScope::setTimeout):
(WebCore::JSWorkerGlobalScope::setInterval):

4:36 PM Changeset in webkit [203804] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

[Mac] Web Inspector: CodeMirror-based editor bindings for Home and End don't match system behavior
​https://bugs.webkit.org/show_bug.cgi?id=160267
<rdar://problem/27575553>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-27
Reviewed by Brian Burg.

  • UserInterface/Views/CodeMirrorEditor.js:

(WebInspector.CodeMirrorEditor.create):
(WebInspector.CodeMirrorEditor):
Add some key map overrides for Home and End to better match system Mac
behavior. This scrolls to the start or end of a document and does not
change the cursor position.

4:28 PM Changeset in webkit [203803] by Chris Dumez
  • 3 edits
    2 adds in trunk

Parameters to insertAdjacentText() / insertAdjacentHTML() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160274

Reviewed by Darin Adler.

Source/WebCore:

Parameters to insertAdjacentText() / insertAdjacentHTML() should be mandatory:

Firefox and Chrome agree with the specification (although Firefox does not
have insertAdjacentText()).

Test: fast/dom/Element/insertAdjacentText-parameters.html

  • html/HTMLElement.idl:

LayoutTests:

Add test coverage.

  • fast/dom/Element/insertAdjacentText-parameters-expected.txt: Added.
  • fast/dom/Element/insertAdjacentText-parameters.html: Added.
4:22 PM Changeset in webkit [203802] by benjamin@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Fix a bunch of use-after-free of DFG::Node
​https://bugs.webkit.org/show_bug.cgi?id=160228

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-07-27
Reviewed by Mark Lam.

FTL had a few places where we use a node after it has been
deleted. The dangling pointers come from the SSA liveness information
kept on the basic blocks.

This patch fixes the issues I could find and adds liveness invalidation
to help finding dependencies like these.

  • dfg/DFGBasicBlock.h:

(JSC::DFG::BasicBlock::SSAData::invalidate):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::run):
Constant folding phase was deleting nodes in the loop over basic blocks.
The problem is the deleted nodes can be referenced by other blocks.
When the abstract interpreter was manipulating the abstract values of those
it was doing so on the dead nodes.

  • dfg/DFGConstantHoistingPhase.cpp:

Just invalidation. Nothing wrong here since the useless nodes were
kept live while iterating the blocks.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::killBlockAndItsContents):
(JSC::DFG::Graph::killUnreachableBlocks):
(JSC::DFG::Graph::invalidateNodeLiveness):

  • dfg/DFGGraph.h:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):
We had a lot of use-after-free in LCIM because we were using the stale
live nodes deleted by previous phases.

3:34 PM Changeset in webkit [203801] by Beth Dakin
  • 4 edits in trunk/Source/WebCore

Add localizable strings for inserting list types
​https://bugs.webkit.org/show_bug.cgi?id=160233
-and corresponding-
rdar://problem/26102954

Reviewed by Dan Bernstein.

  • English.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::insertListTypeNone):
(WebCore::insertListTypeNoneAccessibilityTitle):
(WebCore::insertListTypeBulleted):
(WebCore::insertListTypeBulletedAccessibilityTitle):
(WebCore::insertListTypeNumbered):
(WebCore::insertListTypeNumberedAccessibilityTitle):

  • platform/LocalizedStrings.h:
3:15 PM Changeset in webkit [203800] by Chris Dumez
  • 3 edits
    2 adds in trunk

Parameters to DOMParser.parseFromString() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160268

Reviewed by Ryosuke Niwa.

Source/WebCore:

Parameters to DOMParser.parseFromString() should be mandatory:

Firefox and Chrome agree with the specification.

Test: fast/parser/DOMParser-parameters.html

  • xml/DOMParser.idl:

LayoutTests:

Add test coverage.

  • fast/parser/DOMParser-parameters-expected.txt: Added.
  • fast/parser/DOMParser-parameters.html: Added.
3:06 PM Changeset in webkit [203799] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

Captions do not render in PiP window when element is hidden
​https://bugs.webkit.org/show_bug.cgi?id=160265
<rdar://problem/27556788>

Reviewed by Simon Fraser.

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage): Pass new flag so
caption layers are always rendered.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::paintLayerContents): Paint non-visible layers when PaintLayerIgnoreVisibility
flag is set.

  • rendering/RenderLayer.h: Define PaintLayerIgnoreVisibility.
2:59 PM Changeset in webkit [203798] by keith_miller@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

concatAppendOne should allocate using the indexing type of the array if it cannot merge
​https://bugs.webkit.org/show_bug.cgi?id=160261
<rdar://problem/27530122>

Reviewed by Mark Lam.

Before, if we could not merge the indexing types for copying, we would allocate the
the array as ArrayWithUndecided. Instead, we should allocate an array with the original
array's indexing type.

  • runtime/ArrayPrototype.cpp:

(JSC::concatAppendOne):

  • tests/stress/concat-append-one-with-sparse-array.js: Added.
2:51 PM Changeset in webkit [203797] by Chris Dumez
  • 11 edits in trunk

Parameter to named property getter should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160269

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

Parameter to named property getter should be mandatory:

No new tests, rebaselined existing test.

  • Modules/mediastream/RTCStatsResponse.idl:
  • bindings/scripts/test/TestOverrideBuiltins.idl:
  • html/HTMLOptionsCollection.idl:
  • html/HTMLSelectElement.idl:
  • plugins/DOMMimeTypeArray.idl:
  • plugins/DOMPlugin.idl:
  • plugins/DOMPluginArray.idl:
2:36 PM Changeset in webkit [203796] by Chris Dumez
  • 4 edits in trunk

First parameter to Range.createContextualFragment() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160266

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/domparsing/createContextualFragment-expected.txt:

Source/WebCore:

First parameter to Range.createContextualFragment() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • dom/Range.idl:
2:33 PM Changeset in webkit [203795] by Chris Dumez
  • 5 edits
    4 adds in trunk

Align MediaList with the CSSOM specification
​https://bugs.webkit.org/show_bug.cgi?id=160257

Reviewed by Ryosuke Niwa.

Source/WebCore:

Align MediaList with the CSSOM specification:

In particular, the parameter to item() / deleteMedium() and
appendMedium() is now mandatory.

Firefox and Chrome agree with the specification.

Test: fast/css/MediaList-mediaText-null.html

fast/css/MediaList-parameters.html

  • css/MediaList.idl:

LayoutTests:

  • fast/css/MediaList-mediaText-null-expected.txt: Added.
  • fast/css/MediaList-mediaText-null.html: Added.

Add test coverage for MediaList.mediaText to make sure it is not nullable
and treats null as the empty string. Our IDL did not match the
specification here but our behavior was correct. Therefore, this test is
passing with and without my change. I just wanted to make sure we had
good coverage since I updated our IDL to match the specification.

  • fast/css/MediaList-parameters-expected.txt: Added.
  • fast/css/MediaList-parameters.html: Added.

Add test coverage for mandatory parameters.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

Update existing test to reflect behavior change.

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

Correct the syntax used to skip js/regress/script-tests/bigswitch-indirect-symbol.js

Unreviewed test gardening.

  • js/regress/script-tests/bigswitch-indirect-symbol.js:
2:11 PM Changeset in webkit [203793] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

We don't optimize for-in properly in baseline JIT (maybe other JITs too) with an object with symbols
​https://bugs.webkit.org/show_bug.cgi?id=160211
<rdar://problem/27572612>

Reviewed by Geoffrey Garen.

The fast for-in iteration mode assumes all inline/out-of-line properties
can be iterated in linear order. This is not true if we have Symbols
because Symbols should not be iterated by for-in.

  • runtime/Structure.cpp:

(JSC::Structure::add):

  • tests/stress/symbol-should-not-break-for-in.js: Added.

(assert):
(foo):

2:10 PM Changeset in webkit [203792] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fullscreen video zoom button does not work after rotating when aspect ratio matches display.
​https://bugs.webkit.org/show_bug.cgi?id=160263
rdar://problem/27368872

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

When video and display aspect ratio match, and rotating from landscape to protrait, the transform used in layout
will be Identity. This means checking the transform for identity is an insufficient test to see if the bounds
need to be resolved.

Instead, always attempt to resolve the bounds and do a more accurate test while doing so.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):

2:00 PM Changeset in webkit [203791] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS] Remove unused textContentType SPI from _WKFormInputSession
​https://bugs.webkit.org/show_bug.cgi?id=160260

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

  • UIProcess/API/Cocoa/_WKFormInputSession.h: Remove unused SPI.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView textInputTraits]): Set textContentType of _traits to whatever we classify it as based
on the assisted node info. The default textContentType is nil, and that is our fallback in our method
for determining textContentType.
(-[WKFormInputSession textContentType]): Deleted.
(-[WKFormInputSession setTextContentType:]): Deleted.

1:55 PM Changeset in webkit [203790] by mark.lam@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

The second argument for Function.prototype.apply should be array-like or null/undefined.
​https://bugs.webkit.org/show_bug.cgi?id=160212
<rdar://problem/27328525>

Reviewed by Filip Pizlo.

The spec for Function.prototype.apply says its second argument can only be null,
undefined, or must be array-like. See
​https://tc39.github.io/ecma262/#sec-function.prototype.apply and
​https://tc39.github.io/ecma262/#sec-createlistfromarraylike.

Our previous implementation was not handling this correctly for SymbolType.
This is now fixed.

  • interpreter/Interpreter.cpp:

(JSC::sizeOfVarargs):

  • tests/stress/apply-second-argument-must-be-array-like.js: Added.
1:52 PM Changeset in webkit [203789] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

Stop accepting the deprecated "requiredShippingAddressFields" and "requiredBillingAddressFields" properties
​https://bugs.webkit.org/show_bug.cgi?id=160264
rdar://problem/27574519

Reviewed by Simon Fraser.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::createPaymentRequest):
(WebCore::isValidPaymentRequestPropertyName):

1:51 PM Changeset in webkit [203788] by Chris Dumez
  • 21 edits in trunk

First parameter to indexed property getters should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160259

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

First parameter to indexed property getters should be mandatory:

No new tests, rebaselined existing tests.

  • Modules/gamepad/deprecated/GamepadList.idl:
  • bindings/js/JSHTMLAllCollectionCustom.cpp:

(WebCore::JSHTMLAllCollection::item):

  • css/CSSRuleList.idl:
  • css/CSSValueList.idl:
  • css/StyleSheetList.idl:
  • css/WebKitCSSFilterValue.idl:
  • css/WebKitCSSTransformValue.idl:
  • dom/ClientRectList.idl:
  • dom/DOMStringList.idl:
  • dom/DataTransferItemList.idl:
  • html/HTMLAllCollection.idl:
  • plugins/DOMMimeTypeArray.idl:
  • plugins/DOMPlugin.idl:
  • plugins/DOMPluginArray.idl:

LayoutTests:

Update existing tests to reflect behavior change.

  • fast/css/webkit-keyframes-crash.html:
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
1:05 PM Changeset in webkit [203787] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

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

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:56 PM Changeset in webkit [203786] by sbarati@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

MathICs should be able to emit only a jump along the inline path when they don't have any type data
​https://bugs.webkit.org/show_bug.cgi?id=160110

Reviewed by Mark Lam.

This patch allows for MathIC fast-path generation to be delayed.
We delay when we don't see any observed type information for
the lhs/rhs operand, which implies that the MathIC has never
executed. This is profitable for two main reasons:

  1. If the math operation never executes, we emit much less code.
  2. Once we get type information for the lhs/rhs, we can emit better code.

To implement this, we just emit a jump to the slow path call
that will repatch on first execution.

New data for add:

| JetStream | Unity 3D |

------| -------------

Old | 148 bytes | 143 bytes |

------| -------------

New | 116 bytes | 113 bytes |

------------------------------------

New data for mul:

| JetStream | Unity 3D |

------| -------------

Old | 210 bytes | 185 bytes |

------| -------------

New | 170 bytes | 137 bytes |

------------------------------------

  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateInline):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::isLeftOperandValidConstant):
(JSC::JITAddGenerator::isRightOperandValidConstant):
(JSC::JITAddGenerator::arithProfile):

  • jit/JITMathIC.h:

(JSC::JITMathIC::generateInline):
(JSC::JITMathIC::generateOutOfLine):
(JSC::JITMathIC::finalizeInlineCode):

  • jit/JITMathICInlineResult.h:
  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateInline):

  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::isLeftOperandValidConstant):
(JSC::JITMulGenerator::isRightOperandValidConstant):
(JSC::JITMulGenerator::arithProfile):

  • jit/JITOperations.cpp:
11:46 AM Changeset in webkit [203785] by jfernandez@igalia.com
  • 2 edits in trunk/Source/WebCore

[css-grid] The isValidTransition function must not alter the GridSizingData object
​https://bugs.webkit.org/show_bug.cgi?id=160252

Reviewed by Darin Adler.

It's not correct that a function which purpose is to check out the
validity of a state modifies such state.

That code was there to allow the extra row track sizing iteration
in the case of a grid container with indefinite height. We need to
do that in order to figure out its intrinsic height, which will be
used then to properly sizing the row tracks.

Since the intrinsic height computation uses directly the
computeUsedBreadthOfGridTracks function, it does not alter the
algorithm state-machine, hence, we can safely remove this code,
which was incorrect in any case.

No new tests, it's just a refactoring with no functionality change.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::GridSizingData::isValidTransition):

11:27 AM Changeset in webkit [203784] by Chris Dumez
  • 5 edits
    2 adds in trunk

First parameter to Document.execCommand() / queryCommand*() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160258

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

First parameter to Document.execCommand() / queryCommand*() should be mandatory:

Firefox and Chrome agree with the specification.

Test: fast/dom/Document/editing-parameters.html

  • dom/Document.idl:

LayoutTests:

Add layout test coverage.

  • fast/dom/Document/editing-parameters-expected.txt: Added.
  • fast/dom/Document/editing-parameters.html: Added.
11:04 AM Changeset in webkit [203783] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Fix a typo in TestExpectations.

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
11:04 AM Changeset in webkit [203782] by Chris Dumez
  • 8 edits
    2 adds in trunk

Align CSSSupportsRule with the specification
​https://bugs.webkit.org/show_bug.cgi?id=160256

Reviewed by Darin Adler.

Source/WebCore:

Align CSSSupportsRule with the specification:

In particular:

  • Make the parameters to insertRule() / deleteRule() mandatory
  • Expose CSSSupportsRule on the global Window object

Both Firefox and Chrome agree with the specification here.

Test: fast/css/CSSSupportsRule-parameters.html

  • css/CSSSupportsRule.idl:

LayoutTests:

  • fast/css/CSSSupportsRule-parameters-expected.txt: Added.
  • fast/css/CSSSupportsRule-parameters.html: Added.

Add layout test coverage for mandatory parameters.

  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:

Rebaseline existing test now that CSSSupportsRule is exposed on the
global Window object.

10:15 AM Changeset in webkit [203781] by Ryan Haddad
  • 2 edits in trunk/Tools

Disable WebCoreNSURLSessionTest API tests on ios-simulator
​https://bugs.webkit.org/show_bug.cgi?id=160225

Reviewed by Alexey Proskuryakov.

  • TestWebKitAPI/Tests/WebCore/WebCoreNSURLSession.mm:
10:03 AM Changeset in webkit [203780] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Fix m_isInBackground initialization for Safari View Services
​https://bugs.webkit.org/show_bug.cgi?id=160255
<rdar://problem/27569255>

Reviewed by Tim Horton.

Fix m_isInBackground initialization for Safari View Services. The
code was using m_applicationStateMonitor without initializing it.
Instead, use the local applicationStateMonitor and make sure we
invalidate it before it gets released.

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::ApplicationStateTracker::ApplicationStateTracker):

9:18 AM Changeset in webkit [203779] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed gardening: update expectations after r203770
​https://bugs.webkit.org/show_bug.cgi?id=160253

Unreviewed gardening.

Patch by Miguel Gomez <​magomez@igalia.com> on 2016-07-27

  • platform/gtk/TestExpectations:
9:14 AM Changeset in webkit [203778] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Regression(r203535): Uncaught Exception: TypeError: Not enough arguments at LayerTreeDataGridNode.js:47
​https://bugs.webkit.org/show_bug.cgi?id=160187
<rdar://problem/27540435>

Reviewed by Eric Carlson.

After r203535, document.createTextNode() requires an argument.

  • UserInterface/Views/LayerTreeDataGridNode.js:

(WebInspector.LayerTreeDataGridNode.prototype.createCellContent):
Since this use-site is for creating a cell in an unknown column,
initialize it to '–'. Previously it would have been the string
"undefined" or empty.

9:00 AM Changeset in webkit [203777] by commit-queue@webkit.org
  • 7 edits
    5 adds in trunk

[GTK] Fix some video/canvas tests that should be passing
​https://bugs.webkit.org/show_bug.cgi?id=160023

Patch by Miguel Gomez <​magomez@igalia.com> on 2016-07-27
Reviewed by Carlos Garcia Campos.

Tools:

Add a platform identifier to the TestRunner's page user agent when the tests are run on the
EFL or GTK platforms.

  • WebKitTestRunner/efl/TestControllerEfl.cpp:

(WTR::TestController::platformConfigureViewForTest):

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::platformConfigureViewForTest):

LayoutTests:

Modify the tests to use a tolerance of 6 when running on the GTK or EFL platforms. Also,
added new expectations for the tests that need them.

  • fast/canvas/canvas-createPattern-video-loading.html:
  • fast/canvas/canvas-createPattern-video-modify.html:
  • media/video-canvas-createPattern.html:
  • platform/efl/fast/canvas/canvas-createPattern-video-loading-expected.txt: Added.
  • platform/efl/fast/canvas/canvas-createPattern-video-modify-expected.txt: Added.
  • platform/gtk/fast/canvas/canvas-createPattern-video-loading-expected.txt: Added.
  • platform/gtk/fast/canvas/canvas-createPattern-video-modify-expected.txt: Added.
  • resources/platform-helper.js: Added.

(isGtk):
(isEfl):
(videoCanvasPixelComparisonTolerance):

8:58 AM Changeset in webkit [203776] by Carlos Garcia Campos
  • 13 edits in trunk/Source/WebKit2

[Coordinated Graphics] Improve scheduling of tasks between threads in CoordinatedGraphicsScene
​https://bugs.webkit.org/show_bug.cgi?id=160238

Reviewed by Michael Catanzaro.

This patch makes the following improvements:

  • Avoid scheduling tasks to the main thread if the scene is detached.
  • Do not take references when not actually sending tasks to another threads.
  • Use Function instead of std::function on dispatch methods.
  • Remove purgeBackingStores that is actually never called. It's only scheduled from purgeGLResources() that is always called after detach.
  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::dispatchOnMainThread):
(WebKit::CoordinatedGraphicsScene::dispatchOnClientRunLoop):
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::CoordinatedGraphicsScene::updateViewport):
(WebKit::CoordinatedGraphicsScene::onNewBufferAvailable):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::renderNextFrame):
(WebKit::CoordinatedGraphicsScene::purgeGLResources):
(WebKit::CoordinatedGraphicsScene::commitScrollOffset):
(WebKit::CoordinatedGraphicsScene::detach):
(WebKit::CoordinatedGraphicsScene::setActive):
(WebKit::CoordinatedGraphicsScene::dispatchCommitScrollOffset): Deleted.
(WebKit::CoordinatedGraphicsScene::purgeBackingStores): Deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::purgeBackingStores): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.cpp:

(WebKit::CoordinatedLayerTreeHostProxy::purgeBackingStores): Deleted.

  • UIProcess/CoordinatedGraphics/CoordinatedLayerTreeHostProxy.h:
  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::invalidate):

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.cpp:

(WebKit::CoordinatedLayerTreeHost::invalidate):
(WebKit::CoordinatedLayerTreeHost::purgeBackingStores): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.h:
  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedLayerTreeHost.messages.in:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
8:52 AM Changeset in webkit [203775] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Soup] Test http/tests/xmlhttprequest/auth-reject-protection-space.html fails since added in r203743
​https://bugs.webkit.org/show_bug.cgi?id=160235

Reviewed by Michael Catanzaro.

It times out in release and crashes in debug due to an ASSERT_NOT_REACHED(). The soup backend doesn't really
support rejecting the protection space and continuing with the next one, but we can at least continue with the
request without crendential to make the test pass.

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::ResourceHandle::receivedChallengeRejection):

8:50 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
8:49 AM Changeset in webkit [203774] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Remove network setup from web process
​https://bugs.webkit.org/show_bug.cgi?id=160236

Reviewed by Michael Catanzaro.

We are still doing network init and finish in th web process. It's useless since we switched to mandatory
network process.

  • WebProcess/gtk/WebProcessMainGtk.cpp:
8:49 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
8:30 AM Changeset in webkit [203773] by clopez@igalia.com
  • 2 edits in trunk/Tools

[Tools] The built product doesn't contains the dwo files when DEBUG_FISSION is enabled.
​https://bugs.webkit.org/show_bug.cgi?id=160247

Reviewed by Michael Catanzaro.

  • BuildSlaveSupport/built-product-archive:

(createZip):
(dirContainsdwo):
(archiveBuiltProduct):

3:40 AM Changeset in webkit [203772] by commit-queue@webkit.org
  • 23 edits
    4 moves in trunk

[Streams API] Replace ReadableStreamReader by ReadableStreamDefaultReader
​https://bugs.webkit.org/show_bug.cgi?id=160194

Patch by Romain Bellessort <​romain.bellessort@crf.canon.fr> on 2016-07-27
Reviewed by Youenn Fablet.

Replaced ReadableStreamReader by ReadableStreamDefaultReader to align
with updated Streams API specification.

No change in functionality.

Source/WebCore:

  • CMakeLists.txt:
  • DerivedSources.cpp:
  • DerivedSources.make:
  • Modules/fetch/FetchInternals.js:

(consumeStream):

  • Modules/fetch/FetchResponse.js:

(body):

  • Modules/streams/ReadableStream.js:

(getReader):

  • Modules/streams/ReadableStreamDefaultReader.idl: Renamed from Source/WebCore/Modules/streams/ReadableStreamReader.idl.
  • Modules/streams/ReadableStreamDefaultReader.js: Renamed from Source/WebCore/Modules/streams/ReadableStreamReader.js.

(cancel):
(read):
(releaseLock):
(closed):

  • Modules/streams/ReadableStreamInternals.js:

(privateInitializeReadableStreamDefaultReader):
(teeReadableStream):
(teeReadableStreamPullFunction):
(isReadableStreamDefaultReader):
(closeReadableStream):
(readFromReadableStreamDefaultReader):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):
(WebCore::JSDOMGlobalObject::finishCreation):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp:

(WebCore::constructJSReadableStreamDefaultReader):
(WebCore::JSBuiltinReadableStreamDefaultReaderPrivateConstructor::initializeExecutable):
(WebCore::createReadableStreamDefaultReaderPrivateConstructor):

  • bindings/js/JSReadableStreamPrivateConstructors.h:
  • bindings/js/WebCoreBuiltinNames.h:
  • features.json:

LayoutTests:

  • streams/brand-checks.html:
  • streams/readable-stream-controller-error-expected.txt:
  • streams/readable-stream-controller-error.html:
  • streams/readable-stream-default-reader-read-expected.txt: Renamed from LayoutTests/streams/readable-stream-reader-read-expected.txt.
  • streams/readable-stream-default-reader-read.html: Renamed from LayoutTests/streams/readable-stream-reader-read.html.
  • streams/readable-stream-error-messages-expected.txt:
  • streams/readable-stream-error-messages.html:
  • streams/reference-implementation/readable-stream-reader-expected.txt:
  • streams/shadowing-Promise-expected.txt:
  • streams/shadowing-Promise.html:
3:07 AM Changeset in webkit [203771] by jfernandez@igalia.com
  • 4 edits
    6 adds in trunk

[css-grid] Handle alignment with orthogonal flows
​https://bugs.webkit.org/show_bug.cgi?id=159295

Reviewed by Darin Adler.

Now that grid sizing and positioning issues wrt orthogonal flows have
been clarified in the last spec draft, we can adapt now our alignment
logic to work with orthogonal flows.

Source/WebCore:

Even though basic alignment would work with orthogonal flows with
this patch, we still doesn't allow stretching in that case. I'll provide a
patch for that feature since it's a complex logic and better have an
isolated change.

Tests: fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr.html

fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl.html
fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows.html

  • rendering/RenderGrid.cpp:

(WebCore::computeOverflowAlignmentOffset): Using 'size' instead of 'breadth' as concept.
(WebCore::RenderGrid::columnAxisPositionForChild): Dealing with orthogonal flow cases.
(WebCore::RenderGrid::rowAxisPositionForChild): Dealing with orthogonal flow cases.
(WebCore::RenderGrid::columnAxisOffsetForChild): Using 'size' instead of 'breadth' as concept.
(WebCore::RenderGrid::rowAxisOffsetForChild): Using 'size' instead of 'breadth' as concept.
(WebCore::RenderGrid::findChildLogicalPosition): Dealing with orthogonal flow cases.

LayoutTests:

These tests ensure that alignment works as expected in the cases where
grid and its children are orthogonal.

  • fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr-expected.txt: Added.
  • fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-lr.html: Added.
  • fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl-expected.txt: Added.
  • fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows-vertical-rl.html: Added.
  • fast/css-grid-layout/grid-item-alignment-with-orthogonal-flows.html: Added.
  • fast/css-grid-layout/resources/grid-alignment.css:

(.alignContentSpaceBetween):
(.alignContentSpaceAround):
(.alignContentSpaceEvenly):
(.alignContentStretch):
(.selfStart):
(.selfEnd):
(.selfCenter):
(.selfRight):
(.selfLeft):
(.selfSelfStart):
(.selfSelfEnd):
(.itemsSelfEnd): Deleted.

12:42 AM Changeset in webkit [203770] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit/win

Fix Win debug build after r203749.

  • WebView.cpp:
12:06 AM Changeset in webkit [203769] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.13.4

WebKitGTK+ 2.13.4

12:03 AM Changeset in webkit [203768] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.4 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.13.4.

Jul 26, 2016:

11:38 PM Changeset in webkit [203767] by commit-queue@webkit.org
  • 21 edits
    1 copy
    1 add in trunk

[Fetch API] Response constructor should be able to take a ReadableStream as body
​https://bugs.webkit.org/show_bug.cgi?id=159804

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-consume-empty-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume.html: Updating test to exercice Response coonstructor with a ReadableStream.

Source/WebCore:

Covered by existing and updated tests.

Introduced FetchBodyConsumer to encapsulate the code responsible to adapt FetchBody internal data to the requests made by user scripts.
This refactoring eases the handling of internal data coming from ReadableStream.

FetchLoader is now delegating conversion from the data to its m_consumer field.
If m_consumer is null, FetchLoader calls FetchLoaderClient::didReceiveData (streaming reception mode).
Clients of FetchLoader needs to pass a FetchBodyConsumer to the FetchLoader to do the data adaptation at loader creation time.

Added support for body data passed as a ReadableStream to Response.
This requires to set @body internal slot of the Response object in the constructor initialization JS built-in.

To actually use that data, Body accessors are also implemented as JS built-in for Response.
Since there is no need to do so for Request, FetchResponse is no longer marked as implementing FetchBody but all
FetchBody IDL description is inlined in FetchResponse.idl.

For each body accessor (arrayBuffer, blob, json, text), the corresponding JS built-in checks whether @body internal slot is set.
If that is not the case, regular handling is done through a new private method called @consume.
If @body internal slot is set, chunks are pumped from the ReadableStream using ReadableStream internal built-ins functions.
Data handling is done in C++ through the private methods @startConsumingStream, @consumeChunk and @finishConsumingStream.

To support cloning of Response with bodies, clone method is also implemented as a JS built-in.
Main clone is done through @cloneFoJS private method implemented in C++.
JS built-in clone code does the teeing of the ReadableStream using ReadableStream JS built-in internal functions.

Introducing a new ReadableStream type for FetchBody to cope with body being stored in a ReadableStream.

Introducing a new Loaded type for FetchBody to cope with body being stored in the FetchBodyConsumer owned by FetchBody.
This allows removing the conversion of data to JSC::ArrayBuffer which was done by defaut at the end of Fetch loading if user script did not request data before.
At the end of a load, the data remains in FetchBodyConsumer and the body is marked as Loaded.
If the user wants to get the data after data finished being loaded, FetchBodyConsumer will do the required conversions.

Introducing DeferredWrapper::resolveWithNewValue to handle the case of resolving promises with new objects.
This allows directly using toJSNewlyCreated instead of toJS.

  • CMakeLists.txt: Adding FetchBodyConsumer.cpp. Removing WebCoreJSBuiltins.cpp from CMake list as it is not needed.
  • Modules/fetch/FetchBody.cpp: Moving data adaptation code to FetchBodyConsumer.

(WebCore::FetchBody::extract):
(WebCore::FetchBody::arrayBuffer):
(WebCore::FetchBody::blob): Setting contentType in FetchBodyConsumer to handle proper creation of blob.
(WebCore::FetchBody::json):
(WebCore::FetchBody::text):
(WebCore::FetchBody::consume): Refactoring and added case of Loaded bodies.
(WebCore::FetchBody::consumeAsStream): Ditto.
(WebCore::FetchBody::consumeArrayBuffer):
(WebCore::FetchBody::consumeText):
(WebCore::FetchBody::consumeBlob):
(WebCore::FetchBody::loadingFailed):
(WebCore::FetchBody::loadingSucceeded):
(WebCore::FetchBody::loadingType): Deleted.
(WebCore::blobFromArrayBuffer): Deleted.
(WebCore::FetchBody::fulfillTextPromise): Deleted.
(WebCore::FetchBody::loadedAsArrayBuffer): Deleted.
(WebCore::FetchBody::loadedAsText): Deleted.

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::consumer):

  • Modules/fetch/FetchBodyConsumer.cpp: Added, responsible of data adaptation.

(WebCore::blobFromData):
(WebCore::FetchBodyConsumer::resolveWithData):
(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::append):
(WebCore::FetchBodyConsumer::takeData):
(WebCore::FetchBodyConsumer::takeAsArrayBuffer):
(WebCore::FetchBodyConsumer::takeAsBlob):
(WebCore::FetchBodyConsumer::takeAsText):

  • Modules/fetch/FetchBodyConsumer.h: Added.

(WebCore::FetchBodyConsumer::FetchBodyConsumer):
(WebCore::FetchBodyConsumer::setContentType):
(WebCore::FetchBodyConsumer::setType):
(WebCore::FetchBodyConsumer::type):
(WebCore::FetchBodyConsumer::clean):
(WebCore::FetchBodyConsumer::hasData):

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::loadBlob):
(WebCore::FetchBodyOwner::blobLoadingSucceeded):
(WebCore::FetchBodyOwner::loadedBlobAsText): Deleted.

  • Modules/fetch/FetchBodyOwner.h:

(WebCore::FetchBodyOwner::loadedBlobAsArrayBuffer): Deleted.

  • Modules/fetch/FetchInternals.js:

(consumeStream): Pump ReadableStream data and send it to FetchResponse to be converted according user need.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::FetchLoader): FetchLoader is simplified as it has two nodes: consumer mode in which case
data is sent to the consumer and no-consumer mode in which case data is passed to loader client. The second mode
is used to conveyy data to ReadableStream source.
(WebCore::FetchLoader::stop):
(WebCore::FetchLoader::startStreaming):
(WebCore::FetchLoader::didReceiveData):
(WebCore::FetchLoader::didFinishLoading): Deleted.

  • Modules/fetch/FetchLoader.h:
  • Modules/fetch/FetchLoaderClient.h:

(WebCore::FetchLoaderClient::didFinishLoadingAsText): Deleted.
(WebCore::FetchLoaderClient::didFinishLoadingAsArrayBuffer): Deleted.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::cloneForJS):
(WebCore::FetchResponse::BodyLoader::didSucceed):
(WebCore::FetchResponse::BodyLoader::start):
(WebCore::FetchResponse::consume): Introduced to consume data stored in body and not in ReadableStream.
(WebCore::FetchResponse::startConsumingStream): Introduced to start process of consuming data stored in the ReadableStream.
(WebCore::FetchResponse::consumeChunk): Reception of ReadableStream data.
(WebCore::FetchResponse::finishConsumingStream): Doing the final conversion.
(WebCore::FetchResponse::clone): Deleted.
(WebCore::FetchResponse::BodyLoader::didFinishLoadingAsArrayBuffer): Deleted.

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/FetchResponse.idl: Inlining of FetchBody methods/attributes and adding private methods.
  • Modules/fetch/FetchResponse.js:

(initializeFetchResponse):
(clone):
(arrayBuffer):
(blob):
(formData):
(json):
(text):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::resolveWithNewValue):

  • bindings/js/WebCoreBuiltinNames.h:
11:37 PM Changeset in webkit [203766] by commit-queue@webkit.org
  • 10 edits
    4 adds in trunk

JS Built-ins should throw this-error messages consistently with binding generated code
​https://bugs.webkit.org/show_bug.cgi?id=160191

Patch by Youenn Fablet <​youennf@gmail.com> on 2016-07-26
Reviewed by Darin Adler.

Source/WebCore:

Introducing @makeThisTypeError and @makeGetterTypeError to create TypeError objects with a consistent error message.
Making use of these functions in streams API and fetch API related built-in code.

Refactored JSDOMBinding.cpp code by adding makeThisTypeErrorMessage and makeGetterTypeErrorMessage helper routines
These routines are used by both new built-in functions as well as binding generated code helper routine.

Tests: fetch/fetch-error-messages.html

streams/readable-stream-error-messages.html

  • Modules/fetch/FetchResponse.js:

(body): Adding an explicit check so that the error message is right. The previous error message was related to the call of Response.@isDisturbed.

  • Modules/streams/ReadableStream.js:

(cancel):
(getReader):
(pipeTo):
(tee):
(locked):

  • Modules/streams/ReadableStreamController.js:

(enqueue):
(error):
(close):
(desiredSize):

  • Modules/streams/ReadableStreamReader.js:

(cancel):
(read):
(releaseLock):
(closed):

  • bindings/js/JSDOMBinding.cpp:

(WebCore::makeGetterTypeErrorMessage):
(WebCore::throwGetterTypeError):
(WebCore::makeThisTypeErrorMessage):
(WebCore::throwThisTypeError):
(WebCore::throwSequenceTypeError): Deleted.
(WebCore::throwSetterTypeError): Deleted.

  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::makeThisTypeErrorForBuiltins):
(WebCore::makeGetterTypeErrorForBuiltins):
(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/WebCoreBuiltinNames.h:

LayoutTests:

  • fetch/fetch-error-messages-expected.txt: Added.
  • fetch/fetch-error-messages.html: Added.
  • streams/readable-stream-error-messages-expected.txt: Added.
  • streams/readable-stream-error-messages.html: Added.
11:35 PM Changeset in webkit [203765] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

Unreviewed. Fix GTK+ distcheck build.

wtf/spi/darwin/dyldSPI.h is not included in GTK+ release tarballs.

  • html/HTMLObjectElement.cpp: Include wtf/spi/darwin/dyldSPI.h only for iOS.
  • html/MediaElementSession.cpp: Ditto.
11:20 PM Changeset in webkit [203764] by mmaxfield@apple.com
  • 5 edits
    4 adds in trunk

[iOS] SF-Heavy is inaccessible by web content
​https://bugs.webkit.org/show_bug.cgi?id=160186
<rdar://problem/27434423>

Reviewed by Dean Jackson.

Source/WebCore:

Once we create the system font, we need to modify it with the appropriate weight.
This is because the CoreText API we use to get the system font on iOS does not
let us choose the exact weight we want.

Test: fast/text/system-font-weight.html

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::baseSystemFontDescriptor):
(WebCore::systemFontModificationAttributes):
(WebCore::systemFontDescriptor):
(WebCore::platformFontWithFamilySpecialCase):

  • platform/spi/cocoa/CoreTextSPI.h:

LayoutTests:

  • platform/ios-simulator/TestExpectations: system-font-weight-italic.html

is expected to fail on iOS 9.

  • fast/text/system-font-weight-italic-expected.txt: Added.
  • fast/text/system-font-weight-italic.html: Added.
  • fast/text/system-font-weight-expected.txt: Added.
  • fast/text/system-font-weight.html: Added.
10:31 PM Changeset in webkit [203763] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skip failing JSC test regress/script-tests/bigswitch-indirect-symbol.js
​https://bugs.webkit.org/show_bug.cgi?id=160035

Unreviewed test gardening.

  • js/regress/script-tests/bigswitch-indirect-symbol.js:
10:20 PM Changeset in webkit [203762] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] ASSERTION FAILED: !m_adoptionIsRequired when Inspector Server is connected
​https://bugs.webkit.org/show_bug.cgi?id=160229

Patch by Fujii Hironori <Fujii Hironori> on 2016-07-26
Reviewed by Carlos Garcia Campos.

An assertion fails because refcount of SocketStreamHandle is
incremented before adoptRef, in the constructor of
SocketStreamHandle. The constructor of SocketStreamHandle needs
to increment recount because it passes this pointer to libsoup.

  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle): Do
relaxAdoptionRequirement() as well as the another constructor.

9:27 PM Changeset in webkit [203761] by Chris Dumez
  • 9 edits in trunk

Move 'dir' attribute from HTMLDocument to Document
​https://bugs.webkit.org/show_bug.cgi?id=160231

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

Move 'dir' attribute from HTMLDocument to Document to match the
specification:

Both Firefox and Chrome have 'dir' on Document already.

No new tests, rebaselined existing test.

  • dom/Document.cpp:

(WebCore::Document::dir):
(WebCore::Document::setDir):

  • dom/Document.h:
  • dom/Document.idl:
  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::dir): Deleted.
(WebCore::HTMLDocument::setDir): Deleted.

  • html/HTMLDocument.h:
  • html/HTMLDocument.idl:
9:12 PM Changeset in webkit [203760] by Chris Dumez
  • 8 edits
    2 adds in trunk

Second parameter to History.pushState() / replaceState() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160230

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

Second parameter to History.pushState() / replaceState() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):

  • page/History.idl:

LayoutTests:

  • fast/history/state-api-parameters.html: Added.
  • fast/history/state-api-parameters-expected.txt: Added.

Add layout test coverage.

  • fast/history/replacestate-nocrash.html:
  • fast/loader/stateobjects/popstate-fires-with-page-cache.html:

Update existing tests to reflect behavior change.

8:42 PM Changeset in webkit [203759] by Chris Dumez
  • 4 edits in trunk

Align Node.isEqualNode() with the specification
​https://bugs.webkit.org/show_bug.cgi?id=160224

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing. We are now
passing all the checks in this test like Firefox and Chrome.

  • web-platform-tests/dom/nodes/Node-isEqualNode-expected.txt:

Source/WebCore:

Align our implementation for Node.isEqualNode() to match more closely
the text of the specification:

This also fixes a bug where isEqualNode() would sometimes return false
wrongly for elements because we were comparing the value returned by
nodeName() which returns the tagName of elements. The issue was that
the tagName's case may differ depending on the element being in an
HTMLDocument or not. We now compare Element::tagQName() instead which
ends up comparing namespace / namespace prefix and localName, as per
the specification. The new behavior matches Firefox and Chrome and
helps us pass an extra W3C test.

No new tests, rebaselined existing test.

  • dom/Node.cpp:

(WebCore::Node::isEqualNode):

6:23 PM Changeset in webkit [203758] by sbarati@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

rollout r203666
​https://bugs.webkit.org/show_bug.cgi?id=160226

Unreviewed rollout.

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::successorBlock):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createGenericCompare):

  • b3/B3LowerToAir.h:
  • b3/air/AirArg.cpp:

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::usesTmp):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::asNumber):
(JSC::B3::Air::Arg::castToType): Deleted.

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::size):
(JSC::B3::Air::Code::at):

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirValidate.h:
  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:

(JSC::B3::compileAndRun):
(JSC::B3::testSomeEarlyRegister):
(JSC::B3::zero):
(JSC::B3::run):
(JSC::B3::lowerToAirForTesting): Deleted.
(JSC::B3::testBranchBitAndImmFusion): Deleted.

5:45 PM Changeset in webkit [203757] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/memory/tracking.html as flaky on El Capitan Debug WK1
​https://bugs.webkit.org/show_bug.cgi?id=160227

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
5:44 PM Changeset in webkit [203756] by Simon Fraser
  • 4 edits in trunk/Source/WebKit

Fix the Windows debug build.

WebResourceLoadScheduler's logging was a holdover from it being in WebCore,
and prior to r203749 WebKit was actually using a WebCore log channel.

For some reason this doesn't build on Windows debug, so just remove
this logging for now.

Source/WebKit:

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(WebResourceLoadScheduler::scheduleLoad): Deleted.
(WebResourceLoadScheduler::servePendingRequests): Deleted.
(WebResourceLoadScheduler::scheduleServePendingRequests): Deleted.
(WebResourceLoadScheduler::requestTimerFired): Deleted.
(WebResourceLoadScheduler::HostInformation::addLoadInProgress): Deleted.

Source/WebKit/mac:

  • Misc/WebKitLogging.h:
4:40 PM Changeset in webkit [203755] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix tests after r203743.
​https://bugs.webkit.org/show_bug.cgi?id=156947

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
Reset the new boolean m_rejectsProtectionSpaceAndContinueForAuthenticationChallenges.

4:39 PM Changeset in webkit [203754] by Simon Fraser
  • 6 edits in trunk/Source

Sort the project files.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit2:

  • WebKit2.xcodeproj/project.pbxproj:
4:37 PM Changeset in webkit [203753] by Chris Dumez
  • 4 edits
    4 adds in trunk

Align CSSKeyframesRule with the specification
​https://bugs.webkit.org/show_bug.cgi?id=160219

Reviewed by Darin Adler.

Source/WebCore:

Align CSSKeyframesRule with the specification:

In particular, the parameter to insertRule() / appendRule() /
deleteRule() / findRule() should be mandatory. Both Firefox and Chrome
agree with the specification here.

Also, the CSSKeyframesRule.name attribute should not be nullable.
Chrome agrees with the specification. However, Firefox, has the
attribute nullable. This patch aligns our behavior with Chrome and
the specification.

Tests: animations/CSSKeyframesRule-name-null.html

animations/CSSKeyframesRule-parameters.html

  • css/CSSKeyframesRule.h:

(WebCore::StyleRuleKeyframes::name):
(WebCore::StyleRuleKeyframes::setName):

  • css/CSSKeyframesRule.idl:

LayoutTests:

Add layout test coverage.

  • animations/CSSKeyframesRule-name-null-expected.txt: Added.
  • animations/CSSKeyframesRule-name-null.html: Added.
  • animations/CSSKeyframesRule-parameters-expected.txt: Added.
  • animations/CSSKeyframesRule-parameters.html: Added.
4:36 PM Changeset in webkit [203752] by mmaxfield@apple.com
  • 28 edits
    2 adds in trunk

[iPhone] Playing a video on tudou.com plays only sound, no video
​https://bugs.webkit.org/show_bug.cgi?id=160178
<rdar://problem/27535468>

Source/WebCore:

Reviewed by Eric Carlson and Dan Bernstein.

This patch re-implements r203520 in a much simpler way which doesn't involve a new SPI.
The biggest problem with r203520 is that it make it impossible for a WKWebView to match
MobileSafari's behavior. Instead of adding this new SPI, a simple version check should
be used to keep old apps working.

The new behavior is characterized by the following table:

| iOS | Non-iOS

=============================================================================================
requiresPlayInlineAttribute == true | Old app: honor -webkit-playsinline | honor playsinline

| New app: honor playsinline | honor playsinline


requiresPlayInlineAttribute == false | Always inline | Always inline

Specifically, this patch reverts r203545 which is the commit which actually removes
the old SPI. As soon as Safari is migrated back to this old SPI, I'll remove the two
new SPIs added in r203520.

Tests: media/video-playsinline.html

media/video-webkit-playsinline.html

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):

  • page/Settings.cpp:
  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setInlineMediaPlaybackRequiresPlaysInlineAttribute):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

Reviewed by Eric Carlson and Dan Bernstein.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WebPreferences setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Reviewed by Eric Carlson and Dan Bernstein.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute):
(WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _inlineMediaPlaybackRequiresPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

Reviewed by Dan Bernstein.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setDefaultsToConsistentValuesForTesting):

  • TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:

(RequiresUserActionForPlaybackTest::SetUp):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

LayoutTests:

Reviewed by Eric Carlson and Dan Bernstein.

  • media/video-playsinline-expected.txt:
  • media/video-playsinline.html:
  • media/video-webkit-playsinline-expected.txt: Added.
  • media/video-webkit-playsinline.html: Added.
4:33 PM Changeset in webkit [203751] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

Move RenderView::shouldDisableLayoutStateForSubtree to SubtreeLayoutStateMaintainer.
​https://bugs.webkit.org/show_bug.cgi?id=160215

Reviewed by Darin Adler and Simon Fraser.

No change in functionality.

  • page/FrameView.cpp:

(WebCore::SubtreeLayoutStateMaintainer::SubtreeLayoutStateMaintainer):

  • rendering/RenderView.cpp:

(WebCore::RenderView::shouldDisableLayoutStateForSubtree):

  • rendering/RenderView.h:
4:31 PM Changeset in webkit [203750] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk/Source/WebKit2

Remove unused DownloadAuthenticationClient
​https://bugs.webkit.org/show_bug.cgi?id=160220

Patch by Alex Christensen <​achristensen@webkit.org> on 2016-07-26
Reviewed by Darin Adler.

  • CMakeLists.txt:
  • NetworkProcess/Downloads/Download.cpp:
  • NetworkProcess/Downloads/Download.h:
  • NetworkProcess/Downloads/DownloadAuthenticationClient.cpp: Removed.
  • NetworkProcess/Downloads/DownloadAuthenticationClient.h: Removed.
  • WebKit2.xcodeproj/project.pbxproj:
4:30 PM Changeset in webkit [203749] by Simon Fraser
  • 28 edits
    1 copy
    2 adds in trunk

Allow LOG macros to be used outside the namespace, and other logging cleanup
​https://bugs.webkit.org/show_bug.cgi?id=160216

Reviewed by Anders Carlsson.
Source/WebCore:

Fix some issues with the LOG macros.

First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).

Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.

Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.

Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/LogInitialization.h: Added.
  • platform/LogMacros.h: Added.
  • platform/Logging.cpp:

(WebCore::initializeLogChannelsIfNecessary):
(WebCore::initializeLoggingChannelsIfNecessary): Deleted.

  • platform/Logging.h:
  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::initializeLogChannelsIfNecessary):
(WebCoreTestSupport::initializeLoggingChannelsIfNecessary): Deleted.

  • testing/js/WebCoreTestSupport.h:

Source/WebKit:

Fix some issues with the LOG macros.

First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).

Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.

Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.

Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

Source/WebKit/mac:

Fix some issues with the LOG macros.

First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).

Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.

Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.

Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.

  • Misc/WebKitLogging.h:
  • Misc/WebKitLogging.m:
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):

Source/WebKit/win:

Fix some issues with the LOG macros.

First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).

Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.

Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.

Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.

  • WebKitLogging.cpp:
  • WebKitLogging.h:
  • WebView.cpp:

(WebView::initWithFrame):

Source/WebKit2:

Fix some issues with the LOG macros.

First, they were not usable outside the WebKit namespace in WebKit2 code. Fix by moving
its log channels outside of the namespace (they are protected by a unique prefix anyway).

Second, allow LOG_WITH_STREAM to be used in WebKit2 by moving that and a helper macro
into LogMacros.h, which is exported from WebCore as a private header.

Third, split the Logging.h header into two. Logging.h remains for framework-internal
log channels and log macros. Add LogInitialization.h which is external, and used to
initialize the channels.

Finally unify "initializeLogChannels" and "initializeLoggingChannels" terminology everywhere.

  • NetworkProcess/NetworkProcess.cpp:
  • Platform/LogInitialization.h: Copied from Source/WebKit2/Platform/foundation/LoggingFoundation.mm.
  • Platform/Logging.cpp:

(WebKit::initializeLogChannelsIfNecessary):

  • Platform/Logging.h:
  • Platform/foundation/LoggingFoundation.mm:
  • Shared/WebKit2Initialize.cpp:

(WebKit::InitializeWebKit2):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateContentRectsWithState:]):
(-[WKWebView _navigationGestureDidBegin]):

  • UIProcess/WebProcessPool.cpp:

(WebKit::m_hiddenPageThrottlingTimer):

  • WebKit2.xcodeproj/project.pbxproj:

Tools:

initializeLoggingChannelsIfNecessary -> initializeLogChannelsIfNecessary

  • DumpRenderTree/TestRunner.cpp:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebViewToConsistentStateBeforeTesting):

4:15 PM Changeset in webkit [203748] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

REGRESSION: Tooltip for analysis tasks doesn't show up on charts
​https://bugs.webkit.org/show_bug.cgi?id=160221

Rubber-stamped by Chris Dumez.

The bug was caused by ChartPaneBase resetting annotation bars every time the current point has moved.
Avoid doing this in ChartPaneBase's _renderAnnotations().

  • public/v3/components/chart-pane-base.js:

(ChartPaneBase):
(ChartPaneBase.prototype.fetchAnalysisTasks):
(ChartPaneBase.prototype._renderAnnotations):

4:06 PM Changeset in webkit [203747] by caitp@igalia.com
  • 3 edits
    2 moves in trunk/Source/JavaScriptCore

[JSC] Object.getOwnPropertyDescriptors should not add undefined props to result
​https://bugs.webkit.org/show_bug.cgi?id=159409

Reviewed by Geoffrey Garen.

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetOwnPropertyDescriptors):

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

(testPropertiesIndexedSetterOnPrototypeThrows.set get var): Deleted.
(testPropertiesIndexedSetterOnPrototypeThrows): Deleted.

  • tests/stress/Object_static_methods_Object.getOwnPropertyDescriptors-proxy.js: Renamed from Source/JavaScriptCore/tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors-proxy.js.
  • tests/stress/Object_static_methods_Object.getOwnPropertyDescriptors.js: Renamed from Source/JavaScriptCore/tests/es6/Object_static_methods_Object.getOwnPropertyDescriptors.js.
3:56 PM Changeset in webkit [203746] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

onpaymentauthorized callback not received when authorizing for a second time
​https://bugs.webkit.org/show_bug.cgi?id=160218
rdar://problem/27527151

Reviewed by Tim Horton.

Only null out the active session if the status is a final state status.

  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::completePaymentSession):

3:42 PM Changeset in webkit [203745] by Chris Dumez
  • 4 edits in trunk

Range.prototype.compareBoundaryPoints.length should be 2
​https://bugs.webkit.org/show_bug.cgi?id=160217

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

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

Source/WebCore:

Range.prototype.compareBoundaryPoints.length:

We had a bug in our IDL which caused length to be 0 even though
both parameters were effectively mandatory.

No new tests, rebaselined existing test.

  • dom/Range.idl:
3:38 PM Changeset in webkit [203744] by Chris Dumez
  • 6 edits
    4 adds in trunk

Align CSSStyleDeclaration with the specification
​https://bugs.webkit.org/show_bug.cgi?id=160214

Reviewed by Darin Adler.

Source/WebCore:

Align CSSStyleDeclaration with the specification:

In particular, the parameters to removeProperty() / item() and
getPropertyPriority() should be mandatory.

Firefox and Chrome match the specification.

Tests: fast/css/CSSStyleDeclaration-cssText-null.html

fast/css/CSSStyleDeclaration-parameters.html

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):

  • css/CSSStyleDeclaration.idl:

LayoutTests:

  • fast/css/CSSStyleDeclaration-cssText-null-expected.txt: Added.
  • fast/css/CSSStyleDeclaration-cssText-null.html: Added.

Add layout test coverage for setting cssText to null. This test
passes in WebKit, Firefox and Chrome, with or without my change.
Our IDL wrongly reported the cssText attribute as nullable but
WebKit was already behaving correctly.

  • fast/css/CSSStyleDeclaration-parameters-expected.txt: Added.
  • fast/css/CSSStyleDeclaration-parameters.html: Added.

Add testing for omitting CSSStyleDeclaration API parameters, to
make sure they are mandatory. This test passes in Firefox and
Chrome.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

Update existing test to reflect behavior change.

3:31 PM Changeset in webkit [203743] by ddkilzer@apple.com
  • 16 edits
    2 adds in trunk

Networking process crash due to missing -[WebCoreAuthenticationClientAsChallengeSender performDefaultHandlingForAuthenticationChallenge:] implementation
​https://bugs.webkit.org/show_bug.cgi?id=156947
<rdar://problem/23325160>

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/xmlhttprequest/auth-reject-protection-space.html

  • platform/network/mac/AuthenticationMac.mm:

(-[WebCoreAuthenticationClientAsChallengeSender performDefaultHandlingForAuthenticationChallenge:]): Added.
(-[WebCoreAuthenticationClientAsChallengeSender rejectProtectionSpaceAndContinueWithChallenge:]): Added.

Source/WebKit2:

  • UIProcess/API/C/WKAuthenticationDecisionListener.cpp:

(WKAuthenticationDecisionListenerRejectProtectionSpaceAndContinue):

  • UIProcess/API/C/WKAuthenticationDecisionListener.h:

Added new SPI for testing corresponding to calling the completion handler of
WKWebView.didReceiveAuthenticationChallenge with NSURLSessionAuthChallengeRejectProtectionSpace.

Tools:

  • DumpRenderTree/TestRunner.cpp:

(TestRunner::TestRunner):
(setRejectsProtectionSpaceAndContinueForAuthenticationChallengesCallback):

  • DumpRenderTree/TestRunner.h:

(TestRunner::rejectsProtectionSpaceAndContinueForAuthenticationChallenges):
(TestRunner::setRejectsProtectionSpaceAndContinueForAuthenticationChallenges):

  • DumpRenderTree/mac/ResourceLoadDelegate.mm:

(-[ResourceLoadDelegate webView:resource:didReceiveAuthenticationChallenge:fromDataSource:]):

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::queueNonLoadingScript):
(WTR::TestRunner::setRejectsProtectionSpaceAndContinueForAuthenticationChallenges):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::didReceiveAuthenticationChallenge):

  • WebKitTestRunner/TestController.h:

(WTR::TestController::setRejectsProtectionSpaceAndContinueForAuthenticationChallenges):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
Add TestRunner.setRejectsProtectionSpaceAndContinueForAuthenticationChallenges to use for testing.

LayoutTests:

  • http/tests/xmlhttprequest/auth-reject-protection-space-expected.txt: Added.
  • http/tests/xmlhttprequest/auth-reject-protection-space.html: Added.
3:04 PM Changeset in webkit [203742] by ddkilzer@apple.com
  • 2 edits in trunk/Tools

check-for-exit-time-destructors should be usable outside Xcode
<​https://webkit.org/b/160195>

Reviewed by Darin Adler.

  • Scripts/check-for-exit-time-destructors: Update to parse
-hhelp switch, or to take one argument to a binary to check

for exit time destructors on the command-line. The clang
compiler will find these at compile-time with the
-Wexit-time-destructors switch, but this script will check for
them after-the-fact.

3:03 PM Changeset in webkit [203741] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Payment session does not end if user closes all Safari windows
​https://bugs.webkit.org/show_bug.cgi?id=160213
rdar://problem/27480873

Reviewed by Tim Horton.

Listen for the NSWindowWillCloseNotification of the sheet window and hide the payment UI when
the sheet window is going to be closed.

  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
  • UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):
(WebKit::WebPaymentCoordinatorProxy::hidePaymentUI):

3:00 PM Changeset in webkit [203740] by Chris Dumez
  • 11 edits
    2 adds in trunk

Parameters to CSSStyleSheet.insertRule() / deleteRule() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160210

Reviewed by Darin Adler.

Source/WebCore:

Parameters to CSSStyleSheet.insertRule() / deleteRule() should be mandatory:

They are mandatory in Firefox.
They are mandatory in Chrome except for the second parameter of insertRule()
which merely logs a deprecation warning.

This patch aligns our behavior with Chrome to move towards to specification
while limiting the risk of breakage.

Test: fast/css/stylesheet-parameters.html

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::deprecatedInsertRule):

  • css/CSSStyleSheet.h:
  • css/CSSStyleSheet.idl:

LayoutTests:

  • fast/css/stylesheet-parameters-expected.txt: Added.
  • fast/css/stylesheet-parameters.html: Added.

Add layout test coverage.

  • editing/selection/first-letter-selection-crash.html:
  • fast/css/counters/asterisk-counter-update-after-layout-crash.html:
  • fast/dom/HTMLElement/dynamic-editability-change.html:
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

Update existing tests to reflect the behavior change.

2:52 PM Changeset in webkit [203739] by commit-queue@webkit.org
  • 21 edits
    2 adds in trunk

HTMLVideoElement frames do not update on iOS when src is a MediaStream blob
​https://bugs.webkit.org/show_bug.cgi?id=159833
<rdar://problem/27379487>

Patch by George Ruan <​gruan@apple.com> on 2016-07-26
Reviewed by Eric Carlson.

Source/WebCore:

Test: fast/mediastream/MediaStream-video-element-displays-buffer.html

  • WebCore.xcodeproj/project.pbxproj:
  • platform/cf/CoreMediaSoftLink.cpp: Add CMSampleBufferCreateReadyWithImageBuffer and CMVideoFormatDescriptionCreateForImageBuffer

softlink.

  • platform/cf/CoreMediaSoftLink.h: Ditto.
  • platform/cocoa/CoreVideoSoftLink.cpp: Add CVPixelBufferCreate, kCVPixelBufferCGBitmapContextCompatibilityKey, and

kCVPixelBufferCGImageCompatibilityKey.

  • platform/cocoa/CoreVideoSoftLink.h: Ditto.
  • platform/graphics/avfoundation/MediaSampleAVFObjC.h: Change create to return a Ref<T> instead

of RefPtr<T>.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: Make observer of

MediaStreamTrackPrivate and make MediaPlayer use an AVSampleBufferDisplayLayer instead of CALayer.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: Ditto.

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC): Clean up
observers and AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable): Ensures AVSampleBufferDisplayLayer
is available.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueAudioSampleBufferFromTrack): Placeholder.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Responsible
for enqueuing sample buffers to the active video track.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Ensures that an AVSampleBufferDisplayLayer
exists.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayer): Destroys the AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer): Replace CALayer with AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play): Call updateReadyState as a deferred task.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState): readyState is bumped to HAVE_ENOUGH_DATA
only when the MediaPlayerPrivateMediaStreamAVFObjC has received a media sample.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferUpdated): Called from MediaStreamTrackPrivate when a
new SampleBuffer is available.
(WebCore::updateTracksOfType): Manage adding and removing self as observer from tracks.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks): Replace CALayer with AVSampleBufferDisplayLayer
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::acceleratedRenderingStateChanged): Copied from
MediaPlayerPrivateMediaSourceAVFObjC.mm
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Deleted CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Deleted process of updating CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateIntrinsicSize): Deleted CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers): Deleted.

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::updateActiveVideoTrack): Remove redundant check.

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::sourceHasMoreMediaData): Called from RealtimeMediaSource when a new SampleBuffer
is available.

  • platform/mediastream/MediaStreamTrackPrivate.h:

(WebCore::MediaStreamTrackPrivate::Observer::sampleBufferUpdated): Relays to MediaPlayerPrivateMediaStreamAVFObjC that
a new SampleBuffer is available to enqueue to the AVSampleBufferDisplayLayer.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::settingsDidChange): Fix grammatical mistake in function name settingsDidChanged().
(WebCore::RealtimeMediaSource::mediaDataUpdated): Relays to all observers that a new SampleBuffer is available.
(WebCore::RealtimeMediaSource::settingsDidChanged): Deleted.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::processNewFrame): Calls mediaDataUpdated when a new SampleBuffer is captured.

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.h:
  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSourceMac::CMSampleBufferFromPixelBuffer): Convert CVPixelBuffer to CMSampleBuffer.
(WebCore::MockRealtimeVideoSourceMac::pixelBufferFromCGImage): Convert CGImage to CVPixelBuffer.
(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer): Creates a CMSampleBuffer from current imageBuffer and
sends the CMSampleBuffer to MediaPlayerPrivateMediaStreamAVFObjC

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::setFrameRate): Fix grammar of settingsDidChanged() to settingsDidChange().
(WebCore::MockRealtimeVideoSource::setSize): Ditto.
(WebCore::MockRealtimeVideoSource::generateFrame): Call updateSampleBuffer().

  • platform/mock/MockRealtimeVideoSource.h: Change elapsedTime() from private to protected.

(WebCore::MockRealtimeVideoSource::updateSampleBuffer): Overriden by MockRealtimeVideoSourceMac.

LayoutTests:

  • fast/mediastream/MediaStream-video-element-displays-buffer-expected.txt: Added.
  • fast/mediastream/MediaStream-video-element-displays-buffer.html: Added. Checks that

a video element with a mediastream source displays frames that are neither black or transparent.

  • fast/mediastream/resources/getUserMedia-helper.js:

(setupVideoElementWithStream): Sets up video element with global variable mediastream.

2:49 PM Changeset in webkit [203738] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

Move ControlStates HashMap to RenderBox.
​https://bugs.webkit.org/show_bug.cgi?id=160206

Reviewed by Simon Fraser.

Move and modernize it.

No change in functionality.

  • platform/ControlStates.h:

(WebCore::ControlStates::ControlStates): Deleted.

  • rendering/RenderBox.cpp:

(WebCore::controlStatesRendererMap):
(WebCore::controlStatesForRenderer):
(WebCore::removeControlStatesForRenderer):
(WebCore::RenderBox::~RenderBox):
(WebCore::RenderBox::paintBoxDecorations):

  • rendering/RenderElement.cpp:

(WebCore::controlStatesRendererMap): Deleted.
(WebCore::RenderElement::hasControlStatesForRenderer): Deleted.
(WebCore::RenderElement::controlStatesForRenderer): Deleted.
(WebCore::RenderElement::removeControlStatesForRenderer): Deleted.
(WebCore::RenderElement::addControlStatesForRenderer): Deleted.

  • rendering/RenderElement.h:
2:35 PM Changeset in webkit [203737] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

Occasional crash in WebCore::RenderVTTCue::initializeLayoutParameters
​https://bugs.webkit.org/show_bug.cgi?id=160208

Reviewed by Darin Adler.

  • rendering/RenderVTTCue.cpp:

(WebCore::RenderVTTCue::initializeLayoutParameters): Return when firstChild is NULL so a
release build will not crash.

2:01 PM Changeset in webkit [203736] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

REGRESSION: The arrow indicating the current page doesn't get updated
​https://bugs.webkit.org/show_bug.cgi?id=160185

Reviewed by Chris Dumez.

The bug was caused by Heading's render() function not updating the DOM more than once. I don't understand
how this has ever worked. Fixed the bug by rendering DOM whenever the current page has changed.

  • public/v3/pages/heading.js:

(Heading):
(Heading.prototype.render):

1:59 PM Changeset in webkit [203735] by rniwa@webkit.org
  • 6 edits
    1 delete in trunk/LayoutTests

Remove the tests for legacy custom elements API
​https://bugs.webkit.org/show_bug.cgi?id=160209

Reviewed by Chris Dumez.

Removed the tests for legacy custom elements v0 API. The tests for the new v1 API is at fast/custom-elements.

  • fast/dom/custom: Removed.
  • fast/dom/custom/document-register-basic-expected.txt: Removed.
  • fast/dom/custom/document-register-basic.html: Removed.
  • fast/dom/custom/document-register-namespace-expected.txt: Removed.
  • fast/dom/custom/document-register-namespace.html: Removed.
  • fast/dom/custom/document-register-reentrant-null-constructor-expected.txt: Removed.
  • fast/dom/custom/document-register-reentrant-null-constructor.html: Removed.
  • fast/dom/custom/document-register-reentrant-returning-fake-expected.txt: Removed.
  • fast/dom/custom/document-register-reentrant-returning-fake.html: Removed.
  • fast/dom/custom/document-register-reentrant-throwing-constructor-expected.txt: Removed.
  • fast/dom/custom/document-register-reentrant-throwing-constructor.html: Removed.
  • fast/dom/custom/document-register-type-extensions-expected.txt: Removed.
  • fast/dom/custom/document-register-type-extensions.html: Removed.
  • fast/dom/custom/lifecycle-ready-createElement-recursion-expected.txt: Removed.
  • fast/dom/custom/lifecycle-ready-createElement-recursion.html: Removed.
  • fast/dom/custom/lifecycle-ready-createElement-reentrancy-expected.txt: Removed.
  • fast/dom/custom/lifecycle-ready-createElement-reentrancy.html: Removed.
  • fast/dom/custom/lifecycle-ready-creation-api-expected.txt: Removed.
  • fast/dom/custom/lifecycle-ready-creation-api.html: Removed.
  • fast/dom/custom/lifecycle-ready-innerHTML-expected.txt: Removed.
  • fast/dom/custom/lifecycle-ready-innerHTML.html: Removed.
  • fast/dom/custom/lifecycle-ready-parser-only-expected.html: Removed.
  • fast/dom/custom/lifecycle-ready-parser-only.html: Removed.
  • fast/dom/custom/lifecycle-ready-parser-script-expected.txt: Removed.
  • fast/dom/custom/lifecycle-ready-parser-script.html: Removed.
  • fast/dom/custom/lifecycle-ready-paste-expected.txt: Removed.
  • fast/dom/custom/lifecycle-ready-paste.html: Removed.
  • fast/dom/custom/resources: Removed.
  • fast/dom/custom/resources/document-register-fuzz.js: Removed.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/win/TestExpectations:
1:57 PM Changeset in webkit [203734] by Chris Dumez
  • 4 edits in trunk

Parameters to CustomEvent.initCustomEvent() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160205

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

Parameters to CustomEvent.initCustomEvent() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • dom/CustomEvent.idl:
1:54 PM Changeset in webkit [203733] by Chris Dumez
  • 13 edits in trunk

Second parameter to Range.isPointInRange() / comparePoint() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160202

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

Second parameter to Range.isPointInRange() / comparePoint() should be mandatory
and be of type "unsigned long":

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::traverseToOffsetInRange):

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::removeMarkers):
(WebCore::DocumentMarkerController::markersInRange):
(DocumentMarkerController::setMarkersActive):

  • dom/Range.cpp:

(WebCore::Range::isPointInRange):
(WebCore::Range::comparePoint):
(WebCore::Range::compareBoundaryPoints):
(WebCore::Range::toString):
(WebCore::Range::absoluteTextRects):
(WebCore::Range::absoluteTextQuads):
(WebCore::boundaryTextNodesMerged):
(WebCore::Range::getBorderAndTextQuads):

  • dom/Range.h:

(WebCore::Range::startOffset):
(WebCore::Range::endOffset):

  • dom/Range.idl:
  • dom/RangeBoundaryPoint.h:

(WebCore::RangeBoundaryPoint::ensureOffsetIsValid):
(WebCore::RangeBoundaryPoint::toPosition):
(WebCore::RangeBoundaryPoint::offset):
(WebCore::RangeBoundaryPoint::setOffset):
(WebCore::RangeBoundaryPoint::setToBeforeChild):
(WebCore::RangeBoundaryPoint::setToAfterChild):
(WebCore::RangeBoundaryPoint::setToEndOfNode):
(WebCore::RangeBoundaryPoint::childBeforeWillBeRemoved):
(WebCore::RangeBoundaryPoint::invalidateOffset):

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
1:18 PM Changeset in webkit [203732] by commit-queue@webkit.org
  • 23 edits
    8 copies
    11 adds in trunk

[Fetch API] Add support for fetch mode, in particular cors
​https://bugs.webkit.org/show_bug.cgi?id=156753

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-26
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebasing tests.

  • web-platform-tests/fetch/api/basic/integrity-expected.txt:
  • web-platform-tests/fetch/api/basic/integrity-worker-expected.txt:
  • 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/cors/cors-basic-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-filtering-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-filtering-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-multiple-origins-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
  • web-platform-tests/fetch/api/credentials/authentication-basic-worker-expected.txt:
  • web-platform-tests/fetch/api/request/request-cache-expected.txt:

Source/WebCore:

Covered by rebased tests.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start): Passing fetch mode to ThreadableLoader.
Disabling as a temp fix credentials in case of CORS mode as credential options is not yet supported and would make several tests fail.

LayoutTests:

Rebasing specific expectations as Maci/iOS WK2 does not like https tests.

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/basic/mode-no-cors-worker-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-expected.txt: Added.
  • platform/mac-wk2/imported/w3c/web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt: Added.
12:09 PM Changeset in webkit [203731] by Chris Dumez
  • 10 edits
    2 adds
    4 deletes in trunk

Align NamedNodeMap with the specification
​https://bugs.webkit.org/show_bug.cgi?id=160204

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

Align NamedNodeMap with the specification:

In particular, mark parameters as mandatory when they should be, and
use tighter "Attr" typing instead of Node.

Chrome and Firefox agree with the specification.

Test: fast/dom/NamedNodeMap-parameters.html

  • dom/NamedNodeMap.cpp:

(WebCore::NamedNodeMap::getNamedItem):
(WebCore::NamedNodeMap::getNamedItemNS):
(WebCore::NamedNodeMap::removeNamedItem):
(WebCore::NamedNodeMap::removeNamedItemNS):
(WebCore::NamedNodeMap::setNamedItem):
(WebCore::NamedNodeMap::item):

  • dom/NamedNodeMap.h:
  • dom/NamedNodeMap.idl:

LayoutTests:

  • dom/html/level2/core/hc_namednodemapinvalidtype1-expected.txt: Removed.
  • dom/html/level2/core/hc_namednodemapinvalidtype1.html: Removed.
  • dom/xhtml/level2/core/hc_namednodemapinvalidtype1-expected.txt: Removed.
  • dom/xhtml/level2/core/hc_namednodemapinvalidtype1.xhtml: Removed.

Drop outdated DOM level 2 tests that expect the wrong exception type to
be thrown when passing a non-Attr node in.

  • fast/dom/NamedNodeMap-parameters-expected.txt: Added.
  • fast/dom/NamedNodeMap-parameters.html: Added.

Add layout test coverage. I have verified that this test is passing in
both Firefox and Chrome.

  • fast/dom/NamedNodeMap-setNamedItem-crash-expected.txt:
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:

Update / rebaseline existing tests to reflect behavior change.

11:58 AM Changeset in webkit [203730] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Remove unused DEBUG_WITH_BREAKPOINT configuration.
​https://bugs.webkit.org/show_bug.cgi?id=160203

Reviewed by Keith Miller.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitDebugHook):

11:58 AM Changeset in webkit [203729] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Infinite Canvas context save() causes WebKit to crash
​https://bugs.webkit.org/show_bug.cgi?id=159586
<rdar://problem/26759984>

Patch by Said Abou-Hallawa <​sabouhallawa@apple.com> on 2016-07-26
Reviewed by Simon Fraser.

Source/WebCore:

Limit the size of the canvas context state stack to 1024 * 16 saves. All
the saves which come after that limit will stay unrealized. The restore()
should not have any effect till there is no unrealized saves.

Test: fast/canvas/canvas-context-save-limit.html

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::realizeSaves):
(WebCore::CanvasRenderingContext2D::realizeSavesLoop):

  • html/canvas/CanvasRenderingContext2D.h:

LayoutTests:

  • fast/canvas/canvas-context-save-limit-expected.txt: Added.
  • fast/canvas/canvas-context-save-limit.html: Added.
11:00 AM Changeset in webkit [203728] by commit-queue@webkit.org
  • 5 edits
    3 adds in trunk

DOMTokenList should be iterable
​https://bugs.webkit.org/show_bug.cgi?id=160183

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-26
Reviewed by Chris Dumez.

Source/WebCore:

DOMTokenList should be iterable as per ​https://dom.spec.whatwg.org/#interface-domtokenlist

Test: fast/dom/domTokenListIterator.html

  • html/DOMTokenList.idl: Added iterable to the interface description.

LayoutTests:

  • fast/dom/domTokenListIterator-expected.txt: Added.
  • fast/dom/domTokenListIterator.html: Added.
  • fast/dom/iterable-tests.js: Added.
  • fast/dom/nodeListIterator-expected.txt:
  • fast/dom/nodeListIterator.html: Making use of iterable-tests.js
10:26 AM Changeset in webkit [203727] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[Threaded Compositor] ASSERTION FAILED: canAccessThreadLocalDataForThread(m_thread) after r203718
​https://bugs.webkit.org/show_bug.cgi?id=160201

Reviewed by Michael Catanzaro.

I forgot to call purgeGLResources() before invalidating the scene in the compositing thread.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::invalidate):

10:13 AM Changeset in webkit [203726] by commit-queue@webkit.org
  • 21 edits
    2 deletes in trunk

Unreviewed, rolling out r203719.
​https://bugs.webkit.org/show_bug.cgi?id=160200

It is breaking win build (Requested by youenn on #webkit).

Reverted changeset:

"[Fetch API] Response constructor should be able to take a
ReadableStream as body"
​https://bugs.webkit.org/show_bug.cgi?id=159804
​http://trac.webkit.org/changeset/203719

9:57 AM Changeset in webkit [203725] by wilander@apple.com
  • 3 edits
    6 adds in trunk

Stop supporting compressed character sets BOCU-1 and SCSU
​https://bugs.webkit.org/show_bug.cgi?id=159581

Reviewed by Brent Fulgham.

WebKit should not support the compressed character sets BOCU-1 and SCSU.
Chrome and Firefox don't and these old formats may pass server-side character
filters while still rendering in WebKit.

The HTML specification says "The above prohibits supporting, for example,
CESU-8, UTF-7, BOCU-1, SCSU, EBCDIC, and UTF-32."
​https://html.spec.whatwg.org/#character-encodings

Source/WebCore:

Tests: http/tests/misc/char-encoding-bocu-1-blacklisted.html

http/tests/misc/char-encoding-scsu-blacklisted.html

  • platform/text/TextEncodingRegistry.cpp:

Blacklisted BOCU-1 and SCSU character sets.

LayoutTests:

  • http/tests/misc/char-encoding-bocu-1-blacklisted-expected.txt: Added.
  • http/tests/misc/char-encoding-bocu-1-blacklisted.html: Added.
  • http/tests/misc/char-encoding-scsu-blacklisted-expected.txt: Added.
  • http/tests/misc/char-encoding-scsu-blacklisted.html: Added.
  • http/tests/misc/resources/bocu-1-cyrillic.php: Added.
  • http/tests/misc/resources/scsu-cyrillic.php: Added.
9:32 AM Changeset in webkit [203724] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Support configurable autocapitalization.
​https://bugs.webkit.org/show_bug.cgi?id=158860
rdar://problem/27536113

Reviewed by Tim Horton.

Autocapitalization should be enabled/disabled regardless of whether
we are using advance spelling feature.

  • UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::checkTextOfParagraph):
(WebKit::TextChecker::getGuessesForWord):

9:29 AM Changeset in webkit [203723] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore
ASSERTION FAILED: !m_frame->page()->defersLoading()
InspectorInstrumentation::isDebuggerPaused(m_frame)

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

Reviewed by Michael Catanzaro.

This is happening in the GTK+ Debug bot when running test loader/load-defer.html (note that the assert is inside
a !USE(CF) block).
The test is creating an iframe with load deferred, then in a timeout it disables the deferred load and checks
that the load actually happens. What happens is that the initial empty document is what calls
DocumentLoader::finishedLoading() when load is still deferred. The onload handler is not called because load
events are disabled for the initial empty document in SubframeLoader::loadSubframe(), but
DocumentLoader::finishedLoading() is called unconditionally from maybeLoadEmpty(). I think it's fine to call
DocumentLoader::finishedLoading() for the initial empty document even when load is deferred, so we can simply
update the assert to handle that case.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::finishedLoading): Do not assert if called for the initial empty document when load is
deferred.

9:26 AM Changeset in webkit [203722] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[Coordinated Graphics] Test fast/fixed-layout/fixed-layout.html crashes in debug
​https://bugs.webkit.org/show_bug.cgi?id=160117

Reviewed by Michael Catanzaro.

The problem is that WebPage has its own m_useFixedLayout that is only updated when changed from the UI
process. However, layout tests doing internals.setUseFixedLayout() change the frame view directly, and the
WebPage doesn't notice it.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setFixedVisibleContentRect): Deleted.
(WebKit::WebPage::sendViewportAttributesChanged): Change the assert to check the main FrameView is in fixed
layout mode.

  • WebProcess/WebPage/WebPage.h:
9:25 AM Changeset in webkit [203721] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

[Threaded Compositor] ASSERTION FAILED: isMainThread() when ThreadedCompositor is destroyed since r203718
​https://bugs.webkit.org/show_bug.cgi?id=160197

Reviewed by Žan Doberšek.

ThreadedCompositor can be destroyed from a secondary thread, for example, when a task takes a reference and the
main threads derefs it, when the task finishes in the secondary thread the lambda ends up deleting the threaded
compositor. This is ok for the Threaded compositor but not for the CompositingRunLoop class. this was not a
problem before r203718 because the CompositingRunLoop object was created and destroyed in the same thread
always, but now it's part of the ThreadedCompositor class. This patch uses std:unique_ptr again to explicitly
create the CompositingRunLoop in the ThreadedCompositor constructor and delete in the invalidate() method to
make sure it happens in the main thread in both cases.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::WorkQueuePool::invalidate):
(WebKit::WorkQueuePool::getOrCreateWorkQueueForContext):

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::setDrawsBackground):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::updateViewport):
(WebKit::ThreadedCompositor::scheduleDisplayImmediately):
(WebKit::ThreadedCompositor::forceRepaint):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
9:23 AM Changeset in webkit [203720] by commit-queue@webkit.org
  • 25 edits in trunk

Remove ClientCredentialPolicy cross-origin option from ResourceLoaderOptions
​https://bugs.webkit.org/show_bug.cgi?id=159413

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

LayoutTests/imported/w3c:

Below test changes as ResourceLoader is now computing whether to request credentials to clients if:

  • request is authorized to request credentials (DocumentThreadableLoader only allows same-origin to make such thing)
  • credential policy is Include or Same-Origin and request is same-origin.

This test changes as current fetch loader sets the credential mode to Omit, thus disabling credential request.

To be noted that only fetch API is allowing to disable credentials sending for same-origin request using "Omit"
credential mode.

  • web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Rebasing test.

Source/WebCore:

ClientCredentialPolicy had three values (not ask, ask, ask only for same origin).
The distinction between allowing cross-origin or same-origin credentials is misleading as it is not supported
for synchronous loads and not supported by Network process.
It is best replaced by a boolean option (ask or not ask).

Same-origin ClientCredentialPolicy option was only used by DocumentThreadableLoader for asynchronous loads.
Since DocumentThreadableLoader is already computing whether the request is cross-origin, it can also compute
whether credentials may be requested or not. In case of cross-origin redirections, credentials are omitted, thus
disabling any possibility for requesting credentials for cross-origin resources after redirections.

Moving ClientCredentialPolicy to ResourceLoaderOptions since it is not used by platform code except for some
mac-specific code that is already using ResourceLoaderOptions.

Covered by existing tests.

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::startPreflight): Setting clearly credential mode to Omit credentials.
(WebCore::CrossOriginPreflightChecker::doPreflight): Ditto.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::startLoadingMainResource): AskClientForAllCredentials ->
ClientCredentialPolicy::MayAskClientForCredentials.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest): Disabling requesting credentials for any cross-origin request.

  • loader/FrameLoader.h:
  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource): AskClientForAllCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.

  • loader/NetscapePlugInStreamLoader.cpp:

(WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader): Ditto.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::isAllowedToAskUserForCredentials): Disabling client credential request if ClientCredentialPolicy is CannotAskClientForCredentials.
Otherwise, returns true if fetch credentials mode allows it.

  • loader/ResourceLoaderOptions.h:

(WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
(WebCore::ResourceLoaderOptions::clientCredentialPolicy): Deleted.
(WebCore::ResourceLoaderOptions::setClientCredentialPolicy): Deleted.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestUserCSSStyleSheet): AskClientForAllCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.
(WebCore::CachedResourceLoader::defaultCachedResourceOptions): AskClientForAllCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.

  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::startLoading): DoNotAskClientForAnyCredentials -> ClientCredentialPolicy::CannotAskClientForCredentials.

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::startLoading): DoNotAskClientForCrossOriginCredentials -> ClientCredentialPolicy::CannotAskClientForCredentials.
This is ok as credentials mode is omit and stored credentials are not allowed.

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::startLoading): Ditto.

  • platform/network/ResourceHandleTypes.h:
  • xml/XSLTProcessorLibxslt.cpp: DoNotAskClientForCrossOriginCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.

This is ok as this is a synchronous load.
(WebCore::docLoaderFunc):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::openFunc): DoNotAskClientForCrossOriginCredentials -> ClientCredentialPolicy::MayAskClientForCredentials.
This is ok as this is a synchronous load.

Source/WebKit2:

Renaming of ClientCredentialPolicy values.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::startDownload):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):
(WebKit::NetworkLoad::didReceiveAuthenticationChallenge):

  • NetworkProcess/NetworkLoadParameters.h:
  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::NetworkResourceLoadParameters):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::NetworkResourceLoader):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::willSendRequest):

LayoutTests:

  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Removed.
9:03 AM Changeset in webkit [203719] by commit-queue@webkit.org
  • 21 edits
    1 copy
    1 add in trunk

[Fetch API] Response constructor should be able to take a ReadableStream as body
​https://bugs.webkit.org/show_bug.cgi?id=159804

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-consume-empty-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume-expected.txt:
  • web-platform-tests/fetch/api/response/response-consume.html: Updating test to exercice Response coonstructor with a ReadableStream.

Source/WebCore:

Covered by existing and updated tests.

Introduced FetchBodyConsumer to encapsulate the code responsible to adapt FetchBody internal data to the requests made by user scripts.
This refactoring eases the handling of internal data coming from ReadableStream.

FetchLoader is now delegating conversion from the data to its m_consumer field.
If m_consumer is null, FetchLoader calls FetchLoaderClient::didReceiveData (streaming reception mode).
Clients of FetchLoader needs to pass a FetchBodyConsumer to the FetchLoader to do the data adaptation at loader creation time.

Added support for body data passed as a ReadableStream to Response.
This requires to set @body internal slot of the Response object in the constructor initialization JS built-in.

To actually use that data, Body accessors are also implemented as JS built-in for Response.
Since there is no need to do so for Request, FetchResponse is no longer marked as implementing FetchBody but all
FetchBody IDL description is inlined in FetchResponse.idl.

For each body accessor (arrayBuffer, blob, json, text), the corresponding JS built-in checks whether @body internal slot is set.
If that is not the case, regular handling is done through a new private method called @consume.
If @body internal slot is set, chunks are pumped from the ReadableStream using ReadableStream internal built-ins functions.
Data handling is done in C++ through the private methods @startConsumingStream, @consumeChunk and @finishConsumingStream.

To support cloning of Response with bodies, clone method is also implemented as a JS built-in.
Main clone is done through @cloneFoJS private method implemented in C++.
JS built-in clone code does the teeing of the ReadableStream using ReadableStream JS built-in internal functions.

Introducing a new ReadableStream type for FetchBody to cope with body being stored in a ReadableStream.

Introducing a new Loaded type for FetchBody to cope with body being stored in the FetchBodyConsumer owned by FetchBody.
This allows removing the conversion of data to JSC::ArrayBuffer which was done by defaut at the end of Fetch loading if user script did not request data before.
At the end of a load, the data remains in FetchBodyConsumer and the body is marked as Loaded.
If the user wants to get the data after data finished being loaded, FetchBodyConsumer will do the required conversions.

Introducing DeferredWrapper::resolveWithNewValue to handle the case of resolving promises with new objects.
This allows directly using toJSNewlyCreated instead of toJS.

  • CMakeLists.txt: Adding FetchBodyConsumer.
  • Modules/fetch/FetchBody.cpp: Moving data adaptation code to FetchBodyConsumer.

(WebCore::FetchBody::extract):
(WebCore::FetchBody::arrayBuffer):
(WebCore::FetchBody::blob): Setting contentType in FetchBodyConsumer to handle proper creation of blob.
(WebCore::FetchBody::json):
(WebCore::FetchBody::text):
(WebCore::FetchBody::consume): Refactoring and added case of Loaded bodies.
(WebCore::FetchBody::consumeAsStream): Ditto.
(WebCore::FetchBody::consumeArrayBuffer):
(WebCore::FetchBody::consumeText):
(WebCore::FetchBody::consumeBlob):
(WebCore::FetchBody::loadingFailed):
(WebCore::FetchBody::loadingSucceeded):
(WebCore::FetchBody::loadingType): Deleted.
(WebCore::blobFromArrayBuffer): Deleted.
(WebCore::FetchBody::fulfillTextPromise): Deleted.
(WebCore::FetchBody::loadedAsArrayBuffer): Deleted.
(WebCore::FetchBody::loadedAsText): Deleted.

  • Modules/fetch/FetchBody.h:

(WebCore::FetchBody::consumer):

  • Modules/fetch/FetchBodyConsumer.cpp: Added, responsible of data adaptation.

(WebCore::blobFromData):
(WebCore::FetchBodyConsumer::resolveWithData):
(WebCore::FetchBodyConsumer::resolve):
(WebCore::FetchBodyConsumer::append):
(WebCore::FetchBodyConsumer::takeData):
(WebCore::FetchBodyConsumer::takeAsArrayBuffer):
(WebCore::FetchBodyConsumer::takeAsBlob):
(WebCore::FetchBodyConsumer::takeAsText):

  • Modules/fetch/FetchBodyConsumer.h: Added.

(WebCore::FetchBodyConsumer::FetchBodyConsumer):
(WebCore::FetchBodyConsumer::setContentType):
(WebCore::FetchBodyConsumer::setType):
(WebCore::FetchBodyConsumer::type):
(WebCore::FetchBodyConsumer::clean):
(WebCore::FetchBodyConsumer::hasData):

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::loadBlob):
(WebCore::FetchBodyOwner::blobLoadingSucceeded):
(WebCore::FetchBodyOwner::loadedBlobAsText): Deleted.

  • Modules/fetch/FetchBodyOwner.h:

(WebCore::FetchBodyOwner::loadedBlobAsArrayBuffer): Deleted.

  • Modules/fetch/FetchInternals.js:

(consumeStream): Pump ReadableStream data and send it to FetchResponse to be converted according user need.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::FetchLoader): FetchLoader is simplified as it has two nodes: consumer mode in which case
data is sent to the consumer and no-consumer mode in which case data is passed to loader client. The second mode
is used to conveyy data to ReadableStream source.
(WebCore::FetchLoader::stop):
(WebCore::FetchLoader::startStreaming):
(WebCore::FetchLoader::didReceiveData):
(WebCore::FetchLoader::didFinishLoading): Deleted.

  • Modules/fetch/FetchLoader.h:
  • Modules/fetch/FetchLoaderClient.h:

(WebCore::FetchLoaderClient::didFinishLoadingAsText): Deleted.
(WebCore::FetchLoaderClient::didFinishLoadingAsArrayBuffer): Deleted.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::cloneForJS):
(WebCore::FetchResponse::BodyLoader::didSucceed):
(WebCore::FetchResponse::BodyLoader::start):
(WebCore::FetchResponse::consume): Introduced to consume data stored in body and not in ReadableStream.
(WebCore::FetchResponse::startConsumingStream): Introduced to start process of consuming data stored in the ReadableStream.
(WebCore::FetchResponse::consumeChunk): Reception of ReadableStream data.
(WebCore::FetchResponse::finishConsumingStream): Doing the final conversion.
(WebCore::FetchResponse::clone): Deleted.
(WebCore::FetchResponse::BodyLoader::didFinishLoadingAsArrayBuffer): Deleted.

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/FetchResponse.idl: Inlining of FetchBody methods/attributes and adding private methods.
  • Modules/fetch/FetchResponse.js:

(initializeFetchResponse):
(clone):
(arrayBuffer):
(blob):
(formData):
(json):
(text):

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMPromise.h:

(WebCore::DeferredWrapper::resolveWithNewValue):

  • bindings/js/WebCoreBuiltinNames.h:
6:26 AM Changeset in webkit [203718] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

[Threaded Compositor] Crashes and deadlocks in single web process mode
​https://bugs.webkit.org/show_bug.cgi?id=160160

Reviewed by Žan Doberšek.

Every WebPage has its own threaded compositor that runs its own compositing thread. That means that when there's
more than one WebPage in the same process, we are running OpenGL stuff in different secondary threads. That's
causing crashes and deadlocks in X and graphics drivers. We should ensure there's a single compositing thread
per process when multiple threads is not supported. This is causing unit test
WebKit2.WKPageGetScaleFactorNotZero to time out since we switched to the threaded compositor. That test is
creating two pages in the same web process, and most of the times the web process crashes or deadlocks causing
the test to never finish and time out.
This patch makes CompositingRunLoop use a thread pool that spawns the compositing threads and schedules the tasks
there.

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:

(WebKit::WorkQueuePool::singleton):
(WebKit::WorkQueuePool::dispatch):
(WebKit::WorkQueuePool::runLoop):
(WebKit::WorkQueuePool::invalidate):
(WebKit::WorkQueuePool::WorkQueuePool):
(WebKit::WorkQueuePool::getOrCreateWorkQueueForContext):
(WebKit::CompositingRunLoop::CompositingRunLoop):
(WebKit::CompositingRunLoop::~CompositingRunLoop):
(WebKit::CompositingRunLoop::performTask):
(WebKit::CompositingRunLoop::performTaskSync):

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h:
  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::ThreadedCompositor):
(WebKit::ThreadedCompositor::invalidate):
(WebKit::ThreadedCompositor::setNativeSurfaceHandleForCompositing):
(WebKit::ThreadedCompositor::setDeviceScaleFactor):
(WebKit::ThreadedCompositor::setDrawsBackground):
(WebKit::ThreadedCompositor::didChangeViewportSize):
(WebKit::ThreadedCompositor::didChangeViewportAttribute):
(WebKit::ThreadedCompositor::didChangeContentsSize):
(WebKit::ThreadedCompositor::scrollTo):
(WebKit::ThreadedCompositor::scrollBy):
(WebKit::ThreadedCompositor::purgeBackingStores):
(WebKit::ThreadedCompositor::renderNextFrame):
(WebKit::ThreadedCompositor::commitScrollOffset):
(WebKit::ThreadedCompositor::updateViewport):
(WebKit::ThreadedCompositor::scheduleDisplayImmediately):
(WebKit::ThreadedCompositor::forceRepaint):
(WebKit::ThreadedCompositor::tryEnsureGLContext): Deleted.
(WebKit::ThreadedCompositor::glContext): Deleted.
(WebKit::ThreadedCompositor::updateSceneState): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
4:08 AM Changeset in webkit [203717] by svillar@igalia.com
  • 19 edits in trunk

[css-grid] repeat() syntax should take a <track-list> argument
​https://bugs.webkit.org/show_bug.cgi?id=160162

Reviewed by Darin Adler.

Source/WebCore:

The repeat() notation used to allow just 1 <track-size> as second argument. Specs have been
recently modified so that a <track-list> is now supported, meaning that we can pass an
arbitrary number of track sizes and line numbers.

It has been working for some time for repeat() if the first argument was a positive integer,
but it requires some changes for the auto repeat cases (auto-fill and auto-fit).

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::OrderedNamedLinesCollector::OrderedNamedLinesCollector): Store the total number of
auto repeat tracks and the length of a single repetition instead of the number of
repetitions.
(WebCore::OrderedNamedLinesCollector::collectLineNamesForIndex): Do not assume that there is
only 1 repeat track.
(WebCore::valueForGridTrackList):

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridTrackRepeatFunction): Allow multiple tracks in repeat().

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::rawGridTrackSize): Renamed repetitions -> autoRepeatTracksCount.
(WebCore::RenderGrid::computeAutoRepeatTracksCount): Use all the repeat tracks to compute
the total track size of a single repetition.
(WebCore::RenderGrid::computeEmptyTracksForAutoRepeat):

  • rendering/style/GridPositionsResolver.cpp:

(WebCore::NamedLineCollection::NamedLineCollection): Renamed m_repetitions ->
m_autoRepeatTotalTracks. Added m_autoRepeatTrackListLength (it was always 1 before).
(WebCore::NamedLineCollection::find): Resolve lines inside multiple repeat tracks.
(WebCore::NamedLineCollection::firstPosition): Ditto.

  • rendering/style/GridPositionsResolver.h:

LayoutTests:

Added new test cases with multiple tracks inside repeat() notation, both for fixed an
automatic (auto-fill & auto-fit) repetitions.

  • fast/css-grid-layout/grid-auto-fill-columns-expected.txt:
  • fast/css-grid-layout/grid-auto-fill-columns.html:
  • fast/css-grid-layout/grid-auto-fill-rows-expected.txt:
  • fast/css-grid-layout/grid-auto-fill-rows.html:
  • fast/css-grid-layout/grid-auto-fit-columns-expected.txt:
  • fast/css-grid-layout/grid-auto-fit-columns.html:
  • fast/css-grid-layout/grid-auto-fit-rows-expected.txt:
  • fast/css-grid-layout/grid-auto-fit-rows.html:
  • fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
  • fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
  • fast/css-grid-layout/grid-element-repeat-get-set-expected.txt:
  • fast/css-grid-layout/grid-element-repeat-get-set.html:
2:37 AM Changeset in webkit [203716] by svillar@igalia.com
  • 15 edits in trunk

[css-grid] grid-auto-flow|row should take a <track-size>+
​https://bugs.webkit.org/show_bug.cgi?id=160158

Reviewed by Darin Adler.

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackSizeList):
(WebCore::ComputedStyleExtractor::propertyValue): Return a list of <track-size> instead of
just one.

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseValue): Use the new values of TrackListType;
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns): Ditto.
(WebCore::CSSParser::parseGridTemplateShorthand): Ditto.
(WebCore::CSSParser::parseGridShorthand): Ditto.
(WebCore::CSSParser::parseGridTrackList): Changed behavior depending on the value of
TrackSizeList.

  • css/CSSParser.h: TrackListType has now 3 different values which determine the behavior of

parseGridTrackList.

  • css/CSSPropertyNames.in: Use a new converter for lists.
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertGridTrackSizeList):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::rawGridTrackSize): Resolve the size of the auto track.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::gridAutoColumns): Return a Vector.
(WebCore::RenderStyle::gridAutoRows): Ditto.
(WebCore::RenderStyle::setGridAutoColumns): Store a Vector.
(WebCore::RenderStyle::setGridAutoRows): Ditto.
(WebCore::RenderStyle::initialGridAutoColumns): Return a Vector with one auto track.
(WebCore::RenderStyle::initialGridAutoRows): Ditto.

  • rendering/style/StyleGridData.h: Store a Vector of GridTrackSize instead of just one.

LayoutTests:

  • fast/css-grid-layout/grid-auto-columns-rows-get-set-expected.txt:
  • fast/css-grid-layout/grid-auto-columns-rows-get-set.html:
  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-shorthand-get-set.html:
  • svg/css/getComputedStyle-basic-expected.txt: CSSPrimitiveValue -> CSSValueList.
1:06 AM Changeset in webkit [203715] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Test svn.webkit.org functionality after maintenance.

12:51 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:46 AM Changeset in webkit [203714] by fred.wang@free.fr
  • 6 edits
    3 adds in trunk

MathOperator: Add a mapping from combining to non-combining equivalents
​https://bugs.webkit.org/show_bug.cgi?id=159513

Patch by Frederic Wang <​fwang@igalia.com> on 2016-07-25
Reviewed by Darin Adler.

Source/WebCore:

Many math fonts provide stretch variants and assemblies for combining characters but not for
their non-combining equivalent. In the MathML recommendation, it is suggested to use
non-combining charaters, so we allow the operator stretching code to look for constructions
associated to these non-combining characters in order to still be able to stretch the
combining ones.

Test: mathml/presentation/bug159513.html

  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::getGlyph): New function extending getBaseGlyph to retrieve the glyph
data for an arbitrary character.
(WebCore::MathOperator::getMathVariantsWithFallback): This helper function calls
getMathVariants for the base glyph. If no constructions are available, it calls
getMathVariants for the glyph associated to equivalent fallback characters as listed in the
small characterFallback table.
(WebCore::MathOperator::calculateStretchyData): Call getMathVariantsWithFallback instead of
getMathVariants. Note that we do not need to do that for calculateDisplayStyleLargeOperator
as we do not use fallback for large operators.

  • rendering/mathml/MathOperator.h:

(WebCore::MathOperator::getBaseGlyph): Use getGlyph to implement this function.

LayoutTests:

  • mathml/presentation/bug159513.html: Added.
  • platform/gtk/mathml/presentation/bug159513-expected.png: Added.
  • platform/gtk/mathml/presentation/bug159513-expected.txt: Added.
  • platform/ios-simulator/TestExpectations: Skip this test on iOS.
  • platform/mac/TestExpectations: Skip this test on Mac.

Jul 25, 2016:

10:46 PM Changeset in webkit [203713] by Chris Dumez
  • 12 edits in trunk

Second parameter to Range.setStart() / setEnd() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160184

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

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

Source/WebCore:

Second parameter to Range.setStart() / setEnd() should be mandatory:

Also use "unsigned long" instead of "long" type for the parameter,
as per the specification.

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • dom/Range.cpp:

(WebCore::Range::setStart):
(WebCore::Range::setEnd):
(WebCore::Range::checkNodeWOffset):

  • dom/Range.h:
  • dom/Range.idl:
  • dom/RangeBoundaryPoint.h:

(WebCore::RangeBoundaryPoint::set):

LayoutTests:

Update tests to reflect behavior change.

  • editing/deleting/delete-uneditable-style.html:
  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
  • fast/regions/simplified-layout-no-regions.html:
10:27 PM Changeset in webkit [203712] by Chris Dumez
  • 4 edits in trunk

DOMTokenList.prototype.toString should be enumerable
​https://bugs.webkit.org/show_bug.cgi?id=160182

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:

DOMTokenList.prototype.toString should be enumerable:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing test.

  • html/DOMTokenList.idl:
10:27 PM Changeset in webkit [203711] by n_wang@apple.com
  • 7 edits in trunk

AX: Expose autoFillButtonType to accessibility
​https://bugs.webkit.org/show_bug.cgi?id=160179

Reviewed by Chris Fleizach.

Source/WebCore:

Added a new attribute on Mac to expose the auto-fill button type.

Changes are covered in modified test.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isValueAutofillAvailable):
(WebCore::AccessibilityObject::valueAutofillButtonType):
(WebCore::AccessibilityObject::isValueAutofilled):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::passwordFieldValue):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

LayoutTests:

  • accessibility/auto-fill-types-expected.txt:
  • accessibility/auto-fill-types.html:
8:04 PM Changeset in webkit [203710] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Build fix for Safari 9.

  • public/v3/models/build-request.js:

(BuildRequest.prototype.waitingTime): Don't use "const" in strict mode.

7:45 PM Changeset in webkit [203709] by rniwa@webkit.org
  • 15 edits
    2 adds in trunk/Websites/perf.webkit.org

Perf dashboard should show the list of a pending A/B testing jobs
​https://bugs.webkit.org/show_bug.cgi?id=160138

Rubber-stamped by Chris Dumez.

Add a page to show the list of A/B testing build requests per triggerable. Ideally, we would like to
see a queue per builder but that would require changes to database tables and syncing scripts.

Because this page is most useful when the analysis task with which each build request is associated,
JSON API at /api/build-requests/ has been modified to return the analysis task ID for each request.

Also streamlined the page that shows the list of analysis tasks per Chris' feedback by consolidating
"Bisecting" and "Identified" into "Investigated" and moving the toolbar from the upper left corner
inside the heading to right beneath the heading above the table. Also made the category page serialize
the filter an user had typed in so that reloading the page doesn't clear it.

  • public/api/analysis-tasks.php:

(fetch_associated_data_for_tasks): Removed 'category' from the list of columns returned as the notion
of 'category' is only relevant in UI, and it's better computed in the front-end.
(format_task): Ditto.
(determine_category): Deleted.

  • public/api/test-groups.php:

(main):

  • public/include/build-requests-fetcher.php:

(BuildRequestsFetcher::fetch_for_task): Include the analysis task ID in the rows.
(BuildRequestsFetcher::fetch_for_group): Ditto. Ditto.
(BuildRequestsFetcher::fetch_incomplete_requests_for_triggerable): Ditto.
(BuildRequestsFetcher::results_internal): Ditto.

  • public/v3/index.html:
  • public/v3/main.js:

(main): Create a newly introduced BuildRequestQueuePage as a subpage of AnalysisCategoryPage.

  • public/v3/components/ratio-bar-graph.js:

(RatioBarGraph.prototype.update): Fixed a bogus assertion here. ratio can be any number. The coercion
into [-1, 1] is done inside RatioBarGraph's render() function.

  • public/v3/models/analysis-task.js:

(AnalysisTask.prototype.category): Moved the code to compute the analysis task's category from
determine_category in analysis-tasks.php. Also merged "bisecting" and "identified" into "investigated".
(AnalysisTask.categories): Merged "bisecting" and "identified" into "investigated".

  • public/v3/models/build-request.js:

(BuildRequest): Remember the triggerable and the analysis task associated with this request as well as
the time at when this request was created.
(BuildRequest.prototype.analysisTaskId): Added.
(BuildRequest.prototype.statusLabel): Use a shorter label: "Waiting" for "pending" status.
(BuildRequest.prototype.createdAt): Added.
(BuildRequest.prototype.waitingTime): Added. Returns a human readable time duration since the creation
of this build request such as "2 hours 21 minutes" against a reference time.
(BuildRequest.fetchTriggerables): Added.
(BuildRequest.cachedRequestsForTriggerableID): Added. Used when navigating back to

  • public/v3/pages/analysis-category-page.js:

(AnalysisCategoryPage): Construct AnalysisCategoryToolbar and store it in this._categoryToolbar since it
no longer inherits from Toolbar class, which PageWithHeading recognizes and stores.
(AnalysisCategoryPage.prototype.title):
(AnalysisCategoryPage.prototype.serializeState): Added.
(AnalysisCategoryPage.prototype.stateForCategory): Added. Include the filter in the serialization.
(AnalysisCategoryPage.prototype.updateFromSerializedState): Restore the filter from the URL state.
(AnalysisCategoryPage.prototype.filterDidChange): Added. Called by AnalysisCategoryToolbar to update
the URL state in addition to calling render() as done previously via setFilterCallback.
(AnalysisCategoryPage.prototype.render): Always call _categoryToolbar.render() since the hyperlinks for
the category pages now include the filter, which can be updated in each call.
(AnalysisCategoryPage.cssTemplate):

  • public/v3/pages/analysis-category-toolbar.js:

(AnalysisCategoryToolbar): Inherits from ComponentBase instead of Toolbar since AnalysisCategoryToolbar
no longer works with Heading class unlike other subclasses of Toolbar class.
(AnalysisCategoryToolbar.prototype.setCategoryPage): Added.
(AnalysisCategoryToolbar.prototype.setFilterCallback): Deleted.
(AnalysisCategoryToolbar.prototype.setFilter): Added. Used to restore from a serialized URL state.
(AnalysisCategoryToolbar.prototype.render): Don't recreate the input element as it clears the value as
well as the selection of the element. Also use AnalysisCategoryPage's stateForCategory to serialize the
category name and the current filter for each hyperlink.
(AnalysisCategoryToolbar.prototype._filterMayHaveChanged): Now takes an boolean argument specifying
whether the URL state should be updated or not. We update the URL only when a change event is fired to
avoid constantly updating it while an user is still typing.
(AnalysisCategoryToolbar.cssTemplate): Added.
(AnalysisCategoryToolbar.htmlTemplate): Added a button to open the newly added queue page.

  • public/v3/pages/build-request-queue-page.js:

(BuildRequestQueuePage): Added.
(BuildRequestQueuePage.prototype.routeName): Added.
(BuildRequestQueuePage.prototype.pageTitle): Added.
(BuildRequestQueuePage.prototype.open): Added. Fetch open build requests for every triggerables using
the same API as the syncing scripts.
(BuildRequestQueuePage.prototype.render): Added.
(BuildRequestQueuePage.prototype._constructBuildRequestTable): Added. Construct a table for the list of
pending, scheduled or running build requests in the order syncing scripts would see. Note that the list
of build requests returned by /api/build-requests/* can contain completed, canceled, or failed requests
since the JSON returns all build requests associated with each test group if one of the requests of the
group have not finished. This helps syncing scripts picking the right builder for A/B testing when it
had previously been unloaded or crashed in the middle of processing a test group. This characteristics
of the API actually helps us here because we can reliably compute the total number of build requests in
the group. The first half of this function does this counting as well as collapses all but the first
unfinished build requests into a "contraction" row, which just shows the number of build requests that
are remaining in the group.
(BuildRequestQueuePage.cssTemplate): Added.
(BuildRequestQueuePage.htmlTemplate): Added.

  • public/v3/pages/summary-page.js:

(SummaryPage.prototype.open): Use one-day median instead of seven-day median to compute the status.
(SummaryPageConfigurationGroup): Initialize _ratio to NaN. This was causing assertion failures in
RatioBarGraph's update() while measurement sets are being fetched.

  • server-tests/api-build-requests-tests.js: Updated the tests per change in BuildRequest's statusLabel.
  • unit-tests/analysis-task-tests.js: Ditto.
  • unit-tests/test-groups-tests.js: Ditto.
  • unit-tests/build-request-tests.js: Added tests for BuildRequest's waitingTime.
7:40 PM Changeset in webkit [203708] by Alan Bujtas
  • 15 edits in trunk/Source/WebCore

Cleanup RenderTable*::createAnonymous*
​https://bugs.webkit.org/show_bug.cgi?id=160175

Reviewed by Simon Fraser.

This patch

  1. tightens the type on createAnonymousBoxWithSameTypeAs, createAnonymousWithParentRendererAndDisplay and

createAnonymousWithParentRenderer from RenderObject to the appropriate type.

  1. changes the return type of create* function from raw pointer to std::unique_ptr<>
  2. decouples createAnonymousBoxWithSameTypeAs and createAnonymousWithParentRenderer.

createAnonymousBoxWithSameTypeAs misleadingly calls createAnonymousWithParentRenderer
while it is never the parent in case of table items.
(std::unique_ptr::release() vs. WTFMove() will be addressed in a separate patch)

No change in functionality.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::createAnonymousBoxWithSameTypeAs):
(WebCore::RenderBlock::createAnonymousWithParentRendererAndDisplay):

  • rendering/RenderBlock.h:

(WebCore::RenderBlock::createAnonymousBlock):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::layoutOverflowRectForPropagation):

  • rendering/RenderBox.h:

(WebCore::RenderBox::createAnonymousBoxWithSameTypeAs):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::addChild):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::splitFlow):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::addChild):
(WebCore::RenderTable::createTableWithStyle):
(WebCore::RenderTable::createAnonymousWithParentRenderer):

  • rendering/RenderTable.h:

(WebCore::RenderTable::createAnonymousBoxWithSameTypeAs):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::createTableCellWithStyle):
(WebCore::RenderTableCell::createAnonymousWithParentRenderer):

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::createAnonymousBoxWithSameTypeAs):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::addChild):
(WebCore::RenderTableRow::createTableRowWithStyle):
(WebCore::RenderTableRow::createAnonymousWithParentRenderer):

  • rendering/RenderTableRow.h:

(WebCore::RenderTableRow::createAnonymousBoxWithSameTypeAs):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::addChild):
(WebCore::RenderTableSection::createTableSectionWithStyle):
(WebCore::RenderTableSection::createAnonymousWithParentRenderer):

  • rendering/RenderTableSection.h:

(WebCore::RenderTableSection::createAnonymousBoxWithSameTypeAs):

7:24 PM Changeset in webkit [203707] by Chris Dumez
  • 3 edits
    2 adds in trunk

Touch properties should be on the prototype
​https://bugs.webkit.org/show_bug.cgi?id=160174

Reviewed by Ryosuke Niwa.

Source/WebCore:

Touch properties should be on the prototype:

Chrome agrees with the specification.

Test: platform/ios-simulator/ios/touch/Touch-attributes-prototype.html

  • bindings/scripts/CodeGeneratorJS.pm:

(InterfaceRequiresAttributesOnInstanceForCompatibility): Deleted.

LayoutTests:

Add layout test coverage.

  • platform/ios-simulator/ios/touch/Touch-attributes-prototype-expected.txt: Added.
  • platform/ios-simulator/ios/touch/Touch-attributes-prototype.html: Added.
7:18 PM Changeset in webkit [203706] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Set MediaRemote playback state based on MediaSession playback state.
​https://bugs.webkit.org/show_bug.cgi?id=160177

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

Use playback session state to update media remote playback state instead of
unconditionally setting it to playing.

  • platform/audio/mac/MediaSessionManagerMac.mm:

(WebCore::MediaSessionManagerMac::updateNowPlayingInfo):

7:15 PM Changeset in webkit [203705] by Alan Bujtas
  • 9 edits in trunk/Source/WebCore

RenderBox::haveSameDirection is used only by table items.
​https://bugs.webkit.org/show_bug.cgi?id=160141

Reviewed by Simon Fraser.

Remove RenderBox::haveSameDirection() since it's used only by RenderTable*
classes. The new stand alone function (with 2 arguments) now checks if both of
the objects are valid.

No change in functionality.

  • rendering/RenderBox.h:

(WebCore::RenderBox::hasSameDirectionAs): Deleted.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::tableStartBorderAdjoiningCell):
(WebCore::RenderTable::tableEndBorderAdjoiningCell):

  • rendering/RenderTable.h:

(WebCore::haveSameDirection):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::hasStartBorderAdjoiningTable):
(WebCore::RenderTableCell::hasEndBorderAdjoiningTable):

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::borderAdjoiningTableStart):
(WebCore::RenderTableCell::borderAdjoiningTableEnd):

  • rendering/RenderTableRow.h:

(WebCore::RenderTableRow::borderAdjoiningTableStart):
(WebCore::RenderTableRow::borderAdjoiningTableEnd):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::borderAdjoiningStartCell):
(WebCore::RenderTableSection::borderAdjoiningEndCell):
(WebCore::RenderTableSection::firstRowCellAdjoiningTableStart):
(WebCore::RenderTableSection::firstRowCellAdjoiningTableEnd):

  • rendering/RenderTableSection.h:

(WebCore::RenderTableSection::borderAdjoiningTableStart):
(WebCore::RenderTableSection::borderAdjoiningTableEnd):

6:05 PM Changeset in webkit [203704] by benjamin@webkit.org
  • 23 edits
    4 copies in trunk/Source/JavaScriptCore

Unreviewed, rolling out r203703.

It breaks some internal tests

Reverted changeset:

"[JSC] DFG::Node should not have its own allocator"
​https://bugs.webkit.org/show_bug.cgi?id=160098
​http://trac.webkit.org/changeset/203703

5:27 PM Changeset in webkit [203703] by commit-queue@webkit.org
  • 23 edits
    4 deletes in trunk/Source/JavaScriptCore

[JSC] DFG::Node should not have its own allocator
​https://bugs.webkit.org/show_bug.cgi?id=160098

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

We need some design changes for DFG::Node:
-Accessing the index must be fast. B3 uses indices for sets

and maps, it is a lot faster than hashing pointers.

-We should be able to subclass DFG::Node to specialize it.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • dfg/DFGAllocator.h: Removed.

(JSC::DFG::Allocator::Region::size): Deleted.
(JSC::DFG::Allocator::Region::headerSize): Deleted.
(JSC::DFG::Allocator::Region::numberOfThingsPerRegion): Deleted.
(JSC::DFG::Allocator::Region::data): Deleted.
(JSC::DFG::Allocator::Region::isInThisRegion): Deleted.
(JSC::DFG::Allocator::Region::regionFor): Deleted.
(JSC::DFG::Allocator<T>::Allocator): Deleted.
(JSC::DFG::Allocator<T>::~Allocator): Deleted.
(JSC::DFG::Allocator<T>::allocate): Deleted.
(JSC::DFG::Allocator<T>::free): Deleted.
(JSC::DFG::Allocator<T>::freeAll): Deleted.
(JSC::DFG::Allocator<T>::reset): Deleted.
(JSC::DFG::Allocator<T>::indexOf): Deleted.
(JSC::DFG::Allocator<T>::allocatorOf): Deleted.
(JSC::DFG::Allocator<T>::bumpAllocate): Deleted.
(JSC::DFG::Allocator<T>::freeListAllocate): Deleted.
(JSC::DFG::Allocator<T>::allocateSlow): Deleted.
(JSC::DFG::Allocator<T>::freeRegionsStartingAt): Deleted.
(JSC::DFG::Allocator<T>::startBumpingIn): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::addToGraph):

  • dfg/DFGCPSRethreadingPhase.cpp:

(JSC::DFG::CPSRethreadingPhase::freeUnnecessaryNodes):
(JSC::DFG::CPSRethreadingPhase::addPhiSilently):

  • dfg/DFGCleanUpPhase.cpp:

(JSC::DFG::CleanUpPhase::run):

  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::run):

  • dfg/DFGConstantHoistingPhase.cpp:
  • dfg/DFGDCEPhase.cpp:

(JSC::DFG::DCEPhase::fixupBlock):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::Graph):
(JSC::DFG::Graph::deleteNode):
(JSC::DFG::Graph::killBlockAndItsContents):
(JSC::DFG::Graph::~Graph): Deleted.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addNode):

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • dfg/DFGLongLivedState.cpp: Removed.

(JSC::DFG::LongLivedState::LongLivedState): Deleted.
(JSC::DFG::LongLivedState::~LongLivedState): Deleted.
(JSC::DFG::LongLivedState::shrinkToFit): Deleted.

  • dfg/DFGLongLivedState.h: Removed.
  • dfg/DFGNode.cpp:

(JSC::DFG::Node::index): Deleted.

  • dfg/DFGNode.h:

(JSC::DFG::Node::index):

  • dfg/DFGNodeAllocator.h: Removed.

(operator new ): Deleted.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):

  • dfg/DFGPlan.h:
  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::runThread):

  • runtime/VM.cpp:

(JSC::VM::VM): Deleted.

  • runtime/VM.h:
5:21 PM Changeset in webkit [203702] by Chris Dumez
  • 8 edits
    5 adds in trunk

ClientRect properties should be on the prototype
​https://bugs.webkit.org/show_bug.cgi?id=160165

Reviewed by Geoffrey Garen.

Source/WebCore:

Move ClientRect properties from the instance to the prototype. This
matches the specification, Firefox and Chrome.

Also add a serializer to ClientRect in order to match the specification:

This avoids breaking content that relies on JSON.stringify() to
serialize ClientRect objects.

Tests: fast/css/ClientRect-attributes-prototype.html

fast/css/ClientRect-serialization.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSClientRectCustom.cpp: Added.

(WebCore::JSClientRect::toJSON):

  • bindings/scripts/CodeGeneratorJS.pm:
  • dom/ClientRect.idl:

LayoutTests:

  • fast/css/ClientRect-attributes-prototype-expected.txt: Added.
  • fast/css/ClientRect-attributes-prototype.html: Added.

Add layout test to check that ClientRect's properties are on the
prototype.

  • fast/css/ClientRect-serialization-expected.txt: Added.
  • fast/css/ClientRect-serialization.html: Added.

Add layout test to check that ClientRect has a serializer.

2:53 PM Changeset in webkit [203701] by Chris Dumez
  • 8 edits
    2 adds in trunk

Parameters to DOMImplementation.createDocumentType() should be mandatory and non-nullable
​https://bugs.webkit.org/show_bug.cgi?id=160167

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline a W3C test now that more checks are passing.

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

Source/WebCore:

Parameters to DOMImplementation.createDocumentType() should be mandatory
and non-nullable:

Firefox and Chrome both agree with the specification. However, those
parameters were nullable and optional in WebKit.

Test: fast/dom/DOMImplementation/createDocumentType-parameters.html

  • dom/DOMImplementation.idl:

LayoutTests:

  • editing/selection/script-tests/DOMSelection-DocumentType.js:
  • fast/dom/DOMImplementation/createDocumentType-err-expected.txt:
  • fast/dom/DOMImplementation/script-tests/createDocumentType-err.js:

Update existing tests to reflect the behavior change.

  • fast/dom/DOMImplementation/createDocumentType-parameters-expected.txt: Added.
  • fast/dom/DOMImplementation/createDocumentType-parameters.html: Added.

Add layout test coverage. I have verified that this test passes on both
Firefox and Chrome.

2:38 PM Changeset in webkit [203700] by beidson@apple.com
  • 7 edits in trunk/Tools

Modern IDB: Make sure IndexedDB works from ​file:// url documents by default
​https://bugs.webkit.org/show_bug.cgi?id=153783

Reviewed by Alex Christensen.

Previously, to grant IndexedDB access to ​file:// urls for testing purposes,
we had to call the SPI [WKWebViewConfiguration _setAllowUniversalAccessFromFileURLs:].

As of ​https://trac.webkit.org/changeset/203695 this is no longer required.

Change the relevant API tests to make sure this continues to be no longer required.

  • TestWebKitAPI/Tests/WebKit2Cocoa/IDBDeleteRecovery.mm:
  • TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBDatabaseProcessKill.mm:
  • TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBMultiProcess.mm:
  • TestWebKitAPI/Tests/WebKit2Cocoa/IndexedDBPersistence.mm:
  • TestWebKitAPI/Tests/WebKit2Cocoa/StoreBlobThenDelete.mm:
  • TestWebKitAPI/Tests/WebKit2Cocoa/WebProcessKillIDBCleanup.mm:
2:03 PM Changeset in webkit [203699] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

AssemblyHelpers should own all of the cell allocation methods
​https://bugs.webkit.org/show_bug.cgi?id=160171

Reviewed by Saam Barati.

Prior to this change we had some code in DFGSpeculativeJIT.h and some code in JIT.h that
did cell allocation.

This change moves all of that code into AssemblyHelpers.h.

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::emitAllocateJSCell):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateJSObjectWithKnownSize):
(JSC::DFG::SpeculativeJIT::emitAllocateVariableSizedJSObject):
(JSC::DFG::SpeculativeJIT::emitAllocateDestructibleObject):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitAllocate):
(JSC::AssemblyHelpers::emitAllocateJSCell):
(JSC::AssemblyHelpers::emitAllocateJSObject):
(JSC::AssemblyHelpers::emitAllocateJSObjectWithKnownSize):
(JSC::AssemblyHelpers::emitAllocateVariableSized):
(JSC::AssemblyHelpers::emitAllocateVariableSizedJSObject):
(JSC::AssemblyHelpers::emitAllocateDestructibleObject):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::isOperandConstantChar):
(JSC::JIT::emitValueProfilingSite):
(JSC::JIT::emitAllocateJSObject): Deleted.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_new_object):
(JSC::JIT::emit_op_create_this):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_new_object):
(JSC::JIT::emit_op_create_this):

1:51 PM Changeset in webkit [203698] by Wenson Hsieh
  • 6 edits
    2 adds in trunk

Media controls should not be displayed for a video until it starts playing
​https://bugs.webkit.org/show_bug.cgi?id=160092
<rdar://problem/26986673>

Reviewed by Beth Dakin.

Source/WebCore:

For videos that have never played back yet, we should not show media controls. To ensure this
behavior, we ensure that the playback behavior restriction is set upon creating the media
element. This restriction is then removed when the media element begins to play.

Added two new WebKit API tests.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):

Tools:

Verify that multiple videos do or don't show the media controller depending on whether videos
are playing. Also tweaks an existing API test (VideoControlsManagerSingleLargeVideo) that was
passing because we were always showing media controls for large videos with audio, even if they
had not played back yet. This change ensures that large videos with audio show media controls
only after they begin to play back, and not by virtue of being large enough for main content.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-with-audio.html:
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-with-audio-autoplay.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-videos-with-audio.html: Added.
1:40 PM Changeset in webkit [203697] by sbarati@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

MathICs should be able to take and dump stats about code size
​https://bugs.webkit.org/show_bug.cgi?id=160148

Reviewed by Filip Pizlo.

This will make testing changes on MathIC going forward much easier.
We will be able to easily see if modifications to MathIC will lead
to us generating smaller code. We now only dump average size when we
regenerate any MathIC. This works out for large tests/pages, but is not
great for testing small programs. We can add more dump points later if
we find that we want to dump stats while running small small programs.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jitSoon):
(JSC::CodeBlock::dumpMathICStats):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::isStrictMode):
(JSC::CodeBlock::ecmaMode):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileMathIC):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileMathIC):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):

  • jit/JITMathIC.h:

(JSC::JITMathIC::finalizeInlineCode):
(JSC::JITMathIC::codeSize):

  • jit/JITOperations.cpp:
1:35 PM Changeset in webkit [203696] by jiewen_tan@apple.com
  • 16 edits
    10 moves
    1 add in trunk

Rename SubtleCrypto to WebKitSubtleCrypto
​https://bugs.webkit.org/show_bug.cgi?id=160067
<rdar://problem/27483617>

Reviewed by Brent Fulgham.

Source/WebCore:

Tests: crypto/webkitSubtle/gc-2.html

crypto/webkitSubtle/gc-3.html
crypto/webkitSubtle/gc.html

Rename Class SubtleCrypto to WebKitSubtleCrypto, and Crypto.subtle to Crypto.webkitSubtle in order
to let the new implementation to reuse the name SubtleCrypto. This renaming should match what our
current JSBindings use, and therefore should not introduce any change of behavoir.

  • CMakeLists.txt:

Revise project files for for new file names.

  • DerivedSources.cpp:
  • DerivedSources.make:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • WebCore.xcodeproj/project.pbxproj:

Revise project files for for new file names.

  • bindings/js/JSWebKitSubtleCryptoCustom.cpp: Renamed from Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp.
  • crypto/WebKitSubtleCrypto.cpp: Renamed from Source/WebCore/crypto/SubtleCrypto.cpp.
  • crypto/WebKitSubtleCrypto.h: Renamed from Source/WebCore/crypto/SubtleCrypto.h.
  • crypto/WebKitSubtleCrypto.idl: Renamed from Source/WebCore/crypto/SubtleCrypto.idl.
  • page/Crypto.cpp:

(WebCore::Crypto::webkitSubtle):
(WebCore::Crypto::subtle): Deleted.

  • page/Crypto.h:
  • page/Crypto.idl:

LayoutTests:

Move tests involving crypto.webkitSubtle from crypto/subtle to crypto/webkitSubtle.

  • crypto/webkitSubtle/gc-2-expected.txt: Renamed from LayoutTests/crypto/subtle/gc-2-expected.txt.
  • crypto/webkitSubtle/gc-2.html: Renamed from LayoutTests/crypto/subtle/gc-2.html.
  • crypto/webkitSubtle/gc-3-expected.txt: Renamed from LayoutTests/crypto/subtle/gc-3-expected.txt.
  • crypto/webkitSubtle/gc-3.html: Renamed from LayoutTests/crypto/subtle/gc-3.html.
  • crypto/webkitSubtle/gc-expected.txt: Renamed from LayoutTests/crypto/subtle/gc-expected.txt.
  • crypto/webkitSubtle/gc.html: Renamed from LayoutTests/crypto/subtle/gc.html.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/win/TestExpectations:
12:57 PM Changeset in webkit [203695] by beidson@apple.com
  • 3 edits
    2 moves
    1 add
    1 delete in trunk

Allow LocalStorage by default for file URLs.
​https://bugs.webkit.org/show_bug.cgi?id=160169

Reviewed by Brent Fulgham.

Source/WebCore:

Test: storage/domstorage/localstorage/file-can-access.html

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canAccessStorage): Remove the m_universalAccess check for local URLs.

LayoutTests:

  • storage/domstorage/localstorage/blocked-file-access-expected.txt: Removed.
  • storage/domstorage/localstorage/file-can-access-expected.txt: Added.
  • storage/domstorage/localstorage/file-can-access.html: Renamed from LayoutTests/storage/domstorage/localstorage/blocked-file-access.html.
  • storage/domstorage/localstorage/resources/unblocked-example.html: Renamed from LayoutTests/storage/domstorage/localstorage/resources/blocked-example.html.
12:15 PM Changeset in webkit [203694] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: AccessibilityRenderObject is adding duplicated children when CSS first-letter is being used.
​https://bugs.webkit.org/show_bug.cgi?id=160155

Reviewed by Chris Fleizach.

Source/WebCore:

We were adding the same text node twice if CSS first-letter selector was being used. Added a
check for the inline continuation so that we only add it once.

Test: accessibility/mac/css-first-letter-children.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::firstChildConsideringContinuation):

LayoutTests:

  • accessibility/mac/css-first-letter-children-expected.txt: Added.
  • accessibility/mac/css-first-letter-children.html: Added.
12:04 PM Changeset in webkit [203693] by sbarati@apple.com
  • 17 edits in trunk/Source/JavaScriptCore

op_mul/ArithMul(Untyped,Untyped) should be an IC
​https://bugs.webkit.org/show_bug.cgi?id=160108

Reviewed by Mark Lam.

This patch makes Mul a type based IC in much the same way that we made
Add a type-based IC. I implemented Mul in the same way. I abstracted the
implementation of the Add IC in the various JITs to allow for it to
work over arbitrary IC snippets. This will make adding Div/Sub/Pow in the
future easy. This patch also adds a new boolean argument to the various
snippet generateFastPath() methods to indicate if we should emit result profiling.
I added this because we want this profiling to be emitted for Mul in
the baseline, but not in the DFG. We used to indicate this through passing
in a nullptr for the ArithProfile, but we no longer do that in the upper
JIT tiers. So we are passing an explicit request from the JIT tier about
whether or not it's worth it for the IC to emit profiling.

We now emit much less code for Mul. Here is some data on the average
Mul snippet/IC size:

| JetStream | Unity 3D |

------| -------------

Old | ~280 bytes | ~280 bytes |

------| -------------

New | 210 bytes | 185 bytes |

------------------------------------

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::addJITAddIC):
(JSC::CodeBlock::addJITMulIC):
(JSC::CodeBlock::findStubInfo):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::stubInfoBegin):
(JSC::CodeBlock::stubInfoEnd):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::GPRTemporary::adopt):
(JSC::DFG::FPRTemporary::FPRTemporary):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileMathIC):
(JSC::DFG::SpeculativeJIT::compileArithMul):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):
(JSC::DFG::GPRTemporary::GPRTemporary):
(JSC::DFG::GPRTemporary::operator=):
(JSC::DFG::FPRTemporary::~FPRTemporary):
(JSC::DFG::FPRTemporary::fpr):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileToThis):
(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileArithMul):

  • jit/JIT.h:

(JSC::JIT::getSlowCase):

  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateInline):
(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::JITAddGenerator):
(JSC::JITAddGenerator::isLeftOperandValidConstant):
(JSC::JITAddGenerator::isRightOperandValidConstant):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_add):
(JSC::JIT::emitSlow_op_add):
(JSC::JIT::emitMathICFast):
(JSC::JIT::emitMathICSlow):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emit_op_sub):

  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITMathIC.h:

(JSC::JITMathIC::slowPathStartLocation):
(JSC::JITMathIC::slowPathCallLocation):
(JSC::JITMathIC::isLeftOperandValidConstant):
(JSC::JITMathIC::isRightOperandValidConstant):
(JSC::JITMathIC::generateInline):
(JSC::JITMathIC::generateOutOfLine):

  • jit/JITMathICForwards.h:
  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateInline):
(JSC::JITMulGenerator::generateFastPath):

  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::JITMulGenerator):
(JSC::JITMulGenerator::isLeftOperandValidConstant):
(JSC::JITMulGenerator::isRightOperandValidConstant):
(JSC::JITMulGenerator::didEmitFastPath): Deleted.
(JSC::JITMulGenerator::endJumpList): Deleted.
(JSC::JITMulGenerator::slowPathJumpList): Deleted.

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
11:45 AM Changeset in webkit [203692] by weinig@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix assertion.

  • NetworkProcess/cache/NetworkCacheCodersCocoa.cpp:

(WebKit::NetworkCache::encodeCertificateChain):

11:01 AM Changeset in webkit [203691] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk/Source/WebKit2

Split platform specific parts of NetworkCacheCoders.cpp into separate files
​https://bugs.webkit.org/show_bug.cgi?id=160151

Patch by Sam Weinig <​sam@webkit.org> on 2016-07-25
Reviewed by Alex Christensen.

  • NetworkProcess/cache/NetworkCacheCoders.cpp:

(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Deleted.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Deleted.

  • NetworkProcess/cache/NetworkCacheCodersCocoa.cpp: Copied from Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp.

(WebKit::NetworkCache::encodeCFData): Moved.
(WebKit::NetworkCache::decodeCFData): Moved.
(WebKit::NetworkCache::encodeSecTrustRef): Moved.
(WebKit::NetworkCache::decodeSecTrustRef): Moved.
(WebKit::NetworkCache::encodeCertificateChain): Moved.
(WebKit::NetworkCache::decodeCertificateChain): Moved.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Moved.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Moved.

  • NetworkProcess/cache/NetworkCacheCodersSoup.cpp: Copied from Source/WebKit2/NetworkProcess/cache/NetworkCacheCoders.cpp.

(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode): Moved.
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode): Moved.

  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • WebKit2.xcodeproj/project.pbxproj:

Add new files.

10:49 AM Changeset in webkit [203690] by Wenson Hsieh
  • 7 edits
    3 adds in trunk

Media controls on apple.com don't disappear when movie finishes playing
​https://bugs.webkit.org/show_bug.cgi?id=160068
<rdar://problem/26668526>

Reviewed by Darin Adler.

Source/WebCore:

When a video ends, it should cause media controls to hide. While current logic
mostly accounts for this, it does not account for programmatic seeks causing
the video to lose its 'ended' status before querying for whether or not to
show media controls.

Three new API tests: large-video-seek-after-ending.html
large-video-hides-controls-after-seek-to-end.html
large-video-seek-to-beginning-and-play-after-ending.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::setPlaying):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canControlControlsManager):

  • html/MediaElementSession.h:

Tools:

Adds new API tests. Please see WebCore ChangeLog for more details.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(-[MediaPlaybackMessageHandler initWithWKWebView:finalMessageString:]):
(-[MediaPlaybackMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):
(-[DidPlayMessageHandler initWithWKWebView:]): Deleted.
(-[DidPlayMessageHandler userContentController:didReceiveScriptMessage:]): Deleted.

  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-hides-controls-after-seek-to-end.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-seek-after-ending.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/large-video-seek-to-beginning-and-play-after-ending.html: Added.
10:21 AM Changeset in webkit [203689] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

10:13 AM Changeset in webkit [203688] by commit-queue@webkit.org
  • 9 edits
    2 copies in trunk/Source/WebCore

Introduce a MathMLOperatorElement class
​https://bugs.webkit.org/show_bug.cgi?id=160034

Patch by Frederic Wang <​fwang@igalia.com> on 2016-07-25
Reviewed by Darin Adler.

No new tests, rendering is unchaned.

  • CMakeLists.txt: Add MathMLOperatorElement to the build file.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLAllInOne.cpp: Ditto.
  • mathml/MathMLOperatorElement.cpp: New DOM class for <mo> element.

(WebCore::MathMLOperatorElement::MathMLOperatorElement):
(WebCore::MathMLOperatorElement::create):
(WebCore::MathMLOperatorElement::parseAttribute): Handle mo attributes.
(WebCore::MathMLOperatorElement::createElementRenderer): Create RenderMathMLOperator.

  • mathml/MathMLOperatorElement.h: Declare a class deriving from MathMLTextElement.
  • mathml/MathMLTextElement.cpp: Remove all the RenderMathMLOperator parts.

(WebCore::MathMLTextElement::MathMLTextElement): Remove inline keyword so that the class can
be overriden.
(WebCore::MathMLTextElement::parseAttribute): Remove code handled in MathMLOperatorElement.
(WebCore::MathMLTextElement::createElementRenderer): Ditto.

  • mathml/MathMLTextElement.h: Make class and members overridable.
  • mathml/mathtags.in: Map mo to MathMLOperatorElement.
  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::RenderMathMLOperator): Make the constructor take a
MathMLOperatorElement.

  • rendering/mathml/RenderMathMLOperator.h: Ditto.
9:57 AM Changeset in webkit [203687] by Chris Dumez
  • 4 edits in trunk/Source/WebKit2

[iOS] Make sure we call the ProcessAssertion invalidation handler on the main thread
​https://bugs.webkit.org/show_bug.cgi?id=160140
<rdar://problem/27399998>

Reviewed by Darin Adler.

Based on crash traces, it appears BKSProcessAssertion is calling our
invalidation handler on a background thread. This was not anticipated
and therefore, this would lead to thread safety issues and crashes.

We now make sure to call our invalidation handler on the main thread.
We also use a WeakPtr to ensure that the ProcessAssertion is still
alive once on the main thread and before calling the invalidation
handler.

  • UIProcess/ProcessAssertion.cpp:

(WebKit::ProcessAssertion::ProcessAssertion):

  • UIProcess/ProcessAssertion.h:

(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::createWeakPtr):

  • UIProcess/ios/ProcessAssertionIOS.mm:

(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::markAsInvalidated):

9:37 AM Changeset in webkit [203686] by Darin Adler
  • 4 edits in trunk/Source

Speed up make process slightly by improving "list of files" idiom
​https://bugs.webkit.org/show_bug.cgi?id=160164

Reviewed by Mark Lam.

  • DerivedSources.make: Change rules that build lists of files to only run when

DerivedSources.make has been modified since the last time they were run. Since the
list of files are inside this file, this is safe, and this is faster than always
comparing and regenerating the file containing the list of files each time.

9:30 AM Changeset in webkit [203685] by Philippe Normand
  • 2 edits in trunk/Tools

Unreviewed, fix test-webkitpy after r203674.

  • Scripts/webkitpy/port/linux_get_crash_log_unittest.py:

(GDBCrashLogGeneratorTest.test_generate_crash_log):

9:03 AM Changeset in webkit [203684] by Wenson Hsieh
  • 4 edits
    2 adds in trunk

The web process hangs when computing elements-based snap points for a container with large max scroll offset
​https://bugs.webkit.org/show_bug.cgi?id=152605
<rdar://problem/25353661>

Reviewed by Simon Fraser.

Source/WebCore:

Fixes a bug in the computation of axis snap points. The ScrollSnapPoints object, which tracks
snap points along a particular axis, has two flags, hasRepeat and usesElements. For elements-
based snapping, both flags would be turned on, since StyleBuilderConverter::convertScrollSnapPoints
short-circuits for elements-based snapping and does not default usesRepeat to false. To address this,
we make ScrollSnapPoints not repeat(100%) by default.

Test: css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertScrollSnapPoints): Deleted.

  • rendering/style/StyleScrollSnapPoints.cpp:

(WebCore::ScrollSnapPoints::ScrollSnapPoints):

LayoutTests:

Adds a scroll snap offset computation test case that would have previously
caused the web process to hang before this patch.

  • css3/scroll-snap/scroll-snap-elements-container-larger-than-children-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-elements-container-larger-than-children.html: Added.
8:02 AM Changeset in webkit [203683] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

REGRESSION(r200931): Invalid cast in highestAncestorToWrapMarkup()
​https://bugs.webkit.org/show_bug.cgi?id=160163

Reviewed by Michael Catanzaro.

Since r200931 the result of enclosingNodeOfType() in highestAncestorToWrapMarkup() is downcasted to Element, but
the result of enclosingNodeOfType() can be a Node that is not an Element, in this case is Text. The cast is not
needed at all since that node is passed to editingIgnoresContent() and selectionFromContentsOfNode() and both
receive a Node not an Element.

  • editing/markup.cpp:

(WebCore::highestAncestorToWrapMarkup): Remove invalid cast.

8:01 AM Changeset in webkit [203682] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Coordinated Graphics] ASSERTION FAILED: m_coordinator->isFlushingLayerChanges() in fast/repaint/animation-after-layer-scroll.html
​https://bugs.webkit.org/show_bug.cgi?id=160156

Reviewed by Michael Catanzaro.

So, we fixed an assertion in r203663, but now is hitting the next one. As explained in bug #160142, flush
compositing state can be triggered in tests by RenderLayerCompositor::layerTreeAsText(), without the coordinator
even noticing it, so the assert can be just removed.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly): Remove incorrect assert.

7:33 AM Changeset in webkit [203681] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

EllipsisBox ctor's isVertical parameter should read isHorizontal.
​https://bugs.webkit.org/show_bug.cgi?id=160153

Reviewed by Andreas Kling.

It indicates whether the ellipsis box is horizontal. (both the callsites
and the parent class use isHorizontal)

No change in functionality.

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::EllipsisBox):

  • rendering/EllipsisBox.h:
5:25 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:57 AM Changeset in webkit [203680] by svillar@igalia.com
  • 21 edits
    1 copy
    2 moves
    5 adds in trunk

[css-grid] Implement repeat(auto-fit)
​https://bugs.webkit.org/show_bug.cgi?id=159771

Reviewed by Darin Adler.

Source/WebCore:

The auto-fit keyword works exactly as the already implemented auto-fill except that all
empty tracks collapse (became 0px). Absolutely positioned items do not participate on the
layout of the grid so they are not considered (a grid with only absolutely positioned items
is considered an empty grid).

Whenever a track collapses the gutters on either side do also collapse. When a collapsed
track's gutters collapse, they coincide exactly. If one side of a collapsed track does not
have a gutter then collapsing its gutters results in no gutter on either "side" of the
collapsed track.

In practice this means that is not possible to know the gap between 2 consecutive auto
repeat tracks without examining some others whenever there are collapsed tracks.

Uncommented the auto-fit cases from Mozilla tests. They have to be adapted as the reftest
machinery requires all the content to be rendered in the original 800x600 viewport.

Tests: fast/css-grid-layout/grid-auto-fit-columns.html
fast/css-grid-layout/grid-auto-fit-rows.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-1.html
fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackList): Use the newly added trackSizesForComputedStyle().

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeTrackBasedLogicalHeight):
(WebCore::RenderGrid::computeTrackSizesForDirection):
(WebCore::RenderGrid::isEmptyAutoRepeatTrack):
(WebCore::RenderGrid::gridGapForDirection): Returns the gap directly from the style.
(WebCore::RenderGrid::guttersSize): Computes the gap between a startLine and an
endLine. This method may need to inspect some other surrounding tracks to compute the gap.
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::RenderGrid::computeAutoRepeatTracksCount):
(WebCore::RenderGrid::computeEmptyTracksForAutoRepeat): Returns a Vector with the auto
repeat tracks that are going to be collapsed because they're empty.
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::trackSizesForComputedStyle): Used by ComputedStyle logic to print the
size of tracks. Added in order to hide the actual contents of m_columnPositions and
m_rowPositions to the outter world.
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::populateGridPositionsForDirection): Added some extra code to compute
gaps as they cannot be directly added between tracks in case of having collapsed tracks.
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::offsetBetweenTracks): Deleted.

  • rendering/RenderGrid.h: Made some API private. Added new required methods/attributes.
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackList):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeTrackBasedLogicalHeight):
(WebCore::RenderGrid::computeTrackSizesForDirection):
(WebCore::RenderGrid::hasAutoRepeatEmptyTracks):
(WebCore::RenderGrid::isEmptyAutoRepeatTrack):
(WebCore::RenderGrid::gridGapForDirection):
(WebCore::RenderGrid::guttersSize):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::RenderGrid::computeAutoRepeatTracksCount):
(WebCore::RenderGrid::computeEmptyTracksForAutoRepeat):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::trackSizesForComputedStyle):
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::assumedRowsSizeForOrthogonalChild):
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::populateGridPositionsForDirection):
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::RenderGrid::offsetBetweenTracks): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

Uncommented the auto-fit cases. Split the Mozilla's 005 test in two because it was not
possible to fit all the content in a viewport without scrollbars.

  • fast/css-grid-layout/grid-auto-fit-columns-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-fit-columns.html: Added.
  • fast/css-grid-layout/grid-auto-fit-rows-expected.txt: Added.
  • fast/css-grid-layout/grid-auto-fit-rows.html: Added.
  • fast/css-grid-layout/grid-element-auto-repeat-get-set-expected.txt:
  • fast/css-grid-layout/grid-element-auto-repeat-get-set.html:
  • fast/css-grid-layout/grid-only-abspos-item-computed-style-crash-expected.txt:
  • fast/css-grid-layout/grid-only-abspos-item-computed-style-crash.html:
  • fast/css-grid-layout/grid-positioned-items-padding-expected.txt:
  • fast/css-grid-layout/grid-positioned-items-padding.html:
  • fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment-expected.txt:
  • fast/css-grid-layout/grid-template-columns-rows-computed-style-gaps-content-alignment.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001-expected.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-001.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002-expected.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-002.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003-expected.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-003.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004-expected.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-004.html:
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-1-expected.html: Renamed from LayoutTests/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-expected.html.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-1.html: Copied from LayoutTests/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005.html.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2-expected.html: Added.
  • fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005-part-2.html: Renamed from LayoutTests/fast/css-grid-layout/mozilla/grid-repeat-auto-fill-fit-005.html.
12:21 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:18 AM Changeset in webkit [203679] by fred.wang@free.fr
  • 12 edits in trunk/Source/WebCore

Move parsing of display, displaystyle and mathvariant attributes into MathML element classes
​https://bugs.webkit.org/show_bug.cgi?id=159623

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

No new tests, already covered by existing tests.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::parseMathVariantAttribute): Move helper function to parse the
mathvariant attribute.
(WebCore::MathMLElement::getSpecifiedDisplayStyle): Helper function to set the displaystyle
value from the attribute specified on the MathML element.
(WebCore::MathMLElement::getSpecifiedMathVariant): Helper function to set the mathvariant
value from the attribute specified on the MathML element.

  • mathml/MathMLElement.h: Move the enum for mathvariant values and declare new members.

(WebCore::MathMLElement::acceptsDisplayStyleAttribute): Indicate whether the element accepts
displaystyle attribute (false for most of them).
(WebCore::MathMLElement::acceptsMathVariantAttribute): Indicate whether the element accepts
mathvariant attribute (false for most of them).

  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::acceptsDisplayStyleAttribute): Add mstyle and mtable
to the list of elements accepting the displaystyle attribute.
(WebCore::MathMLInlineContainerElement::acceptsMathVariantAttribute): Add mstyle to the list
of elements accepting the mathvariant attribute.
(WebCore::MathMLInlineContainerElement::parseAttribute): Mark displaystyle and mathvariant
dirty if necessary. Also use the new accepts*Attribute function.

  • mathml/MathMLInlineContainerElement.h: Declare overridden accepts*Attribute members.
  • mathml/MathMLMathElement.cpp:

(WebCore::MathMLMathElement::getSpecifiedDisplayStyle): Override acceptsDisplayStyleAttribute
so that the display attribute is also used to set the default value if the displaystyle
attribute is absent.
(WebCore::MathMLMathElement::parseAttribute): Mark displaystyle and mathvariant dirty if
necessary. We directly MathMLElement::parseAttribute to avoid duplicate work.

  • mathml/MathMLMathElement.h: Add the math tag to the list of elements accepting the

displaystyle and mathvariant attributes. Declare overridden getSpecifiedDisplayStyle.

  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::parseAttribute): Mark mathvariant as dirty.

  • mathml/MathMLTextElement.h: Add token elements to the list of elements accepting the

mathvariant attribute.

  • rendering/mathml/MathMLStyle.cpp:

(WebCore::MathMLStyle::updateStyleIfNeeded): Use the new MathMLElement::MathVariant enum.
(WebCore::MathMLStyle::resolveMathMLStyle): We no longer parse the display value to
initialize the default value on the math tag, because this is handled in
getSpecifiedDisplayStyle. In general, we also just call getSpecifiedDisplayStyle and
getSpecifiedMathVariant on the MathML elements instead of parsing the displaystyle and
mathvariant attributes here.
(WebCore::MathMLStyle::parseMathVariant): Deleted. This is moved into MathMLElement.

  • rendering/mathml/MathMLStyle.h: Use the new MathMLElement::MathVariant enum.
  • rendering/mathml/RenderMathMLToken.cpp: Ditto.

(WebCore::mathVariant): Ditto.
(WebCore::RenderMathMLToken::updateMathVariantGlyph): Ditto.

12:10 AM Changeset in webkit [203678] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

Unreviewed. Remove unneeded header includes from CoordinatedGraphicsLayer.

Not only thjey are not needed, they are a layer violation, CoordinatedGraphicsLayer shouldn't know anything
about Page, Frame and FrameView.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

Jul 24, 2016:

11:34 PM Changeset in webkit [203677] by Philippe Normand
  • 1 edit
    1 add in trunk/Tools

Unreviewed, forgot to commit this file in r203674.

  • Scripts/process-linux-coredump: Added.

(main):

11:33 PM Changeset in webkit [203676] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[GTK][Threaded Compositor] ASSERTION FAILED: !!handle !!m_nativeSurfaceHandle with several layout tests
​https://bugs.webkit.org/show_bug.cgi?id=160143

Reviewed by Michael Catanzaro.

We have a message to set the native surface handle and another one for destroying it, the former is a normal
message while the latter is sync. This assertion happens if the web view is realized before the web process is
launched. This is the sequence:

1.- DrawingAreaProxyImpl sends SetNativeSurfaceHandleForCompositing message to the web process, since the
process hasn't been launched yet, the message is queued.
2.- Web process is launched and queued messages are now sent to the web process.
3.- The page is closed right after the web process is launched, and DrawingAreaProxyImpl sends
DestroyNativeSurfaceHandleForCompositing to the web process.
4.- The web process processes incoming messages, and DestroyNativeSurfaceHandleForCompositing is processed before
SetNativeSurfaceHandleForCompositing because it's sync.
5.- The web process processes SetNativeSurfaceHandleForCompositing message.

This is not only producing the assertion, it's also setting a handle for a X window already destroyed in the UI
process, so this could be producing the X errors we have seen in other tests. So, we need to make sure
SetNativeSurfaceHandleForCompositing and DestroyNativeSurfaceHandleForCompositing are handled in order by the
web process. We could make SetNativeSurfaceHandleForCompositing sync as well, but sync messages are just ignored
when sent before the web process has been launched (only normal messages are queued for obvious reasons). The
other option is sending the SetNativeSurfaceHandleForCompositing message with the
IPC::DispatchMessageEvenWhenWaitingForSyncReply flag. In this case the message is queued and dispatched on
process launch, but it's dispatched before other messages also queued without that flag, like
CreateWebPage. Since there's no WebPage the web process doesn't find a valid message receiver for it and
it's discarded. We need to ensure the DrawinArea object has been created before sending the
SetNativeSurfaceHandleForCompositing with the PC::DispatchMessageEvenWhenWaitingForSyncReply flag.

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::didUpdateBackingStoreState): If we have received the first update and there's a
SetNativeSurfaceHandleForCompositing message pending, send it.
(WebKit::DrawingAreaProxyImpl::setNativeSurfaceHandleForCompositing): Do not send the message before the first
update is received.
(WebKit::DrawingAreaProxyImpl::destroyNativeSurfaceHandleForCompositing): If there was a
SetNativeSurfaceHandleForCompositing message pending, just ignore this destroy since the web process never
received the handle.

  • UIProcess/DrawingAreaProxyImpl.h:
11:28 PM Changeset in webkit [203675] by commit-queue@webkit.org
  • 27 edits
    3 copies
    1 delete in trunk

[Fetch API] Request should be created with any HeadersInit data
​https://bugs.webkit.org/show_bug.cgi?id=159672

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-24
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Test was previously

failing due to lack of support for HeadersInit data in Request constructor.

  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Removed.
  • web-platform-tests/fetch/api/request/request-headers-expected.txt:
  • web-platform-tests/fetch/api/request/request-headers.html: Adding new test.

Source/JavaScriptCore:

  • Scripts/builtins/builtins_generator.py:

(WK_lcfirst): Synchronized with CodeGenerator.pm version.

Source/WebCore:

Made Request use JSBuiltinConstructor.
This allows initializing newly created Request with a JS built-in function, initializeFetchRequest.
initializeFetchRequest can call @fillFetchHeaders internal built-in to handle any HeadersInit data.
Future effort should be made to migrate more initialization code in initializeFetchRequest.

Made window and worker fetch function as a JS built-in.
This becomes more handy as these new functions can construct the Request object.
They can then call a single private function that takes a Request object as input.
Updated DOMWindowFetch and WorkerGlobalScopeFetch code accordingly.

To enable this, the binding generator is updated to support runtime-enabled JS built-in functions and
private functions atttached to global objects.

Covered by existing and modified tests.
Binding generator test covered by updated binding tests.

  • CMakeLists.txt: Adding DOMWindowFetch.js, FetchRequest.js and WorkerGlobalScopeFetch.js built-in files.
  • DerivedSources.make: Ditto.
  • Modules/fetch/DOMWindowFetch.cpp: Removed overloaded fetch and updated according new signature.

(WebCore::DOMWindowFetch::fetch):

  • Modules/fetch/DOMWindowFetch.h: Ditto.
  • Modules/fetch/DOMWindowFetch.idl: Making fetch a JS built-in and adding a @fetchRequest private function.
  • Modules/fetch/DOMWindowFetch.js: Added.

(fetch):

  • Modules/fetch/FetchHeaders.h:

(WebCore::FetchHeaders::setGuard): Used by FetchRequest when initializing headers.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::buildHeaders): Removed as implemented in JS.
(WebCore::FetchRequest::initializeOptions): Added to handle most of the dictionary initialization.
(WebCore::FetchRequest::initializeWith): Method called from built-in constructor function.
(WebCore::FetchRequest::setBody): Corresponding to @setBody private method.
(WebCore::buildBody): Deleted.

  • Modules/fetch/FetchRequest.h:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchRequest.js: Added.

(initializeFetchRequest): Implements fetch Request(input, init) constructor.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::fetch): Removed the construction of FetchRequest in fetch method since it is done by JS built-in code.

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/WorkerGlobalScopeFetch.cpp: Removed overloaded fetch and updated according new signature.

(WebCore::WorkerGlobalScopeFetch::fetch):

  • Modules/fetch/WorkerGlobalScopeFetch.h: Ditto.
  • Modules/fetch/WorkerGlobalScopeFetch.idl: Making fetch a JS built-in and adding a @fetchRequest private function.
  • Modules/fetch/WorkerGlobalScopeFetch.js: Added.

(fetch):

  • bindings/js/WebCoreBuiltinNames.h: Adding fetchRequest, setBody and Request private identifiers.
  • bindings/scripts/CodeGenerator.pm:

(WK_lcfirst): Replacing dOM by dom.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Adding support for runtime-enabled built-in methods and private methods.

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::finishCreation):
(WebCore::jsTestGlobalObjectInstanceFunctionTestPrivateFunction):

  • bindings/scripts/test/ObjC/DOMTestGlobalObject.mm:

(-[DOMTestGlobalObject testJSBuiltinFunction]):

  • bindings/scripts/test/TestGlobalObject.idl: Adding tests for runtime-enabled global built-in methods and private methods.
11:07 PM Changeset in webkit [203674] by Philippe Normand
  • 16 edits in trunk

Improve GDB backtrace generation for GTK/EFL
​https://bugs.webkit.org/show_bug.cgi?id=128928

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

Move the Web, Database and Network ProcessIdentifier functions to
the cross-platform WKContext and WKPage implementations.

  • UIProcess/API/C/WKContext.cpp:

(WKContextGetNetworkProcessIdentifier):
(WKContextGetDatabaseProcessIdentifier):

  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageGetProcessIdentifier):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.h:
  • UIProcess/API/C/mac/WKContextPrivateMac.mm:
  • UIProcess/API/C/mac/WKPagePrivateMac.h:
  • UIProcess/API/C/mac/WKPagePrivateMac.mm:

Tools:

The PID of the crashed process is now correctly supplied to the
crash log reporter. The kernel core_pattern needs to be updated
after this change to something like:

echo "|/home/phil/WebKit/Tools/Scripts/process-linux-coredump /tmp/core-pid_%p.dump" > /proc/sys/kernel/core_pattern

  • Scripts/process-linux-coredump: Added.

(main): Minimal python script reading coredump data on stdin and writing it to a file in /tmp/.

  • Scripts/webkitpy/port/efl.py:

(EflPort._get_crash_log): Supply path of the process-linux-coredump script.

  • Scripts/webkitpy/port/gtk.py:

(GtkPort._get_crash_log): Ditto.

  • Scripts/webkitpy/port/linux_get_crash_log.py:

(GDBCrashLogGenerator.init): New argument for supplying the path of a coredump processor script.
(GDBCrashLogGenerator.generate_crash_log): Update error message, the core_pattern should now be set to pipe coredumps to a script.
(GDBCrashLogGenerator): Deleted.

  • Scripts/webkitpy/port/linux_get_crash_log_unittest.py:

(GDBCrashLogGeneratorTest.test_generate_crash_log): Update test expectations.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::networkProcessDidCrash): Supply PID of crash process.
(WTR::TestController::databaseProcessDidCrash): Ditto.
(WTR::TestController::processDidCrash): Ditto.

8:42 PM Changeset in webkit [203673] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Filtering is broken in the Overview timeline view
​https://bugs.webkit.org/show_bug.cgi?id=160152
<rdar://problem/27517481>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js:

(WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.filterableDataForColumn):
Non-resource nodes should be filtered based on their display name.

6:14 PM Changeset in webkit [203672] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/LayoutTests

Merge r203665. rdar://problem/27453479

5:48 PM Changeset in webkit [203671] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit2

Add specialization for encoding/decoding WebCore::CertificateInfos in the Network Cache
<rdar://problem/27409315>
​https://bugs.webkit.org/show_bug.cgi?id=160144

Reviewed by Chris Dumez.

  • NetworkProcess/cache/NetworkCacheCoders.cpp:

(WebKit::NetworkCache::encodeCFData):
(WebKit::NetworkCache::decodeCFData):
(WebKit::NetworkCache::encodeSecTrustRef):
(WebKit::NetworkCache::decodeSecTrustRef):
(WebKit::NetworkCache::encodeCertificateChain):
(WebKit::NetworkCache::decodeCertificateChain):
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::encode):
(WebKit::NetworkCache::Coder<WebCore::CertificateInfo>::decode):

  • NetworkProcess/cache/NetworkCacheStorage.h:

(WebKit::NetworkCache::Storage::version):
Bump the version and lastStableVersion to account for the format change.

1:33 PM Changeset in webkit [203670] by fpizlo@apple.com
  • 33 edits
    2 adds in trunk

B3 should support multiple entrypoints
​https://bugs.webkit.org/show_bug.cgi?id=159391

Reviewed by Saam Barati.
Source/JavaScriptCore:


This teaches B3 how to compile procedures with multiple entrypoints in the best way ever.

Multiple entrypoints are useful. We could use them to reduce the cost of compiling OSR
entrypoints. We could use them to implement better try/catch.

Multiple entrypoints are hard to support. All of the code that assumed that the root block
is the entrypoint would have to be changed. Transformations like moveConstants() would have
to do crazy things if the existence of multiple entrypoints prevented it from finding a
single common dominator.

Therefore, we want to add multiple entrypoints without actually teaching the compiler that
there is such a thing. That's sort of what this change does.

This adds a new opcode to both B3 and Air called EntrySwitch. It's a terminal that takes
one or more successors and no value children. The number of successors must match
Procedure::numEntrypoints(), which could be arbitrarily large. The semantics of EntrySwitch
are:

  • Each of the entrypoints sets a hidden Entry variable to that entrypoint's index and jumps to the procedure's root block.


  • An EntrySwitch is a switch statement over this hidden Entry variable.


The way that we actually implement this is that Air has a very late phase - after all
register and stack layout - that clones all code where the Entry variable is live; i.e all
code in the closure over predecessors of all blocks that do EntrySwitch.

Usually, you would use this by creating an EntrySwitch in the root block, but you don't
have to do that. Just remember that the code before EntrySwitch gets cloned for each
entrypoint. We allow cloning of an arbitrarily large amount of code because restricting it,
and so restricing the placement of EntrySwitches, would be unelegant. It would be hard to
preserve this invariant. For example we wouldn't be able to lower any value before an
EntrySwitch to a control flow diamond.

This patch gives us an easy-to-use way to use B3 to compile code with multiple entrypoints.
Inside the compiler, only code that runs very late in Air has to know about this feature.
We get the best of both worlds!

Also, I finally got rid of the requirement that you explicitly cast BasicBlock* to
FrequentedBlock. I can no longer remember why I thought that was a good idea. Removing it
doesn't cause any problems and it makes code easier to write.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3BasicBlockUtils.h:

(JSC::B3::updatePredecessorsAfter):
(JSC::B3::clearPredecessors):
(JSC::B3::recomputePredecessors):

  • b3/B3FrequencyClass.h:

(JSC::B3::maxFrequency):

  • b3/B3Generate.h:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::lower):

  • b3/B3MoveConstants.cpp:
  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::isFastConstant):
(JSC::B3::Procedure::entrypointLabel):
(JSC::B3::Procedure::addDataSection):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::numEntrypoints):
(JSC::B3::Procedure::setNumEntrypoints):
(JSC::B3::Procedure::setLastPhaseName):

  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::effects):
(JSC::B3::Value::typeFor):

  • b3/B3Value.h:
  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::cCallSpecial):
(JSC::B3::Air::Code::isEntrypoint):
(JSC::B3::Air::Code::resetReachability):
(JSC::B3::Air::Code::dump):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::setFrameSize):
(JSC::B3::Air::Code::numEntrypoints):
(JSC::B3::Air::Code::entrypoints):
(JSC::B3::Air::Code::entrypoint):
(JSC::B3::Air::Code::setEntrypoints):
(JSC::B3::Air::Code::entrypointLabel):
(JSC::B3::Air::Code::setEntrypointLabels):
(JSC::B3::Air::Code::calleeSaveRegisters):

  • b3/air/AirCustom.h:

(JSC::B3::Air::PatchCustom::isTerminal):
(JSC::B3::Air::PatchCustom::hasNonArgEffects):
(JSC::B3::Air::PatchCustom::hasNonArgNonControlEffects):
(JSC::B3::Air::PatchCustom::generate):
(JSC::B3::Air::CommonCustomBase::hasNonArgEffects):
(JSC::B3::Air::CCallCustom::forEachArg):
(JSC::B3::Air::ColdCCallCustom::forEachArg):
(JSC::B3::Air::ShuffleCustom::forEachArg):
(JSC::B3::Air::EntrySwitchCustom::forEachArg):
(JSC::B3::Air::EntrySwitchCustom::isValidFormStatic):
(JSC::B3::Air::EntrySwitchCustom::isValidForm):
(JSC::B3::Air::EntrySwitchCustom::admitsStack):
(JSC::B3::Air::EntrySwitchCustom::isTerminal):
(JSC::B3::Air::EntrySwitchCustom::hasNonArgNonControlEffects):
(JSC::B3::Air::EntrySwitchCustom::generate):

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::prepareForGeneration):
(JSC::B3::Air::generate):

  • b3/air/AirLowerEntrySwitch.cpp: Added.

(JSC::B3::Air::lowerEntrySwitch):

  • b3/air/AirLowerEntrySwitch.h: Added.
  • b3/air/AirOpcode.opcodes:
  • b3/air/AirOptimizeBlockOrder.cpp:

(JSC::B3::Air::blocksInOptimizedOrder):

  • b3/air/AirSpecial.cpp:

(JSC::B3::Air::Special::isTerminal):
(JSC::B3::Air::Special::hasNonArgEffects):
(JSC::B3::Air::Special::hasNonArgNonControlEffects):

  • b3/air/AirSpecial.h:
  • b3/air/AirValidate.cpp:
  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:

Source/WTF:

  • wtf/GraphNodeWorklist.h: Expose some handy functionality.

(WTF::GraphNodeWorklist::pop):
(WTF::GraphNodeWorklist::saw):
(WTF::GraphNodeWorklist::seen):

  • wtf/VectorTraits.h: Fix a bug! Otherwise filling a vector of byte-sized enum classes doesn't work.

Websites/webkit.org:


Update some statements about ControlValue (which doesn't exist anymore) and add a blurb
about EntrySwitch.

  • docs/b3/index.html:
  • docs/b3/intermediate-representation.html:
12:53 PM Changeset in webkit [203669] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Video Controls: Volume cannot be adjusted using VO.
​https://bugs.webkit.org/show_bug.cgi?id=160107

Reviewed by Dean Jackson.

Source/WebCore:

The volume slider in video tag had 0.01 step which caused the screen reader adjusting it slowly.
Changed the step to 0.05 and added the aria-valuetext attribute to the slider, so that the value
is spoken in percentage.

Test: accessibility/mac/video-volume-slider-accessibility.html

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.createControls):
(Controller.prototype.handleVolumeSliderInput):
(Controller.prototype.updateVolume):

LayoutTests:

  • accessibility/mac/video-volume-slider-accessibility-expected.txt: Added.
  • accessibility/mac/video-volume-slider-accessibility.html: Added.
11:59 AM Changeset in webkit [203668] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, fix broken test. I don't know why I goofed this up without seeing it before landing.

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::run):

10:47 AM Changeset in webkit [203667] by ddkilzer@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (r203106): Crash in WebCore::MathMLElement::parseMathMLLength()
<​https://webkit.org/b/160111>
<rdar://problem/27506489>

Reviewed by Chris Dumez.

Source/WebCore:

Test: mathml/mpadded-crash.html

  • mathml/MathMLElement.cpp:

(WebCore::skipLeadingAndTrailingWhitespace): Change to take
StringView parameter instead of String to avoid creating a
temporary String that's released on return.

LayoutTests:

  • mathml/mpadded-crash-expected.txt: Added.
  • mathml/mpadded-crash.html: Added.
10:36 AM Changeset in webkit [203666] by fpizlo@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

[B3] Fusing immediates into test instructions should work again
​https://bugs.webkit.org/show_bug.cgi?id=160073

Reviewed by Sam Weinig.

When we introduced BitImm, we forgot to change the Branch(BitAnd(value, constant))
fusion. This emits test instructions, so it should use BitImm for the constant. But it
was still using Imm! This meant that isValidForm() always returned false.

This fixes the code path to use BitImm, and turns off our use of BitImm64 on x86 since
it provides no benefit on x86 and has some risk (the code appears to play fast and loose
with the scratch register).

This is not an obvious progression on anything, so I added comprehensive tests to
testb3, which check that we selected the optimal instruction in a variety of situations.
We should add more tests like this!

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::successorBlock):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createGenericCompare):

  • b3/B3LowerToAir.h:
  • b3/air/AirArg.cpp:

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::usesTmp):

  • b3/air/AirArg.h:

(JSC::B3::Air::Arg::isRepresentableAs):
(JSC::B3::Air::Arg::castToType):
(JSC::B3::Air::Arg::asNumber):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::size):
(JSC::B3::Air::Code::at):

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirValidate.h:
  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:

(JSC::B3::compile):
(JSC::B3::compileAndRun):
(JSC::B3::lowerToAirForTesting):
(JSC::B3::testSomeEarlyRegister):
(JSC::B3::testBranchBitAndImmFusion):
(JSC::B3::zero):
(JSC::B3::run):

10:25 AM Changeset in webkit [203665] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Test gardening after r203626.
​https://bugs.webkit.org/show_bug.cgi?id=160102
<rdar://problem/27453479>

Unreviewed.

  • platform/ios-simulator/editing/deleting/delete-emoji-expected.txt:
  • platform/mac-yosemite/editing/deleting/delete-emoji-expected.txt:
8:53 AM Changeset in webkit [203664] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, update the exponentiation expression error message
​https://bugs.webkit.org/show_bug.cgi?id=159969

Follow up patch for r203499.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseBinaryExpression):

  • tests/stress/pow-expects-update-expression-on-lhs.js:

(throw.new.Error):

6:08 AM Changeset in webkit [203663] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Coordinated Graphics] ASSERTION FAILED: !m_flushingLayers in fast/repaint/animation-after-layer-scroll.html
​https://bugs.webkit.org/show_bug.cgi?id=160142

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> on 2016-07-24
Reviewed by Michael Catanzaro.

This only happens in layout tests, because it happens when RenderLayerCompositor::layerTreeAsText() is
called. The thing is that CoordinatedGraphicsLayer::flushCompositingState() calls notifyFlushRequired() that
checks if the coordinator is flusing layers and if not it calls RenderLayerCompositor::notifyFlushRequired() and
returns early. This normally works because the coodinator is the one starting the layer flush, so that when
RenderLayerCompositor::flushPendingLayerChanges() is called the coordinator is always flusing layers. But
RenderLayerCompositor::layerTreeAsText() calls RenderLayerCompositor::flushPendingLayerChanges() directly, so at
that moment the coordinator is not flusing layers, what causes that
CoordinatedGraphicsLayer::flushCompositingState() ends up calling RenderLayerCompositor::notifyFlushRequired()
that schedules a new flush while flusing layers causing the
assertion. CoordinatedGraphicsLayer::flushCompositingState() is always called from
CompositingCoordinator::flushPendingLayerChanges() or RenderLayerCompositor::flushPendingLayerChanges() so we
never need to call RenderLayerCompositor::notifyFlushRequired() from there.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::CoordinatedGraphicsLayer::notifyFlushRequired): This is void now since the return value is not checked anywhere.
(WebCore::CoordinatedGraphicsLayer::flushCompositingState): Remove the call to notifyFlushRequired().

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
6:04 AM Changeset in webkit [203662] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

[GTK] Layout test security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement.html timing out
​https://bugs.webkit.org/show_bug.cgi?id=160128

Unreviewed, skip the tests.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
4:10 AM Changeset in webkit [203661] by Darin Adler
  • 3 edits
    2 deletes in trunk/Source

Adding a new WebCore JavaScript built-in source file does not trigger rebuild of WebCoreJSBuiltins*
​https://bugs.webkit.org/show_bug.cgi?id=160115

Reviewed by Youenn Fablet.

Source/JavaScriptCore:

  • make-generated-sources.sh: Removed. Was unused.

Source/WebCore:

  • DerivedSources.make: Added a missing dependency so the rule that builds WebCore_BUILTINS_WRAPPERS

kicks in when the list of WebCore_BUILTINS_SOURCES is modified. Also added another missing dependency
so that changes to the JavaScript built-ins Python scripts will also trigger WebCore_BUILTINS_WRAPPERS.

  • make-generated-sources.sh: Removed. Was unused.

Jul 23, 2016:

8:11 PM Changeset in webkit [203660] by Alan Bujtas
  • 12 edits in trunk/Source/WebCore

Stop isEmpty() from leaking out of SVG.
​https://bugs.webkit.org/show_bug.cgi?id=160121

Reviewed by Simon Fraser.

It's unclear what isEmpty() actually means and it doesn't bring any value to Render* classes.

No change in functionality.

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::addBlockPlaceholderIfNeeded):

  • rendering/RenderElement.h:
  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::isEmpty): Deleted.

  • rendering/RenderListItem.h:
  • rendering/RenderObject.h:

(WebCore::RenderObject::isEmpty): Deleted.

  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::removeChild):
(WebCore::RenderRubyRun::isEmpty): Deleted.

  • rendering/RenderRubyRun.h:
  • rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::updateFromElement):
(WebCore::RenderMathMLFenced::addChild):

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::paint):

  • rendering/svg/RenderSVGShape.h:
7:16 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
7:15 PM Changeset in webkit [203659] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK test expectations fixups

  • platform/gtk/TestExpectations:
7:12 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
7:11 PM Changeset in webkit [203658] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

Even more unreviewed flaky GTK test gardening

6:39 PM Changeset in webkit [203657] by Alan Bujtas
  • 11 edits in trunk/Source/WebCore

table*BorderAdjoiningCell and borderAdjoiningCell* should take reference instead of RenderTableCell*.
​https://bugs.webkit.org/show_bug.cgi?id=160123

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::tableStartBorderAdjoiningCell):
(WebCore::RenderTable::tableEndBorderAdjoiningCell):

  • rendering/RenderTable.h:
  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computeCollapsedStartBorder):
(WebCore::RenderTableCell::computeCollapsedEndBorder):

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::borderAdjoiningCellBefore):
(WebCore::RenderTableCell::borderAdjoiningCellAfter):

  • rendering/RenderTableCol.cpp:

(WebCore::RenderTableCol::borderAdjoiningCellStartBorder):
(WebCore::RenderTableCol::borderAdjoiningCellEndBorder):
(WebCore::RenderTableCol::borderAdjoiningCellBefore):
(WebCore::RenderTableCol::borderAdjoiningCellAfter):

  • rendering/RenderTableCol.h:
  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::borderAdjoiningStartCell):
(WebCore::RenderTableRow::borderAdjoiningEndCell):

  • rendering/RenderTableRow.h:
  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::borderAdjoiningStartCell):
(WebCore::RenderTableSection::borderAdjoiningEndCell):

  • rendering/RenderTableSection.h:
6:38 PM Changeset in webkit [203656] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Remove unused enum and stale comment from RenderObject.
​https://bugs.webkit.org/show_bug.cgi?id=160122

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/RenderBox.h:
4:13 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
4:10 PM Changeset in webkit [203655] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

Unreviewed flaky test gardening for GTK

Mostly more fallout from threaded compositor

3:02 PM Changeset in webkit [203654] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

More unreviewed GTK gardening

Update expectations for tests timing out

  • platform/gtk/TestExpectations:
2:47 PM Changeset in webkit [203653] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

More unreviewed GTK gardening

Mark more flaky crashes after enabling threaded compositor

  • platform/gtk/TestExpectations:
2:32 PM Changeset in webkit [203652] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

More unreviewed GTK gardening, mark even more new passes after enabling threaded compositor

  • platform/gtk/TestExpectations:
2:09 PM Changeset in webkit [203651] by Chris Dumez
  • 2 edits in trunk/Source/WebKit/win

Unreviewed, fix Windows build after r203623.

  • DOMCoreClasses.cpp:

(DOMDocument::getComputedStyle):

11:21 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
11:14 AM Changeset in webkit [203650] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening, mark many emoji gender tests passing

  • platform/gtk/TestExpectations:
11:05 AM Changeset in webkit [203649] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

Unreviewed test gardening

These tests are flaky now on GTK, passing about half the time.

10:51 AM Changeset in webkit [203648] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening new passes after enabling threaded compositor

  • platform/gtk/TestExpectations:
9:41 AM Changeset in webkit [203647] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed test expectation gardening

Skip layout test editing/deleting/delete-emoji.html

  • platform/gtk/TestExpectations:
9:31 AM Changeset in webkit [203646] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed, move some GTK expectations to more appropriate locations

  • platform/gtk/TestExpectations:
9:28 AM Changeset in webkit [203645] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed, add GTK expectations for threaded compositor regressions

  • platform/gtk/TestExpectations:
8:25 AM Changeset in webkit [203644] by commit-queue@webkit.org
  • 5 edits in trunk

[Coordinated Graphics] Lots of flaky tests
​https://bugs.webkit.org/show_bug.cgi?id=160118

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> on 2016-07-23
Reviewed by Michael Catanzaro.

Source/WebCore:

Since the GTK+ ported to threaded compositor (coordinated graphics) there are a lot of flaky tests in the
bots. In manu of the cases the diff shows a different size in the FrameView layer.

This happens for tests run in the same WTR after fast/fixed-layout/fixed-layout.html. This is what happens:

1.- Test fast/fixed-layout/fixed-layout.html runs and sets fixed layout to true and fixed layout size to 400x400
2.- When it finishes TestController::resetStateToConsistentValues() is called.
3.- Blank URL is loaded after state has been updated
4.- Then Reset message is handled in the web process and Internals::resetToConsistentState() resets the fixed

layout state and size.

5.- onresize happens and the handler set in fast/fixed-layout/fixed-layout.html is invoked setting the fixed

layout to true and size to 400x400 again.

6.- about_blank is then loaded with the fixed layout enabled, as well as other tests after this one.

In addition to this, coordinated graphics uses a fixedVisibleContentRect in ScrollView that is never reset.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea): Only use m_fixedVisibleContentRect when
fixed layout is enabled.
(WebCore::ScrollView::unscaledUnobscuredVisibleContentSize): Ditto.
(WebCore::ScrollView::visibleContentRectInternal): Ditto.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState): Reset also the m_fixedVisibleContentRect.

LayoutTests:

  • fast/fixed-layout/fixed-layout.html: Remove the onresize handler when the test finishes to ensure it can't be

called later affecting other tests.

8:23 AM Changeset in webkit [203643] by commit-queue@webkit.org
  • 4 edits in trunk

[Coordinated Graphics] Test imported/blink/svg/custom/svg-image-layers-crash.html crashes
​https://bugs.webkit.org/show_bug.cgi?id=160078

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> on 2016-07-23
Reviewed by Michael Catanzaro.

Source/WebCore:

This is a merge of Blink r155373.
​https://chromiumcodereview.appspot.com/20789004

Disable accelerated compositing for SVGImage content layers. SVGImageChromeClient does not support it.

Fixes imported/blink/svg/custom/svg-image-layers-crash.html.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

LayoutTests:

  • platform/efl/TestExpectations: Remove imported/blink/svg/custom/svg-image-layers-crash.html.
2:58 AM Changeset in webkit [203642] by commit-queue@webkit.org
  • 28 edits
    7 adds
    3 deletes in trunk

Unreviewed, rolling out r203641.
​https://bugs.webkit.org/show_bug.cgi?id=160116

It broke make-based builds (Requested by youenn on #webkit).

Reverted changeset:

"[Fetch API] Request should be created with any HeadersInit
data"
​https://bugs.webkit.org/show_bug.cgi?id=159672
​http://trac.webkit.org/changeset/203641

1:55 AM Changeset in webkit [203641] by commit-queue@webkit.org
  • 27 edits
    3 copies
    1 delete in trunk

[Fetch API] Request should be created with any HeadersInit data
​https://bugs.webkit.org/show_bug.cgi?id=159672

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-23
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Test was previously

failing due to lack of support for HeadersInit data in Request constructor.

  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/credentials/authentication-basic-expected.txt: Removed.
  • web-platform-tests/fetch/api/request/request-headers-expected.txt:
  • web-platform-tests/fetch/api/request/request-headers.html: Adding new test.

Source/JavaScriptCore:

  • Scripts/builtins/builtins_generator.py:

(WK_lcfirst): Synchronized with CodeGenerator.pm version.

Source/WebCore:

Made Request use JSBuiltinConstructor.
This allows initializing newly created Request with a JS built-in function, initializeFetchRequest.
initializeFetchRequest can call @fillFetchHeaders internal built-in to handle any HeadersInit data.
Future effort should be made to migrate more initialization code in initializeFetchRequest.

Made window and worker fetch function as a JS built-in.
This becomes more handy as these new functions can construct the Request object.
They can then call a single private function that takes a Request object as input.
Updated DOMWindowFetch and WorkerGlobalScopeFetch code accordingly.

To enable this, the binding generator is updated to support runtime-enabled JS built-in functions and
private functions atttached to global objects.

Covered by existing and modified tests.
Binding generator test covered by updated binding tests.

  • CMakeLists.txt: Adding DOMWindowFetch.js, FetchRequest.js and WorkerGlobalScopeFetch.js built-in files.
  • DerivedSources.make: Ditto.
  • Modules/fetch/DOMWindowFetch.cpp: Removed overloaded fetch and updated according new signature.

(WebCore::DOMWindowFetch::fetch):

  • Modules/fetch/DOMWindowFetch.h: Ditto.
  • Modules/fetch/DOMWindowFetch.idl: Making fetch a JS built-in and adding a @fetchRequest private function.
  • Modules/fetch/DOMWindowFetch.js: Added.

(fetch):

  • Modules/fetch/FetchHeaders.h:

(WebCore::FetchHeaders::setGuard): Used by FetchRequest when initializing headers.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::buildHeaders): Removed as implemented in JS.
(WebCore::FetchRequest::initializeOptions): Added to handle most of the dictionary initialization.
(WebCore::FetchRequest::initializeWith): Method called from built-in constructor function.
(WebCore::FetchRequest::setBody): Corresponding to @setBody private method.
(WebCore::buildBody): Deleted.

  • Modules/fetch/FetchRequest.h:
  • Modules/fetch/FetchRequest.idl:
  • Modules/fetch/FetchRequest.js: Added.

(initializeFetchRequest): Implements fetch Request(input, init) constructor.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::fetch): Removed the construction of FetchRequest in fetch method since it is done by JS built-in code.

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/WorkerGlobalScopeFetch.cpp: Removed overloaded fetch and updated according new signature.

(WebCore::WorkerGlobalScopeFetch::fetch):

  • Modules/fetch/WorkerGlobalScopeFetch.h: Ditto.
  • Modules/fetch/WorkerGlobalScopeFetch.idl: Making fetch a JS built-in and adding a @fetchRequest private function.
  • Modules/fetch/WorkerGlobalScopeFetch.js: Added.

(fetch):

  • bindings/js/WebCoreBuiltinNames.h: Adding fetchRequest, setBody and Request private identifiers.
  • bindings/scripts/CodeGenerator.pm:

(WK_lcfirst): Replacing dOM by dom.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation): Adding support for runtime-enabled built-in methods and private methods.

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::finishCreation):
(WebCore::jsTestGlobalObjectInstanceFunctionTestPrivateFunction):

  • bindings/scripts/test/ObjC/DOMTestGlobalObject.mm:

(-[DOMTestGlobalObject testJSBuiltinFunction]):

  • bindings/scripts/test/TestGlobalObject.idl: Adding tests for runtime-enabled global built-in methods and private methods.
1:39 AM Changeset in webkit [203640] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Reset font-style on the <math> element
​https://bugs.webkit.org/show_bug.cgi?id=160074

Patch by Frederic Wang <​fwang@igalia.com> on 2016-07-23
Reviewed by Darin Adler.

Source/WebCore:

Mathematical formulas with italic font-style render poorly (slanted operators, mathvariant
italic etc). We align on Gecko and make the user agent stylesheet reset the font-style to
'normal' by default. This addresses the concrete use case of formula inside theorem or
proposition statements, which are often written in italic.

Test: mathml/presentation/math-font-style.html

  • css/mathml.css:

(math): Reset the font-style to normal.

LayoutTests:

  • mathml/presentation/math-font-style-expected.html: Added.
  • mathml/presentation/math-font-style.html: Added.
1:19 AM Changeset in webkit [203639] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Source/WebCore:
[MathML] PaintInfo state is not properly restored after applyTransform.
​https://bugs.webkit.org/show_bug.cgi?id=160077

Patch by Frederic Wang <​fwang@igalia.com> on 2016-07-23
Reviewed by Simon Fraser.

PaintInfo::applyTransform modifies PaintInfo::rect and the original state is not properly
restored by GraphicsContextStateSaver. To avoid some weird rendering bugs in MathOperator
and RenderMathMLMenclose, we follow what is done in SVG renderers and make a copy of the
original PaintInfo before applying the transform.

Test: mathml/presentation/bug160077.html

  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::paint):

  • rendering/mathml/RenderMathMLMenclose.cpp:

(WebCore::RenderMathMLMenclose::paint):

LayoutTests:
[MathML] PaintInfo state not properly restored after applyTransform.
​https://bugs.webkit.org/show_bug.cgi?id=160077

Patch by Frederic Wang <​fwang@igalia.com> on 2016-07-23
Reviewed by Simon Fraser.

  • mathml/presentation/bug160077-expected-mismatch.html: Added.
  • mathml/presentation/bug160077.html: Added.
1:07 AM Changeset in webkit [203638] by commit-queue@webkit.org
  • 9 edits in trunk

WPT stash server should be kept running when launching wpt server
​https://bugs.webkit.org/show_bug.cgi?id=160052

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-23
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_parentage-expected.txt:

Tools:

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py:

(main): waiting to read stdin while stash server is started.

12:46 AM Changeset in webkit [203637] by commit-queue@webkit.org
  • 8 edits in trunk

[Fetch API] Fetch response stream should enqueue Uint8Array
​https://bugs.webkit.org/show_bug.cgi?id=160083

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-23
Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/resources/utils.js:

Source/WebCore:

Covered by updated tests.

Before enqueuing, ReadableStreamController::enqueue will convert ArrayBuffer as Uint8Array.
It also returns a boolean whether the operation is successful or not.

If returned value is false, calling code will stop loading or if everything is loaded it will refrain from closing the stream.
The enqueuing should be succesful except in OutOfMemory cases. This case is not yet handled in test cases.

Updated the code to remove templated enqueuing as Fetch has no use of it.

  • Modules/fetch/FetchBody.cpp:

(WebCore::FetchBody::consumeAsStream): Do not close the stream if enqueuing failed.

  • Modules/fetch/FetchBodyOwner.cpp:

(WebCore::FetchBodyOwner::blobChunk): Stop blob loading if enqueuing failed.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::BodyLoader::didReceiveData): Stop resource loading if enqueuing failed.
(WebCore::FetchResponse::consumeBodyAsStream): Ditto.

  • Modules/fetch/FetchResponseSource.h:
  • bindings/js/ReadableStreamController.h:

(WebCore::ReadableStreamController::enqueue):
(WebCore::ReadableStreamController::enqueue<RefPtr<JSC::ArrayBuffer>>): Deleted.

12:17 AM Changeset in webkit [203636] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r202876): Web Inspector: Switching away from Console tab with a lot of messages is slow
​https://bugs.webkit.org/show_bug.cgi?id=160112

Reviewed by Joseph Pecoraro.

Showing NavigationSidebar before removing previous TabContentView can be very slow when
TabContentView is ConsoleTabContentView with a lot of messages. The order of operations
(show sidebar, change content view, show sidebar) caused more forced layouts. This patch
reduces the number of forced layouts by changes the order to: show content view, show sidebar,
show sidebar.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser.prototype._tabBarItemSelected):

Jul 22, 2016:

11:15 PM Changeset in webkit [203635] by Joseph Pecoraro
  • 5 edits in trunk/Source/WebKit2

Web Automation: All key events should be processed before sending response
​https://bugs.webkit.org/show_bug.cgi?id=160114
<rdar://problem/27505943>

Reviewed by Darin Adler.

When evaluating performKeyboardInteractions, we were sending all
NSEvents synchronously, but because WebPageProxy was doing its
own queueing and asynchronous processing of those key events, we
would receive and respond to the next Automation command before
having completed all of the key events.

This change makes performKeyboardInteractions asynchronous. It
will be notified only after WebPageProxy has exhausted its queue
of key events.

  • UIProcess/Automation/Automation.json:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::keyboardEventsFlushedForPage):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::performKeyboardInteractions):

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didReceiveEvent):

11:15 PM Changeset in webkit [203634] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebKit2

Web Automation: WebAutomationSession::deleteAllCookies never calls callback, hangs automation session
​https://bugs.webkit.org/show_bug.cgi?id=160113
<rdar://problem/27308124>

Reviewed by Darin Adler.

Delete all cookies appears to be a straightforward action
where we don't need to wait for a callback. So drop the
async altogether and implicitly complete the action.

  • UIProcess/Automation/Automation.json:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::deleteAllCookies):

  • UIProcess/Automation/WebAutomationSession.h:
11:11 PM Changeset in webkit [203633] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

REGRESSION(r203035): Marking points as an outlier no longer updates charts
​https://bugs.webkit.org/show_bug.cgi?id=160106

Reviewed by Darin Adler.

The bug was caused by MeasurementSet's fetchBetween clearing previously registered callbacks when noCache
option is specified.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart.prototype.setSourceList): Clear this._fetchedTimeSeries when changing chart options.
e.g. need to start including or excluding outliers.
(TimeSeriesChart.prototype.fetchMeasurementSets): Don't skip the fetching when noCache is true.

  • public/v3/models/measurement-set.js:

(MeasurementSet): Added this._callbackMap as an instance variable to keep track of all callbacks on every
cluster since we may need to call each callback multiple times per cluster when noCache option is used.
(MeasurementSet.prototype.fetchBetween): Moved the code to add _primaryClusterPromise to _allFetches here
so that now this function and _ensureClusterPromise are only functions that touch _allFetches.
(MeasurementSet.prototype._ensureClusterPromise): Extracted out of fetchBetween. Queue up all callbacks
for each cluster when creating a new promise.
(MeasurementSet.prototype._fetchPrimaryCluster): Removed the code to add _primaryClusterPromise now that
it's done in fetchBetween.

  • public/v3/remote.js:

(RemoteAPI.postJSONWithStatus): Removed superfluous call to console.log.

  • unit-tests/measurement-set-tests.js: Updated the test case for noCache. The callback registered before

fetchBetween is called with noCache=true is now invoked so callCount must be 3 instead of 2.

11:01 PM Changeset in webkit [203632] by commit-queue@webkit.org
  • 8 edits
    1 delete in trunk/Source/WebCore

Use a private property to implement FetchResponse.body getter
​https://bugs.webkit.org/show_bug.cgi?id=159808

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-22
Reviewed by Sam Weinig.

Covered by existing test sets.

Previously, body was handled as a CachedAttribute.
Using a private property will allow direct use of this property from JS built-ins which will allow easier
handling of ReadableStream cloning in Response.clone.
Also, this allows removing some binding custom code.

Updated redirect and error static methods to take NewObject keyword, as this removes a search into cached wrappers.
Ditto for createReadableStreamSource.

  • CMakeLists.txt: Removing JSFetchResponseCustom.cpp.
  • Modules/fetch/FetchResponse.idl: Adding createReadableStreamSource and isDisturbed private functions.

Making body getter a JSBuiltin.

  • Modules/fetch/FetchResponse.js:

(body): Adding getter which will call createReadableStreamSource if needed.

  • WebCore.xcodeproj/project.pbxproj: Removing JSFetchResponseCustom.cpp.
  • bindings/js/JSFetchResponseCustom.cpp: Removed.
  • bindings/js/ReadableStreamController.cpp:

(WebCore::createReadableStream): Deleted.
(WebCore::getReadableStreamReader): Deleted.

  • bindings/js/ReadableStreamController.h: Removing unneeded ReadableStream helper routine now that they can be

handled within JS built-in code.

  • bindings/js/WebCoreBuiltinNames.h: Adding @createReadableStreamSource, @isDisturbed and @Response identifiers.
6:56 PM Changeset in webkit [203631] by Alan Bujtas
  • 7 edits in trunk/Source

Handle cases when IOSurface initialization fails.
​https://bugs.webkit.org/show_bug.cgi?id=160006
<rdar://problem/27495102>

Reviewed by Tim Horton and Simon Fraser.

This is an additional fix to r203514 to check if IOSurface initialization was successful.

Unable to test.

Source/WebCore:

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::ImageBuffer):

  • platform/graphics/cocoa/IOSurface.h: Merge 2 c'tors.
  • platform/graphics/cocoa/IOSurface.mm: Remove redundant IOSurface::create() code.

(WebCore::IOSurface::create):
(WebCore::IOSurface::createFromImage):
(WebCore::IOSurface::IOSurface):
(WebCore::IOSurface::convertToFormat):

Source/WebKit2:

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::encode):
(WebKit::RemoteLayerBackingStore::display):
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):

  • UIProcess/API/Cocoa/WKWebView.mm:

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

6:19 PM Changeset in webkit [203630] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS] Clients should be able to decide if they want secure text entry in a form field
​https://bugs.webkit.org/show_bug.cgi?id=160109
rdar://problem/27504958

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

  • UIProcess/API/Cocoa/_WKFormInputSession.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKFormInputSession forceSecureTextEntry]): Getter.
(-[WKFormInputSession setForceSecureTextEntry:]): Setter.
(-[WKContentView textInputTraits]): If the form input session has specified that secure text
entry is desired, we should use secure text entry.

5:47 PM Changeset in webkit [203629] by Wenson Hsieh
  • 4 edits in trunk

Media controls should be displayed for media in media documents
​https://bugs.webkit.org/show_bug.cgi?id=160104
<rdar://problem/27438936>

Reviewed by Myles C. Maxfield.

Source/WebCore:

Make videos that would otherwise not have been large enough or have the right
aspect ratio cause media controls to appear. This is because media elements in
a media document are implied to be main content.

Added a new API test.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::canControlControlsManager):

Tools:

Verifies that even a small video with audio in a media document gets media controls.

  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(TestWebKitAPI::TEST):

4:48 PM Changeset in webkit [203628] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.43

New tag.

4:48 PM Changeset in webkit [203627] by bshafiei@apple.com
  • 11 edits in branches/safari-602-branch

Merge r203626. rdar://problem/27453479

4:45 PM Changeset in webkit [203626] by mmaxfield@apple.com
  • 11 edits in trunk

All dancers with bunny ears are female
​https://bugs.webkit.org/show_bug.cgi?id=160102
<rdar://problem/27453479>

Reviewed by Simon Fraser.

Source/WebCore:

In r203330 I added support for new emoji group candidates. I accidentally
missed one of the new emoji code points.

Tests: editing/deleting/delete-emoji.html:

fast/text/emoji-gender-2-9.html:
fast/text/emoji-gender-9.html:
fast/text/emoji-gender-fe0f-9.html:

  • platform/text/CharacterProperties.h:

(WebCore::isEmojiGroupCandidate):

LayoutTests:

  • editing/deleting/delete-emoji.html:
  • platform/mac/editing/deleting/delete-emoji-expected.txt:
  • fast/text/emoji-gender-2-9-expected.html:
  • fast/text/emoji-gender-2-9.html:
  • fast/text/emoji-gender-9-expected.html:
  • fast/text/emoji-gender-9.html:
  • fast/text/emoji-gender-fe0f-9-expected.html:
  • fast/text/emoji-gender-fe0f-9.html:
4:17 PM Changeset in webkit [203625] by msaboff@apple.com
  • 2 edits in trunk/Tools

REGRESSION(203616): no FTL testing was inadvertently removed
​https://bugs.webkit.org/show_bug.cgi?id=160100

Rubber-stamped by Filip Pizlo.

Added runNoFTL back into the set of tests we run on FTL enabled platforms.
Renamed runLayoutTestNoFTL to runLayoutTestDefault. Restructured the test
logic for the runLayout and runNoisy variants to match the run test logic,
that is we always invoke runXXXDefault and invoke runXXXNoFTL for FTL
enabled platforms.

  • Scripts/run-jsc-stress-tests:
4:13 PM Changeset in webkit [203624] by Chris Dumez
  • 11 edits in trunk

Parameter to HTMLCollection.item() / namedItem() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160099

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

Parameter to HTMLCollection.item() / namedItem() should be mandatory:

Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • bindings/js/JSHTMLFormControlsCollectionCustom.cpp:

(WebCore::JSHTMLFormControlsCollection::namedItem):

  • html/HTMLCollection.idl:
  • html/HTMLFormControlsCollection.idl:
  • html/HTMLOptionsCollection.idl:

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/non-numeric-values-numeric-parameters-expected.txt:
  • fast/dom/script-tests/non-numeric-values-numeric-parameters.js:
3:56 PM Changeset in webkit [203623] by Chris Dumez
  • 12 edits
    2 adds in trunk

First parameter to Window.getComputedStyle() should be mandatory and non-nullable
​https://bugs.webkit.org/show_bug.cgi?id=160097

Reviewed by Ryosuke Niwa.

Source/WebCore:

First parameter to Window.getComputedStyle() should be mandatory and
non-nullable:

Firefox and Chrome agree with the specification.

Test: fast/dom/Window/getComputedStyle-missing-parameter.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::ComputedStyleExtractor):
(WebCore::CSSComputedStyleDeclaration::CSSComputedStyleDeclaration):
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
(WebCore::CSSComputedStyleDeclaration::copyProperties):
(WebCore::CSSComputedStyleDeclaration::length):
(WebCore::CSSComputedStyleDeclaration::item):
(WebCore::CSSComputedStyleDeclaration::getPropertyValue):

  • css/CSSComputedStyleDeclaration.h:
  • dom/Document.idl:
  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getComputedStyleForNode):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::getComputedStyle):

  • page/DOMWindow.h:
  • page/DOMWindow.idl:
  • testing/Internals.cpp:

(WebCore::Internals::computedStyleIncludingVisitedInfo):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Add test coverage.

  • fast/dom/Window/getComputedStyle-missing-parameter-expected.txt: Added.
  • fast/dom/Window/getComputedStyle-missing-parameter.html: Added.
3:32 PM Changeset in webkit [203622] by beidson@apple.com
  • 4 edits
    2 adds in trunk

Removing IndexedDatabases that have stored blobs doesn't remove the blob files.
​https://bugs.webkit.org/show_bug.cgi?id=160089

Reviewed by Darin Adler.

Source/WebCore:

Tested by API test IndexedDB.StoreBlobThenDelete.

Blob filenames exist in the IDB directory with the name "[0-9]+.blob".

That is, one or more digits, followed by ".blob".

So when we delete an IndexedDB.sqlite3 and related files, we should delete those blob files as well.

  • Modules/indexeddb/server/IDBServer.cpp:

(WebCore::IDBServer::removeAllDatabasesForOriginPath):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/StoreBlobThenDelete.mm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/StoreBlobToBeDeleted.html: Added.
3:14 PM Changeset in webkit [203621] by fpizlo@apple.com
  • 10 edits
    4 adds in trunk/Source/JavaScriptCore

Teach MarkedSpace how to allocate auxiliary storage
​https://bugs.webkit.org/show_bug.cgi?id=160053

Reviewed by Sam Weinig.

Previously, we had two kinds of subspaces in MarkedSpace: destructor and non-destructor. This
was described using "bool needsDestruction" that would get passed around. We'd iterate over
these spaces using duplicated code - one loop for destructors and one for non-destructors, or
a single loop that does one thing for destructors and one for non-destructors.

But now we want a third subspace: non-destructor non-JSCell, aka Auxiliary.

So, this changes all of the reflection and iteration over subspaces to use functors, so that
the looping is written once and reused. Most places don't even have to know that there is a
third subspace; they just know that they must do things for each subspace, for each
allocator, or for each block - and the functor magic handles it for you.

To make this somewhat nice, this change also fixes how we describe subspaces. Instead of a
bool, we now have AllocatorAttributes, which is a struct. If we ever add more subspaces, we
can add fields to AllocatorAttributes to describe how those subspaces differ. For now it just
contains two properties: a DestructionMode and a HeapCell::Kind. The DesctructionMode
replaces bool needsDestruction. I deliberately used a non-class enum to avoid tautologies.
DestructionMode has two members: NeedsDestruction and DoesNotNeedDestruction. I almost went
with DestructionMode::Needed and DestructionMode::NotNeeded, but I felt like that involves
more typing and doesn't actually avoid any kind of namespace issues.

This is intended to have no behavior change other than the addition of a totally unused
space, which should always be empty. So hopefully it doesn't cost anything.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/AllocatorAttributes.cpp: Added.

(JSC::AllocatorAttributes::dump):

  • heap/AllocatorAttributes.h: Added.

(JSC::AllocatorAttributes::AllocatorAttributes):

  • heap/DestructionMode.cpp: Added.

(WTF::printInternal):

  • heap/DestructionMode.h: Added.
  • heap/Heap.h:
  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::allocateBlock):
(JSC::MarkedAllocator::addBlock):

  • heap/MarkedAllocator.h:

(JSC::MarkedAllocator::cellSize):
(JSC::MarkedAllocator::attributes):
(JSC::MarkedAllocator::needsDestruction):
(JSC::MarkedAllocator::destruction):
(JSC::MarkedAllocator::cellKind):
(JSC::MarkedAllocator::heap):
(JSC::MarkedAllocator::takeLastActiveBlock):
(JSC::MarkedAllocator::MarkedAllocator):
(JSC::MarkedAllocator::init):
(JSC::MarkedAllocator::allocate):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::create):
(JSC::MarkedBlock::destroy):
(JSC::MarkedBlock::MarkedBlock):
(JSC::MarkedBlock::callDestructor):
(JSC::MarkedBlock::sweep):
(JSC::MarkedBlock::stopAllocating):
(JSC::MarkedBlock::didRetireBlock):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::cellSize):
(JSC::MarkedBlock::attributes):
(JSC::MarkedBlock::needsDestruction):
(JSC::MarkedBlock::destruction):
(JSC::MarkedBlock::cellKind):
(JSC::MarkedBlock::size):
(JSC::MarkedBlock::forEachCell):
(JSC::MarkedBlock::forEachLiveCell):
(JSC::MarkedBlock::forEachDeadCell):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::MarkedSpace):
(JSC::MarkedSpace::~MarkedSpace):
(JSC::MarkedSpace::lastChanceToFinalize):
(JSC::MarkedSpace::resetAllocators):
(JSC::MarkedSpace::forEachAllocator):
(JSC::MarkedSpace::stopAllocating):
(JSC::MarkedSpace::resumeAllocating):
(JSC::MarkedSpace::isPagedOut):
(JSC::MarkedSpace::freeBlock):
(JSC::MarkedSpace::shrink):
(JSC::MarkedSpace::clearNewlyAllocated):
(JSC::clearNewlyAllocatedInBlock): Deleted.

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::subspaceForObjectsWithDestructor):
(JSC::MarkedSpace::subspaceForObjectsWithoutDestructor):
(JSC::MarkedSpace::subspaceForAuxiliaryData):
(JSC::MarkedSpace::allocatorFor):
(JSC::MarkedSpace::destructorAllocatorFor):
(JSC::MarkedSpace::auxiliaryAllocatorFor):
(JSC::MarkedSpace::allocateWithoutDestructor):
(JSC::MarkedSpace::allocateWithDestructor):
(JSC::MarkedSpace::allocateAuxiliary):
(JSC::MarkedSpace::forEachBlock):
(JSC::MarkedSpace::didAddBlock):
(JSC::MarkedSpace::capacity):
(JSC::MarkedSpace::forEachSubspace):

3:14 PM Changeset in webkit [203620] by Konstantin Tokarev
  • 2 edits in trunk/Tools

[GTK] Improved exclusion patterns in make-dist.py manifest.
​https://bugs.webkit.org/show_bug.cgi?id=160094

Reviewed by Michael Catanzaro.

  • gtk/manifest.txt.in:

Exclude Platform*.cmake files for more ports.
Removed obsolete .gyp and .pro.user patterns.
Exclude 'Configurations' and 'spi' directories.
Exclude CMakeLists.txt.user (Qt Creator IDE).

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

Marking webaudio/audionode-connect-order.html as a flaky crash on mac-wk1 debug
​https://bugs.webkit.org/show_bug.cgi?id=105870

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
3:06 PM Changeset in webkit [203618] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Get rid of an unused API typedef
​https://bugs.webkit.org/show_bug.cgi?id=160103

Reviewed by Sam Weinig.

  • Shared/API/c/WKSharedAPICast.h:
2:58 PM Changeset in webkit [203617] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking userscripts/window-onerror-for-isolated-world-3.html as a flaky failure on mac-wk1
​https://bugs.webkit.org/show_bug.cgi?id=160101

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:53 PM Changeset in webkit [203616] by msaboff@apple.com
  • 2 edits in trunk/Tools

Don't run FTL related JSC stress tests on non-FTL platforms
​https://bugs.webkit.org/show_bug.cgi?id=160033

Reviewed by Mark Lam.

Added check for running tests on platforms that don't enable FTL to not run FTL tests.
Refactored several of the runXXX test methods to always runXXXDefault and made those
runXXXDefault to pass FTL_OPTIONS. For platforms that don't enable the FTL, FTL_OPTIONS
doesn't cause a problem.

  • Scripts/run-jsc-stress-tests:
1:38 PM Changeset in webkit [203615] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r203537): It made many tests crash on ARMv7 Linux platforms
​https://bugs.webkit.org/show_bug.cgi?id=160082

Reviewed by Keith Miller.

We were improperly linking the Jump in the link buffer.
It caused us to be linking against the executable address
which always has bit 0 set. We shouldn't be doing that.
This patch fixes this, by using the same idiom that
PolymorphicAccess uses to link a jump to out of line code.

  • jit/JITMathIC.h:

(JSC::JITMathIC::generateOutOfLine):

1:36 PM Changeset in webkit [203614] by Matt Baker
  • 3 edits in trunk/LayoutTests

Web Inspector: Remove unused code from Debounce layout test
​https://bugs.webkit.org/show_bug.cgi?id=160049
<rdar://problem/27479713>

Reviewed by Joseph Pecoraro.

  • inspector/unit-tests/debounce-expected.txt:

Updated with new delay times.

  • inspector/unit-tests/debounce.html:

Remove unused code that was copy-pasted from other tests, and reduced
delay times from 100ms to 10ms to speed up test.

1:35 PM Changeset in webkit [203613] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r203603.
​https://bugs.webkit.org/show_bug.cgi?id=160096

Caused CLoop tests to fail with assertions (Requested by
perarne on #webkit).

Reverted changeset:

"[Win] jsc.exe sometimes never exits."
​https://bugs.webkit.org/show_bug.cgi?id=158073
​http://trac.webkit.org/changeset/203603

1:34 PM Changeset in webkit [203612] by Chris Dumez
  • 6 edits in trunk

Fix default parameter values for window.alert() / prompt() / confirm()
​https://bugs.webkit.org/show_bug.cgi?id=160085

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fix default parameter values for window.alert() / prompt() / confirm() to
match the specification:

They should default to the empty string, not the string "undefined".

Firefox and chrome agree with the specification.

No new tests, updated existing test.

  • page/DOMWindow.h:
  • page/DOMWindow.idl:

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/Window/alert-undefined-expected.txt:
  • fast/dom/Window/alert-undefined.html:
1:33 PM Changeset in webkit [203611] by dbates@webkit.org
  • 8 edits
    16 adds in trunk

CSP: object-src and plugin-types directives are not respected for plugin replacements
​https://bugs.webkit.org/show_bug.cgi?id=159761
<rdar://problem/27365724>

Reviewed by Brent Fulgham.

Source/WebCore:

Apply the Content Security Policy (CSP) object-src and plugin-types directives to content that will
load with a plugin replacement.

Tests: security/contentSecurityPolicy/object-src-none-blocks-quicktime-plugin-replacement.html

security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement-without-mime-type.html
security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html
security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::allowedToLoadPluginContent): Added.
(WebCore::HTMLPlugInImageElement::requestObject): Only request loading plugin content if we
are allowed to load such content.

  • html/HTMLPlugInImageElement.h:
  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::pluginIsLoadable): Removed code to check CSP as we will check CSP
earlier in HTMLPlugInImageElement::requestObject().
(WebCore::SubframeLoader::requestPlugin): Ditto.
(WebCore::SubframeLoader::isPluginContentAllowedByContentSecurityPolicy): Deleted; moved implementation
to HTMLPlugInImageElement::allowedToLoadPluginContent().
(WebCore::SubframeLoader::requestObject): Deleted.

  • loader/SubframeLoader.h:
  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::upgradeInsecureRequestIfNeeded): Changed signature from a non-const
function to a const function since these functions do not modify |this|.

  • page/csp/ContentSecurityPolicy.h:

LayoutTests:

Add layout tests to ensure that we apply the CSP object-src and plugin-types directives to content
that loads with either the QuickTime plugin replacement or YouTube plugin replacement.

  • security/contentSecurityPolicy/object-src-none-blocks-quicktime-plugin-replacement-expected.txt: Added.
  • security/contentSecurityPolicy/object-src-none-blocks-quicktime-plugin-replacement.html: Added.
  • security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement-expected.txt: Added.
  • security/contentSecurityPolicy/object-src-none-blocks-youtube-plugin-replacement.html: Added.
  • security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement-expected.txt: Added.
  • security/contentSecurityPolicy/plugins-types-allows-quicktime-plugin-replacement.html: Added.
  • security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement-expected.txt: Added.
  • security/contentSecurityPolicy/plugins-types-allows-youtube-plugin-replacement.html: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement-expected.txt: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement-without-mime-type-expected.txt: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement-without-mime-type.html: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-quicktime-plugin-replacement.html: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-expected.txt: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type-expected.txt: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement-without-mime-type.html: Added.
  • security/contentSecurityPolicy/plugins-types-blocks-youtube-plugin-replacement.html: Added.
12:54 PM Changeset in webkit [203610] by Chris Dumez
  • 11 edits in trunk

Parameters to Node.replaceChild() / insertBefore() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160091

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

Parameters to Node.replaceChild() / insertBefore() should be mandatory:

The compatibility risk should be low since Firefox and Chrome both agree
with the specification and because it does not make much sense to omit
parameters when using this API.

No new tests, rebaselined existing tests.

  • bindings/js/JSNodeCustom.cpp:

(WebCore::JSNode::insertBefore):
(WebCore::JSNode::replaceChild):

LayoutTests:

Update existing tests due to the behavior change.

  • fast/block/basic/empty-anonymous-block-remove-crash.html:
  • fast/html/details-summary-document-child.html:
  • fast/repaint/focus-ring-with-negative-offset-repaint.html:
  • svg/animations/mpath-remove-from-dependents-on-delete-crash.html:
12:34 PM Changeset in webkit [203609] by Chris Dumez
  • 5 edits in trunk

Parameter to Node.contains() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160084

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

Parameter to Node.contains() should be mandatory as per the
specification:

The compatibility risk should be low because both Firefox and Chrome
both agree with the specification. Also, it does not make much sense
to call this API without parameter.

No new tests, rebaselined existing tests.

  • dom/Node.idl:
11:58 AM Changeset in webkit [203608] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203606. rdar://problem/27430450

11:58 AM Changeset in webkit [203607] by bshafiei@apple.com
  • 10 edits
    2 adds in branches/safari-602-branch

Merge r203378. rdar://problem/25876032

11:45 AM Changeset in webkit [203606] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] REGRESSION(203378): PDFDocumentImage::updateCachedImageIfNeeded() uses the unscaled size when deciding whether to cache the PDF image
​https://bugs.webkit.org/show_bug.cgi?id=159933

Patch by Said Abou-Hallawa <​sabouhallawa@apple.com> on 2016-07-22
Reviewed by Simon Fraser.

We need to use the scaled size when deciding whether to cache the PDF image
or not. This is because ImageBuffer takes the display resolution into account
which gives higher resolution for the image when zooming.

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::updateCachedImageIfNeeded):

11:39 AM Changeset in webkit [203605] by Chris Dumez
  • 7 edits
    2 adds in trunk

First parameter to getElementById() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160087

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

First parameter to getElementById() should be mandatory:

Both Firefox and Chrome agree with the specification.

Test: svg/dom/SVGSVGElement-getElementById.html

  • dom/NonElementParentNode.idl:
  • svg/SVGSVGElement.idl:

LayoutTests:

Add layout test coverage for SVGSVGElement.getElementById().

  • svg/dom/SVGSVGElement-getElementById-expected.txt: Added.
  • svg/dom/SVGSVGElement-getElementById.html: Added.
11:34 AM Changeset in webkit [203604] by Chris Dumez
  • 5 edits in trunk

Parameter to Node.lookupPrefix() / lookupNamespaceURI() / isDefaultNamespace() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160086

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

Parameter to Node.lookupPrefix() / lookupNamespaceURI() / isDefaultNamespace()
should be mandatory:

Firefox and Chrome both agree with the specification.

No new tests, rebaselined existing tests.

  • dom/Node.idl:
11:26 AM Changeset in webkit [203603] by pvollan@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[Win] jsc.exe sometimes never exits.
​https://bugs.webkit.org/show_bug.cgi?id=158073

Reviewed by Mark Lam.

Make sure the VM is deleted after the test has finished. This will gracefully stop the sampling profiler thread,
and give the thread the opportunity to release the machine thread lock aquired in SamplingProfiler::takeSample.
If the sampling profiler thread was terminated while holding the machine thread lock, the machine thread will
not be able to grab the lock afterwards.

  • jsc.cpp:

(jscmain):

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

Correct a TestExpectation by changing it from Failure to ImageOnlyFailure

Unreviewed test gardening.

  • platform/mac/TestExpectations:
9:01 AM Changeset in webkit [203601] by Chris Dumez
  • 12 edits in trunk

Parameter to Node.compareDocumentPosition() should be mandatory and non-nullable
​https://bugs.webkit.org/show_bug.cgi?id=160071

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

Parameter to Node.compareDocumentPosition() should be mandatory and
non-nullable:

Firefox and Chrome agree with the specification so the compatibility
risk should be low. Also, it does not make much sense to call this
operation without parameter.

No new tests, rebaselined existing tests.

  • accessibility/AccessibilityObject.cpp:

(WebCore::rangeClosestToRange):

  • dom/AuthorStyleSheets.cpp:

(WebCore::AuthorStyleSheets::addStyleSheetCandidateNode):

  • dom/Node.cpp:

(WebCore::compareDetachedElementsPosition):
(WebCore::Node::compareDocumentPosition):

  • dom/Node.h:
  • dom/Node.idl:
  • dom/Position.h:

(WebCore::operator<):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::formElementIndexWithFormAttribute):
(WebCore::HTMLFormElement::formElementIndex):

  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::nextRendererForElement):
(WebCore::compareRenderNamedFlowFragments):
(WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):

8:55 AM Changeset in webkit [203600] by pvollan@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix the Windows 64-bit build after r203537
​https://bugs.webkit.org/show_bug.cgi?id=160080

Reviewed by Csaba Osztrogonác.

Added new version of setupArgumentsWithExecState method.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

8:52 AM Changeset in webkit [203599] by Konstantin Tokarev
  • 2 edits in trunk/Source/WebCore

[cmake] Removed obsolete plugins/win directory
​https://bugs.webkit.org/show_bug.cgi?id=160081

Reviewed by Per Arne Vollan.

It was removed in r178219.

No new tests needed.

  • PlatformWin.cmake:
8:11 AM Changeset in webkit [203598] by mitz@apple.com
  • 5 edits in trunk/Source/WebKit2

run-safari doesn't work with Safari 10 on 10.11
​https://bugs.webkit.org/show_bug.cgi?id=159958
<rdar://problem/27422805>

Reviewed by Alexey Proskuryakov.

Safari’s injected bundle may depend on the newer versions of frameworks installed in a
staging location. Have the engineering builds of the Web Content service look for newer
versions in that location.

  • Configurations/BaseTarget.xcconfig: Shortened a linker flag.
  • Configurations/BaseXPCService.xcconfig: Increased Mach-O header padding in production builds to allow for more dyld environment commands to be added after the fact.
  • Configurations/DebugRelease.xcconfig: Have the new WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG set to YES for macOS engineering builds.
  • Configurations/WebContentService.xcconfig: Include the versioned frameworks whenever WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG is set to YES. Have the value of WK_WEBCONTENT_SERVICE_NEEDS_VERSIONED_FRAMEWORK_PATH_LDFLAG default to the value of USE_STAGING_INSTALL_PATH, while letting DebugRelease.xcconfig override it.
5:40 AM Changeset in webkit [203597] by pvollan@apple.com
  • 4 edits in trunk

IWebView::mainFrame crashes if called after IWebView::close
​https://bugs.webkit.org/show_bug.cgi?id=32868

Reviewed by Brent Fulgham.

Source/WebKit/win:

After deleting the page in WebView::close the mainframe object may be deleted.

Test: Tools/TestWebKitAPI/Tests/WebKit/win/WebViewDestruction.cpp (CloseThenGetMainFrame).

  • WebView.cpp:

(WebView::close): set mainframe pointer member to null.

Tools:

  • TestWebKitAPI/Tests/WebKit/win/WebViewDestruction.cpp:

(TestWebKitAPI::TEST_F): Added test.

3:24 AM Changeset in webkit [203596] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] Enable threaded compositor by default
​https://bugs.webkit.org/show_bug.cgi?id=160079

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsGTK.cmake:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
3:00 AM Changeset in webkit [203595] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Unreviewed EABI buildfix after r203537.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState): Added.

2:50 AM Changeset in webkit [203594] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203548. rdar://problem/27474031

2:50 AM Changeset in webkit [203593] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch

Merge r203511. rdar://problem/27474031

2:38 AM Changeset in webkit [203592] by bshafiei@apple.com
  • 24 edits in branches/safari-602-branch

Merge r203545. rdar://problem/26964090

2:38 AM Changeset in webkit [203591] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Tools

Merge r203540. rdar://problem/26964090

2:38 AM Changeset in webkit [203590] by bshafiei@apple.com
  • 26 edits
    2 deletes in branches/safari-602-branch

Merge r203520. rdar://problem/26964090

2:26 AM Changeset in webkit [203589] by bshafiei@apple.com
  • 1 edit
    1 move
    1 add in branches/safari-602-branch/LayoutTests

Merge r203536. rdar://problem/27430111

2:26 AM Changeset in webkit [203588] by bshafiei@apple.com
  • 3 edits
    2 copies
    1 move
    1 add in branches/safari-602-branch

Merge r203533. rdar://problem/27430111

2:26 AM Changeset in webkit [203587] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203473. rdar://problem/27180657

2:26 AM Changeset in webkit [203586] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203468. rdar://problem/27180657

2:26 AM Changeset in webkit [203585] by bshafiei@apple.com
  • 5 edits
    1 add in branches/safari-602-branch

Merge r203464. rdar://problem/27180657

2:26 AM Changeset in webkit [203584] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203483. rdar://problem/27455589

2:26 AM Changeset in webkit [203583] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203462. rdar://problem/27453189

2:26 AM Changeset in webkit [203582] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203447. rdar://problem/27056844

2:26 AM Changeset in webkit [203581] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203436. rdar://problem/27056844

2:26 AM Changeset in webkit [203580] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge r203429. rdar://problem/27056844

2:26 AM Changeset in webkit [203579] by bshafiei@apple.com
  • 3 edits
    2 moves
    3 adds in branches/safari-602-branch/Tools

Merge r203426. rdar://problem/27056844

2:26 AM Changeset in webkit [203578] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Merge r203392. rdar://problem/27056844

2:26 AM Changeset in webkit [203577] by bshafiei@apple.com
  • 3 edits
    3 adds in branches/safari-602-branch

Merge r203543. rdar://problem/27429465

2:26 AM Changeset in webkit [203576] by bshafiei@apple.com
  • 4 edits
    1 add in branches/safari-602-branch

Merge r203541. rdar://problem/27450825

2:25 AM Changeset in webkit [203575] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203538. rdar://problem/27462960

2:25 AM Changeset in webkit [203574] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203518. rdar://problem/21400186

2:25 AM Changeset in webkit [203573] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203514. rdar://problem/27208636

2:25 AM Changeset in webkit [203572] by bshafiei@apple.com
  • 9 edits
    1 add in branches/safari-602-branch/Source/JavaScriptCore

Merge r203488. rdar://problem/27439330

2:25 AM Changeset in webkit [203571] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebCore

Merge r203482. rdar://problem/27442806

2:25 AM Changeset in webkit [203570] by bshafiei@apple.com
  • 2 edits
    2 adds in branches/safari-602-branch/Tools

Merge r203478. rdar://problem/27411085

2:25 AM Changeset in webkit [203569] by bshafiei@apple.com
  • 4 edits in branches/safari-602-branch/Source/WebCore

Merge r203450. rdar://problem/21439264

2:25 AM Changeset in webkit [203568] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203442. rdar://problem/27376446

2:25 AM Changeset in webkit [203567] by bshafiei@apple.com
  • 6 edits in branches/safari-602-branch

Merge r203435. rdar://problem/27438734

2:25 AM Changeset in webkit [203566] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merge r203425. rdar://problem/27488703

2:25 AM Changeset in webkit [203565] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebCore

Merge r203424. rdar://problem/27391012

2:25 AM Changeset in webkit [203564] by bshafiei@apple.com
  • 3 edits
    2 adds in branches/safari-602-branch

Merge r203415. rdar://problem/27409483

2:25 AM Changeset in webkit [203563] by bshafiei@apple.com
  • 7 edits in branches/safari-602-branch/Source

Merge r203414. rdar://problem/26756701

2:25 AM Changeset in webkit [203562] by bshafiei@apple.com
  • 4 edits
    2 adds in branches/safari-602-branch

Merge r203412. rdar://problem/26898984

2:25 AM Changeset in webkit [203561] by bshafiei@apple.com
  • 3 edits
    6 adds in branches/safari-602-branch

Merge r203409. rdar://problem/27182267

2:25 AM Changeset in webkit [203560] by bshafiei@apple.com
  • 6 edits
    2 adds in branches/safari-602-branch

Merge r203388. rdar://problem/25740804

2:25 AM Changeset in webkit [203559] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203387. rdar://problem/27018065

2:25 AM Changeset in webkit [203558] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebKit2

Merge r203385. rdar://problem/27192350

2:25 AM Changeset in webkit [203557] by bshafiei@apple.com
  • 15 edits in branches/safari-602-branch

Merge r203380. rdar://problem/27391725

2:25 AM Changeset in webkit [203556] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source/WebKit2

Merge r203371. rdar://problem/26973202

2:24 AM Changeset in webkit [203555] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/WebCore

Merge r203362. rdar://problem/27371624

1:32 AM Changeset in webkit [203554] by commit-queue@webkit.org
  • 12 edits
    1 copy
    2 adds in trunk

run-builtins-generator-tests should be able to test WebCore builtins wrapper with more than one file
​https://bugs.webkit.org/show_bug.cgi?id=159921

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-22
Reviewed by Brian Burg.

Source/JavaScriptCore:

Updated built-in generator to generate only wrapper files when passed the --wrappers-only option.
When this option is used, wrapper files are generated but no individual file is generated.
When this option is not used, individual files are generated but not wrapper file is generated.
This allows the builtin generator test runner to generate a single WebCore-Wrappers.h-result generated for all
WebCore test files, like used for real in WebCore.
Previously wrapper code was generated individually for each WebCore test file.

Added new built-in test file to cover the case of concatenating several guards in generated WebCore wrapper files.

  • Scripts/generate-js-builtins.py:

(concatenated_output_filename): Compute a decent name for wrapper files in case of test mode.
(generate_bindings_for_builtins_files): When --wrappers-only is activated, this generates only the wrapper files, not the individual files.

  • Scripts/tests/builtins/WebCore-AnotherGuardedInternalBuiltin-Separate.js: Added.
  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result: Added.
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result: Removed wrapper code.
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result: Removed wrapper code.
  • Scripts/tests/builtins/expected/WebCoreJSBuiltins.h-result: Added, contains wrapper code for all WebCore valid test cases.

Source/WebCore:

Covered by existing and added built-ins tests.

Updating built system according ---wrappers-only new meaning.
builtin generator is now called for each individual built-in file plus once for WebCore wrapper files.
WebCore wrapper files allow handling things like conditionally guarded features.
They also remove the need to use built-ins macros outside generated code.

  • CMakeLists.txt:
  • DerivedSources.make:

Tools:

Updated builtin generator test runner to generate WebCore wrapper files based on all WebCore valid separate files.

  • Scripts/webkitpy/codegen/main.py:

(BuiltinsGeneratorTests.generate_from_js_builtins): Passing a list of builtin files to the script.
(BuiltinsGeneratorTests):
(BuiltinsGeneratorTests.single_builtin_test): Added to handle the case of single builtin generation.
(BuiltinsGeneratorTests.wrappers_builtin_test): Added to handle the case of WebCore wrappers builtin generation.
(BuiltinsGeneratorTests.run_test): Helper routine to run a test in reset mode or normal check mode.
(BuiltinsGeneratorTests.run_tests): Updated to add WebCore wrappers builtin generation test.

Jul 21, 2016:

10:36 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
10:33 PM Changeset in webkit [203553] by fred.wang@free.fr
  • 19 edits
    2 copies in trunk/Source/WebCore

Move parsing of accentunder and accent attributes from renderer to element classes
​https://bugs.webkit.org/show_bug.cgi?id=159625

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

We introduce a new MathMLUnderOverElement that is used for elements munder, mover and
munderover in order to create RenderMathMLUnderOver and parse and expose the values of the
accent and accentunder attributes. This is one more step toward moving MathML attribute
parsing to the DOM (bug 156536). We also do minor clean-up for this and previous renderer
classes that no longer do attribute parsing: the MathMLNames namespace is no longer necessary
and constructors can take a more accurate element type.

No new tests, already covered by existing test.

  • CMakeLists.txt: Add MathMLUnderOverElement files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLAllInOne.cpp: Ditto.
  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::cachedBooleanAttribute): Add parsing of boolean attributes.

  • mathml/MathMLElement.h: New type and helper functions for boolean attributes.
  • mathml/MathMLInlineContainerElement.cpp:

(WebCore::MathMLInlineContainerElement::createElementRenderer): Remove handling of
under/over/underover elements.

  • mathml/MathMLScriptsElement.cpp:

(WebCore::MathMLScriptsElement::MathMLScriptsElement): Remove inline keyword to avoid link
errors now that MathMLUnderOverElement overrides that class.

  • mathml/MathMLScriptsElement.h: Allow MathMLUnderOverElement to override this class.
  • mathml/MathMLUnderOverElement.cpp:

(WebCore::MathMLUnderOverElement::MathMLUnderOverElement):
(WebCore::MathMLUnderOverElement::create):
(WebCore::MathMLUnderOverElement::accent): Helper function to access the accent value.
(WebCore::MathMLUnderOverElement::accentUnder): Helper function to access the accentunder value.
(WebCore::MathMLUnderOverElement::parseAttribute): Make accent and accentunder dirty.
(WebCore::MathMLUnderOverElement::createElementRenderer): Create RenderMathMLUnderOver

  • mathml/MathMLUnderOverElement.h:
  • mathml/mathtags.in: Map under/over/underover to MathMLUnderOverElement.
  • rendering/mathml/RenderMathMLFraction.cpp: Remove MathMLNames and make the constructor

take a MathMLFractionElement.
(WebCore::RenderMathMLFraction::RenderMathMLFraction):

  • rendering/mathml/RenderMathMLFraction.h:
  • rendering/mathml/RenderMathMLPadded.cpp: Remove MathMLNames and make the constructor

take a MathMLPaddedElement.
(WebCore::RenderMathMLPadded::RenderMathMLPadded):

  • rendering/mathml/RenderMathMLPadded.h:
  • rendering/mathml/RenderMathMLScripts.cpp: Remove MathMLNames and make the constructor

take a MathMLScriptsElement. Also rename scriptsElement() to element().
(WebCore::RenderMathMLScripts::RenderMathMLScripts):
(WebCore::RenderMathMLScripts::element):
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):
(WebCore::RenderMathMLScripts::scriptsElement): Deleted.

  • rendering/mathml/RenderMathMLScripts.h:
  • rendering/mathml/RenderMathMLUnderOver.cpp: Remove MathMLNames and make the constructor

take a RenderMathMLUnderOver.
(WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver):
(WebCore::RenderMathMLUnderOver::element):
(WebCore::RenderMathMLUnderOver::hasAccent): Use the helper functions for accent and accentunder.

  • rendering/mathml/RenderMathMLUnderOver.h:
9:51 PM Changeset in webkit [203552] by Chris Dumez
  • 5 edits in trunk

Parameter to Node.isSameNode() / isEqualNode() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160070

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

Parameter to Node.isSameNode() / isEqualNode() should be mandatory as
per the specification:

Chrome and Firefox agree with the specification (although Firefox does
not support isSameNode()).

No new tests, rebaselined existing tests.

  • dom/Node.idl:
9:45 PM Changeset in webkit [203551] by mitz@apple.com
  • 2 edits in trunk/Tools

[Mac] webkitdirs.pm contains unused code to support outdated OS X and Xcode versions
​https://bugs.webkit.org/show_bug.cgi?id=160072

Reviewed by Andy Estes.

  • Scripts/webkitdirs.pm:

(readXcodeUserDefault): Changed to take a defaults key rather than a suffix. Removed support

for old Xcode versions.

(determineBaseProductDir): Removed support for old Xcode versions. Updated for the change

to readXcodeUserDefault.

(debugger): Deleted. This was only used for Darwin, where LLDB is now the only supported

debugger.

(determineDebugger): Ditto.
(checkRequiredSystemConfig): Updated to require at least OS X Yosemite v10.10.5 and Xcode

7.0.

(printHelpAndExitForRunAndDebugWebKitAppIfNeeded): Removed --use-gdb and --use-lldb

switches.

(execMacWebKitAppForDebugging): Removed support for GDB.

8:29 PM Changeset in webkit [203550] by Chris Dumez
  • 5 edits in trunk

Parameter to Document.createEvent() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160065

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

Parameter to Document.createEvent() should be mandatory as per the
specification:

We already throw anyway when the parameter is omitted because we use
"undefined" as event type, which is invalid. However, we throw the
wrong exception.

Firefox and Chrome agree with the specification here.

No new tests, rebaselined existing tests.

  • dom/Document.idl:
8:00 PM Changeset in webkit [203549] by BJ Burg
  • 2 edits in trunk/Source/WebCore

REGRESSION(r62549): Objective-C DOM bindings sometimes fail to regenerate when CodeGenerator.pm is modified
​https://bugs.webkit.org/show_bug.cgi?id=160031

Reviewed by Darin Adler.

This bug was caused by a refactoring 6 years ago. Not all uses of a variable
were renamed, so the ObjC bindings target pattern was not specifying any
build scripts as target dependencies.

  • DerivedSources.make: Standardize on {COMMON,JS,DOM}_BINDINGS_SCRIPTS.
7:43 PM Changeset in webkit [203548] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Remove unneeded content attribute name "playsinline"
​https://bugs.webkit.org/show_bug.cgi?id=160069

Reviewed by Chris Dumez.

  • html/HTMLVideoElement.idl: Removed explicit content attribute name on Reflect

attribute since it is the same as the name that the code generator will generate.

7:42 PM Changeset in webkit [203547] by Chris Dumez
  • 6 edits in trunk

Make parameters to Element.getElementsBy*() operations mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160060

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

Make parameters to Element.getElementsBy*() operations mandatory to
match the specification:

Firefox and Chrome agree with the specification so the compatibility
risk should be low.

It makes very little sense to call these operations without parameter,
especially considering WebKit uses the string "undefined" if the
parameter is omitted.

No new tests, rebaselined existing tests.

  • dom/Element.idl:

LayoutTests:

Drop cases that were calling the operation without parameter.

  • fast/dom/getElementsByClassName/dumpHTMLCollection-expected.txt:
  • fast/dom/getElementsByClassName/dumpHTMLCollection.html:
7:21 PM Changeset in webkit [203546] by Chris Dumez
  • 16 edits in trunk

Make parameters mandatory for attribute-related API on Element
​https://bugs.webkit.org/show_bug.cgi?id=160059

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

Make parameters mandatory for attribute-related API on Element to match
the specification:

Firefox and Chrome agree with the specification. Calling this API
without the parameters does not make much sense, especially considering
WebKit uses the string "undefined" when the parameter is omitted.

No new tests, rebaselined existing tests.

  • dom/Element.idl:

LayoutTests:

Update existing layout tests to reflect the behavior change.

  • fast/dom/Element/script-tests/setAttributeNS-namespace-err.js:
  • fast/dom/Element/setAttributeNS-namespace-err-expected.txt:
  • fast/dom/HTMLHrElement/hr-color-noshade-attribute.html:
  • fast/dom/attribute-downcast-right.html:
  • fast/images/style-access-during-imageChanged-style-freeze.html:
  • fast/selectors/read-only-read-write-input-basics.html:
  • fast/selectors/read-only-read-write-textarea-basics.html:
  • media/video-playsinline-expected.txt:
  • media/video-playsinline.html:
6:40 PM Changeset in webkit [203545] by mmaxfield@apple.com
  • 24 edits in trunk

Remove support for deprecated SPI inlineMediaPlaybackRequiresPlaysInlineAttribute
​https://bugs.webkit.org/show_bug.cgi?id=160066

Reviewed by Dean Jackson.

Source/WebCore:

r203520 deprecated inlineMediaPlaybackRequiresPlaysInlineAttribute in favor of
allowsInlineMediaPlaybackWithPlaysInlineAttribute and
allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute. The old
inlineMediaPlaybackRequiresPlaysInlineAttribute is SPI and was never released
to the public. Therefore, it can be removed safely.

No new tests because there is no behavior change.

  • page/Settings.cpp:
  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup): Deleted.
(WebCore::InternalSettings::Backup::restoreTo): Deleted.
(WebCore::InternalSettings::setInlineMediaPlaybackRequiresPlaysInlineAttribute): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Deleted.
(-[WebPreferences inlineMediaPlaybackRequiresPlaysInlineAttribute]): Deleted.
(-[WebPreferences setInlineMediaPlaybackRequiresPlaysInlineAttribute:]): Deleted.

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]): Deleted.

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetInlineMediaPlaybackRequiresPlaysInlineAttribute): Deleted.
(WKPreferencesGetInlineMediaPlaybackRequiresPlaysInlineAttribute): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]): Deleted.
(-[WKWebViewConfiguration copyWithZone:]): Deleted.
(-[WKWebViewConfiguration _inlineMediaPlaybackRequiresPlaysInlineAttribute]): Deleted.
(-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences): Deleted.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setDefaultsToConsistentValuesForTesting): Deleted.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:

(RequiresUserActionForPlaybackTest::SetUp): Deleted.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues): Deleted.

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration): Deleted.

6:01 PM Changeset in webkit [203544] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

callOperation(.) variants in the DFG that explicitly take a tag/payload register should take a JSValueRegs instead
​https://bugs.webkit.org/show_bug.cgi?id=160007

Reviewed by Filip Pizlo.

This patch is the first step in my plan to remove all callOperation(.) variants
in the various JITs and to unify them using a couple template variations.
The steps are as follows:

  1. Replace all explicit tag/payload pairs with JSValueRegs in the DFG
  2. Replace all explicit tag/payload pairs with JSValueRegs in the baseline
  3. remove callOperation(.) variants and teach setupArgumentsWithExecState about JSValueRegs.
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):
(JSC::DFG::SpeculativeJIT::compileValueAdd):
(JSC::DFG::SpeculativeJIT::compileGetDynamicVar):
(JSC::DFG::SpeculativeJIT::compilePutDynamicVar):
(JSC::DFG::SpeculativeJIT::compilePutAccessorByVal):

  • dfg/DFGSpeculativeJIT.h:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::cachedGetById):
(JSC::DFG::SpeculativeJIT::cachedPutById):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::CompareAndBoxBooleanSlowPathGenerator::generateInternal):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompare):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compileLogicalNot):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):

5:48 PM Changeset in webkit [203543] by dino@apple.com
  • 3 edits
    3 adds in trunk

REGRESSION (r202927): The internal size of the ImageBuffer is scaled twice by the context scaleFactor
​https://bugs.webkit.org/show_bug.cgi?id=159981
<rdar://problem/27429465>

Reviewed by Myles Maxfield.

Source/WebCore:

The change to propagate color spaces through ImageBuffers created an
alternate version of createCompatibleBuffer. This version accidentally
attempted to take the display resolution (i.e. hidpi) into account
when creating the buffer, which meant it was being applied twice.

The fix is simply to remove that logic. The caller of the method
will take the resolution into account, the same way they did
with the old createCompatibleBuffer method.

Test: fast/hidpi/pdf-image-scaled.html

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer): Don't calculate
a resolution - just use the value of 1.0.

LayoutTests:

  • fast/hidpi/pdf-image-scaled-expected.html: Added.
  • fast/hidpi/pdf-image-scaled.html: Added.
  • fast/hidpi/resources/circle.pdf: Added.
5:44 PM Changeset in webkit [203542] by wilander@apple.com
  • 3 edits
    3 adds in trunk

Block mixed content synchronous XHR
​https://bugs.webkit.org/show_bug.cgi?id=105462
<rdar://problem/13666424>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame.html

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

LayoutTests:

  • http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame-expected.txt: Added.
  • http/tests/security/mixedContent/insecure-xhr-sync-in-main-frame.html: Added.
  • http/tests/security/mixedContent/resources/insecure-xhr-sync-in-main-frame-window.html: Added.
5:11 PM Changeset in webkit [203541] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

[iOS] Apps using WKWebView will crash if they set the scroll view's delegate and don't nil it out later
​https://bugs.webkit.org/show_bug.cgi?id=159980
rdar://problem/27450825

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

Source/WebKit2:

The root cause of this crash is that we are not abiding the UIScrollView API that the scroll view
delegate property should be weak. If setters of this delegate do not know that, since the WKWebView
exposes the scroll view as a UIScrollView, they may forget to nil out the delegate they set and will
then crash.

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollViewDelegateForwarder methodSignatureForSelector:]): Get a RetainPtr holding the
external delegate and use where needed.
(-[WKScrollViewDelegateForwarder respondsToSelector:]): Ditto.
(-[WKScrollViewDelegateForwarder forwardInvocation:]): Ditto.
(-[WKScrollViewDelegateForwarder forwardingTargetForSelector:]): Ditto. When returning a reference
to the external delegate, get a retained and autoreleased reference so the caller needn't release
the object when done.
(-[WKScrollView delegate]): Ditto.
(-[WKScrollView _updateDelegate]): Get a RetainPtr holding the external delegate that can be
used throughout this method. Use the RetainPtr to get the external delegate for setting super's
delegate as well as creating the delegate forwarder.
(-[WKScrollView setDelegate:]): Get a RetainPtr holding the external delegate and use its value for
comparison to the object we are setting the external delegate to.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/WKScrollViewDelegateCrash.mm: Added.

(-[TestDelegateForScrollView dealloc]): Update delegateIsDeallocated to true so that we can tell
when our delegate has hit -dealloc.
(TestWebKitAPI::TEST): Ensure that after an object has been set as the scroll view's delegate,
and has then been deallocated, that the scroll view's delegate is nil and the deallocated delegate
will not be messaged.

4:55 PM Changeset in webkit [203540] by mmaxfield@apple.com
  • 3 edits in trunk/Tools

Follow-up patch to r203520
​https://bugs.webkit.org/show_bug.cgi?id=159967
<rdar://problem/26964090>

Unreviewed.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(setDefaultsToConsistentValuesForTesting):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

4:52 PM Changeset in webkit [203539] by Chris Dumez
  • 8 edits in trunk

Make parameters to Document.getElementsBy*() operations mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160050

Reviewed by Daniel Bates.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

Make parameters to Document.getElementsBy*() operations mandatory to
match the specification:

Firefox and Chrome agree with the specification so the compatibility
risk should be low.

It makes very little sense to call these operations without parameter,
especially considering WebKit uses the string "undefined" if the
parameter is omitted.

No new tests, rebaselined existing tests.

  • dom/Document.idl:

LayoutTests:

Drop cases that were calling the operation without parameter.

  • fast/dom/getElementsByClassName/dumpHTMLCollection-expected.txt:
  • fast/dom/getElementsByClassName/dumpHTMLCollection.html:
4:47 PM Changeset in webkit [203538] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: aria-label not being used correctly in accessible name calculation of heading
​https://bugs.webkit.org/show_bug.cgi?id=160009

Reviewed by Chris Fleizach.

Source/WebCore:

Actually we are exposing the correct information for heading objects. On macOS,
VoiceOver should handle the logic that picks the right information to speak.
On iOS, VoiceOver is speaking the static text child instead of the heading object.
So we should set the accessibilityLabel of the static text based on the parent's
alternate label.

Test: accessibility/ios-simulator/heading-with-aria-label.html

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityTraitsFromAncestors]):

LayoutTests:

  • accessibility/ios-simulator/heading-with-aria-label-expected.txt: Added.
  • accessibility/ios-simulator/heading-with-aria-label.html: Added.
4:41 PM Changeset in webkit [203537] by sbarati@apple.com
  • 40 edits
    7 adds in trunk/Source

op_add/ValueAdd should be an IC in all JIT tiers
​https://bugs.webkit.org/show_bug.cgi?id=159649

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

This patch makes Add an IC inside all JIT tiers. It does so in a
simple, but effective, way. We will try to generate an int+int add
that will repatch itself if its type checks fail. Sometimes though,
we have runtime type data saying that the add won't be int+int.
In those cases, we will just generate a full snippet that doesn't patch itself.
Other times, we may generate no inline code and defer to making a C call. A lot
of this patch is just refactoring ResultProfile into what we're now calling ArithProfile.
ArithProfile does everything ResultProfile used to do, and more. It records simple type
data about the LHS/RHS operands it sees. This allows us to determine if an op_add
has only seen int+int operands, etc. ArithProfile will also contain the ResultType
for the LHS/RHS that the parser feeds into op_add. ArithProfile now fits into 32-bits.
This means instead of having a side table like we did for ResultProfile, we just
inject the ArithProfile into the bytecode instruction stream. This makes asking
for ArithProfile faster; we no longer need to lock around this operation.

The size of an Add has gone down on average, but we can still do better.
We still generate a lot of code because we generate calls to the slow path.
I think we can make this better by moving the slow path to a shared thunk
system. This patch mostly lays the foundation for future improvements to Add,
and a framework to move all other arithmetic operations to be typed-based ICs.

Here is some data I took on the average op_add/ValueAdd size on various benchmarks:

| JetStream | Speedometer | Unity 3D |

------| -------------

Old | 189 bytes | 169 bytes | 192 bytes |

------| -------------

New | 148 bytes | 124 bytes | 143 bytes |

---------------------------------------------------

Making an arithmetic IC is now easy. The JITMathIC class will hold a snippet
generator as a member variable. To make a snippet an IC, you need to implement
a generateInline(.) method, which generates the inline IC. Then, you need to
generate the IC where you used to generate the snippet. When generating the
IC, we need to inform JITMathIC of various data like we do with StructureStubInfo.
We need to tell it about where the slow path starts, where the slow path call is, etc.
When generating a JITMathIC, it may tell you that it didn't generate any code inline.
This is a request to the user of JITMathIC to just generate a C call along the
fast path. JITMathIC may also have the snippet tell it to just generate the full
snippet instead of the int+int path along the fast path.

In subsequent patches, we can improve upon how we decide to generate int+int or
the full snippet. I tried to get clever by having double+double, double+int, int+double,
fast paths, but they didn't work out nearly as well as the int+int fast path. I ended up
generating a lot of code when I did this and ended up using more memory than just generating
the full snippet. There is probably some way we can be clever and generate specialized fast
paths that are more successful than what I tried implementing, but I think that's worth deferring
this to follow up patches once the JITMathIC foundation has landed.

This patch also fixes a bug inside the slow path lambdas in the DFG.
Before, it was not legal to emit an exception check inside them. Now,
it is. So it's now easy to define arbitrary late paths using the DFG
slow path lambda API.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/ArithProfile.cpp: Added.

(JSC::ArithProfile::emitObserveResult):
(JSC::ArithProfile::shouldEmitSetDouble):
(JSC::ArithProfile::emitSetDouble):
(JSC::ArithProfile::shouldEmitSetNonNumber):
(JSC::ArithProfile::emitSetNonNumber):
(WTF::printInternal):

  • bytecode/ArithProfile.h: Added.

(JSC::ObservedType::ObservedType):
(JSC::ObservedType::sawInt32):
(JSC::ObservedType::isOnlyInt32):
(JSC::ObservedType::sawNumber):
(JSC::ObservedType::isOnlyNumber):
(JSC::ObservedType::sawNonNumber):
(JSC::ObservedType::isOnlyNonNumber):
(JSC::ObservedType::isEmpty):
(JSC::ObservedType::bits):
(JSC::ObservedType::withInt32):
(JSC::ObservedType::withNumber):
(JSC::ObservedType::withNonNumber):
(JSC::ObservedType::withoutNonNumber):
(JSC::ObservedType::operator==):
(JSC::ArithProfile::ArithProfile):
(JSC::ArithProfile::fromInt):
(JSC::ArithProfile::lhsResultType):
(JSC::ArithProfile::rhsResultType):
(JSC::ArithProfile::lhsObservedType):
(JSC::ArithProfile::rhsObservedType):
(JSC::ArithProfile::setLhsObservedType):
(JSC::ArithProfile::setRhsObservedType):
(JSC::ArithProfile::tookSpecialFastPath):
(JSC::ArithProfile::didObserveNonInt32):
(JSC::ArithProfile::didObserveDouble):
(JSC::ArithProfile::didObserveNonNegZeroDouble):
(JSC::ArithProfile::didObserveNegZeroDouble):
(JSC::ArithProfile::didObserveNonNumber):
(JSC::ArithProfile::didObserveInt32Overflow):
(JSC::ArithProfile::didObserveInt52Overflow):
(JSC::ArithProfile::setObservedNonNegZeroDouble):
(JSC::ArithProfile::setObservedNegZeroDouble):
(JSC::ArithProfile::setObservedNonNumber):
(JSC::ArithProfile::setObservedInt32Overflow):
(JSC::ArithProfile::setObservedInt52Overflow):
(JSC::ArithProfile::addressOfBits):
(JSC::ArithProfile::observeResult):
(JSC::ArithProfile::lhsSawInt32):
(JSC::ArithProfile::lhsSawNumber):
(JSC::ArithProfile::lhsSawNonNumber):
(JSC::ArithProfile::rhsSawInt32):
(JSC::ArithProfile::rhsSawNumber):
(JSC::ArithProfile::rhsSawNonNumber):
(JSC::ArithProfile::observeLHSAndRHS):
(JSC::ArithProfile::bits):
(JSC::ArithProfile::hasBits):
(JSC::ArithProfile::setBit):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpRareCaseProfile):
(JSC::CodeBlock::dumpArithProfile):
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::addStubInfo):
(JSC::CodeBlock::addJITAddIC):
(JSC::CodeBlock::findStubInfo):
(JSC::CodeBlock::resetJITData):
(JSC::CodeBlock::shrinkToFit):
(JSC::CodeBlock::dumpValueProfiles):
(JSC::CodeBlock::rareCaseProfileCountForBytecodeOffset):
(JSC::CodeBlock::arithProfileForBytecodeOffset):
(JSC::CodeBlock::arithProfileForPC):
(JSC::CodeBlock::couldTakeSpecialFastCase):
(JSC::CodeBlock::dumpResultProfile): Deleted.
(JSC::CodeBlock::resultProfileForBytecodeOffset): Deleted.
(JSC::CodeBlock::specialFastCaseProfileCountForBytecodeOffset): Deleted.
(JSC::CodeBlock::ensureResultProfile): Deleted.

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::stubInfoBegin):
(JSC::CodeBlock::stubInfoEnd):
(JSC::CodeBlock::couldTakeSlowCase):
(JSC::CodeBlock::numberOfResultProfiles): Deleted.

  • bytecode/MethodOfGettingAValueProfile.cpp:

(JSC::MethodOfGettingAValueProfile::emitReportValue):

  • bytecode/MethodOfGettingAValueProfile.h:

(JSC::MethodOfGettingAValueProfile::MethodOfGettingAValueProfile):

  • bytecode/ValueProfile.cpp:

(JSC::ResultProfile::emitDetectNumericness): Deleted.
(JSC::ResultProfile::emitSetDouble): Deleted.
(JSC::ResultProfile::emitSetNonNumber): Deleted.
(WTF::printInternal): Deleted.

  • bytecode/ValueProfile.h:

(JSC::getRareCaseProfileBytecodeOffset):
(JSC::ResultProfile::ResultProfile): Deleted.
(JSC::ResultProfile::bytecodeOffset): Deleted.
(JSC::ResultProfile::specialFastPathCount): Deleted.
(JSC::ResultProfile::didObserveNonInt32): Deleted.
(JSC::ResultProfile::didObserveDouble): Deleted.
(JSC::ResultProfile::didObserveNonNegZeroDouble): Deleted.
(JSC::ResultProfile::didObserveNegZeroDouble): Deleted.
(JSC::ResultProfile::didObserveNonNumber): Deleted.
(JSC::ResultProfile::didObserveInt32Overflow): Deleted.
(JSC::ResultProfile::didObserveInt52Overflow): Deleted.
(JSC::ResultProfile::setObservedNonNegZeroDouble): Deleted.
(JSC::ResultProfile::setObservedNegZeroDouble): Deleted.
(JSC::ResultProfile::setObservedNonNumber): Deleted.
(JSC::ResultProfile::setObservedInt32Overflow): Deleted.
(JSC::ResultProfile::setObservedInt52Overflow): Deleted.
(JSC::ResultProfile::addressOfFlags): Deleted.
(JSC::ResultProfile::addressOfSpecialFastPathCount): Deleted.
(JSC::ResultProfile::detectNumericness): Deleted.
(JSC::ResultProfile::hasBits): Deleted.
(JSC::ResultProfile::setBit): Deleted.
(JSC::getResultProfileBytecodeOffset): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitBinaryOp):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::methodOfGettingAValueProfileFor):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::exceptionCheck):

  • dfg/DFGSlowPathGenerator.h:

(JSC::DFG::SlowPathGenerator::generate):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::addSlowPathGenerator):
(JSC::DFG::SpeculativeJIT::runSlowPathGenerators):
(JSC::DFG::SpeculativeJIT::compileValueAdd):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::silentSpillAllRegistersImpl):
(JSC::DFG::SpeculativeJIT::silentSpillAllRegisters):
(JSC::DFG::SpeculativeJIT::callOperation):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToB3::compileStrCat):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):
(JSC::CCallHelpers::setupArguments):

  • jit/JIT.h:
  • jit/JITAddGenerator.cpp:

(JSC::JITAddGenerator::generateInline):
(JSC::JITAddGenerator::generateFastPath):

  • jit/JITAddGenerator.h:

(JSC::JITAddGenerator::JITAddGenerator):
(JSC::JITAddGenerator::didEmitFastPath): Deleted.
(JSC::JITAddGenerator::endJumpList): Deleted.
(JSC::JITAddGenerator::slowPathJumpList): Deleted.

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_jless):
(JSC::JIT::emitSlow_op_urshift):
(JSC::getOperandTypes):
(JSC::JIT::emit_op_add):
(JSC::JIT::emitSlow_op_add):
(JSC::JIT::emit_op_div):
(JSC::JIT::emit_op_mul):
(JSC::JIT::emitSlow_op_mul):
(JSC::JIT::emit_op_sub):
(JSC::JIT::emitSlow_op_sub):

  • jit/JITDivGenerator.cpp:

(JSC::JITDivGenerator::generateFastPath):

  • jit/JITDivGenerator.h:

(JSC::JITDivGenerator::JITDivGenerator):

  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITMathIC.h: Added.

(JSC::JITMathIC::doneLocation):
(JSC::JITMathIC::slowPathStartLocation):
(JSC::JITMathIC::slowPathCallLocation):
(JSC::JITMathIC::generateInline):
(JSC::JITMathIC::generateOutOfLine):
(JSC::JITMathIC::finalizeInlineCode):

  • jit/JITMathICForwards.h: Added.
  • jit/JITMathICInlineResult.h: Added.
  • jit/JITMulGenerator.cpp:

(JSC::JITMulGenerator::generateFastPath):

  • jit/JITMulGenerator.h:

(JSC::JITMulGenerator::JITMulGenerator):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • jit/JITSubGenerator.cpp:

(JSC::JITSubGenerator::generateFastPath):

  • jit/JITSubGenerator.h:

(JSC::JITSubGenerator::JITSubGenerator):

  • jit/Repatch.cpp:

(JSC::readCallTarget):
(JSC::ftlThunkAwareRepatchCall):
(JSC::tryCacheGetByID):
(JSC::repatchGetByID):
(JSC::appropriateGenericPutByIdFunction):
(JSC::tryCachePutByID):
(JSC::repatchPutByID):
(JSC::tryRepatchIn):
(JSC::repatchIn):
(JSC::linkSlowFor):
(JSC::resetGetByID):
(JSC::resetPutByID):
(JSC::repatchCall): Deleted.

  • jit/Repatch.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ResultType.h:

(JSC::ResultType::ResultType):
(JSC::ResultType::isInt32):
(JSC::ResultType::definitelyIsNumber):
(JSC::ResultType::definitelyIsString):
(JSC::ResultType::definitelyIsBoolean):
(JSC::ResultType::mightBeNumber):
(JSC::ResultType::isNotNumber):
(JSC::ResultType::forBitOp):
(JSC::ResultType::bits):
(JSC::OperandTypes::OperandTypes):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):
(JSC::updateArithProfileForBinaryArithOp):
(JSC::updateResultProfileForBinaryArithOp): Deleted.

  • tests/stress/op-add-exceptions.js: Added.

(assert):
(f1):
(f2):
(f3):
(let.oException.valueOf):
(foo):
(ident):
(bar):

Source/WebCore:

  • ForwardingHeaders/jit/JITMathICForwards.h: Added.
4:32 PM Changeset in webkit [203536] by Ryan Haddad
  • 1 edit
    1 copy
    1 add
    1 delete in trunk/LayoutTests

Move expected.txt file for editing/deleting/delete-emoji.html from mac-elcapitan to mac-yosemite

Unreviewed test gardening.

  • platform/mac-yosemite/editing/deleting/delete-emoji-expected.txt: Renamed from LayoutTests/platform/mac-elcapitan/editing/deleting/delete-emoji-expected.txt.
3:56 PM Changeset in webkit [203535] by Chris Dumez
  • 18 edits in trunk

Make parameters mandatory for Document.create*() operations
​https://bugs.webkit.org/show_bug.cgi?id=160047

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

Make parameters mandatory for Document.create*() operations:
createTextNode(), createComment(), createCDataSection(),
createAttribute() and createProcessingInstruction().

This matches the specification:

Firefox and Chrome both agree with the specification so the
compatibility risk should be low. Also WebKit uses the string
"undefined" when the parameter is omitted, which is not very
helpful.

No new tests, rebaselined existing tests.

  • dom/Document.idl:

LayoutTests:

Update existing tests to reflect the behavior change.

  • compositing/geometry/assert-marquee-timer.html:
  • editing/style/bold-with-dom-changes.html:
  • fast/dom/MutationObserver/observe-characterdata.html:
  • fast/dom/normalize-attributes-mutation-event-crash.html:
  • fast/dom/null-chardata-crash.html:
  • fast/dom/wrapper-classes-expected.txt:
  • fast/dom/wrapper-classes.html:
  • fast/forms/basic-textareas.html:
  • fast/inspector-support/uncaught-dom1-exception-expected.txt:
  • fast/inspector-support/uncaught-dom1-exception.html:
3:49 PM Changeset in webkit [203534] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.html as flaky on mac
​https://bugs.webkit.org/show_bug.cgi?id=160056

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:34 PM Changeset in webkit [203533] by mmaxfield@apple.com
  • 3 edits
    2 copies
    1 move
    1 add in trunk

[macOS] Caret placement occurs in the middle of new emoji group candidates
​https://bugs.webkit.org/show_bug.cgi?id=160008
<rdar://problem/27430111>

Reviewed by Simon Fraser.

Source/WTF:

r203330 added support for new emoji group candidates. This patch updates the rules
governing caret placement around these new emoji groups.

  • wtf/text/TextBreakIterator.cpp:

(WTF::cursorMovementIterator):

LayoutTests:

Update expected results.

The new emoji support is behind the ADDITIONAL_EMOJI_SUPPORT guard, which
means it only occurs on El Capitan and higher. Similarly, these new rules
are not used for iOS.

  • editing/deleting/delete-emoji-expected.txt: Deleted.
  • platform/mac/editing/deleting/delete-emoji-expected.txt: Added.
  • platform/mac-elcapitan/editing/deleting/delete-emoji-expected.txt: Added.
  • platform/ios-simulator/editing/deleting/delete-emoji-expected.txt: Added.
3:16 PM Changeset in webkit [203532] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

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

  • platform/mac/TestExpectations:
2:31 PM Changeset in webkit [203531] by Chris Dumez
  • 6 edits
    2 adds in trunk

Fix null handling of SVGAngle/SVGLength.valueAsString attribute
​https://bugs.webkit.org/show_bug.cgi?id=160025

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fix null handling of SVGAngle/SVGLength.valueAsString attribute
to match the specification:

In particular, this patch drops [TreatNullAs=EmptyString] IDL
extended attribute from this attribute. This is not supposed
to change behavior given that both "" and "null" are invalid
numbers and the specification says to throw a SYNTAX_ERR in
this case.

However, WebKit currently ignores assignments to "" instead
of throwing. As a result, assigning to null will now throw
instead of being ignored. The compatibility risk should be
low because both Firefox and Chrome throw when assigning
null.

I did not change the behavior when assigning to "" because
it is a bit out of scope for this patch and browsers to not
seem to agree:

  • Firefox throws
  • Chrome set value to "0"
  • WebKit ignores the assignment

The specification seems to agree with Firefox as far as I
can tell given that "" is not a valid number as per:

Test: svg/dom/valueAsString-null.html

  • svg/SVGAngle.idl:
  • svg/SVGLength.idl:

LayoutTests:

Add test coverage.

  • svg/dom/svg-element-attribute-js-null-expected.txt:
  • svg/dom/svg-element-attribute-js-null.xhtml:
  • svg/dom/valueAsString-null-expected.txt: Added.
  • svg/dom/valueAsString-null.html: Added.

There are a couple of failures in this test because WebKit ignores
assignments to "" instead of throwing. Firefox passes all the checks.

2:25 PM Changeset in webkit [203530] by Chris Dumez
  • 7 edits in trunk

Fix null handling of HTMLFontElement.color
​https://bugs.webkit.org/show_bug.cgi?id=160036

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-obsolete-expected.txt:

Source/WebCore:

Fix null handling of HTMLFontElement.color to match the specification:

We are supposed to treat null as the empty string. Both Firefox and
Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLFontElement.idl:

LayoutTests:

Update existing test to reflect behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:25 PM Changeset in webkit [203529] by Chris Dumez
  • 7 edits in trunk

Fix null handling for several HTMLTableElement attributes
​https://bugs.webkit.org/show_bug.cgi?id=160041

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-tabular-expected.txt:

Source/WebCore:

Fix null handling for several HTMLTableElement attributes to match the
specification:

The attributes in question are 'bicolor', 'cellSpacing' and
'cellPadding'. We are supposed to treat null as the empty string for
these attributes.

Firefox and Chrome both agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLTableElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:23 PM Changeset in webkit [203528] by Chris Dumez
  • 8 edits in trunk

Fix null handling for HTMLObjectElement.border
​https://bugs.webkit.org/show_bug.cgi?id=160040

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:

Source/WebCore:

Fix null handling for HTMLObjectElement.border to match the specification:

We are supposed to treat null as the empty string.

Both Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLObjectElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:22 PM Changeset in webkit [203527] by Chris Dumez
  • 8 edits in trunk

Fix null handling for td.bgColor / tr.bgColor
​https://bugs.webkit.org/show_bug.cgi?id=160043

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-tabular-expected.txt:

Source/WebCore:

Fix null handling for td.bgColor / tr.bgColor to match the
specification:

We are supposed to treat null as the empty string.

Firefox and Chrome both agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLTableCellElement.idl:
  • html/HTMLTableRowElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:19 PM Changeset in webkit [203526] by dbates@webkit.org
  • 3 edits in trunk/LayoutTests

Test platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe.html is flaky
​https://bugs.webkit.org/show_bug.cgi?id=160002

Reviewed by Alexey Proskuryakov.

The file platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe.html tests loading
plugin content from the main frame and from a subframe. Depending on timing the plugin
content loaded in the subframe may complete before plugin content loaded in the main frame.
We should test loading plugin content in a subframe after perform all main frame sub-tests
so as to ensure a well-defined sub-test order.

Add logic to ensure that an embedded YouTube flash video loaded in a subframe actually creates
a shadow DOM. Additionally, simplify the test logic by making use window.jsTestIsAsync/finishJSTest()
to mark the test as asynchronous and notify test completion instead of calling
window.testRunner.{waitUntilDone, notifyDone}(), remove the call to
testRunner.dumpAsText() (js-test-pre.js calls this for us), remove all of the DOM elements
used in the test to avoid noise in the expected results, and fix some style nits.

  • platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe-expected.txt:
  • platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe.html:
2:11 PM Changeset in webkit [203525] by Chris Dumez
  • 7 edits in trunk

Fix null handling for several HTMLBodyElement attributes
​https://bugs.webkit.org/show_bug.cgi?id=160044

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-sections-expected.txt:

Source/WebCore:

Fix null handling for several HTMLBodyElement attributes to match the
specification:

The attributes in question are: 'text', 'link', 'vlink', 'alink' and
'bgcolor'.

We are supposed to treat null as the empty string for these attributes.

Firefox and Chrome both agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLBodyElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:10 PM Changeset in webkit [203524] by Chris Dumez
  • 8 edits in trunk

Fix null handling for HTMLIFrameElement.marginWidth / marginHeight
​https://bugs.webkit.org/show_bug.cgi?id=160037

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:

Source/WebCore:

Fix null handling for HTMLIFrameElement.marginWidth / marginHeight to
match the specification:

We are supposed to treat null as the empty string. Both Firefox and
Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLIFrameElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:09 PM Changeset in webkit [203523] by Chris Dumez
  • 8 edits in trunk

Fix null handling for HTMLImageElement.border
​https://bugs.webkit.org/show_bug.cgi?id=160039

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:

Source/WebCore:

Fix null handling for HTMLImageElement.border to match the specification:

We are supposed to treat null as the empty string.

Both Firefox and Chrome agree with the specification.

No new tests, rebaselined existing tests.

  • html/HTMLImageElement.idl:

LayoutTests:

Update existing test to reflect the behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
2:06 PM Changeset in webkit [203522] by dbates@webkit.org
  • 9 edits in trunk

REGRESSION: Plugin replaced YouTube Flash videos always have the same width
​https://bugs.webkit.org/show_bug.cgi?id=159998
<rdar://problem/27462285>

Reviewed by Simon Fraser.

Source/WebCore:

Fixes an issue where the width of a plugin replaced YouTube video loaded via an HTML embed
element would always have the same width regardless of value of the width attribute.

For YouTube Flash videos the YouTube plugin replacement substitutes a shadow DOM subtree
for the default renderer of an HTML embed element. The root of this shadow DOM subtree
is an HTML div element. Currently we set inline styles on this <div> when it is instantiated.
In particular, we set inline display and position to "inline-block" and "relative", respectively,
and set an invalid height and width (we specify a font weight value instead of a CSS length value

  • this causes an ASSERT_NOT_REACHED() assertion failure in StyleBuilderConverter::convertLengthSizing()

in a debug build). These styles never worked as intended and we ultimately created an inline
renderer (ignoring display "inline-block") that had auto width and height. Instead it is sufficient
to remove all these inline styles and create a RenderBlockFlow renderer for this <div> so that it
renders as a block, non-replaced element to achieve the intended illusion that the <embed> is a
single element.

  • html/shadow/YouTubeEmbedShadowElement.cpp: Remove unused header HTMLEmbedElement.h and include

header RenderBlockFlow.h. Also update copyright in license block.
(WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement): Remove inline styles as these
never worked as intended.
(WebCore::YouTubeEmbedShadowElement::createElementRenderer): Override; create a block-flow
renderer for us so that we layout as a block, non-replaced element.

  • html/shadow/YouTubeEmbedShadowElement.h:

LayoutTests:

Unskip existing iOS layout tests, update tests and expected results.

  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe-expected.txt: Updated expected result based on the

changes to test youtube-flash-plugin-iframe.html.

  • platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe-no-height-or-width-expected.txt: Updated expected result

based on the changes to test youtube-flash-plugin-iframe-no-height-or-width.html.

  • platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe-no-height-or-width.html: Modified to check the

width of each embedded YouTube video to ensure that we respect it (if specified).

  • platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe.html: Substitute pseudo id -webkit-plugin-replacement

for -apple-youtube-shadow-iframe as the later was renamed to the former in <​https://trac.webkit.org/changeset/168442>.
Fix misspelling of the word "embed" in a comment.

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

Marking inspector/codemirror/prettyprinting-javascript.html as a flaky timeout on mac debug.
​https://bugs.webkit.org/show_bug.cgi?id=160048

Unreviewed test gardening.

Added TestExpectation and reordered alphabetically.

  • platform/mac/TestExpectations:
1:19 PM Changeset in webkit [203520] by mmaxfield@apple.com
  • 26 edits
    2 deletes in trunk

[iPhone] Playing a video on tudou.com plays only sound, no video
​https://bugs.webkit.org/show_bug.cgi?id=159967
<rdar://problem/26964090>

Reviewed by Jon Lee, Jeremy Jones, and Anders Carlsson.

Source/WebCore:

WebKit recently starting honoring the playsinline and webkit-playsinline
attribute on iPhones. However, because these attributes previously did
nothing, some sites (such as Todou) were setting them on their content
and expecting that they are not honored. In this specific case, the
video is absolutely positioned to be 1 pixel x 1 pixel.

Previously, with iOS 9, apps could set the allowsInlineMediaPlayback
property on their WKWebView, which would honor the webkit-playsinline
attribute. Safari on iPhones didn't do this.

In order to not break these existing apps, it's important that the
allowsInlineMediaPlayback preference still allows webkit-playsinline
videos to play inline in apps using WKWebView. However, in Safari, these
videos should play fullscreen. (Todou videos have webkit-playsinline
but not playsinline.)

Therefore, in Safari, videos with playsinline should be inline, but
videos with webkit-playsinline should be fullscreen. In apps using
WKWebViews, if the app sets allowsInlineMediaPlayback, then videos with
playsinline should be inline, and videos with webkit-playsinline should
also be inline. Videos on iPad and Mac should all be inline by default.

We can create some truth tables for the cases which need to be covered:

All apps on Mac / iPad:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Inline
Present | Not present | Inline
Not Present | Present | Inline
Present | Present | Inline

Safari on iPhone:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Fullscreen
Present | Not present | Inline
Not Present | Present | Fullscreen
Present | Present | Inline

App on iPhone which sets allowsInlineMediaPlayback:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Fullscreen
Present | Not present | Inline
Not Present | Present | Inline
Present | Present | Inline

The way to distinguish Safari from another app is to create an SPI
boolean preference which Safari can set. This is already how the
iPhone and iPad are differentiated using the requiresPlayInlineAttribute
which Safari sets but other apps don't. However, this preference is
no longer sufficient because Safari should now be discriminating
between the playsinline and webkit-playsinline attributes. Therefore,
this preference should be extended to two boolean preferences, which
this patch adds:

allowsInlineMediaPlaybackWithPlaysInlineAttribute
allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute

Safari on iPhone will set
allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute to true,
and allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute to
false. Other apps on iPhone will get their defaults values (because they
are SPI) which means they will both be true. On iPad and Mac, apps will
use the defaults values where both are false.

This patch adds support for these two preferences, but does not remove
the existing inlineMediaPlaybackRequiresPlaysInlineAttribute preference.
I will remove the exising preference as soon as I update Safari to migrate
off of it.

Test: media/video-playsinline.html

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):

  • page/Settings.cpp:
  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

Add the two preferences to WebPreferences.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences allowsInlineMediaPlaybackWithPlaysInlineAttribute]):
(-[WebPreferences setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]):
(-[WebPreferences allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]):
(-[WebPreferences setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add the two preferences to WKWebViewConfiguration and WKPreferences to cover both
the Obj-C API and the C SPI.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesSetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Tools:

Migrate tests to use new SPI.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RequiresUserActionForPlayback.mm:

(RequiresUserActionForPlaybackTest::SetUp):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::initializeWebViewConfiguration):

LayoutTests:

  • media/video-playsinline.html: Updated.
  • media/video-webkit-playsinline-expected.txt: Removed.
  • media/video-webkit-playsinline.html: Removed.
1:04 PM Changeset in webkit [203519] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking accessibility/mac/value-change/value-change-user-info-contenteditable.html as flaky on El Capitan WK2
​https://bugs.webkit.org/show_bug.cgi?id=160042

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
12:41 PM Changeset in webkit [203518] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Crash accessing null renderer inside WebCore::DeleteSelectionCommand::doApply
​https://bugs.webkit.org/show_bug.cgi?id=160011

Reviewed by Chris Dumez.

Add a null pointer check for renderer() call.

Unfortunately no new tests since we don't have a reproduction.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::doApply):

12:04 PM Changeset in webkit [203517] by Chris Dumez
  • 13 edits in trunk

The 2 first parameters to DOMImplementation.createDocument() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=160030

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

The 2 first parameters to DOMImplementation.createDocument() should be mandatory
as per the specification:

Firefox and Chrome both agree with the specification. However, those
parameters were marked as optional in WebKit. Calling this function
without parameters would create a document element whose tag is the
string "undefined", which does not seem helpful. This patch thus
aligns our behavior with the specification and other browsers.

No new tests, rebaselined existing tests.

  • dom/DOMImplementation.idl:

LayoutTests:

Rebaseline / update existing test to reflect the behavior change.

  • fast/css/zoom-on-unattached.html:
  • fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt:
  • fast/dom/DOMImplementation/script-tests/createDocument-namespace-err.js:
  • fast/dom/HTMLLinkElement/prefetch-detached.html:
  • fast/dom/node-move-to-new-document-crash-main.html:
  • fast/forms/change-form-element-document-crash.html:
11:40 AM Changeset in webkit [203516] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Kill legacy valueToStringWithNullCheck() utility function
​https://bugs.webkit.org/show_bug.cgi?id=159991

Reviewed by Sam Weinig.

Kill legacy valueToStringWithNullCheck() utility function. Treating null as
a null string is legacy behavior so drop this function so that people are
not tempted to use it. We should be using either:

  1. JSValue::toWTFString() for non-nullable DOMStrings
  2. valueToStringWithUndefinedOrNullCheck() for nullable DOMStrings
  3. valueToStringTreatingNullAsEmptyString() for strings with [TreatNullAs=EmptyString]

No new tests, no web-exposed behavior change.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::valueToStringWithNullCheck): Deleted.

  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSHTMLFrameElementCustom.cpp:

(WebCore::JSHTMLFrameElement::setLocation):

  • html/HTMLFrameElement.idl:
11:23 AM Changeset in webkit [203515] by Ryan Haddad
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r203506. rdar://problem/27353750

11:20 AM Changeset in webkit [203514] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

Do not keep invalid IOSurface in ImageBufferData.
​https://bugs.webkit.org/show_bug.cgi?id=160005
<rdar://problem/27208636>

Reviewed by Simon Fraser.

When we fail to initialize the IOSurface for the accelerated context, we switch over to
the non-accelerated code path. Since ImageBufferData::surface is used to indicate whether
the graphics context is in accelerated mode, we need to reset it when the initialization fails.

Unable to create a test case.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::ImageBuffer):

11:17 AM Changeset in webkit [203513] by bshafiei@apple.com
  • 4 edits
    1 add in branches/safari-602-branch

Merge r203508. rdar://problem/27392691

11:08 AM Changeset in webkit [203512] by Csaba Osztrogonác
  • 54 edits in trunk

Clarify testing mode names in run-jsc-stress-tests
​https://bugs.webkit.org/show_bug.cgi?id=160021

Reviewed by Mark Lam.

Default should mean really default, not default with disabled FTL, renamed

  • runMozillaTestDefault to runMozillaTestNoFTL
  • runMozillaTestDefaultFTL to runMozillaTestDefault
  • runDefault to runNoFTL
  • runDefaultFTL to runDefault
  • runLayoutTestDefault to runLayoutTestNoFTL
  • runLayoutTestDefaultFTL to runLayoutTestDefault
  • runNoisyTestDefault to runNoisyTestNoFTL
  • runNoisyTestDefaultFTL to runNoisyTestDefault

Source/JavaScriptCore:

  • tests/mozilla/mozilla-tests.yaml:
  • tests/stress/lift-tdz-bypass-catch.js:
  • tests/stress/obscure-error-message-dont-crash.js:
  • tests/stress/shadow-chicken-disabled.js:

Tools:

  • Scripts/run-jsc-stress-tests:

LayoutTests:

  • js/regress/script-tests/DataView-custom-properties.js:
  • js/regress/script-tests/HashMap-put-get-iterate-keys.js:
  • js/regress/script-tests/HashMap-put-get-iterate.js:
  • js/regress/script-tests/HashMap-string-put-get-iterate.js:
  • js/regress/script-tests/array-nonarray-polymorhpic-access.js:
  • js/regress/script-tests/basic-set.js:
  • js/regress/script-tests/bug-153431.js:
  • js/regress/script-tests/destructuring-arguments.js:
  • js/regress/script-tests/destructuring-swap.js:
  • js/regress/script-tests/inline-arguments-local-escape.js:
  • js/regress/script-tests/method-on-number.js:
  • js/regress/script-tests/new-array-buffer-push.js:
  • js/regress/script-tests/new-array-push.js:
  • js/regress/script-tests/poly-stricteq.js:
  • js/regress/script-tests/polymorphic-array-call.js:
  • js/regress/script-tests/regexp-prototype-is-not-instance.js:
  • js/regress/script-tests/regexp-prototype-search-observable-side-effects.js:
  • js/regress/script-tests/regexp-prototype-search-observable-side-effects2.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects2.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-flags.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-global.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-ignoreCase.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-multiline.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-sticky.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects3-unicode.js:
  • js/regress/script-tests/regexp-prototype-split-observable-side-effects4.js:
  • js/regress/script-tests/regexp-prototype-test-observable-side-effects.js:
  • js/regress/script-tests/regexp-prototype-test-observable-side-effects2.js:
  • js/regress/script-tests/string-equality.js:
  • js/regress/script-tests/string-prototype-search-observable-side-effects.js:
  • js/regress/script-tests/string-prototype-search-observable-side-effects2.js:
  • js/regress/script-tests/string-prototype-search-observable-side-effects3.js:
  • js/regress/script-tests/string-prototype-search-observable-side-effects4.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects2.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-flags.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-global.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-ignoreCase.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-multiline.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-sticky.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects3-unicode.js:
  • js/regress/script-tests/string-prototype-split-observable-side-effects4.js:
  • js/regress/script-tests/string-repeat-arith.js:
  • js/regress/script-tests/string-sub.js:
  • js/slow-stress/script-tests/destructuring-arguments-length.js:
10:54 AM Changeset in webkit [203511] by Chris Dumez
  • 5 edits in trunk

playsInline IDL attribute has the wrong casing
​https://bugs.webkit.org/show_bug.cgi?id=160029
<rdar://problem/27474031>

Reviewed by Jon Lee.

Source/WebCore:

Fix case from video.playsinline to video.playsInline in order to match
the specification:

It still reflects the "playsinline" content attribute though, as per
the specification:

No new tests, updated existing test.

  • html/HTMLVideoElement.idl:

LayoutTests:

Update test to use the correct case.

  • media/video-playsinline-expected.txt:
  • media/video-playsinline.html:
10:24 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
10:23 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
10:20 AM Changeset in webkit [203510] by Chris Dumez
  • 3 edits
    2 adds in trunk

Drop [TreatNullAs=EmptyString] from CanvasRenderingContext2D.globalCompositeOperation
​https://bugs.webkit.org/show_bug.cgi?id=160026

Reviewed by Sam Weinig.

Source/WebCore:

Drop [TreatNullAs=EmptyString] from CanvasRenderingContext2D.globalCompositeOperation
attribute as it does not match the specification:

It does not change web-exposed behavior because assigning to "" or "null"
gets ignored as those are not valid operations.

Test: fast/canvas/context-globalCompositeOperation-null.html

  • html/canvas/CanvasRenderingContext2D.idl:

LayoutTests:

Add test coverage.

  • fast/canvas/context-globalCompositeOperation-null-expected.txt: Added.
  • fast/canvas/context-globalCompositeOperation-null.html: Added.
10:12 AM Changeset in webkit [203509] by clopez@igalia.com
  • 8 edits in trunk/LayoutTests

[GTK] Gardening: Layout tests expectations updates and test rebaselines.

Unreviewed.

  • TestExpectations: js/regress-139548.html is ~10x slower since r203142.
  • fast/mediastream/RTCPeerConnection-add-removeTrack-expected.txt: Rebaseline after r203333.
  • fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt: Rebaseline after r203333.
  • fast/mediastream/RTCPeerConnection-setLocalDescription-offer-expected.txt: Rebaseline after r203333.
  • fast/mediastream/RTCPeerConnection-setRemoteDescription-offer-expected.txt: Rebaseline after r203333.
  • platform/efl/TestExpectations: workers/bomb.html is slow.
  • platform/gtk/TestExpectations: workers/bomb.html is slow, media/media-source/media-source-small-gap.html timeouts and new failure on platform/gtk/scrollbars/main-frame-scrollbar-horizontal-wheel-scroll.html.
10:01 AM Changeset in webkit [203508] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

WebBackForwardList's currentIndex could get out of bounds when filtering items.
​https://bugs.webkit.org/show_bug.cgi?id=159986

Source/WebKit2:

When generating a new BackForwardListState object, if we filter out multiple items in the list, the currentIndex could get
out of bounds.

Patch by Yongjun Zhang <​yongjun_zhang@apple.com> on 2016-07-21
Reviewed by Dan Bernstein.

  • UIProcess/WebBackForwardList.cpp:

(WebKit::WebBackForwardList::backForwardListState): Make currentIndex point to the last item if it is out of bounds.

Tools:

Add a test to verify filtering out 2 items from a 3-item list will set the currentIndex
to 0.

Patch by Yongjun Zhang <​yongjun_zhang@apple.com> on 2016-07-21
Reviewed by Dan Bernstein.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/WKBackForwardList.mm: Added.

(-[WKBackForwardListTestNavigationDelegate webView:didFinishNavigation:]):
(TEST):

9:59 AM Changeset in webkit [203507] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

Web Automation: Allow JavaScript evaluation to return an InvalidElementState error
​https://bugs.webkit.org/show_bug.cgi?id=160015
<rdar://problem/27434529>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-21
Reviewed by Brian Burg.

  • UIProcess/Automation/Automation.json:
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction):

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

Update test expectations for rdar://problem/27353750.

  • platform/mac/TestExpectations:
9:05 AM Changeset in webkit [203505] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebCore

[GTK][Threaded Compositor] Overlay scrollbars shouldn't be a requirement of the threaded compositor
​https://bugs.webkit.org/show_bug.cgi?id=160020

Reviewed by Michael Catanzaro.

It has been a requirement only because we didn't really know why frame scrollbars were not rendered when using
the threaded compositor. The reason is that RenderView doesn't use layers for FrameView scrollbars by default,
unless using overlay scrollbars. When using the threaded compositor we really need layers for the FrameView
scrollbars even when not using overlay scrollbars.

  • platform/gtk/ScrollbarThemeGtk.cpp:

(WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk): Stop enforcing overlay scrollbars when threaded compositor is enabled.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::shouldCompositeOverflowControls): Always use layers for scrollbars when
threaded compositor is enabled.

9:02 AM Changeset in webkit [203504] by Carlos Garcia Campos
  • 7 edits in trunk/Source/WebKit2

[GTK][Threaded Compositor] WTR generates fully white images for pixel tests most of the time
​https://bugs.webkit.org/show_bug.cgi?id=160016

Reviewed by Žan Doberšek.

WTR sends a force repaint message to the web process before taking a snapshot of the web view. With the threaded
compositor, the UI process is notified about the force repaint callback before the contents have been actually
painted. We need to ensure that the contents are rendered before the UI process is notified.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::forceRepaint): Synchronously render the layer tree.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewRenderAcceleratedCompositingResults): Always mark the redirected window surface as dirty before
rendering, since it can be modified by the web process at any time.

  • UIProcess/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::XDamageNotifier::add):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Do not mark the surface as dirty on every
damage since the view will do it before rendering.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::forceRepaint): Call ThreadedCompositor::forceRepaint().

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
9:01 AM Changeset in webkit [203503] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[Cairo] Fix a crash in fast/canvas/canvas-getImageData-invalid-result-buffer-crash.html
​https://bugs.webkit.org/show_bug.cgi?id=160014

Reviewed by Michael Catanzaro.

In r202887 some null checks were added for JSArray::createUninitialized (and related) but not for the
ImageBuffer cairo implementation.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::getImageData): Return early if Uint8ClampedArray::createUninitialized() returns nullptr.

6:03 AM Changeset in webkit [203502] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] The GSTREAMER_GL path in MediaPlayerPrivateGStreamerBase::paintToTextureMapper() is missing a mutex lock
​https://bugs.webkit.org/show_bug.cgi?id=160018

Patch by Miguel Gomez <​magomez@igalia.com> on 2016-07-21
Reviewed by Philippe Normand.

Lock the video sample mutex while accessing it.

Covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::paintToTextureMapper):

4:36 AM Changeset in webkit [203501] by jfernandez@igalia.com
  • 1 edit
    12 adds in trunk/LayoutTests

[css-grid] Handle min-content/max-content with orthogonal flows
​https://bugs.webkit.org/show_bug.cgi?id=159294

Reviewed by Darin Adler.

New layout tests to evaluate basic positioning and sizing using orthogonal flows.

  • fast/css-grid-layout/grid-item-positioning-with-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-item-positioning-with-orthogonal-flows.html: Added.
  • fast/css-grid-layout/grid-item-sizing-with-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-item-sizing-with-orthogonal-flows.html: Added.
  • fast/css-grid-layout/grid-item-spanning-and-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-item-spanning-and-orthogonal-flows.html: Added.
  • fast/css-grid-layout/grid-track-sizing-with-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-track-sizing-with-orthogonal-flows.html: Added.
  • fast/css-grid-layout/grid-track-sizing-with-percentages-and-orthogonal-flows-expected.txt: Added.
  • fast/css-grid-layout/grid-track-sizing-with-percentages-and-orthogonal-flows.html: Added.
12:35 AM Changeset in webkit [203500] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

[GTK] White page when loaded tab is visited until it's hovered when AC mode is always on
​https://bugs.webkit.org/show_bug.cgi?id=159512

Reviewed by Michael Catanzaro.

The redirected window is always mapped, but offscreen, to ensure that the web process can always render
there. When the web process renders something into the offscreen window, we receive a damage event in the UI
process and queue a redraw of the web view. However, when the web view is not mapped, even if we still receive
the damage events, the web view redraws are ignored until the view is mapped again (gtk_widget_queue_draw()
returns early when the widget is not visible). The redirected window updates its pixmap on demand when the
surface is requested, which happens when the web view draws its contents. So when the web view becames visible,
the redirected window creates a new pixmap and surface (the first time or if the web view was resized), that we
initialize to avoid artifacts when the web process hasn't render anything yet. That initialization is actually
overwriting anything rendered into the redirected window while the view was unmapped. That's why see white pages
the first time, and previous contents after a resize, and we don't see the actual contents until the web process
renders again and we reuse the existing pixmap. The white page didn't happen for tabs with accelerated content,
because in those cases the web process was rendering a new frame every 16ms, but instead there was a flickering
effect due to the current frame being overwritten when the view is mapped until the next frame.
So, instead of lazily create and initialize the redirected window pixmap and surface, we should always create
the new pixmap as soon as the window is created or resized (and not empty) This fixes the issues but also makes
resizing the window a bit smoother when AC mode is enabled.

  • UIProcess/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Create the pixmap and surface if the window is
not empty.
(WebKit::RedirectedXCompositeWindow::resize): Ditto.
(WebKit::RedirectedXCompositeWindow::createNewPixampAndPixampSurface): Create the pixmap and surface.
(WebKit::RedirectedXCompositeWindow::surface): Deleted.

  • UIProcess/gtk/RedirectedXCompositeWindow.h:

(WebKit::RedirectedXCompositeWindow::surface):

12:33 AM Changeset in webkit [203499] by Yusuke Suzuki
  • 23 edits
    2 copies
    9 adds in trunk/Source/JavaScriptCore

[ES7] Introduce exponentiation expression
​https://bugs.webkit.org/show_bug.cgi?id=159969

Reviewed by Saam Barati.

This patch implements the exponentiation expression, e.g. x ** y.
The exponentiation expression is introduced in ECMA262 2016 and ECMA262 2016
is already released. So this is not the draft spec.

The exponentiation expression has 2 interesting points.

  1. Right associative

To follow the Math expression, operator is right associative.
When we execute x ** y ** z, this is handled as x ** (y ** z), not (x ** y) ** z.
This patch introduces the right associativity to the binary operator and handles it
in the operator precedence parser in Parser.cpp.

  1. LHS of the exponentiation expression is UpdateExpression

ExponentiationExpression[Yield]:

UnaryExpression?Yield
UpdateExpression?Yield ExponentiationExpression?Yield

As we can see, the left hand side of the ExponentiationExpression is UpdateExpression, not UnaryExpression.
It means that +x ** y becomes a syntax error. This is intentional. Without superscript in JS,
-x**y is confusing between -(x ** y) and (-x) ** y. So ECMA262 intentionally avoids UnaryExpression here.
If we need to use a negated value, we need to write parentheses explicitly e.g. (-x) ** y.
In this patch, we ensure that the left hand side is not an unary expression by checking an operator in
parseBinaryExpression. This works since ** has the highest operator precedence in the binary operators.

We introduce a new bytecode, op_pow. That simply works as similar as the other binary operators.
And it is converted to ArithPow in DFG and handled in DFG and FTL.
In this patch, we take the approach just introducing a new bytecode instead of calling Math.pow.
This is because we would like to execute ToNumber in the caller side, not in the callee (Math.pow) side.
And we don't want to compile into the following.

lhsNumber = to_number (lhs)
rhsNumber = to_number (rhs)
call Math.pow(lhsNumber, rhsNumber)

We ensure that this patch passes all the test262 tests related to the exponentiation expression.

The only sensitive part to the performance is the parser changes.
So we measured the code-load performance and it is neutral in my x64 Linux box (hanayamata).

Collected 30 samples per benchmark/VM, with 30 VM invocations per benchmark. Emitted a call to
gc() between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used
the jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark
execution times with 95% confidence intervals in milliseconds.

baseline patched

closure 0.60499+-0.00250 0.60180+-0.00244
jquery 7.89175+-0.02433 ? 7.91287+-0.04759 ?

<geometric> 2.18499+-0.00523 2.18207+-0.00689 might be 1.0013x faster

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitReadModifyAssignment):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_pow):

  • llint/LowLevelInterpreter.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::operatorStackShouldReduce):
(JSC::ASTBuilder::makePowNode):
(JSC::ASTBuilder::makeMultNode):
(JSC::ASTBuilder::makeDivNode):
(JSC::ASTBuilder::makeModNode):
(JSC::ASTBuilder::makeSubNode):
(JSC::ASTBuilder::makeBinaryNode):
(JSC::ASTBuilder::operatorStackHasHigherPrecedence): Deleted.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::lex):

  • parser/NodeConstructors.h:

(JSC::PowNode::PowNode):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseAssignmentExpression):
(JSC::isUnaryOpExcludingUpdateOp):
(JSC::Parser<LexerType>::parseBinaryExpression):
(JSC::isUnaryOp): Deleted.

  • parser/ParserTokens.h:

(JSC::isUpdateOp):
(JSC::isUnaryOp):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::operatorStackPop):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:
  • tests/stress/pow-basics.js: Added.

(valuesAreClose):
(mathPowDoubleDouble1):
(mathPowDoubleInt1):
(test1):
(mathPowDoubleDouble2):
(mathPowDoubleInt2):
(test2):
(mathPowDoubleDouble3):
(mathPowDoubleInt3):
(test3):
(mathPowDoubleDouble4):
(mathPowDoubleInt4):
(test4):
(mathPowDoubleDouble5):
(mathPowDoubleInt5):
(test5):
(mathPowDoubleDouble6):
(mathPowDoubleInt6):
(test6):
(mathPowDoubleDouble7):
(mathPowDoubleInt7):
(test7):
(mathPowDoubleDouble8):
(mathPowDoubleInt8):
(test8):
(mathPowDoubleDouble9):
(mathPowDoubleInt9):
(test9):
(mathPowDoubleDouble10):
(mathPowDoubleInt10):
(test10):
(mathPowDoubleDouble11):
(mathPowDoubleInt11):
(test11):

  • tests/stress/pow-coherency.js: Added.

(pow42):
(build42AsDouble.opaqueAdd):
(build42AsDouble):
(powDouble42):
(clobber):
(pow42NoConstantFolding):
(powDouble42NoConstantFolding):

  • tests/stress/pow-evaluation-order.js: Added.

(shouldBe):
(throw.new.Error):

  • tests/stress/pow-expects-update-expression-on-lhs.js: Added.

(testSyntax):
(testSyntaxError):
(throw.new.Error):
(let.token.of.tokens.testSyntax.pow):
(testSyntax.pow):

  • tests/stress/pow-integer-exponent-fastpath.js: Added.

(valuesAreClose):
(mathPowDoubleDoubleTestExponentFifty):
(mathPowDoubleIntTestExponentFifty):
(testExponentFifty):
(mathPowDoubleDoubleTestExponentTenThousands):
(mathPowDoubleIntTestExponentTenThousands):
(testExponentTenThousands):

  • tests/stress/pow-nan-behaviors.js: Added.

(testIntegerBaseWithNaNExponentStatic):
(mathPowIntegerBaseWithNaNExponentDynamic):
(testIntegerBaseWithNaNExponentDynamic):
(testFloatingPointBaseWithNaNExponentStatic):
(mathPowFloatingPointBaseWithNaNExponentDynamic):
(testFloatingPointBaseWithNaNExponentDynamic):
(testNaNBaseStatic):
(mathPowNaNBaseDynamic1):
(mathPowNaNBaseDynamic2):
(mathPowNaNBaseDynamic3):
(mathPowNaNBaseDynamic4):
(testNaNBaseDynamic):
(infiniteExponentsStatic):
(mathPowInfiniteExponentsDynamic1):
(mathPowInfiniteExponentsDynamic2):
(mathPowInfiniteExponentsDynamic3):
(mathPowInfiniteExponentsDynamic4):
(infiniteExponentsDynamic):

  • tests/stress/pow-simple.js: Added.

(shouldBe):
(throw.new.Error):

  • tests/stress/pow-stable-results.js: Added.

(opaquePow):
(isIdentical):

  • tests/stress/pow-to-number-should-be-executed-in-code-side.js: Added.

(shouldBe):
(throw.new.Error):

  • tests/stress/pow-with-constants.js: Added.

(exponentIsZero):
(testExponentIsZero):
(exponentIsOne):
(testExponentIsOne):
(powUsedAsSqrt):
(testPowUsedAsSqrt):
(powUsedAsOneOverSqrt):
(testPowUsedAsOneOverSqrt):
(powUsedAsSquare):
(testPowUsedAsSquare):
(intIntConstantsSmallNumbers):
(intIntConstantsLargeNumbers):
(intIntSmallConstants):
(intDoubleConstants):
(doubleDoubleConstants):
(doubleIntConstants):
(testBaseAndExponentConstantLiterals):
(exponentIsIntegerConstant):
(testExponentIsIntegerConstant):
(exponentIsDoubleConstant):
(testExponentIsDoubleConstant):
(exponentIsInfinityConstant):
(testExponentIsInfinityConstant):
(exponentIsNegativeInfinityConstant):
(testExponentIsNegativeInfinityConstant):

  • tests/stress/pow-with-never-NaN-exponent.js: Added.

(exponentIsNonNanDouble1):
(exponentIsNonNanDouble2):
(testExponentIsDoubleConstant):

  • tests/test262.yaml:
12:29 AM Changeset in webkit [203498] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

[Threaded Compositor] Flickering when zooming in/out in maps.google.com
​https://bugs.webkit.org/show_bug.cgi?id=154069

Patch by Miguel Gomez <​magomez@igalia.com> on 2016-07-21
Reviewed by Carlos Garcia Campos.

Add a new extra buffer to GraphicsContext3D when using the Threaded Compositor,
so it doesn't have to reuse the buffers that are still waiting for composition.

Covered by existing tests.

  • platform/graphics/GraphicsContext3D.h:

Add a new texture to use for the rendering. Remove the compositor fbo we were using.

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::GraphicsContext3D):
Initialize the new texture and remove the previous fbo related code.
(WebCore::GraphicsContext3D::~GraphicsContext3D):
Properly destroy the new texture and remove the previous fbo related code.

  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):
Allocate the new texture and remove the previous fbo allocation.

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::prepareTexture):
Use a single fbo with three textures instead of two fbos with a texture each.
Rotate the three textures usage so:

  • m_texture becomes m_compositorTexture to be pushed to the compositor.
  • m_intermediateTexture becomes m_texture to receive the next rendering.
  • m_compositorTexture becomes m_intermediateTexture.

And add a glFlush() to ensure that the gl commands are sent to the pipeline.

  • platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):
Allocate the new texture.

12:25 AM Changeset in webkit [203497] by Carlos Garcia Campos
  • 7 edits in trunk/Source

[GTK][Threaded Compositor] Web view background colors don't work
​https://bugs.webkit.org/show_bug.cgi?id=159465

Reviewed by Michael Catanzaro.

Source/WebCore:

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer): Initialize frame view layer opacity for platforms not
using the tiled cache layer.

Source/WebKit2:

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::setDrawsBackground): Set m_drawsBackground in compositing thread and schedule a
layer flush.
(WebKit::ThreadedCompositor::renderLayerTree): Clear the area when not rendering backgrounds.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::pageBackgroundTransparencyChanged): Notify the compositor.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
12:18 AM Changeset in webkit [203496] by Carlos Garcia Campos
  • 7 edits in trunk

[GTK] Web view background colors don't work in accelerated compositing mode
​https://bugs.webkit.org/show_bug.cgi?id=159455

Reviewed by Michael Catanzaro.

Source/WebKit2:

In non AC mode it's the drawing area backing store the one drawing the background, and the web process just
renders into a transparent bitmap. In AC mode we need to make the redirected window pixmap transparent for the
web process to render there, and let the web view fill the background color before rendering the redirected
window pixmap on top. To be able to make the redirected window surface transparent, we need to ensure the parent
window has an RGBA visual, even when setting a fully opaque background, because we still need the web process
to render on the transparent xwindow.

  • UIProcess/API/gtk/WebKitWebView.cpp: Update documentation of webkit_web_view_set_background_color() since now

it's required to set the RGBA visual even for opaque colors in case AC mode is enabled.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewRenderAcceleratedCompositingResults): When a background color has been set, fill it before
rendering the redirected window surface.

  • UIProcess/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow): Mark the surface as dirty after every damage
event, since the web process has modified it.
(WebKit::RedirectedXCompositeWindow::surface): Initialize the surface after creating it, to avoid flickering and
rendering artifacts when waiting for the first damage event from the web process.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::compositeLayersToContext): Use a fully transparent color to clear the context when the page
is resized or when a view background color has been set.

Tools:

Set always RGBA visual to the view widget when setting a background color.

  • MiniBrowser/gtk/BrowserWindow.c:

(browser_window_set_background_color):

12:04 AM Changeset in webkit [203495] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

[GTK] Avoid the redirected window resize when the view is realized in AC mode
​https://bugs.webkit.org/show_bug.cgi?id=159463

Reviewed by Michael Catanzaro.

We are always creating the redirected window at 1x1 and then resizing it if we are in AC mode. When the view is
realized and AC mode is already enabled, which happens for example when AC mode is forced, or when the threaded
compositor is enabled, we could just pass the initial size to the redirected window constructor to create the
XWindow at the right size.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseResizeRedirectedWindow): We no longer need to pass the device scale factor, since the
RedirectedXCompositeWindow already knows it.
(webkitWebViewBaseRealize): Pass the WebPageProxy and an initial size to the RedirectedXCompositeWindow
constructor instead of the parent GdkWindow. If AC mode is disabled, the initial size will be empty. With the
WebPageProxy the redirected window has access to the device scale factor and view widget to get the parent
GdkWindow.
(deviceScaleFactorChanged): Resize the redirected window when device scale factor changes.

  • UIProcess/gtk/RedirectedXCompositeWindow.cpp:

(WebKit::RedirectedXCompositeWindow::create):
(WebKit::RedirectedXCompositeWindow::RedirectedXCompositeWindow):
(WebKit::RedirectedXCompositeWindow::resize):
(WebKit::RedirectedXCompositeWindow::surface):
(WebKit::RedirectedXCompositeWindow::~RedirectedXCompositeWindow):

  • UIProcess/gtk/RedirectedXCompositeWindow.h:

Jul 20, 2016:

11:51 PM Changeset in webkit [203494] by commit-queue@webkit.org
  • 11 edits
    1 add in trunk

[XHR] Cache response JS object in case of arraybuffer and blob response types
​https://bugs.webkit.org/show_bug.cgi?id=128903

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

Source/WebCore:

Covered by existing and modified tests.

Making response getter a JS builtin that caches response in @response private slot.
Handling invalidation of cached response with @responseCacheIsValid new private method.
Handling creation of cached response with @retrieveResponse new private method which reuses most of
JSXMLHttpRequest::response previous code.

Caching of responses is activated whenever load ended without any error for blob and arraybuffer response types.

Caching of response for document is also activated in case the response getter is used but not if responseXML getter is used.

  • CMakeLists.txt: Adding XMLHttpRequest.js.
  • DerivedSources.make: Ditto.
  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::retrieveResponse): Implements creation of to-be-cached response.
(WebCore::JSXMLHttpRequest::response): Deleted.

  • bindings/js/WebCoreBuiltinNames.h: Adding new private names.
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::didCacheResponse): Renamed from didCacheResponseJSON as all response types are now cached.
(WebCore::XMLHttpRequest::didCacheResponseJSON): Deleted.

  • xml/XMLHttpRequest.h:
  • xml/XMLHttpRequest.idl:

LayoutTests:

  • http/tests/xmlhttprequest/onabort-response-getters-expected.txt:
  • http/tests/xmlhttprequest/onabort-response-getters.html:
11:41 PM Changeset in webkit [203493] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

[GTK][Threaded Compositor] Web Process crash when the page is closed before the web view is realized
​https://bugs.webkit.org/show_bug.cgi?id=159918

Reviewed by Michael Catanzaro.

When the web view is unrealized, we send a sync message to the web process to destroy the native surface handle
for compositing, and then we actually destroy the redirected window. But if the page is closed explicitly before
the web view is unrealized, the drawing area proxy is destroyed so that when the web view is unrealized we can't
notify the web process that keeps trying to render to a now deleted window handle. That produces a BadDrawable
X error and the web process crashes.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::pageClosed): Call webkitWebViewBasePageClosed().

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBasePageClosed): If the web view is still realized, destroy the native surface handle and the
redirected window.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Add webkitWebViewBasePageClosed().
11:38 PM Changeset in webkit [203492] by fred.wang@free.fr
  • 1 edit
    10 adds in trunk/Websites/webkit.org

Unreviewed, new demo files for an up-coming blog post.

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

  • demos/mathml/demo2016/LICENSE-amiri.txt: Added.
  • demos/mathml/demo2016/LICENSE-latinmodern-math.txt: Added.
  • demos/mathml/demo2016/LICENSE-libertinusmath.txt: Added.
  • demos/mathml/demo2016/README.txt: Added.
  • demos/mathml/demo2016/amiri-regular.woff: Added.
  • demos/mathml/demo2016/index.html: Added.
  • demos/mathml/demo2016/latinmodern-math.woff: Added.
  • demos/mathml/demo2016/libertinusmath-regular.woff: Added.
  • demos/mathml/demo2016/webfonts.css: Added.

(@namespace url('​http://www.w3.org/1999/xhtml');):
(@font-face):
(m|math, m|mtext):
(m|math.libertinus):
(m|math.arabic):

11:23 PM Changeset in webkit [203491] by fpizlo@apple.com
  • 14 edits
    14 adds in trunk

Switching on symbols should be fast
​https://bugs.webkit.org/show_bug.cgi?id=158892

Reviewed by Keith Miller.
Source/JavaScriptCore:


This does two things: fixes some goofs in our lowering of symbol equality and adds a new phase
to B3 to infer switch statements from linear chains of branches.

This changes how we compile equality to Symbols to constant-fold the load of the Symbol's UID.
This is necessary for making switches on Symbols inferrable. This also gives us the ability to
efficiently compile strict equality comparisons of SymbolUse and UntypedUse.

This adds a new phase to B3, which finds chains of branches that test for (in)equality on the
same value and constants, and turns them into a Switch. This can turn O(n) code into
O(log n) code, or even O(1) code if the switch cases are dense.

This can make a big difference in JS. Say you write a switch in which the case statements are
variable resolutions. The bytecode generator cannot use a bytecode switch in this case, since
we're required to evaluate the resolutions in order. But in DFG IR, we will often turn those
variable resolutions into constants, since we do that for any immutable singleton. This means
that B3 will see a chain of Branches: the else case of one Branch will point to a basic block
that does nothing but Branch on equality on the same value as the first Branch.

The inference algorithm is quite simple. The basic building block is the ability to summarize
a block's switch behavior. For a block that ends in a switch, this is just the collection of
switch cases. For a block that ends in a branch, we recognize Branch(Equal(value, const)),
Branch(NotEqual(value, const)), and Branch(value). Each of these are summarized as if they
were one-case switches. We infer a new switch if both some block and its sole predecessor
can be described as switches on the same value, nothing shady is going on (like loops), and
the block in question does no work other than this switch. In that case, the block is killed
and its cases (which we get from the summary) are added to the predecessor's switch. This
algorithm runs to fixpoint.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

  • b3/B3InferSwitches.cpp: Added.

(JSC::B3::inferSwitches):

  • b3/B3InferSwitches.h: Added.
  • b3/B3Procedure.h:

(JSC::B3::Procedure::cfg):

  • b3/B3ReduceStrength.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::performSubstitution):
(JSC::B3::Value::isFree):
(JSC::B3::Value::dumpMeta):

  • b3/B3Value.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileCheckIdent):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::lowSymbol):
(JSC::FTL::DFG::LowerDFGToB3::lowSymbolUID):
(JSC::FTL::DFG::LowerDFGToB3::lowNonNullObject):

LayoutTests:

  • js/regress/bigswitch-indirect-expected.txt: Added.
  • js/regress/bigswitch-indirect-symbol-expected.txt: Added.
  • js/regress/bigswitch-indirect-symbol-or-undefined-expected.txt: Added.
  • js/regress/bigswitch-indirect-symbol-or-undefined.html: Added.
  • js/regress/bigswitch-indirect-symbol.html: Added.
  • js/regress/bigswitch-indirect.html: Added.
  • js/regress/implicit-bigswitch-indirect-symbol-expected.txt: Added.
  • js/regress/implicit-bigswitch-indirect-symbol.html: Added.
  • js/regress/script-tests/bigswitch-indirect-symbol-or-undefined.js: Added.

(foo):

  • js/regress/script-tests/bigswitch-indirect-symbol.js: Added.

(foo):

  • js/regress/script-tests/bigswitch-indirect.js: Added.

(foo):

  • js/regress/script-tests/implicit-bigswitch-indirect-symbol.js: Added.

(foo):

11:12 PM Changeset in webkit [203490] by commit-queue@webkit.org
  • 14 edits in trunk/Source/WebCore

Remove crossOriginRequestPolicy from ThreadableLoaderOptions
​https://bugs.webkit.org/show_bug.cgi?id=159417

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

No observable change.

  • Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start): DenyCrossOriginRequests -> FetchOptions::Mode::SameOrigin.

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start): DenyCrossOriginRequests -> FetchOptions::Mode::SameOrigin.

  • inspector/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::loadResource): AllowCrossOriginRequests -> FetchOptions::Mode::NoCors.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Ditto.
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest): UseAccessControl -> FetchOptions::Mode::Cors.
(WebCore::DocumentThreadableLoader::redirectReceived): Ditto.
(WebCore::DocumentThreadableLoader::didReceiveResponse): Ditto.
(WebCore::DocumentThreadableLoader::loadRequest): Use NoCors as option passed to ResourceLoader. This allows
desactivating ResourceLoader CORS checks as they are done in DocumentThreadableLoader right now. In the future,
these checks should be moved to ResourceLoader and DocumentThreadableLoader should directly pass the fetch mode
option.
(WebCore::DocumentThreadableLoader::isAllowedRedirect): AllowCrossOriginRequests -> FetchOptions::Mode::NoCors.

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoaderOptions::ThreadableLoaderOptions): Removing CrossOriginRequestPolicy.

  • loader/ThreadableLoader.h: Ditto.
  • loader/WorkerThreadableLoader.cpp:

(WebCore::LoaderTaskOptions::LoaderTaskOptions): Ditto.

  • page/EventSource.cpp:

(WebCore::EventSource::connect): UseAccessControl -> FetchOptions::Mode::Cors.

  • workers/Worker.cpp:

(WebCore::Worker::create): DenyCrossOriginRequests -> FetchOptions::Mode::SameOrigin.

  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::importScripts): AllowCrossOriginRequests -> FetchOptions::Mode::NoCors.

  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadSynchronously):
(WebCore::WorkerScriptLoader::loadAsynchronously):

  • workers/WorkerScriptLoader.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):

11:09 PM Changeset in webkit [203489] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Bots should run built-ins generator tests
​https://bugs.webkit.org/show_bug.cgi?id=159971

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-20
Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(RunBuiltinsTests): New step to run built-in generator tests.
(TestFactory.init): Adding an additional step for bultin generator tests.

  • BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py: Rebasing expectations.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js: Adding additional step for proper display.
10:24 PM Changeset in webkit [203488] by fpizlo@apple.com
  • 9 edits
    1 add in trunk/Source/JavaScriptCore

FTL snippet generators should be able to request a different register for output and input
​https://bugs.webkit.org/show_bug.cgi?id=160010
rdar://problem/27439330

Reviewed by Saam Barati.

The BitOr and BitXor snippet generators have problems if the register for the right input is
the same as the register for the result. We could fix those generators, but I'm not convinced
that the other snippet generators don't have this bug. So, the approach that this patch takes
is to teach the FTL to request that B3 to use a different register for the result than for
any input to the snippet patchpoint.

Air already has the ability to let any instruction do an EarlyDef, which means exactly this.
But B3 did not expose this via ValueRep. This patch exposes this in ValueRep as
SomeEarlyRegister. That's most of the change.

This adds a testb3 test for SomeEarlyRegister and a regression test for this particular
problem. The regression test failed on trunk JSC before this.

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::lower):

  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::forEachArg):
(JSC::B3::PatchpointSpecial::admitsStack):

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::forEachArgImpl):
(JSC::B3::StackmapSpecial::isArgValidForRep):

  • b3/B3Validate.cpp:
  • b3/B3ValueRep.cpp:

(JSC::B3::ValueRep::addUsedRegistersTo):
(JSC::B3::ValueRep::dump):
(WTF::printInternal):

  • b3/B3ValueRep.h:

(JSC::B3::ValueRep::ValueRep):
(JSC::B3::ValueRep::reg):
(JSC::B3::ValueRep::isAny):
(JSC::B3::ValueRep::isReg):
(JSC::B3::ValueRep::isSomeRegister): Deleted.

  • b3/testb3.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::emitBinarySnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitBinaryBitOpSnippet):
(JSC::FTL::DFG::LowerDFGToB3::emitRightShiftSnippet):

  • tests/stress/ftl-bit-xor-right-result-interference.js: Added.
8:30 PM Changeset in webkit [203487] by Chris Dumez
  • 5 edits
    2 adds in trunk

Fix null handling of several Document attributes
​https://bugs.webkit.org/show_bug.cgi?id=159997

Reviewed by Ryosuke Niwa.

Source/WebCore:

Fix null handling of the following Document attributes: title, cookie
and domain.

In WebKit, they were all marked as [TreatNullAs=EmptyString], which
does not match the specification:

Details for each attribute:

  • title: null is now treated as the string "null", thus setting the document title to "null". This matches Firefox and Chrome.
  • cookie: adds a "null" cookie instead of being a no-op. This matches

both Firefox and Chrome.

  • domain: Calls setDomain(String("null")) instead of

setDomain(String()). This throws an exception because "null"
is not a suffix of the effective domain name. The behavior
is the same in Firefox and Chrome. Previously, we were
already throwing an exception since setting the domain to
the empty string throws, as per the specification.

Test: http/testsdom/document-attributes-null-handling.html

  • dom/Document.idl:

LayoutTests:

Add test coverage.

  • http/tests/dom/document-attributes-null-handling-expected.txt: Added.
  • http/tests/dom/document-attributes-null-handling.html: Added.
  • fast/dom/document-attribute-js-null-expected.txt:
  • fast/dom/document-attribute-js-null.html:
8:25 PM Changeset in webkit [203486] by rniwa@webkit.org
  • 5 edits in trunk/Websites/perf.webkit.org

Perf dashboard always re-generate measurement set JSON
​https://bugs.webkit.org/show_bug.cgi?id=159951

Reviewed by Chris Dumez.

The bug was caused by manifest.json reporting the last modified date of a measurement set in floating point,
and a measurement set JSON reporting it as an integer. Fixed the bug by always using an integer.

  • public/api/measurement-set.php:

(main): Return 404 when the results is empty.
(MeasurementSetFetcher::execute_query): Use "extract(epoch from commit_time)" like ManifestGenerator to improve
the generation speed. This is ~10% runtime improvement.
(MeasurementSetFetcher::format_map): Updated to reflect the above change.
(MeasurementSetFetcher::parse_revisions_array): Ditto.

  • public/include/manifest.php:

(ManifestGenerator::platforms): Fixed the bug by coercing lastModified to integer (instead of float).

  • server-tests/api-measurement-set-tests.js: Added a test case for returning empty results, and a test case for

making sure lastModified dates in manifest.json and measurement sets match.

  • tools/js/remote.js:

(RemoteAPI.prototype.sendHttpRequest): Reject the promise when HTTP status code is not 200.

7:09 PM Changeset in webkit [203485] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

Revert temporary fix r203417
​https://bugs.webkit.org/show_bug.cgi?id=160001

Reviewed by Alexey Proskuryakov.

  • EWSTools/start-queue-mac.sh: Revert the temporary fix.
5:45 PM Changeset in webkit [203484] by commit-queue@webkit.org
  • 23 edits
    2 adds in trunk

Unreviewed, rolling out r203471.
​https://bugs.webkit.org/show_bug.cgi?id=160003

many iOS-simulator tests are failing (Requested by litherum on
#webkit).

Reverted changeset:

"[iPhone] Playing a video on tudou.com plays only sound, no
video"
​https://bugs.webkit.org/show_bug.cgi?id=159967
​http://trac.webkit.org/changeset/203471

5:36 PM Changeset in webkit [203483] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r203189): Webpage snapshots are partially or fully blank when edge swiping back
​https://bugs.webkit.org/show_bug.cgi?id=160000
rdar://problem/27455589

Reviewed by Zalan Bujtas.

r203189 triggered a call to -_updateContentRectsWithState: in the middle of a swipe,
during which we'd compute the visible rect of the view as having zero width, causing us
to not create tiles.

-_navigationGestureDidBegin already snapshots the visibleContentRect in _frozenVisibleContentRect,
but -_visibleContentRect then clipped that with ancestor views, causing the issue.

Fix by having -_visibleContentRect just return _frozenVisibleContentRect if we have one.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _visibleContentRect]):

5:23 PM Changeset in webkit [203482] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

iOS: Cannot paste images in RTF content
​https://bugs.webkit.org/show_bug.cgi?id=159964
<rdar://problem/27442806>

Reviewed by Enrica Casucci.

The bug was caused by setDefersLoading(true) not deferring image loading for the parsed fragment.
Worked around this bug by disabling image loading while parsing the document fragment.

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::createFragmentAndAddResources):

5:15 PM Changeset in webkit [203481] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

Address a small FIXME in IDB code.
​https://bugs.webkit.org/show_bug.cgi?id=159999

Reviewed by Andy Estes.

No new tests (No behavior change).

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::IDBRequest):

  • Modules/indexeddb/shared/IDBResourceIdentifier.cpp:

(WebCore::IDBResourceIdentifier::IDBResourceIdentifier): Deleted.

  • Modules/indexeddb/shared/IDBResourceIdentifier.h:
4:28 PM Changeset in webkit [203480] by beidson@apple.com
  • 7 edits in trunk/Source/WebCore

Remove some "modernFoo"s from IndexedDB code.
​https://bugs.webkit.org/show_bug.cgi?id=159985

Reviewed by Andy Estes.

No new tests (No known behavior change).

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::IDBCursor):
(WebCore::IDBCursor::~IDBCursor):
(WebCore::IDBCursor::sourcesDeleted):
(WebCore::IDBCursor::effectiveObjectStore):
(WebCore::IDBCursor::transaction):
(WebCore::IDBCursor::direction):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::advance):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::uncheckedIterateCursor):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::IDBIndex):
(WebCore::IDBIndex::~IDBIndex):
(WebCore::IDBIndex::hasPendingActivity):
(WebCore::IDBIndex::name):
(WebCore::IDBIndex::objectStore):
(WebCore::IDBIndex::keyPath):
(WebCore::IDBIndex::unique):
(WebCore::IDBIndex::multiEntry):
(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::doCount):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::doGet):
(WebCore::IDBIndex::doGetKey):
(WebCore::IDBIndex::markAsDeleted):

  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::transaction):
(WebCore::IDBObjectStore::deleteFunction): Deleted.
(WebCore::IDBObjectStore::modernDelete): Deleted.

  • Modules/indexeddb/IDBObjectStore.h:
  • bindings/js/JSIDBIndexCustom.cpp:

(WebCore::JSIDBIndex::visitAdditionalChildren):

4:28 PM Changeset in webkit [203479] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

REGRESSION(r148588): ews classes might get garbage collected
​https://bugs.webkit.org/show_bug.cgi?id=159990

Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/tool/commands/init.py: Store the loaded ews classes

in a variable so that they do not get garbage collected.

4:24 PM Changeset in webkit [203478] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/Tools

Add API test for layout constraints after exit fullscreen
​https://bugs.webkit.org/show_bug.cgi?id=159900

Patch by Jeremy Jones <​jeremyj@apple.com> on 2016-07-20
Reviewed by Jon Lee.

Added Fullscreen.LaytoutConstraints API test.
Tests fix from ​https://bugs.webkit.org/show_bug.cgi?id=159731

This test compares layout constraints on the web view before and after fullscreen to make sure
they are preserved.

  • TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenLayoutConstraints.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/FullscreenLayoutConstraints.mm: Added.

(-[FullscreenStateChangeMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):

4:23 PM Changeset in webkit [203477] by Ryan Haddad
  • 2 edits in trunk/Tools

Disable two failing API tests.

Unreviewed test gardening.

  • TestWebKitAPI/Tests/mac/CandidateTests.mm:

(TestWebKitAPI::TEST):

4:14 PM Changeset in webkit [203476] by jiewen_tan@apple.com
  • 5 edits
    2 adds in trunk/LayoutTests

Fix timeout of imported/w3c/WebCryptoAPI/idlharness.html
​https://bugs.webkit.org/show_bug.cgi?id=159979

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Add missing resources.

  • WebCryptoAPI/idlharness-expected.txt:
  • WebCryptoAPI/idlharness.html:
  • resources/WebIDLParser.js: Added.

(tokenise):
(WebIDLParseError):
(WebIDLParseError.prototype.toString):
(error):
(consume):
(ws):
(all_ws):
(integer_type):
(float_type):
(primitive_type):
(const_value):
(type_suffix):
(single_type):
(union_type):
(type):
(argument):
(argument_list):
(type_pair):
(simple_extended_attr):
(extended_attrs):
(default_):
(const_):
(inheritance):
(operation_rest):
(callback):
(attribute):
(return_type):
(operation):
(identifiers):
(serialiser):
(iterable_type):
(readonly_iterable_type):
(iterable):
(interface_):
(partial):
(dictionary):
(exception):
(enum_):
(parse):

  • resources/idlharness.js: Added.

(constValue):
(minOverloadLength):
(throwOrReject):
(awaitNCallbacks):
(return.fround):
(fround):
(self.IdlArray):
(IdlArray.prototype.add_idls):
(IdlArray.prototype.add_untested_idls):
(IdlArray.prototype.internal_add_idls):
(IdlArray.prototype.add_objects):
(IdlArray.prototype.prevent_multiple_testing):
(IdlArray.prototype.recursively_get_implements):
(exposed_in):
(IdlArray.prototype.test):
(IdlArray.prototype.assert_type_is):
(IdlObject):
(IdlObject.prototype.test):
(IdlObject.prototype.has_extended_attribute):
(IdlInterface):
(IdlInterface.prototype.is_callback):
(IdlInterface.prototype.has_constants):
(IdlInterface.prototype.is_global):
(IdlInterface.prototype.test):
(IdlInterface.prototype.test_self):
(IdlInterface.prototype.test_member_const):
(IdlInterface.prototype.test_member_attribute):
(IdlInterface.prototype.test_member_operation):
(IdlInterface.prototype.do_member_operation_asserts):
(IdlInterface.prototype.test_member_stringifier):
(IdlInterface.prototype.test_members):
(IdlInterface.prototype.test_object):
(IdlInterface.prototype.test_primary_interface_of):
(IdlInterface.prototype.test_interface_of):
(IdlInterface.prototype.has_stringifier):
(IdlInterface.prototype.do_interface_attribute_asserts):
(IdlInterfaceMember):
(create_suitable_object):
(IdlEnum):
(IdlTypedef):

LayoutTests:

Remove the skip tuple of the test.

4:07 PM Changeset in webkit [203475] by Chris Dumez
  • 3 edits
    2 adds in trunk

Stop using valueToStringWithNullCheck() in JSCSSStyleDeclaration::putDelegate()
​https://bugs.webkit.org/show_bug.cgi?id=159982

Reviewed by Ryosuke Niwa.

Source/WebCore:

valueToStringWithNullCheck() treats null as the null String() which is
legacy / non standard behavior. The specification says we should treat
null as the empty string:

Therefore, we should be using valueToStringTreatingNullAsEmptyString() instead.

In practice, there is no web-exposed behavior change because
MutableStyleProperties::setProperty() removes the property wether the
value is the null String or the empty String.

This behavior is correct since the specification says that we should
remove the property if the value is the empty string:

I added test coverage to make sure we behave according to specification.
This test is passing in Firefox, Chrome and in WebKit (before and after
my change).

Test: fast/css/CSSStyleDeclaration-property-setter.html

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::putDelegate):

LayoutTests:

Add layout test coverage for JSCSSStyleDeclaration::putDelegate(),
covering cases like setting to null or the empty String, to make
sure we behave according to specification.

  • fast/css/CSSStyleDeclaration-property-setter-expected.txt: Added.
  • fast/css/CSSStyleDeclaration-property-setter.html: Added.
4:06 PM Changeset in webkit [203474] by Chris Dumez
  • 7 edits in trunk

Fix null handling of HTMLFrameElement.marginWidth / marginHeight
​https://bugs.webkit.org/show_bug.cgi?id=159987

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/reflection-obsolete-expected.txt:

Source/WebCore:

Fix null handling of HTMLFrameElement.marginWidth / marginHeight:

We are supposed to treat null as the empty string but we treat it as
the string "null".

Firefox and Chrome both match the specification.

No new tests, updated existing tests.

  • html/HTMLFrameElement.idl:

LayoutTests:

Update existing test to reflect the expected behavior change.

  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/element-attribute-js-null.html:
3:56 PM Changeset in webkit [203473] by Wenson Hsieh
  • 2 edits in trunk/Source/WebCore

Pausing autoplayed media should not remove all restrictions for that media element
​https://bugs.webkit.org/show_bug.cgi?id=159988

Reviewed by Jon Lee.

Localizes the removal of behavior restrictions introduced in r203464 upon pausing an
autoplaying video to just affect the hiding or showing of the media controller. This
prevents pages from using Javascript to start playing autoplaying videos that have
been paused by the user.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pause):

3:45 PM Changeset in webkit [203472] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Tools

Merge follow-up patch for rdar://problem/27360961.

3:41 PM Changeset in webkit [203471] by mmaxfield@apple.com
  • 23 edits
    2 deletes in trunk

[iPhone] Playing a video on tudou.com plays only sound, no video
​https://bugs.webkit.org/show_bug.cgi?id=159967
<rdar://problem/26964090>

Reviewed by Jon Lee.

Source/WebCore:

WebKit recently starting honoring the playsinline and webkit-playsinline
attribute on iPhones. However, because these attributes previously did
nothing, some sites (such as Todou) were setting them on their content
and expecting that they are not honored. In this specific case, the
video is absolutely positioned to be 1 pixel x 1 pixel.

Previously, with iOS 9, apps could set the allowsInlineMediaPlayback
property on their WKWebView, which would honor the webkit-playsinline
attribute. Safari on iPhones didn't do this.

In order to not break these existing apps, it's important that the
allowsInlineMediaPlayback preference still allows webkit-playsinline
videos to play inline in apps using WKWebView. However, in Safari, these
videos should play fullscreen. (Todou videos have webkit-playsinline
but not playsinline.)

Therefore, in Safari, videos with playsinline should be inline, but
videos with webkit-playsinline should be fullscreen. In apps using
WKWebViews, if the app sets allowsInlineMediaPlayback, then videos with
playsinline should be inline, and videos with webkit-playsinline should
also be inline. Videos on iPad and Mac should all be inline by default.

We can create some truth tables for the cases which need to be covered:

All apps on Mac / iPad:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Inline
Present | Not present | Inline
Not Present | Present | Inline
Present | Present | Inline

Safari on iPhone:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Fullscreen
Present | Not present | Inline
Not Present | Present | Fullscreen
Present | Present | Inline

App on iPhone which sets allowsInlineMediaPlayback:
Presence of playsinline | Presence of webkit-playsinline | Result
========================|================================|===========
Not present | Not present | Fullscreen
Present | Not present | Inline
Not Present | Present | Inline
Present | Present | Inline

The way to distinguish Safari from another app is to create an SPI
boolean preference which Safari can set. This is already how the
iPhone and iPad are differentiated using the requiresPlayInlineAttribute
which Safari sets but other apps don't. However, this preference is
no longer sufficient because Safari should now be discriminating
between the playsinline and webkit-playsinline attributes. Therefore,
this preference should be extended to two boolean preferences, which
this patch adds:

allowsInlineMediaPlaybackWithPlaysInlineAttribute
allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute

Safari on iPhone will set
allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute to true,
and allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute to
false. Other apps on iPhone will get their defaults values (because they
are SPI) which means they will both be true. On iPad and Mac, apps will
use the defaults values where both are false.

This patch adds support for these two preferences, but does not remove
the existing inlineMediaPlaybackRequiresPlaysInlineAttribute preference.
I will remove the exising preference as soon as I update Safari to migrate
off of it.

Test: media/video-playsinline.html

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):

  • page/Settings.cpp:
  • page/Settings.in:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WebCore::InternalSettings::setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Source/WebKit/mac:

Add the two preferences to WebPreferences.

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences allowsInlineMediaPlaybackWithPlaysInlineAttribute]):
(-[WebPreferences setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]):
(-[WebPreferences allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]):
(-[WebPreferences setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

Add the two preferences to WKWebViewConfiguration and WKPreferences to cover both
the Obj-C API and the C SPI.

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithPlaysInlineAttribute):
(WKPreferencesSetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):
(WKPreferencesGetAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithPlaysInlineAttribute:]):
(-[WKWebViewConfiguration _allowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute]):
(-[WKWebViewConfiguration _setAllowsInlineMediaPlaybackWithWebKitPlaysInlineAttribute:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

LayoutTests:

  • media/video-playsinline.html: Updated.
  • media/video-webkit-playsinline-expected.txt: Removed.
  • media/video-webkit-playsinline.html: Removed.
3:03 PM Changeset in webkit [203470] by Chris Dumez
  • 5 edits in trunk/Source/WebCore

Get rid of custom bindings code for XMLHttpRequest.open()
​https://bugs.webkit.org/show_bug.cgi?id=159984

Reviewed by Ryosuke Niwa.

Get rid of custom bindings code for XMLHttpRequest.open() as the
bindings generator is able to generate it.

Relevant specification:

The issue is that legacy content prevents treating the 'async' argument
being undefined identical from it being omitted. However, this can be
achieved by using overloading in IDL, like in the specification.

No new tests, already covered by the following tests:

  • http/tests/xmlhttprequest/basic-auth.html
  • http/tests/xmlhttprequest/open-async-overload.html
  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::SendFunctor::SendFunctor): Deleted.
(WebCore::SendFunctor::line): Deleted.
(WebCore::SendFunctor::column): Deleted.
(WebCore::SendFunctor::url): Deleted.
(WebCore::SendFunctor::operator()): Deleted.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::open):

  • xml/XMLHttpRequest.h:
  • xml/XMLHttpRequest.idl:
2:21 PM Changeset in webkit [203469] by commit-queue@webkit.org
  • 83 edits in trunk/Source/WebCore

Mark overriden methods in WebCore/svg final classes as final
​https://bugs.webkit.org/show_bug.cgi?id=159966

Patch by Rawinder Singh <​rawinder.singh-webkit@cisra.canon.com.au> on 2016-07-20
Reviewed by Michael Catanzaro.

Update WebCore/svg classes so that overriden methods in final classes are marked final.

  • svg/SVGAElement.h:
  • svg/SVGAltGlyphDefElement.h:
  • svg/SVGAltGlyphItemElement.h:
  • svg/SVGAnimateTransformElement.h:
  • svg/SVGAnimatedColor.h:
  • svg/SVGCircleElement.h:
  • svg/SVGClipPathElement.h:
  • svg/SVGCursorElement.h:
  • svg/SVGDefsElement.h:
  • svg/SVGDescElement.h:
  • svg/SVGEllipseElement.h:
  • svg/SVGFEMergeNodeElement.h:
  • svg/SVGFilterElement.h:
  • svg/SVGFontElement.h:
  • svg/SVGFontFaceElement.h:
  • svg/SVGFontFaceFormatElement.h:
  • svg/SVGFontFaceNameElement.h:
  • svg/SVGFontFaceSrcElement.h:
  • svg/SVGFontFaceUriElement.h:
  • svg/SVGForeignObjectElement.h:
  • svg/SVGGElement.h:
  • svg/SVGGlyphElement.h:
  • svg/SVGGlyphRefElement.h:
  • svg/SVGHKernElement.h:
  • svg/SVGImageElement.h:
  • svg/SVGLineElement.h:
  • svg/SVGMPathElement.h:
  • svg/SVGMaskElement.h:
  • svg/SVGMetadataElement.h:
  • svg/SVGMissingGlyphElement.h:
  • svg/SVGPathBuilder.h:
  • svg/SVGPathByteStreamBuilder.h:
  • svg/SVGPathByteStreamSource.h:
  • svg/SVGPathElement.h:
  • svg/SVGPathSegArcAbs.h:
  • svg/SVGPathSegArcRel.h:
  • svg/SVGPathSegClosePath.h:
  • svg/SVGPathSegCurvetoCubicAbs.h:
  • svg/SVGPathSegCurvetoCubicRel.h:
  • svg/SVGPathSegCurvetoCubicSmoothAbs.h:
  • svg/SVGPathSegCurvetoCubicSmoothRel.h:
  • svg/SVGPathSegCurvetoQuadraticAbs.h:
  • svg/SVGPathSegCurvetoQuadraticRel.h:
  • svg/SVGPathSegCurvetoQuadraticSmoothAbs.h:
  • svg/SVGPathSegCurvetoQuadraticSmoothRel.h:
  • svg/SVGPathSegLinetoAbs.h:
  • svg/SVGPathSegLinetoHorizontalAbs.h:
  • svg/SVGPathSegLinetoHorizontalRel.h:
  • svg/SVGPathSegLinetoRel.h:
  • svg/SVGPathSegLinetoVerticalAbs.h:
  • svg/SVGPathSegLinetoVerticalRel.h:
  • svg/SVGPathSegListBuilder.h:
  • svg/SVGPathSegListSource.h:
  • svg/SVGPathSegMovetoAbs.h:
  • svg/SVGPathSegMovetoRel.h:
  • svg/SVGPathStringSource.h:
  • svg/SVGPathTraversalStateBuilder.h:
  • svg/SVGPatternElement.h:
  • svg/SVGRectElement.h:
  • svg/SVGScriptElement.h:
  • svg/SVGStopElement.h:
  • svg/SVGStyleElement.h:
  • svg/SVGSwitchElement.h:
  • svg/SVGTRefElement.cpp:
  • svg/SVGTitleElement.h:
  • svg/SVGToOTFFontConversion.cpp:
  • svg/SVGUnknownElement.h:
  • svg/SVGVKernElement.h:
  • svg/SVGViewElement.h:
  • svg/SVGZoomEvent.h:
  • svg/animation/SVGSMILElement.cpp:
  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageClients.h:
  • svg/graphics/SVGImageForContainer.h:
  • svg/graphics/filters/SVGFEImage.h:
  • svg/graphics/filters/SVGFilter.h:
  • svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
  • svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
  • svg/properties/SVGAnimatedPropertyTearOff.h:
  • svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
  • svg/properties/SVGMatrixTearOff.h:
  • svg/properties/SVGPathSegListPropertyTearOff.h:
1:28 PM Changeset in webkit [203468] by Wenson Hsieh
  • 2 edits in trunk/Tools

Fix the build after 41dade3

1:03 PM Changeset in webkit [203467] by ChangSeok Oh
  • 2 edits in trunk/Source/WebKit2

Fix a linking failure caused by NetworkCache::Data::~Data()
​https://bugs.webkit.org/show_bug.cgi?id=159931

Linking is failed with clang 3.6. It says WebKit::NetworkCache::Data::~Data is undefined.
It is fixed by adding a destructor for NetworkCache::Data.

Reviewed by Alex Christensen.

  • NetworkProcess/cache/NetworkCacheData.h:

(WebKit::NetworkCache::Data::~Data):

1:00 PM Changeset in webkit [203466] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Remove unnecessary if check from ParkingLot.cpp
​https://bugs.webkit.org/show_bug.cgi?id=159961

Patch by Rajeev Misra <​rajeevmisraforapple@gmail.com> on 2016-07-20
Reviewed by Alex Christensen.

A good practice is to have as less conditional statement
or special cases as possible in code. This change
simply removes a unnecessary "if" statement for
condition which was already evaluated by switch/case
and thus there was no need to evaluate again.

  • wtf/ParkingLot.cpp:
12:42 PM Changeset in webkit [203465] by beidson@apple.com
  • 19 edits in trunk/Source/WebCore

Transition most IDB interfaces from ScriptExecutionContext to ExecState.
​https://bugs.webkit.org/show_bug.cgi?id=159975

Reviewed by Alex Christensen.

No new tests (No known behavior change).

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::deleteFunction):

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBDatabase.idl:
  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::cmp):

  • Modules/indexeddb/IDBFactory.h:
  • Modules/indexeddb/IDBFactory.idl:
  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::openCursor):
(WebCore::IDBIndex::count):
(WebCore::IDBIndex::doCount):
(WebCore::IDBIndex::openKeyCursor):
(WebCore::IDBIndex::get):
(WebCore::IDBIndex::doGet):
(WebCore::IDBIndex::getKey):
(WebCore::IDBIndex::doGetKey):

  • Modules/indexeddb/IDBIndex.h:
  • Modules/indexeddb/IDBIndex.idl:
  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::only): Deleted.

  • Modules/indexeddb/IDBKeyRange.h:
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::openCursor):
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::putOrAdd):
(WebCore::IDBObjectStore::deleteFunction):
(WebCore::IDBObjectStore::doDelete):
(WebCore::IDBObjectStore::modernDelete):
(WebCore::IDBObjectStore::clear):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::count):
(WebCore::IDBObjectStore::doCount):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBObjectStore.idl:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::requestOpenCursor):
(WebCore::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestGetValue):
(WebCore::IDBTransaction::requestGetKey):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::requestCount):
(WebCore::IDBTransaction::requestDeleteRecord):
(WebCore::IDBTransaction::requestClearObjectStore):
(WebCore::IDBTransaction::requestPutOrAdd):

  • Modules/indexeddb/IDBTransaction.h:
  • inspector/InspectorIndexedDBAgent.cpp:
12:25 PM Changeset in webkit [203464] by Wenson Hsieh
  • 5 edits
    1 add in trunk

Media controls don't appear when pausing a small autoplaying video
​https://bugs.webkit.org/show_bug.cgi?id=159972
<rdar://problem/27180657>

Reviewed by Beth Dakin.

Source/WebCore:

When pausing an autoplaying video, remove behavior restrictions for the
initial user gesture and show media controls.

New WebKit API test. See VideoControlsManagerSingleSmallAutoplayingVideo.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::pause):

Tools:

Adds a new test that verifies media controls show up when pausing a small autoplayed video. Also adds mechanisms
for simulating basic user interaction in VideoControlsManager.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/VideoControlsManager.mm:

(-[WKWebView mouseDownAtPoint:]):
(-[DidPlayMessageHandler userContentController:didReceiveScriptMessage:]):
(-[OnLoadMessageHandler initWithWKWebView:handler:]):
(-[OnLoadMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/autoplaying-video-with-audio.html: Added.
12:21 PM Changeset in webkit [203463] by Chris Dumez
  • 7 edits in trunk

Fix null handling of HTMLMediaElement.mediaGroup
​https://bugs.webkit.org/show_bug.cgi?id=159974

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/reflection-embedded-expected.txt:

Source/WebCore:

Fix null handling of HTMLMediaElement.mediaGroup to match the specification:

null is supposed to be treated as the String "null". This patch aligns
our behavior with the specification. I tested Firefox and Chrome but both
do not have this attribute on HTMLMediaElement.

Also remove support for [TreatNullAs=LegacyNullString] from our bindings
generator as HTMLMediaElement.mediaGroup was the last user.

No new tests, rebaselined existing test.

  • bindings/scripts/CodeGeneratorJS.pm:

(JSValueToNative):

  • bindings/scripts/IDLAttributes.txt:
  • html/HTMLMediaElement.idl:
11:59 AM Changeset in webkit [203462] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Explain the default value of WKWebViewConfiguration's ignoresViewportScaleLimits
​https://bugs.webkit.org/show_bug.cgi?id=159978
<rdar://problem/27453189>

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:

This defaults to NO.

11:10 AM Changeset in webkit [203461] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 9

Added a tag for Safari Technology Preview release 9.

11:01 AM Changeset in webkit [203460] by Chris Dumez
  • 4 edits
    2 adds in trunk

CSSStyleDeclaration.setProperty() should be able to unset "important" on a property
​https://bugs.webkit.org/show_bug.cgi?id=159959

Reviewed by Alexey Proskuryakov.

Source/WebCore:

CSSStyleDeclaration.setProperty() should be able to unsert "important"
on a property as per the latest specification:

Firefox and Chrome match the specification here but WebKit was ignoring calls
to setProperty() if there is already an "important" property wit this name
and if the new property does not have the "important" flag set.

This behavior was added a long time ago via Bug 60007. However, it does not
match the latest specification or other browsers.

Test: fast/css/CSSStyleDeclaration-setProperty-unset-important.html

  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::addParsedProperty):
Drop code that was added via Bug 60007 as this behavior no longer matches the
specification or other browsers. The layout test added in Bug 60007 fails in
other browsers and was updated in this patch to match the specification.

LayoutTests:

  • fast/css/CSSStyleDeclaration-setProperty-unset-important-expected.txt: Added.
  • fast/css/CSSStyleDeclaration-setProperty-unset-important.html: Added.

Add layout test coverage.

  • fast/css/important-js-override.html:

The test covered our 'wrong' behavior and was failing in Firefox / Chrome.
I updated the test to match the behavior in the specification. The test
now passed in Chrome and Firefox.

10:55 AM Changeset in webkit [203459] by Ryan Haddad
  • 13 edits
    2 deletes in trunk

Unreviewed, rolling out r203423.
​https://bugs.webkit.org/show_bug.cgi?id=159977

The test for this change is failing on Mac Release WK2
(Requested by ryanhaddad on #webkit).

Reverted changeset:

"HTMLVideoElement frames do not update on iOS when src is a
MediaStream blob"
​https://bugs.webkit.org/show_bug.cgi?id=159833
​http://trac.webkit.org/changeset/203423

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

10:54 AM Changeset in webkit [203458] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

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

  • platform/mac/TestExpectations:
10:18 AM Changeset in webkit [203457] by pvollan@apple.com
  • 2 edits in trunk/Tools

[Win] MathML fonts are not found.
​https://bugs.webkit.org/show_bug.cgi?id=159920

Reviewed by Alex Christensen.

When looking up a font in the registry, use the /v option of the Windows 'reg query' command to query
for a specific registry key value.

  • Scripts/webkitdirs.pm:

(fontExists):

9:44 AM WebKitGTK/2.12.x edited by clopez@igalia.com
(diff)
9:37 AM Changeset in webkit [203456] by Chris Dumez
  • 4 edits
    2 adds in trunk

Fix null handling of HTMLSelectElement.value attribute
​https://bugs.webkit.org/show_bug.cgi?id=159925

Reviewed by Benjamin Poulain.

Source/WebCore:

Fix null handling of HTMLSelectElement.value attribute:

We were treating null as the null String which would end up setting
selectedIndex to -1. However, we should treat null as the String "null"
which would set the selectedIndex to the index of the <option> element
whose value is "null".

Firefox and Chrome match the specification.

Test: fast/dom/HTMLSelectElement/value-null-handling.html

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::setValue):

  • html/HTMLSelectElement.idl:

LayoutTests:

Add layout test coverage. I have verified that this test is passing in
both Firefox and Chrome.

  • fast/dom/HTMLSelectElement/value-null-handling-expected.txt: Added.
  • fast/dom/HTMLSelectElement/value-null-handling.html: Added.
8:50 AM Changeset in webkit [203455] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Consolidating duplicate TestExpectations for fast/images/animated-png.html.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
8:41 AM Changeset in webkit [203454] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Pausing when Debugger tab is closed opens tab in wrong state
​https://bugs.webkit.org/show_bug.cgi?id=159946
<rdar://problem/27429886>

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

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
At the end of construction, update the UI to match the current state
of the world. Such as updating the UI if we are paused, or if the
Timeline is capturing and we are temporarily disabling breakpoints.

8:40 AM Changeset in webkit [203453] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

Improve prepare-ChangeLog for @media blocks
​https://bugs.webkit.org/show_bug.cgi?id=159907

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

  • Scripts/prepare-ChangeLog:

(get_selector_line_ranges_for_css):
Get a range for @media blocks just like a selector.

Start Line = line with '{'
End line = line with '}'
Name = "@media ..."

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests_warning-expected.txt:

Improved error messages for unbalanced portions.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests-expected.txt:
  • Scripts/webkitperl/prepare-ChangeLog_unittest/resources/css_unittests.css:

(.media-query::before):
(@media only screen and (max-width: 980px)):
(.media-query a):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.both a):
(.both b):
(.media-query b):
(.media-query::after):

7:50 AM Changeset in webkit [203452] by msaboff@apple.com
  • 6 edits
    1 add in trunk/Source/JavaScriptCore

CrashOnOverflow in JSC::Yarr::YarrPatternConstructor::setupAlternativeOffsets
​https://bugs.webkit.org/show_bug.cgi?id=159954

Reviewed by Benjamin Poulain.

YarrPatternConstructor::setupAlternativeOffsets() is using the checked arithmetic class
Checked<>, for offset calculations. However the default use will just crash on
overflow. Instead we should stop processing and propagate the error up the call stack.

Consolidated explicit error string with the common RegExp parsing error logic.
Moved that logic to YarrPattern as that seems like a better common place to put it.

  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • tests/stress/regress-159954.js: New test.
  • yarr/YarrParser.h:

(JSC::Yarr::Parser::CharacterClassParserDelegate::CharacterClassParserDelegate):
(JSC::Yarr::Parser::CharacterClassParserDelegate::atomPatternCharacter):
(JSC::Yarr::Parser::Parser):
(JSC::Yarr::Parser::isIdentityEscapeAnError):
(JSC::Yarr::Parser::parseEscape):
(JSC::Yarr::Parser::parseCharacterClass):
(JSC::Yarr::Parser::parseParenthesesBegin):
(JSC::Yarr::Parser::parseParenthesesEnd):
(JSC::Yarr::Parser::parseQuantifier):
(JSC::Yarr::Parser::parseTokens):
(JSC::Yarr::Parser::parse):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::disjunction):
(JSC::Yarr::YarrPatternConstructor::setupDisjunctionOffsets):
(JSC::Yarr::YarrPatternConstructor::setupOffsets):
(JSC::Yarr::YarrPattern::errorMessage):
(JSC::Yarr::YarrPattern::compile):

  • yarr/YarrPattern.h:

(JSC::Yarr::YarrPattern::reset):

6:07 AM Changeset in webkit [203451] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[Linux] MemoryPressureMonitor fallback code to get memory available in older linux kernels doesn't work
​https://bugs.webkit.org/show_bug.cgi?id=159970

Reviewed by Antonio Gomes.

We are failing to detect zones when parsing /proc/zoneinfo.

  • UIProcess/linux/MemoryPressureMonitor.cpp:

(WebKit::lowWatermarkPages): Use strncmp since we want to know whether the line starts with "Node".
(WebKit::MemoryPressureMonitor::MemoryPressureMonitor): Stop the polling if we fail to get the memory available,
because that means it's not sopported in the system for whatever reason.

6:02 AM Changeset in webkit [203450] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

PostResolutionCallbackDisabler can resume pending requests while a ResourceLoadSuspender is alive
​https://bugs.webkit.org/show_bug.cgi?id=159962
<rdar://problem/21439264>

Reviewed by David Kilzer.

PostResolutionCallbackDisabler can resume pending requests while a ResourceLoadSuspender
is alive. We have both PostResolutionCallbackDisabler and ResourceLoadSuspender that
call LoaderStrategy::suspendPendingRequests() / LoaderStrategy::resumePendingRequests().
However, PostResolutionCallbackDisabler and ResourceLoadSuspender are not aware of each
other. It is therefore possible for a PostResolutionCallbackDisabler object to get
destroyed, causing LoaderStrategy::resumePendingRequests() to be called while a
ResourceLoadSuspender object is alive.

This leads to hard to investigate crashes where we end up re-entering WebKit and killing
the style resolver.

This patch drops ResourceLoadSuspender and uses PostResolutionCallbackDisabler instead.
There was only one user of ResourceLoadSuspender and PostResolutionCallbackDisabler
is better because it manages a resolutionNestingDepth counter internally to make sure
it only calls LoaderStrategy::resumePendingRequests() once all
PostResolutionCallbackDisabler instances are destroyed.

No new tests, there is no easy way to reproduce the crashes.

  • dom/Document.cpp:

(WebCore::Document::styleForElementIgnoringPendingStylesheets):

  • loader/LoaderStrategy.cpp:

(WebCore::ResourceLoadSuspender::ResourceLoadSuspender): Deleted.
(WebCore::ResourceLoadSuspender::~ResourceLoadSuspender): Deleted.

  • loader/LoaderStrategy.h:
5:17 AM Changeset in webkit [203449] by Carlos Garcia Campos
  • 5 edits in trunk/Source/WebKit2

[Threaded Compositor] Web Process crash when the layer tree host is destroyed
​https://bugs.webkit.org/show_bug.cgi?id=159922

Reviewed by Sergio Villar Senin.

It happens when the layer tree host is destroyed after the didChangeVisibleRect is scheduled to be run in the
main thread, but before it's actually dispatched. In that case the threaded compositor client points to a
deleted object and crashes when trying to dereference it.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::~ThreadedCompositor): Add an assert to ensure invalidate is always called before
the object is deleted.
(WebKit::ThreadedCompositor::invalidate): Terminate the compositing thread and nullify the client.
(WebKit::ThreadedCompositor::didChangeVisibleRect): Return early if the client is null when the task is
dispatched in the main thread.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h: Add invalidate().
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::invalidate): Invalidate the ThreadedCompositor and chain up.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:
3:55 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
1:50 AM Changeset in webkit [203448] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Fix expectedFailErrorHandler in run-jsc-stress-tests
​https://bugs.webkit.org/show_bug.cgi?id=159811

Reviewed by Yusuke Suzuki.

  • Scripts/run-jsc-stress-tests:
1:49 AM Changeset in webkit [203447] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Unreviewed Mac cmake buildfix after r203426. Just for fun.

  • TestWebKitAPI/PlatformMac.cmake:
12:30 AM Changeset in webkit [203446] by Csaba Osztrogonác
  • 2 edits in trunk

JSC JIT Broken on ARMv7 Traditional (without Thumb2)
​https://bugs.webkit.org/show_bug.cgi?id=159880

Reviewed by Carlos Garcia Campos.

  • Source/cmake/OptionsCommon.cmake: Use the BFD linker on ARM traditional because of a gold linker bug.

Jul 19, 2016:

11:23 PM Changeset in webkit [203445] by commit-queue@webkit.org
  • 10 edits
    1 copy in trunk/Source/WebCore

[Fetch API] Add a JS builtin to implement ​https://fetch.spec.whatwg.org/#concept-headers-fill
​https://bugs.webkit.org/show_bug.cgi?id=159932

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

Covered by existing tests.

Refactoring Headers initializeWith to use the new built-in internal that implements
​https://fetch.spec.whatwg.org/#concept-headers-fill.

Refactoring Response constructor to put more checks in the JS builtin fucntion called within constructor.
Making use of the new built-in internal that implements ​https://fetch.spec.whatwg.org/#concept-headers-fill.

  • CMakeLists.txt: Adding FetchHeadersInternals.js
  • DerivedSources.make: Ditto.
  • Modules/fetch/FetchHeaders.js:

(initializeFetchHeaders): Using fillFetchHeaders new built-in internal.

  • Modules/fetch/FetchInternals.js: Added.

(fillFetchHeaders):

  • Modules/fetch/FetchResponse.cpp: Refactoring to do more in the JS built-in. Splitting of initializeWith so

that the checks are done in the order defined by the spec.
(WebCore::FetchResponse::setStatus):
(WebCore::FetchResponse::initializeWith):
(WebCore::isNullBodyStatus): Deleted.

  • Modules/fetch/FetchResponse.h:
  • Modules/fetch/FetchResponse.idl:
  • Modules/fetch/FetchResponse.js:

(initializeFetchResponse): New built-in internal.

  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/WebCoreBuiltinNames.h:
10:13 PM Changeset in webkit [203444] by Chris Dumez
  • 5 edits in trunk

Fix null handling of SVGScriptElement.type attribute
​https://bugs.webkit.org/show_bug.cgi?id=159927

Reviewed by Benjamin Poulain.

Source/WebCore:

Fix null handling of SVGScriptElement.type attribute:

We were treating null as the null String which would end up removing
the 'type' content attribute. However, we should treat null as the
String "null".

Firefox and Chrome match the specification.

No new tests, updated existing test.

  • svg/SVGScriptElement.idl:

LayoutTests:

Rebaseline existing test to reflect the behavior change.

  • svg/dom/svg-element-attribute-js-null-expected.txt:
  • svg/dom/svg-element-attribute-js-null.xhtml:
10:09 PM Changeset in webkit [203443] by Chris Dumez
  • 5 edits
    2 adds in trunk

Fix null handling of several HTMLDocument attributes
​https://bugs.webkit.org/show_bug.cgi?id=159923

Reviewed by Benjamin Poulain.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/reflection-sections-expected.txt:

Source/WebCore:

Fix null handling of several HTMLDocument attributes:

In particular, null handling was incorrect in WebKit for 'dir',
'bgColor', 'fgColor', 'alinkColor', 'linkColor' and 'vlinkColor'.

Firefox and Chrome match the specification.

Test: fast/dom/HTMLDocument/null-handling.html

  • html/HTMLDocument.idl:

LayoutTests:

Add layout test coverage. I have verified that this test is passing in
both Firefox and Chrome.

  • fast/dom/HTMLDocument/null-handling-expected.txt: Added.
  • fast/dom/HTMLDocument/null-handling.html: Added.
8:23 PM Changeset in webkit [203442] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Automation: WebAutomationSessionProxy's HashMaps should support '0' as valid keys
​https://bugs.webkit.org/show_bug.cgi?id=159957
<rdar://problem/27376446>

Reviewed by Joseph Pecoraro.

  • WebProcess/Automation/WebAutomationSessionProxy.h:

Use UnsignedWithZeroKeyHashTraits to avoid problems with zero as a key.

6:45 PM Changeset in webkit [203441] by Chris Dumez
  • 13 edits in trunk

Document.createElementNS() / createAttributeNS() parameters should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=159938

Reviewed by Benjamin Poulain.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:

Source/WebCore:

Document.createElementNS() / createAttributeNS() parameters should be mandatory:

They were optional in WebKit. However, Firefox and Chrome both match the
specification.

No new tests, rebaselined existing tests.

  • dom/Document.idl:

LayoutTests:

Update / rebaseline existing tests to reflect the behavior change.

  • fast/dom/Document/createAttributeNS-namespace-err-expected.txt:
  • fast/dom/Document/createElementNS-namespace-err-expected.txt:
  • fast/dom/Document/script-tests/createAttributeNS-namespace-err.js:
  • fast/dom/Document/script-tests/createElementNS-namespace-err.js:
  • fast/dom/attribute-downcast-right.html:
6:45 PM Changeset in webkit [203440] by fpizlo@apple.com
  • 5 edits in trunk

The default testing mode should not involve disabling the FTL JIT
​https://bugs.webkit.org/show_bug.cgi?id=159929

Rubber stamped by Mark Lam and Saam Barati.

Source/JavaScriptCore:

Use the new powers to make some tests run only in the default configuration (i.e. FTL,
concurrent JIT).

  • tests/mozilla/mozilla-tests.yaml:

Tools:

It used to be the case that most actively maintained ports did not have the FTL JIT enabled.
Heck, for most of the FTL's initial development, it wasn't enabled anywhere. So, testing the
FTL was not the default. You had to enable it with an option.

For some reason we have kept this arrangement even though the FTL JIT is now the default on
all of the major ports. This has become a serious pain. For example, it's useful to be able
to say that a test should only run in the default config that is representative of what a
normal user would see if they ran JSC. Clearly, this would be a config that does not
explicitly disable the FTL JIT on the command line. However, if you try to specify this then
your test won't run at all if the --ftl-jit option is not passed. That's dangerous!

So, this change gets rid of all of this logic. I think it's better to get rid of it then to
try to fix it, because:

  • I don't know what the fix would look like. Presumably it would ensure that ports that don't have the FTL enabled never run any tests that explicitly disable the FTL, since that doesn't do anything. The code is not really structured to allow this.


  • It benefits a minority of clients. Three build bots run tests in a config that has the FTL disabled in testing. On the other hand there are already build bots that do FTL tests despite having the FTL disabled by virtue of being a 32-bit platform. So, maybe rather than preserving this broken feature, we should create something that (a) acknowledges the fact that the FTL is the default on those platforms that support it and (b) avoids running no-ftl tests on precisely those platforms that don't have FTL.


  • To the extent that some bots benefited from disabling FTL tests, they were doing it by relying on a feature that was never meant to stick around. The FTL JIT is meant to be the default configuration. Disabling the FTL JIT is the non-default. So, we shouldn't be pretending that the FTL JIT is not the default just because some bots used that as an optimization.


This change allows me to speed up some debug tests and paint some bots green.

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests):

  • Scripts/run-jsc-stress-tests:
6:29 PM Changeset in webkit [203439] by benjamin@webkit.org
  • 3 edits
    4 adds in trunk

Use getElementById for attribute matching if the attribute name is html's id
​https://bugs.webkit.org/show_bug.cgi?id=159960

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-07-19
Reviewed by Chris Dumez.

Source/WebCore:

Elliott Sprehn discovered YUI makes heavy uses of querySelector with [id=value]
(​https://bugs.chromium.org/p/chromium/issues/detail?id=627242).

If we are not in quirks mode, IdForStyleResolution has the same value
as the Id attribute. We can use the same optimization for both cases.

Tests: fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks.html

fast/selectors/id-attribute-querySelector-used-as-id-selector.html

  • dom/SelectorQuery.cpp:

(WebCore::canBeUsedForIdFastPath):
(WebCore::findIdMatchingType):
(WebCore::SelectorDataList::SelectorDataList):
(WebCore::selectorForIdLookup):
(WebCore::filterRootById):

LayoutTests:

  • fast/selectors/id-attribute-querySelector-used-as-id-selector-expected.txt: Added.
  • fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks-expected.txt: Added.
  • fast/selectors/id-attribute-querySelector-used-as-id-selector-quirks.html: Added.
  • fast/selectors/id-attribute-querySelector-used-as-id-selector.html: Added.
6:27 PM Changeset in webkit [203438] by Chris Dumez
  • 7 edits
    2 adds in trunk

Drop SVGElement.xmlbase attribute
​https://bugs.webkit.org/show_bug.cgi?id=159926

Reviewed by Benjamin Poulain.

Source/WebCore:

Drop SVGElement.xmlbase attribute as it is no longer part of the
specification:

Both Firefox and Chrome have already dropped support for
SVGElement.xmlbase.

Chrome's intent to remove:
​https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/TfwMq4d25hk/C-v_iC_wKfAJ

Test: svg/dom/SVGElement-xmlbase.html

  • svg/SVGElement.cpp:

(WebCore::SVGElement::removedFrom): Deleted.

  • svg/SVGElement.h:
  • svg/SVGElement.idl:

LayoutTests:

  • svg/dom/SVGElement-xmlbase-expected.txt: Added.
  • svg/dom/SVGElement-xmlbase.html: Added.

Check that SVGElement.xmlbase does not exist.

  • svg/dom/svg-element-attribute-js-null-expected.txt:
  • svg/dom/svg-element-attribute-js-null.xhtml:

Drop obsolete testing for SVGElement.xmlbase.

6:20 PM Changeset in webkit [203437] by Chris Dumez
  • 5 edits
    2 adds in trunk

Align CSSStyleDeclaration.setProperty() with the specification
​https://bugs.webkit.org/show_bug.cgi?id=159955

Reviewed by Benjamin Poulain.

Source/WebCore:

Align CSSStyleDeclaration.setProperty() with the specification:

In particular, the following changes were needed:

  1. The 'value' parameter should not be optional
  2. The 'priority' parameter should treat null as the empty string rather than the string "null".
  3. The 'priority' parameter's default value should be the empty string, not the string "undefined".
  4. CSSStyleDeclaration.setProperty() should return early if 'priority' is not the empty string and is not an ASCII case-insensitive match for the string "important".

Chrome matches the specification entirely.
Firefox matches the specification with the exception that it does a
case-sensitive match for "important".

Test: fast/css/CSSStyleDeclaration-setProperty.html

  • css/CSSStyleDeclaration.idl:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::setProperty):

LayoutTests:

Add layout test coverage.

  • fast/css/CSSStyleDeclaration-setProperty-expected.txt: Added.
  • fast/css/CSSStyleDeclaration-setProperty.html: Added.
  • fast/css/shorthand-priority.html:
5:29 PM Changeset in webkit [203436] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix API test after r203426.
​https://bugs.webkit.org/show_bug.cgi?id=159949

  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:

(TEST):
If there is website data already on disk, the initial count after putting the AppCache data in place will not be exactly 1.
This is no problem. We want to verify that it is a nonzero number and that it decrements by one when we remove the 1 AppCache data.

5:09 PM Changeset in webkit [203435] by aestes@apple.com
  • 6 edits in trunk

Move WebKitErrorFrameLoadBlockedByContentFilter from WebKitErrors.h to WebKitErrorsPrivate.h
​https://bugs.webkit.org/show_bug.cgi?id=159956

Reviewed by Dan Bernstein.

Source/WebKit/mac:

  • Misc/WebKitErrors.h: Moved definition of WebKitErrorFrameLoadBlockedByContentFilter from here ...
  • Misc/WebKitErrorsPrivate.h: to here.

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/ContentFiltering.mm: Included WKErrorRef.h.

(-[LoadAlternateNavigationDelegate webView:didFailProvisionalNavigation:withError:]):
Used kWKErrorCodeFrameLoadBlockedByContentFilter instead of WebKitErrorFrameLoadBlockedByContentFilter.

  • TestWebKitAPI/Tests/mac/ContentFiltering.mm: Included WebKitErrorsPrivate.h instead of WebKitErrors.h.
4:38 PM Changeset in webkit [203434] by dbates@webkit.org
  • 5 edits
    56 adds in trunk

CSP: Improve support for multiple policies to more closely conform to the CSP Level 2 spec.
​https://bugs.webkit.org/show_bug.cgi?id=159841
<rdar://problem/27381684>

Reviewed by Brent Fulgham.

Source/WebCore:

Implement a first pass at sending multiple violation reports so as to more closely
conform to section Enforcing multiple policies of the Content Security Policy Level 2 spec.,
<​https://w3c.github.io/webappsec-csp/2/> (Editor's Draft, 25 April 2016).

Tests: http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports.php

http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only.html
http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only.html
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html
http/tests/security/contentSecurityPolicy/1.1/scriptnonce-multiple-policies.html

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::allPoliciesWithDispositionAllow): Added. Returns whether the resource
is allowed by all of the policies with the specified disposition.
(WebCore::ContentSecurityPolicy::allPoliciesAllow): Added. Returns whether the resource is allowed by
all of the enforced policies.
(WebCore::ContentSecurityPolicy::findHashOfContentInPolicies): Formerly named foundHashOfContentInAllPolicies.
Modified to return a ("has found hash in all enforced policies, "has found hash in all report-only policies)-pair
so that we can differentiate whether the hash violated an enforced policy or a report-only policy.
(WebCore::ContentSecurityPolicy::allowJavaScriptURLs): Write in terms of ContentSecurityPolicy::allPoliciesAllow().
(WebCore::ContentSecurityPolicy::allowInlineEventHandlers): Ditto.
(WebCore::ContentSecurityPolicy::allowScriptWithNonce): For now only accept a nonce if it is allowed by
all enforced policies. As a side effect of this change is that we only send a CSP violation report when a
nonce violates a report-only policy only if the nonce also violates one or more enforced policies. We will
address this limitation in <​https://bugs.webkit.org/show_bug.cgi?id=159830>.
(WebCore::ContentSecurityPolicy::allowStyleWithNonce): Ditto.
(WebCore::ContentSecurityPolicy::allowInlineScript): Differentiate between a hash/'unsafe-inline' that
matches/is contained in all enforce policies and a hash/'unsafe-inline' that matches/is contained in all
report-only policies so that we only allow the resource for the former. As a side effect of this change
we may report that a resource violated a policy even if it contained the hash. See <​https://bugs.webkit.org/show_bug.cgi?id=159832>
for more details.
(WebCore::ContentSecurityPolicy::allowInlineStyle): Ditto.
(WebCore::ContentSecurityPolicy::allowEval): Write in terms of ContentSecurityPolicy::allPoliciesAllow().
(WebCore::ContentSecurityPolicy::allowFrameAncestors): Ditto.
(WebCore::ContentSecurityPolicy::allowPluginType): Ditto.
(WebCore::ContentSecurityPolicy::allowScriptFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowObjectFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowChildFrameFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowChildContextFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowImageFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowStyleFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowFontFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowMediaFromSource): Ditto.
(WebCore::ContentSecurityPolicy::allowConnectToSource): Ditto.
(WebCore::ContentSecurityPolicy::allowFormAction): Ditto.
(WebCore::ContentSecurityPolicy::allowBaseURI): Ditto.
(WebCore::ContentSecurityPolicy::foundHashOfContentInAllPolicies): Deleted.

  • page/csp/ContentSecurityPolicy.h:

(WebCore::ContentSecurityPolicy::violatedDirectiveInAnyPolicy): Deleted.

LayoutTests:

  • http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-enforced-policy-and-not-in-report-only.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-enforced-policy-and-not-in-report-only.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/resources/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/script-blocked-sends-multiple-reports.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-enforced-policy-and-blocked-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-enforced-policy-and-allowed-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scripthash-multiple-policies-expected.txt: Update expected result to reflect additional console

messages. We will remove these extraneous console messages as part of the fix for <​https://bugs.webkit.org/show_bug.cgi?id=159832>.

  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-allowed-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2.php: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-one-enforced-policy-neither-in-another-enforced-policy-nor-report-policy.html: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-multiple-policies-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/1.1/scriptnonce-multiple-policies.html: Added.
4:30 PM Changeset in webkit [203433] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.42.1/Source

Versioning.

4:28 PM Changeset in webkit [203432] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.42.1

New tag.

4:27 PM Changeset in webkit [203431] by bshafiei@apple.com
  • 8 edits in branches/safari-602-branch/Source/JavaScriptCore

Merged r203419. rdar://problem/27420308

4:26 PM Changeset in webkit [203430] by bshafiei@apple.com
  • 2 edits in branches/safari-602-branch/Source/WebCore

Merged r203404. rdar://problem/27420308

4:06 PM Changeset in webkit [203429] by achristensen@apple.com
  • 2 edits in trunk/Tools

Add regression test for r203392
​https://bugs.webkit.org/show_bug.cgi?id=159949

Reviewed by Brady Eidson.

  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:

(fileSize):
(swizzledBundleIdentifierWebBookmarksD):
(defaultApplicationCacheDirectory):
(TEST):
(swizzledBundleIdentifierMobileSafari): Deleted.
This actually tests that webbookmarksd uses the path quirk in WebsiteDataStore::defaultApplicationCacheDirectory.
I wanted to verify that it uses the same path as MobileSafari, but swizzling out the bundleIdentifier twice caused
problems with the static bools that are set once in RuntimeApplicationChecks.mm.

3:55 PM Changeset in webkit [203428] by Chris Dumez
  • 6 edits in trunk

Fix null handling of HTMLScriptElement.text attribute
​https://bugs.webkit.org/show_bug.cgi?id=159943

Reviewed by Benjamin Poulain.

LayoutTests/imported/w3c:

Rebaseline W3C test now that one more check is passing.

  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-text-expected.txt:

Source/WebCore:

Fix null handling of HTMLScriptElement.text attribute:

We should treat null as the "null" String but we were treating it as
the empty string.

Firefox and Chrome match the specification.

No new tests, rebaselined existing test.

  • html/HTMLScriptElement.idl:
3:55 PM Changeset in webkit [203427] by Chris Dumez
  • 5 edits
    2 adds in trunk

autocapitalize attribute should not use [TreatNullAs=LegacyNullString]
​https://bugs.webkit.org/show_bug.cgi?id=159934

Reviewed by Benjamin Poulain.

Source/WebCore:

autocapitalize attribute should not use [TreatNullAs=LegacyNullString]. This is
non-standard and we want to drop support for it from the bindings generator.

Instead, use [TreatNullAs=EmptyString] in order to maintain existing behavior
given that both a missing/empty attribute result in using the default
autocapitalization mode and that autocapitalize returns the empty string by
default.

Test: platform/ios-simulator/ios/fast/forms/autocapitalize-null.html

  • html/HTMLFormElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLTextAreaElement.idl:

LayoutTests:

Add layout test coverage.

  • platform/ios-simulator/ios/fast/forms/autocapitalize-null-expected.txt: Added.
  • platform/ios-simulator/ios/fast/forms/autocapitalize-null.html: Added.
3:51 PM Changeset in webkit [203426] by achristensen@apple.com
  • 3 edits
    2 moves
    3 adds in trunk/Tools

Add regression test for r203392
​https://bugs.webkit.org/show_bug.cgi?id=159949

Reviewed by Brady Eidson.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db-shm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/ApplicationCache.db-wal: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm:

(TEST):
(fileSize):
(swizzledBundleIdentifierMobileSafari):
(swizzledBundleIdentifierWebBookmarksD):
(defaultApplicationCacheDirectory):

  • TestWebKitAPI/cocoa/InstanceMethodSwizzler.h: Copied from TestWebKitAPI/mac/InstanceMethodSwizzler.h.
  • TestWebKitAPI/cocoa/InstanceMethodSwizzler.mm: Copied from TestWebKitAPI/mac/InstanceMethodSwizzler.mm.
  • TestWebKitAPI/mac/InstanceMethodSwizzler.h: Removed.
  • TestWebKitAPI/mac/InstanceMethodSwizzler.mm: Removed.
3:50 PM Changeset in webkit [203425] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore
REGRESSION(r203415): ASSERTION FAILED: !m_layoutRoot->container()
!m_layoutRoot->container()->needsLayout()

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

Reviewed by Simon Fraser.

Update ASSERTs to reflect new functionality, that is, now we can end up in a state
where the container (RenderView) of one of the dirty subtrees is dirty.
See r203415.

Covered by editing/pasteboard/drag-drop-input-in-svg.svg

  • page/FrameView.cpp:

(WebCore::FrameView::scheduleRelayoutOfSubtree):

3:43 PM Changeset in webkit [203424] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(202927): The first slide is the only displayed slide when Quicklooking a Keynote file
​https://bugs.webkit.org/show_bug.cgi?id=159948
<rdar://problem/27391012>

Reviewed by Simon Fraser.

There is an iOS bug (<rdar://problem/27416744>) that is causing us
to not always get a color space on CGContextRefs. Investigation of this
exposed some optimizations we can take when we are creating ImageBuffers.
In particular, if we have a bitmap context or an IOSurfaceContext we
can simply copy their color space using API. Otherwise we stick with
the existing CGContextCopyDeviceColorSpace.

Lastly, if for some reason we are unable to copy the device color space,
we should fall back to sRGB.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer):

  • platform/spi/cg/CoreGraphicsSPI.h: Add some SPI and enums.
3:35 PM Changeset in webkit [203423] by commit-queue@webkit.org
  • 13 edits
    2 adds in trunk

HTMLVideoElement frames do not update on iOS when src is a MediaStream blob
​https://bugs.webkit.org/show_bug.cgi?id=159833
<rdar://problem/27379487>

Patch by George Ruan <​gruan@apple.com> on 2016-07-19
Reviewed by Eric Carlson.

Source/WebCore:

Test: fast/mediastream/MediaStream-video-element-displays-buffer.html

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/avfoundation/MediaSampleAVFObjC.h: Change create to return a Ref<T> instead

of RefPtr<T>

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h: Make observer of

MediaStreamTrackPrivate and make MediaPlayer use an AVSampleBufferDisplayLayer instead of CALayer.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm: Ditto.

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC): Clean up
observers and AVSampleBufferDisplayLayer
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::isAvailable): Ensures AVSampleBufferDisplayLayer
is available.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueAudioSampleBufferFromTrack): Placeholder.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSampleBufferFromTrack): Responsible
for enqueuing sample buffers to the active video track.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayer): Ensures that an AVSampleBufferDisplayLayer
exists.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayer): Destroys the AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer): Replace CALayer with AVSampleBufferDisplayLayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentDisplayMode): Ditto.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::sampleBufferUpdated): Called from MediaStreamTrackPrivate when a
new SampleBuffer is available.
(WebCore::updateTracksOfType): Manage adding and removing self as observer from tracks.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks): Replace CALayer with AVSampleBufferDisplayLayer
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::acceleratedRenderingStateChanged): Copied from
MediaPlayerPrivateMediaSourceAVFObjC.mm
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Deleted CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayMode): Deleted process of updating CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateIntrinsicSize): Deleted CALayer.
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers): Deleted.

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::updateActiveVideoTrack): Remove redundant check.

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::sourceHasMoreMediaData): Called from RealtimeMediaSource when a new SampleBuffer
is available.

  • platform/mediastream/MediaStreamTrackPrivate.h:

(WebCore::MediaStreamTrackPrivate::Observer::sampleBufferUpdated): Relays to MediaPlayerPrivateMediaStream that
a new SampleBuffer is available to enqueue to the AVSampleBufferDisplayLayer.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::mediaDataUpdated): Relays to all observers that a new SampleBuffer is available.

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::processNewFrame): Calls mediaDataUpdated when a new SampleBuffer is captured.

LayoutTests:

  • fast/mediastream/MediaStream-video-element-displays-buffer-expected.txt: Added.
  • fast/mediastream/MediaStream-video-element-displays-buffer.html: Added. Checks that

a video element with a mediastream source displays frames that are neither black or transparent.

  • fast/mediastream/resources/getUserMedia-helper.js:

(setupVideoElementWithStream): Sets up video element with global variable mediastream.

2:55 PM Changeset in webkit [203422] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

Get rid of a #define private public hack in WebCore
​https://bugs.webkit.org/show_bug.cgi?id=159953

Reviewed by Dan Bernstein.

Use @package instead.

  • bindings/objc/DOMInternal.h:
  • bindings/objc/DOMObject.h:
2:27 PM Changeset in webkit [203421] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

Test262 should have a file with the revision and url
​https://bugs.webkit.org/show_bug.cgi?id=159937

Reviewed by Mark Lam.

Source/JavaScriptCore:

The file.

  • tests/test262/test262-Revision.txt: Added.

Tools:

The import script should update the information from
the path to the test262 repository it gets.

  • Scripts/import-test262-tests:
2:14 PM Changeset in webkit [203420] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Fix SharedBuffer leak in MockContentFilter::replacementData().
<​https://webkit.org/b/159945>

Reviewed by Andy Estes.

Spotted on leaks bot. This code was pretty explicit about how it's going to leak.
Since this is in the mock filter, it only affected layout tests.

  • testing/MockContentFilter.cpp:

(WebCore::MockContentFilter::replacementData):

1:52 PM Changeset in webkit [203419] by andersca@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

WebCore-7602.1.42 fails to build: error: private field 'm_vm' is not used
​https://bugs.webkit.org/show_bug.cgi?id=159944
rdar://problem/27420308

Reviewed by Dan Bernstein.

Wrap the m_vm declaration and initialization in conditional guards.

  • Scripts/builtins/builtins_generate_internals_wrapper_header.py:

(generate_members):

  • Scripts/builtins/builtins_generate_internals_wrapper_implementation.py:

(BuiltinsInternalsWrapperImplementationGenerator.generate_constructor):
Add guards.

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

Update expected results.

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

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

  • platform/mac/TestExpectations:
1:32 PM Changeset in webkit [203417] by ap@apple.com
  • 2 edits in trunk/Tools

Temporary workaround for iOS EWS failing after the fix for bug 159539.
To be deleted once the root cause is found and addressed.

  • EWSTools/start-queue-mac.sh:
1:15 PM Changeset in webkit [203416] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION (r203348-r203368): ASSERTION FAILED: from.isCell() && from.asCell()->JSCell::inherits(std::remove_pointer<To>::type::info())
​https://bugs.webkit.org/show_bug.cgi?id=159930

Reviewed by Geoffrey Garen.

The problem is that the 32-bit DFG can flush the scope register as an unboxed cell, but the
Register::scope() method was causing us to assert that it's a JSValue with proper cell
boxing. We could have forced the DFG to flush it as a boxed JSValue, but I don't think that
would have made anything better. This fixes the issue by teaching Register::scope() that it
might see unboxed cells.

  • runtime/JSScope.h:

(JSC::Register::scope):
(JSC::ExecState::lexicalGlobalObject):

1:10 PM Changeset in webkit [203415] by Alan Bujtas
  • 3 edits
    2 adds in trunk

theguardian.co.uk crossword puzzles are sometimes not displaying text
​https://bugs.webkit.org/show_bug.cgi?id=159924
<rdar://problem/27409483>

Reviewed by Simon Fraser.

Source/WebCore:

This patch fixes the case when

  • 2 disjoint subtrees are dirty
  • RenderView is also dirty.

and we end up not laying out one of the 2 subtrees.

In FrameView::scheduleRelayoutOfSubtree, we assume that when the RenderView is dirty
we already have a pending full layout which means that any previous subtree layouts have already been
converted to full layouts.
However this assumption is incorrect. RenderView can get dirty without checking if there's
already a pending subtree layout.
One option to solve this problem would be to override RenderObject::setNeedsLayout in RenderView
so that when the RenderView gets dirty, we could also convert any pending subtree layout to full layout.
However RenderObject::setNeedsLayout is a hot function and making it virtual would impact performance.
The other option is to always normalize subtree layouts in FrameView::scheduleRelayoutOfSubtree().
This patch implements the second option.

Test: fast/misc/subtree-layouts.html

  • page/FrameView.cpp:

(WebCore::FrameView::scheduleRelayoutOfSubtree):

LayoutTests:

  • fast/misc/subtree-layouts-expected.html: Added.
  • fast/misc/subtree-layouts.html: Added.
1:07 PM Changeset in webkit [203414] by andersca@apple.com
  • 7 edits in trunk/Source

Some payment authorization status values should keep the sheet active
​https://bugs.webkit.org/show_bug.cgi?id=159936
rdar://problem/26756701

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::completePayment):
Keep the sheet active if the status isn't a final state status.

  • Modules/applepay/PaymentAuthorizationStatus.h:

(WebCore::isFinalStateStatus):
Add a new helper function that returns whether a given payment authorization status is "final",
meaning that once that status has been passed to completePayment, the session is finished.

Source/WebKit2:

  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::completePaymentSession):
If the status isn't a final state status, bounce the current state back to active.

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:

Rename the _authorized ivar to _didReachFinalState.

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(-[WKPaymentAuthorizationViewControllerDelegate paymentAuthorizationViewControllerDidFinish:]):
(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentSession):
Set _didReachFinalState based on the return value of isFinalStateStatus.

12:20 PM Changeset in webkit [203413] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

B3 methods that mutate the successors array should take FrequentedBlock by value
​https://bugs.webkit.org/show_bug.cgi?id=159935

Reviewed by Michael Saboff.

This bug was found by ASan testing. setSuccessors() takes a const FrequentedBlock&, and the
caller that caused the ASan crash was doing:

block->setSuccessors(block->notTaken())

So, inside setSuccessors(), after we resize() the successors array, the const
FrequentedBlock& points to nonsense.

The fix is to pass FrequentedBlock by value in all of these kinds of methods.

No new tests, but ASan testing catches this instantly for anything that triggers CFG
simplification in B3. So like half of our tests.

  • b3/B3BasicBlock.cpp:

(JSC::B3::BasicBlock::clearSuccessors):
(JSC::B3::BasicBlock::appendSuccessor):
(JSC::B3::BasicBlock::setSuccessors):

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::successors):
(JSC::B3::BasicBlock::successorBlock):

  • b3/B3Value.cpp:

(JSC::B3::Value::replaceWithPhi):
(JSC::B3::Value::replaceWithJump):
(JSC::B3::Value::replaceWithOops):

  • b3/B3Value.h:
11:14 AM Changeset in webkit [203412] by n_wang@apple.com
  • 4 edits
    2 adds in trunk

AX: Incorrect behavior for word related text marker functions when there's collapsed whitespace
​https://bugs.webkit.org/show_bug.cgi?id=159910

Reviewed by Chris Fleizach.

Source/WebCore:

We are getting a bad CharacterOffset when there's collapsed whitespace. Added a TraverseOptionValidateOffset
option to make sure we are getting the correct CharacterOffset based on the corresponding Range offset. And
fixed a word navigation issue based on that.

Test: accessibility/mac/text-marker-word-nav-collapsed-whitespace.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::traverseToOffsetInRange):
(WebCore::AXObjectCache::rangeForNodeContents):
(WebCore::AXObjectCache::startOrEndCharacterOffsetForRange):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):
(WebCore::AXObjectCache::rightWordRange):
(WebCore::AXObjectCache::previousBoundary):

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::isNodeInUse):

LayoutTests:

  • accessibility/mac/text-marker-word-nav-collapsed-whitespace-expected.txt: Added.
  • accessibility/mac/text-marker-word-nav-collapsed-whitespace.html: Added.
10:27 AM Changeset in webkit [203411] by commit-queue@webkit.org
  • 7 edits in trunk

[Streams API] ReadableStreamController methods should throw if its stream is not readable
​https://bugs.webkit.org/show_bug.cgi?id=159871

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-19
Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

  • web-platform-tests/streams/readable-streams/bad-underlying-sources.https-expected.txt:

Source/WebCore:

Spec now mandates close and enqueue to throw if ReadableStream is not readable.
Covered by rebased and/or modified tests.

  • Modules/streams/ReadableStreamController.js:

(enqueue): Throwing a TypeError if controlled stream is not readable.
(close): Ditto.

LayoutTests:

  • streams/reference-implementation/pipe-to-options.html: Updated test case according whatwg original test.
  • streams/reference-implementation/readable-stream-templated.html: Ditto.
10:23 AM Changeset in webkit [203410] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Adjust margins for first-line floating elements and add preset floating video sizing
​https://bugs.webkit.org/show_bug.cgi?id=159898

Reviewed by Benjamin Poulain.

  • wp-content/themes/webkit/style.css:

(article video.alignright):
(article .alignright:first-child):
(@media only screen and (max-width: 690px)):

(article .alignright:first-child):

(@media only screen and (max-width: 415px)):

(article video.alignright):
(article .alignright:first-child):

9:10 AM Changeset in webkit [203409] by Simon Fraser
  • 3 edits
    6 adds in trunk

Bubbles appear split for a brief moment in Messages
​https://bugs.webkit.org/show_bug.cgi?id=159915
rdar://problem/27182267

Reviewed by David Hyatt.

Source/WebCore:

RenderView::repaintRootContents() had a long-standing bug in WebView when the
view is scrolled. repaint() uses visualOverflowRect() but, for the
RenderView, the visualOverflowRect() is the initial containing block
which is anchored at 0,0. When the view is scrolled it's clipped out and
calls to repaintRootContents() have no effect.

Change repaintRootContents() to use layoutOverflowRect(). ScrollView::repaintContentRectangle()
will clip it to the view if necessary.

Test: fast/repaint/scrolled-view-full-repaint.html

  • rendering/RenderView.cpp:

(WebCore::RenderView::repaintRootContents):

LayoutTests:

  • fast/repaint/scrolled-view-full-repaint-expected.txt: Added.
  • fast/repaint/scrolled-view-full-repaint.html: Added.
  • platform/ios-simulator-wk1/fast/repaint/scrolled-view-full-repaint-expected.txt: Added.
  • platform/mac-wk1/fast/repaint/scrolled-view-full-repaint-expected.txt: Added.
9:08 AM Changeset in webkit [203408] by commit-queue@webkit.org
  • 44 edits
    1 add in trunk/LayoutTests/imported/w3c

Refresh WPT tests up to 98ec1ad
​https://bugs.webkit.org/show_bug.cgi?id=159879

Patch by Youenn Fablet <​youennf@gmail.com> on 2016-07-19
Reviewed by Alex Christensen.

This refresh concerns fetch API tests with a number of test fixes.
Rebasing both window and worker expectations.

  • resources/TestRepositories:
  • web-platform-tests/fetch/api/basic/mode-same-origin-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/mode-same-origin-worker.html:
  • web-platform-tests/fetch/api/basic/mode-same-origin.html:
  • web-platform-tests/fetch/api/basic/mode-same-origin.js:
  • web-platform-tests/fetch/api/cors/cors-basic-worker.html:
  • web-platform-tests/fetch/api/cors/cors-basic.html:
  • web-platform-tests/fetch/api/cors/cors-basic.js:

(cors):

  • web-platform-tests/fetch/api/cors/cors-cookies-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker.html:
  • web-platform-tests/fetch/api/cors/cors-cookies.html:
  • web-platform-tests/fetch/api/cors/cors-cookies.js:

(corsCookies):

  • web-platform-tests/fetch/api/cors/cors-no-preflight-worker.html:
  • web-platform-tests/fetch/api/cors/cors-no-preflight.html:
  • web-platform-tests/fetch/api/cors/cors-no-preflight.js:

(corsNoPreflight):

  • web-platform-tests/fetch/api/cors/cors-origin-worker.html:
  • web-platform-tests/fetch/api/cors/cors-origin.html:
  • web-platform-tests/fetch/api/cors/cors-origin.js:

(corsOrigin):

  • web-platform-tests/fetch/api/cors/cors-preflight-redirect-worker.html:
  • web-platform-tests/fetch/api/cors/cors-preflight-redirect.html:
  • web-platform-tests/fetch/api/cors/cors-preflight-redirect.js:
  • 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-worker.html:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer.html:
  • web-platform-tests/fetch/api/cors/cors-preflight-referrer.js:

(corsPreflightReferrer):

  • web-platform-tests/fetch/api/cors/cors-preflight-status-worker.html:
  • web-platform-tests/fetch/api/cors/cors-preflight-status.html:
  • web-platform-tests/fetch/api/cors/cors-preflight-status.js:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials.html:
  • web-platform-tests/fetch/api/cors/cors-redirect-credentials.js:
  • web-platform-tests/fetch/api/cors/cors-redirect-worker.html:
  • web-platform-tests/fetch/api/cors/cors-redirect.html:
  • web-platform-tests/fetch/api/cors/cors-redirect.js:
  • web-platform-tests/fetch/api/request/request-cache.html:
  • web-platform-tests/fetch/api/request/resources/w3c-import.log:
  • web-platform-tests/fetch/api/resources/get-host-info.sub.js: Added.

(get_host_info):

  • web-platform-tests/fetch/api/resources/utils.js:

(validateBufferFromString):

  • web-platform-tests/fetch/api/resources/w3c-import.log:
  • web-platform-tests/fetch/api/response/response-clone-expected.txt:
  • web-platform-tests/fetch/api/response/response-clone.html:
  • web-platform-tests/fetch/api/response/response-consume-stream-expected.txt:
7:33 AM Changeset in webkit [203407] by fred.wang@free.fr
  • 2 edits in trunk/Tools

[win] Fixup the register name for STIX Math and Latin Modern Math

Unreviewed follow-up of r203406

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

  • Scripts/webkitdirs.pm:

(checkInstalledTools):

7:18 AM Changeset in webkit [203406] by fred.wang@free.fr
  • 2 edits in trunk/Tools

[win] Update the list of MathML fonts
​https://bugs.webkit.org/show_bug.cgi?id=156838

The set of recommended math fonts is now described at
​https://trac.webkit.org/wiki/MathML/Fonts
We update the Perl script to use the latest list of fonts.

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

  • Scripts/webkitdirs.pm:

(checkInstalledTools):

7:12 AM Changeset in webkit [203405] by commit-queue@webkit.org
  • 4 edits in trunk/LayoutTests

[Release WK2] LayoutTest imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-post-upload.htm failing
​https://bugs.webkit.org/show_bug.cgi?id=159724

Unreviewed.

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-19

  • TestExpectations: Marking test as failure,passs,crash.
  • platform/ios-simulator-wk2/TestExpectations: Removing specific expectation.
  • platform/mac-wk2/TestExpectations: Ditto.
7:12 AM Changeset in webkit [203404] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

<rdar://problem/27420308> WebCore-7602.1.42 fails to build: error: unused parameter 'vm'

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals): Fixed the !ENABLE(STREAMS_API) build.

3:56 AM Changeset in webkit [203403] by pvollan@apple.com
  • 5 edits in trunk

[Win] The test fast/scrolling/overflow-scroll-past-max.html is timing out.
​https://bugs.webkit.org/show_bug.cgi?id=159342

Reviewed by Darin Adler.

Source/WebKit/win:

  • WebFrame.h: Link fix.

Tools:

Implement required functions in event sender.

  • DumpRenderTree/PlatformWin.cmake:
  • DumpRenderTree/win/EventSender.cpp:

(monitorWheelEvents): Added.
(callAfterScrollingCompletes): Added.

12:59 AM Changeset in webkit [203402] by commit-queue@webkit.org
  • 8 edits in trunk

[Streams API] Make ReadableStream properties not enumerable
​https://bugs.webkit.org/show_bug.cgi?id=159868

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-19
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/streams/readable-streams/general.https-expected.txt:
  • web-platform-tests/streams/readable-streams/readable-stream-reader.https-expected.txt:

Source/WebCore:

Covered by rebased tests.

Uopdating IDL definitions to mark all functions/attributes as not enumerable.
Updating IDL constructor definitions to correctly compute constructor length.
Updating built-in implementation to correctly compute pipeTo length to 1 (second parameter being optional).

  • Modules/streams/ReadableStream.idl:
  • Modules/streams/ReadableStream.js:
  • Modules/streams/ReadableStreamController.idl:
  • Modules/streams/ReadableStreamReader.idl:
12:41 AM Changeset in webkit [203401] by Chris Dumez
  • 4 edits
    2 adds in trunk

form.enctype / encoding / method should treat null as "null" string
​https://bugs.webkit.org/show_bug.cgi?id=159916

Reviewed by Ryosuke Niwa.

Source/WebCore:

form.enctype / encoding / method should treat null as "null" string:

Previously, WebKit would treat null as the null String, which would
end up removing the existing attribute.

Firefox and Chrome match the specification.

Test: fast/dom/HTMLFormElement/null-handling.html

  • html/HTMLFormElement.h:
  • html/HTMLFormElement.idl:

LayoutTests:

Add layout test coverage.

  • fast/dom/HTMLFormElement/null-handling-expected.txt: Added.
  • fast/dom/HTMLFormElement/null-handling.html: Added.
12:38 AM Changeset in webkit [203400] by commit-queue@webkit.org
  • 9 edits
    1 add in trunk

Add new aliases to http test server
​https://bugs.webkit.org/show_bug.cgi?id=159878

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-19
Reviewed by Darin Adler.

Tools:

Adding testharness.css, testharness.js and testharnessreport.js new aliases to http test servers.
Adding explicitly these links to perl script.
Extracting default alias in an aliases.json file.
Reading that file from python scripts to initialize aliases from that file.

Python script changes covered by unit tests and changed layout test.

  • Scripts/webkitperl/httpd.pm:

(getDefaultConfigForTestDirectory): Adding 3 new aliases

  • Scripts/webkitpy/layout_tests/servers/aliases.json: Added.
  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init): Setting upper class tests_dir member if needed and according constructor parameter.
Adding -c directives for each alias.

  • Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py:

(TestLayoutTestApacheHttpd.test_start_cmd): Adding aliases.json mock-up file.

  • Scripts/webkitpy/layout_tests/servers/http_server.py:

(Lighttpd.init): Setting upper class tests_dir member if needed and according constructor parameter.
Adding alias directive for each alias.
(Lighttpd._prepare_config):

  • Scripts/webkitpy/layout_tests/servers/http_server_base.py:

(HttpServerBase.init): Adding tests_dir member with a default value being layout tests directory.
(HttpServerBase.aliases): Computing of alias from the json file, paths to the real files being relative to
layout tests directory.

  • Scripts/webkitpy/layout_tests/servers/http_server_unittest.py:

(TestHttpServer.test_start_cmd): Adding aliases.json mock-up file and updating test expectation.
(TestHttpServer.test_win32_start_and_stop): Adding aliases.json mock-up file.

LayoutTests:

  • http/tests/xmlhttprequest/set-bad-headervalue.html: Updating testharness.js and testharnessreport.js links to

ensure these new links are working on test servers.

Jul 18, 2016:

11:50 PM Changeset in webkit [203399] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

All-in-one buildfix after r202439
​https://bugs.webkit.org/show_bug.cgi?id=159877

Reviewed by Chris Dumez.

  • Modules/webaudio/AudioDestinationNode.h:

(WebCore::AudioDestinationNode::resume):
(WebCore::AudioDestinationNode::suspend):
(WebCore::AudioDestinationNode::close):

11:50 PM Changeset in webkit [203398] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Fix the --minimal build fail in InjectedBundle.cpp
​https://bugs.webkit.org/show_bug.cgi?id=159770

Reviewed by Benjamin Poulain.

  • WebProcess/InjectedBundle/InjectedBundle.cpp:
10:55 PM Changeset in webkit [203397] by bshafiei@apple.com
  • 5 edits in branches/safari-602-branch/Source

Versioning.

10:42 PM Changeset in webkit [203396] by fred.wang@free.fr
  • 8 edits
    1 copy
    1 add in trunk/Source/WebCore

Move parsing of subscriptshift and superscriptshift from rendering to element classes
​https://bugs.webkit.org/show_bug.cgi?id=159622

Patch by Frederic Wang <​fwang@igalia.com> on 2016-07-18
Reviewed by Darin Adler.

We introduce a new MathMLScriptsElement that is used for elements msub, msup, msubsup and
mmultiscripts in order to create RenderMathMLScripts and parse and expose the values of the
subscriptshift and superscriptshift attributes. This is one more step toward moving MathML
attribute parsing to the DOM (bug 156536).

No new tests, rendering is unchanged.

  • CMakeLists.txt: Add MathMLScriptsElement files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLAllInOne.cpp: Ditto.
  • mathml/MathMLInlineContainerElement.cpp: Remove handling of scripts.

(WebCore::MathMLInlineContainerElement::createElementRenderer): Deleted.

  • mathml/MathMLScriptsElement.cpp: Added. New class to handle scripted elements supporting

parsing for the subscriptshift and superscriptshift MathML lengths.
(WebCore::MathMLScriptsElement::MathMLScriptsElement):
(WebCore::MathMLScriptsElement::create):
(WebCore::MathMLScriptsElement::subscriptShift): Expose the cached length for the shift,
parsing the attribute again if necessary.
(WebCore::MathMLScriptsElement::superscriptShift): Ditto.
(WebCore::MathMLScriptsElement::parseAttribute): Mark attributes dirty.
(WebCore::MathMLScriptsElement::createElementRenderer): Create RenderMathMLScripts.

  • mathml/MathMLScriptsElement.h: Ditto.
  • mathml/mathtags.in: Map msub, msup, msubsup and mmultiscripts to MathMLScriptsElement.
  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::scriptsElement): Helper function to cast the node to a
MathMLScriptsElement.
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded): Resolve the attributes
using the functions from the MathMLScriptsElement class.

  • rendering/mathml/RenderMathMLScripts.h: Declare scriptsElement.
10:36 PM Changeset in webkit [203395] by fred.wang@free.fr
  • 3 edits in trunk/Source/WebCore

Do not store gap and shift parameters on RenderMathMLFraction
​https://bugs.webkit.org/show_bug.cgi?id=159876

Patch by Frederic Wang <​fwang@igalia.com> on 2016-07-18
Reviewed by Darin Adler.

After r203285, the stack and fraction layout parameters are only used in layoutBlock so we
do not need to store them on the class. We remove them and split updateLayoutParameters into
three functions: one to update the linethickness and two others to retrieve the fraction and
stack respectively.

No new tests, rendering is unchanged.

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::updateLineThickness): Move code to update thickness members here.
(WebCore::RenderMathMLFraction::getFractionParameters): Move code to retrieve fraction parameters here.
(WebCore::RenderMathMLFraction::getStackParameters): Move code to retrieve stack parameters here.
(WebCore::RenderMathMLFraction::layoutBlock): Use the new helper functions and local variables
for fraction and stack parameters.
(WebCore::RenderMathMLFraction::updateLayoutParameters): Deleted.

  • rendering/mathml/RenderMathMLFraction.h: Declare new helper functions and remove members

for stack and fraction parameters.

10:22 PM MathML/Fonts edited by fred.wang@free.fr
(diff)
9:45 PM Changeset in webkit [203394] by Chris Dumez
  • 11 edits
    4 adds in trunk

input.formEnctype / formMethod and button.formEnctype / formMethod / type should treat null as "null"
​https://bugs.webkit.org/show_bug.cgi?id=159908

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline now that more checks are passing.

  • web-platform-tests/html/dom/reflection-forms-expected.txt:

Source/WebCore:

input.formEnctype / formMethod and button.formEnctype / formMethod / type
should treat null as "null" String:

In WebKit, we would treat null as a null String which would end up
removing the corresponding attribute. This does not match the
specification. Firefox and Chrome match the specification here.

Tests:

  • fast/dom/HTMLButtonElement/null-handling.html
  • fast/dom/HTMLInputElement/null-handling.html
  • html/HTMLButtonElement.idl:
  • html/HTMLInputElement.idl:

LayoutTests:

Add layout test coverage.

  • fast/dom/HTMLButtonElement/change-type-expected.txt:
  • fast/dom/HTMLButtonElement/change-type.html:
  • fast/dom/HTMLButtonElement/null-handling-expected.txt: Added.
  • fast/dom/HTMLButtonElement/null-handling.html: Added.
  • fast/dom/HTMLInputElement/null-handling-expected.txt: Added.
  • fast/dom/HTMLInputElement/null-handling.html: Added.
  • fast/forms/submit-form-attributes-expected.txt:
  • fast/forms/submit-form-attributes.html:
7:45 PM Changeset in webkit [203393] by commit-queue@webkit.org
  • 25 edits in trunk

Make builtin TypeErrors consistent
​https://bugs.webkit.org/show_bug.cgi?id=159899

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-18
Reviewed by Keith Miller.

Source/JavaScriptCore:

Converge on the single TypeError for non-coercible this objects in builtins.
Also update some other style to be more consistent with-in builtins.

  • builtins/ArrayIteratorPrototype.js:

(next):

  • builtins/ArrayPrototype.js:

(values):
(keys):
(entries):
(reduce):
(reduceRight):
(every):
(forEach):
(filter):
(map):
(some):
(fill):
(find):
(findIndex):
(includes):
(sort):
(concatSlowPath):
(copyWithin):

  • builtins/StringPrototype.js:

(match):
(repeat):
(padStart):
(padEnd):
(intrinsic.StringPrototypeReplaceIntrinsic.replace):
(localeCompare):
(search):
(split):

  • tests/es6/String.prototype_methods_String.prototype.padEnd.js:
  • tests/es6/String.prototype_methods_String.prototype.padStart.js:
  • tests/stress/array-iterators-next-error-messages.js:

(catch):

  • tests/stress/array-iterators-next-with-call.js:
  • tests/stress/regexp-match.js:

(shouldThrow):

  • tests/stress/regexp-search.js:

(shouldThrow):

LayoutTests:

  • js/array-find-expected.txt:
  • js/array-findIndex-expected.txt:
  • js/array-includes-expected.txt:
  • js/dom/array-prototype-properties-expected.txt:
  • js/dom/script-tests/string-prototype-properties.js:
  • js/dom/string-prototype-properties-expected.txt:
  • js/script-tests/array-find.js:
  • js/script-tests/array-findIndex.js:
  • js/script-tests/string-localeCompare.js:
  • js/string-localeCompare-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.10_String.prototype.match/S15.5.4.10_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.11_String.prototype.replace/S15.5.4.11_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.12_String.prototype.search/S15.5.4.12_A1_T3-expected.txt:
  • sputnik/Conformance/15_Native_Objects/15.5_String/15.5.4/15.5.4.14_String.prototype.split/S15.5.4.14_A1_T3-expected.txt:
7:02 PM Changeset in webkit [203392] by achristensen@apple.com
  • 5 edits in trunk/Source

webbookmarksd needs to use the same AppCache directory as MobileSafari
​https://bugs.webkit.org/show_bug.cgi?id=159912
Source/WebCore:

Reviewed by Alexey Proskuryakov.

No new tests. This only changes behavior for webbookmarksd.

  • platform/RuntimeApplicationChecks.h:
  • platform/RuntimeApplicationChecks.mm:

(WebCore::IOSApplication::isWebBookmarksD): Added.

Source/WebKit2:

<rdar://problem/27056844>

Reviewed by Alexey Proskuryakov.

  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultApplicationCacheDirectory):
Make webbookmarksd match MobileSafari by adding a matching runtime exception.

6:18 PM Changeset in webkit [203391] by Chris Dumez
  • 11 edits in trunk

EventTarget.dispatchEvent() parameter should not be nullable
​https://bugs.webkit.org/show_bug.cgi?id=159897

Reviewed by Benjamin Poulain.

Source/WebCore:

EventTarget.dispatchEvent() parameter should not be nullable:

Even though the parameter was marked as nullable in our IDL, our
implementation does a null check and we already throw a TypeError
when calling dispatchEvent(null).

Update our IDL so that it matches the specification and so that
the null check is generated in the bindings instead.

No new tests, rebaseline existing tests.

  • dom/EventTarget.cpp:

(WebCore::EventTarget::dispatchEventForBindings):

  • dom/EventTarget.h:
  • dom/EventTarget.idl:

LayoutTests:

Update layout tests as the message of the TypeError exception being
thrown when calling dispatchEvent(null) is now more helpful.

  • fast/dom/Window/dispatchEvent-expected.txt:
  • fast/events/dispatchEvent-crash-expected.txt:
6:16 PM Changeset in webkit [203390] by fpizlo@apple.com
  • 52 edits
    6 adds
    2 deletes in trunk

Implement table-based switches in B3/Air
​https://bugs.webkit.org/show_bug.cgi?id=151141

Reviewed by Benjamin Poulain.
Source/JavaScriptCore:

If a switch statement gets large, it's better to express it as an indirect jump rather than
using a binary switch (divide-and-conquer tree of comparisons leading to O(log n) branches to
get to the switch case). When dealing with integer switches, FTL will already use the B3
Switch and expect this to get lowered as efficiently as possible; it's a bug that B3 will
always use a binary switch rather than indirect jumps. When dealing with switches over some
more sophisticated types, we'd want FTL to build an indirect jump table itself and use
something like a hashtable to feed it. In that case, there will be no B3 Switch; we'll want
some way for the FTL to directly express an indirection jump when emitting B3.

This implies that we want B3 to have the ability to lower Switch to indirect jumps and to
expose those indirect jumps in IR so that the FTL could do its own indirect jumps for
switches over more complicated things like strings. But indirect jumps are tough to express
in IR. For example, the LLVM approach ("indirectbr" and "blockaddress", see
​http://blog.llvm.org/2010/01/address-of-label-and-indirect-branches.html) means that some
control flow edges cannot be split. Indirectbr takes an address as input and jumps to it, and
blockaddress lets you build jump tables out of basic block addresses. This means that the
compiler can never change any successor of an indirectbr, since the client will have already
arranged for that indirectbr to jump to exactly those successors. We don't want such
restrictions in B3, since B3 relies on being able to break critical edges for SSA conversion.
Also, indirectbr is not cloneable, which would break any hope of doing specialization-based
transformations like we want to do for multiple entrypoints (bug 159391). The goal of this
change is to let clients do indirect jumps without placing any restrictions on IR.

The trick is to allow Patchpoints to be used as block terminals. Patchpoints already allow
clients of B3 to emit whatever code they like. Patchpoints are friendly to B3's other
transformations because the client of the patchpoint has to play along with whatever
decisions B3 had made around the patchpoint: what registers got used, what the control flow
looks like, etc. Patchpoints can even be cloned by B3, and the client has to accommodate this
in their patchpoint generator. It turns out that using Patchpoints as terminals is quite
natural. We accomplish this by moving the successor edges out of ControlValue and into
BasicBlock, and removing ControlValue entirely. This way, any Value subclass can be a
terminal. It was already true that a Value is a terminal if value->effects().terminal, which
works great with Patchpoints since they control their effects via PatchpointValue::effects.
You can make your Patchpoint into a terminal by placing it at the end of a block and doing:

patchpoint->effects.terminal = true;

A Patchpoints in terminal position gets access to additional API in StackmapGenerationParams.
The generator can get a Box<Label> for each successor to its owning block. For example, to
implement a jump-table-based switch, you would make your patchpoint take the table index as
its sole input. Inside the generator, you allocate the jump table and emit a BaseIndex jump
that uses the jump table pointer (which will be a constant known to the generator since it
just allocated it) as the base and the patchpoint input as an index. The jump table can be
populated by MacroAssemblerCodePtr's computed by installing a link task to resolve the labels
to concrete locations. This change makes LowerMacros do such a lowering for Switches that can
benefit from jump tables. This happens recursively: if the original Switch is too sparse, we
will divide-and-conquer as before. If at any recursion step we find that the remaining cases
are dense and large enough to profit from a jump table, then those cases will be lowered to a
Patchpoint that does the table jump. This is a fun way to do stepwise lowering: LowerMacros
is essentially pre-lowering the Switch directly to machine code, and wrapping that machine
code in a Patchpoint so that the rest of the compiler doesn't have to know anything about
what happened. I suspect that in the future we will want to do other pre-lowerings this way,
whenever the B3 IR phases have some special knowledge about what machine code should be
emitted and it would be annoying to drag that knowledge through the rest of the compiler.

One downside of this change is that we used ControlValue in so many places. Most of this
patch involves removing references to ControlValue. It would be less than 100kb if it wasn't
for that. To make this a bit easier, I added "appendNewControlValue" methods to BasicBlock,
which allocate a Value and set the successors as if you had done "appendNew<ControlValue>".
This made for an easy search-and-replace in testb3 and FTLOutput. I filed bug 159440 to
remove this ugly stopgap method.

I think that we will also end up using this facility to extend our use of snippets. We
already use shared snippet generators for the generic forms of arithmetic. We will probably
also want to do this for generic forms of branches. This wouldn't have been possible prior to
this change, since there would have been no way to emit a control snippet in FTL. Now we can
emit control snippets using terminal patchpoints.

This is a ~30% speed-up on microbenchmarks that have big switch statements (~60 cases). It's
not a speed-up on mainstream benchmarks.

This also adds a new test to testb3 for terminal Patchpoints, Get, and Set. The FTL does not
currently use terminal Patchpoints directly, but we want this to be possible. It also doesn't
use Get/Set directly even though we want this to be possible. It's important to test these
since opcodes that result from lowering don't affect early phases, so we could have
regressions in early phases related to these opcodes that wouldn't be caught by any JS test.
So, this adds a very basic threaded interpreter to testb3 for a Brainfuck-style language, and
tests it by having it run a program that prints the numbers 1..100 in a loop. Unlike a real
threaded interpreter, it uses a common dispatch block rather than having dispatch at the
terminus of each opcode. That's necessary because PolyJump is not cloneable. The state of the
interpreter is represented using Variables that we Get and Set, so it tests Get/Set as well.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::jump):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::jump):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::jmp_m):

  • b3/B3BasicBlock.cpp:

(JSC::B3::BasicBlock::append):
(JSC::B3::BasicBlock::appendNonTerminal):
(JSC::B3::BasicBlock::removeLast):
(JSC::B3::BasicBlock::appendIntConstant):
(JSC::B3::BasicBlock::clearSuccessors):
(JSC::B3::BasicBlock::appendSuccessor):
(JSC::B3::BasicBlock::setSuccessors):
(JSC::B3::BasicBlock::replaceSuccessor):
(JSC::B3::BasicBlock::addPredecessor):
(JSC::B3::BasicBlock::deepDump):
(JSC::B3::BasicBlock::appendNewControlValue):

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::numSuccessors):
(JSC::B3::BasicBlock::successor):
(JSC::B3::BasicBlock::successors):
(JSC::B3::BasicBlock::successorBlock):
(JSC::B3::BasicBlock::successorBlocks):
(JSC::B3::BasicBlock::numPredecessors):
(JSC::B3::BasicBlock::predecessor):
(JSC::B3::BasicBlock::frequency):

  • b3/B3BasicBlockInlines.h:

(JSC::B3::BasicBlock::replaceLastWithNew):
(JSC::B3::BasicBlock::taken):
(JSC::B3::BasicBlock::notTaken):
(JSC::B3::BasicBlock::fallThrough):
(JSC::B3::BasicBlock::numSuccessors): Deleted.
(JSC::B3::BasicBlock::successor): Deleted.
(JSC::B3::BasicBlock::successors): Deleted.
(JSC::B3::BasicBlock::successorBlock): Deleted.
(JSC::B3::BasicBlock::successorBlocks): Deleted.

  • b3/B3BlockInsertionSet.cpp:

(JSC::B3::BlockInsertionSet::splitForward):

  • b3/B3BreakCriticalEdges.cpp:

(JSC::B3::breakCriticalEdges):

  • b3/B3CaseCollection.cpp: Added.

(JSC::B3::CaseCollection::dump):

  • b3/B3CaseCollection.h: Added.

(JSC::B3::CaseCollection::CaseCollection):
(JSC::B3::CaseCollection::operator[]):
(JSC::B3::CaseCollection::iterator::iterator):
(JSC::B3::CaseCollection::iterator::operator*):
(JSC::B3::CaseCollection::iterator::operator++):
(JSC::B3::CaseCollection::iterator::operator==):
(JSC::B3::CaseCollection::iterator::operator!=):
(JSC::B3::CaseCollection::begin):
(JSC::B3::CaseCollection::end):

  • b3/B3CaseCollectionInlines.h: Added.

(JSC::B3::CaseCollection::fallThrough):
(JSC::B3::CaseCollection::size):
(JSC::B3::CaseCollection::at):

  • b3/B3CheckSpecial.cpp:

(JSC::B3::CheckSpecial::CheckSpecial):
(JSC::B3::CheckSpecial::hiddenBranch):

  • b3/B3Common.h:

(JSC::B3::is64Bit):

  • b3/B3ControlValue.cpp: Removed.
  • b3/B3ControlValue.h: Removed.
  • b3/B3DataSection.cpp:

(JSC::B3::DataSection::DataSection):

  • b3/B3DuplicateTails.cpp:
  • b3/B3FixSSA.cpp:
  • b3/B3FoldPathConstants.cpp:
  • b3/B3LowerMacros.cpp:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::run):
(JSC::B3::Air::LowerToAir::lower):

  • b3/B3MathExtras.cpp:

(JSC::B3::powDoubleInt32):

  • b3/B3Opcode.h:

(JSC::B3::isConstant):
(JSC::B3::isDefinitelyTerminal):

  • b3/B3PatchpointSpecial.cpp:

(JSC::B3::PatchpointSpecial::generate):
(JSC::B3::PatchpointSpecial::isTerminal):
(JSC::B3::PatchpointSpecial::dumpImpl):

  • b3/B3PatchpointSpecial.h:
  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::resetReachability):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::lastPhaseName):
(JSC::B3::Procedure::byproducts):

  • b3/B3ReduceStrength.cpp:
  • b3/B3StackmapGenerationParams.cpp:

(JSC::B3::StackmapGenerationParams::unavailableRegisters):
(JSC::B3::StackmapGenerationParams::successorLabels):
(JSC::B3::StackmapGenerationParams::fallsThroughToSuccessor):
(JSC::B3::StackmapGenerationParams::proc):

  • b3/B3StackmapGenerationParams.h:

(JSC::B3::StackmapGenerationParams::gpScratch):
(JSC::B3::StackmapGenerationParams::fpScratch):

  • b3/B3SwitchValue.cpp:

(JSC::B3::SwitchValue::~SwitchValue):
(JSC::B3::SwitchValue::removeCase):
(JSC::B3::SwitchValue::hasFallThrough):
(JSC::B3::SwitchValue::setFallThrough):
(JSC::B3::SwitchValue::appendCase):
(JSC::B3::SwitchValue::dumpSuccessors):
(JSC::B3::SwitchValue::dumpMeta):
(JSC::B3::SwitchValue::cloneImpl):
(JSC::B3::SwitchValue::SwitchValue):

  • b3/B3SwitchValue.h:

(JSC::B3::SwitchValue::accepts):
(JSC::B3::SwitchValue::caseValues):
(JSC::B3::SwitchValue::cases):
(JSC::B3::SwitchValue::fallThrough): Deleted.
(JSC::B3::SwitchValue::size): Deleted.
(JSC::B3::SwitchValue::at): Deleted.
(JSC::B3::SwitchValue::operator[]): Deleted.
(JSC::B3::SwitchValue::iterator::iterator): Deleted.
(JSC::B3::SwitchValue::iterator::operator*): Deleted.
(JSC::B3::SwitchValue::iterator::operator++): Deleted.
(JSC::B3::SwitchValue::iterator::operator==): Deleted.
(JSC::B3::SwitchValue::iterator::operator!=): Deleted.
(JSC::B3::SwitchValue::begin): Deleted.
(JSC::B3::SwitchValue::end): Deleted.

  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::replaceWithPhi):
(JSC::B3::Value::replaceWithJump):
(JSC::B3::Value::replaceWithOops):
(JSC::B3::Value::dump):
(JSC::B3::Value::deepDump):
(JSC::B3::Value::dumpSuccessors):
(JSC::B3::Value::negConstant):
(JSC::B3::Value::typeFor):

  • b3/B3Value.h:
  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::addFastTmp):
(JSC::B3::Air::Code::addDataSection):
(JSC::B3::Air::Code::jsHash):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::isFastTmp):
(JSC::B3::Air::Code::setLastPhaseName):

  • b3/air/AirCustom.h:

(JSC::B3::Air::PatchCustom::shouldTryAliasingDef):
(JSC::B3::Air::PatchCustom::isTerminal):
(JSC::B3::Air::PatchCustom::hasNonArgNonControlEffects):
(JSC::B3::Air::PatchCustom::generate):
(JSC::B3::Air::CCallCustom::admitsStack):
(JSC::B3::Air::CCallCustom::isTerminal):
(JSC::B3::Air::CCallCustom::hasNonArgNonControlEffects):
(JSC::B3::Air::ShuffleCustom::admitsStack):
(JSC::B3::Air::ShuffleCustom::isTerminal):
(JSC::B3::Air::ShuffleCustom::hasNonArgNonControlEffects):

  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generate):

  • b3/air/AirGenerationContext.h:
  • b3/air/AirInst.h:

(JSC::B3::Air::Inst::hasNonControlEffects):

  • b3/air/AirSimplifyCFG.cpp:

(JSC::B3::Air::simplifyCFG):

  • b3/air/AirSpecial.cpp:

(JSC::B3::Air::Special::shouldTryAliasingDef):
(JSC::B3::Air::Special::isTerminal):
(JSC::B3::Air::Special::hasNonArgNonControlEffects):

  • b3/air/AirSpecial.h:
  • b3/air/AirValidate.cpp:
  • b3/air/opcode_generator.rb:
  • b3/testb3.cpp:
  • ftl/FTLLowerDFGToB3.cpp:
  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::jump):
(JSC::FTL::Output::branch):
(JSC::FTL::Output::ret):
(JSC::FTL::Output::unreachable):
(JSC::FTL::Output::speculate):
(JSC::FTL::Output::trap):
(JSC::FTL::Output::anchor):
(JSC::FTL::Output::decrementSuperSamplerCount):
(JSC::FTL::Output::addIncomingToPhi):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::constIntPtr):
(JSC::FTL::Output::callWithoutSideEffects):
(JSC::FTL::Output::switchInstruction):
(JSC::FTL::Output::phi):
(JSC::FTL::Output::addIncomingToPhi):

Websites/webkit.org:


Update documentation to reflect Patchpoint's new powers.

  • docs/b3/intermediate-representation.html:

LayoutTests:

  • js/regress/bigswitch-expected.txt: Added.
  • js/regress/bigswitch.html: Added.
  • js/regress/script-tests/bigswitch.js: Added.

(foo):

5:57 PM Changeset in webkit [203389] by Chris Dumez
  • 6 edits
    2 adds in trunk

DocType's publicId / systemId should not be nullable
​https://bugs.webkit.org/show_bug.cgi?id=159901

Reviewed by Benjamin Poulain.

LayoutTests/imported/w3c:

Rebaseline now that more checks regarding DocumentType serialization
are passing.

  • web-platform-tests/domparsing/xml-serialization-expected.txt:

Source/WebCore:

DocType's publicId / systemId should not be nullable. While they were
not marked as nullable in our IDL, they could be stored as null Strings
in our implementation depending on how the Node was constructed. This
led to subtle bugs where String() != emptyString().

In particular, Node.isEqualNode() would return false when DocumentType
nodes would mismatch because of their publicId / systemId being null
instead of the emptyString.

Serialization would DocumentType nodes would also be wrong when
publicId / systemId were empty Strings instead of null strings. The
new behavior now matches:

To address these issues, we now always store publicId / systemId as
non-null Strings inside the DocumentType class.

Test: fast/dom/DocumentType/isEqualNode.html

  • dom/DocumentType.cpp:

(WebCore::DocumentType::DocumentType):

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::appendDocumentType):

LayoutTests:

Add test coverage for comparison of DocumentType nodes
using isEqualNode(). This tests used to fail and now passes.
The test passes in Firefox and Chrome as well.

  • fast/dom/DocumentType/isEqualNode-expected.txt: Added.
  • fast/dom/DocumentType/isEqualNode.html: Added.
5:47 PM Changeset in webkit [203388] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

If previous media session interruptions were prevented, still allow subsequent interruptions to try.
​https://bugs.webkit.org/show_bug.cgi?id=157553
rdar://problem/25740804

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

Source/WebCore:

Test: platform/ios-simulator/media/video-interruption-suspendunderlock.html

When suspending under lock on iOS, there is first a resign active event, then a
suspend under lock. PiP prevents resign active from interrupting playback. But it should allow the
suspend under lock to interrupt playback.

Currently if there are nested interruptions only the first one is acted upon.

This change allows subsequent, nested interruptions to have a chance to interrupt playback if the
previous interruptions were ignored.

This test is for iPad only, so it must be run manually.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction):

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::beginInterruption):

  • testing/Internals.cpp:

(WebCore::Internals::beginMediaSessionInterruption):

LayoutTests:

When suspending under lock on iOS, there is first a resign active event, then a
suspend under lock. PiP prevents resign active from interrupting playback. But it should allow the
suspend under lock to interrupt playback.

Currently if there are nested interruptions only the first one is acted upon.

This change allows subsequent, nested interruptions to have a chance to interrupt playback if the
previous interruptions were ignored.

This test is for iPad only, so it must be run manually.

  • platform/ios-simulator/TestExpectations:
  • platform/ios-simulator/media/video-interruption-suspendunderlock-expcted.txt: Added.
  • platform/ios-simulator/media/video-interruption-suspendunderlock.html: Added.
5:38 PM Changeset in webkit [203387] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Don't null out the IPC::Connection's XPC connection
​https://bugs.webkit.org/show_bug.cgi?id=159911
rdar://problem/27018065

Reviewed by Alex Christensen.

The function that nulls out the XPC connection, platformInvalidate(), is called from the connection queue,
whereas the XPC connection is normally accessed from the main thread leading to inconsistencies when the
connection is being invalidated while the main thread is trying to access it.

Fix this by simply never nulling out the XPC connection. It will be released when the IPC::Connection is destroyed anyway.

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::platformInvalidate):

5:24 PM Changeset in webkit [203386] by aakash_jain@apple.com
  • 5 edits in trunk/Tools

EWS console logs doesn't go to log file
​https://bugs.webkit.org/show_bug.cgi?id=159539
<rdar://problem/24464570>

Reviewed by David Kilzer.

  • Scripts/webkitpy/common/system/logutils.py:

(configure_logger_to_log_to_file): Added method to configure the logger to log to file.
(FileSystemHandler): Added class which uses logging.FileHandler as base class and supports writing
to filesystem. It also supports passing MockFilesystem.
(FileSystemHandler.init): Initialize the class and calls base class init.
(FileSystemHandler._open): Overrides the base class _open method to use filesystem object.

  • Scripts/webkitpy/tool/commands/earlywarningsystem_unittest.py:

(AbstractEarlyWarningSystemTest.test_failing_tests_message): Added MockHost() parameter.
(_test_ews): Same.

  • Scripts/webkitpy/tool/commands/queues.py:

(AbstractQueue.begin_work_queue): Configure the logger to log to file.
(AbstractQueue._log_directory): Using filesystem object instead of os.
(AbstractQueue.queue_log_path): Same.
(AbstractQueue.init): Passed host parameter.
(PatchProcessingQueue.init): Same.
(CommitQueue.init): Same.
(AbstractReviewQueue.init): Same.
(StyleQueue.init): Same.

  • Scripts/webkitpy/tool/commands/queues_unittest.py:

(TestCommitQueue): Passed MockHost() as host.
(TestCommitQueue.init): Same.
(TestQueue.init): Same.
(TestReviewQueue.init): Same.
(TestFeederQueue.init): Same.
(AbstractPatchQueueTest.test_next_patch): Same.
(PatchProcessingQueueTest.test_upload_results_archive_for_patch): Same.
(test_commit_queue_failure): Same.
(MockCommitQueueTask.results_from_patch_test_run): Same.
(test_rollout_lands): Same.
(test_non_valid_patch): Same.
(test_auto_retry): Same.
(test_style_queue_with_watch_list_exception): Same.

5:24 PM Changeset in webkit [203385] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Tapping on an apple.com tab in tab overview stutters when switching to it
​https://bugs.webkit.org/show_bug.cgi?id=159904
<rdar://problem/27192350>

Reviewed by Simon Fraser.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::waitForDidUpdateViewState):
In any case where we get to waitForDidUpdateViewState (usually a tab switch),
if we have an outstanding didUpdate message, the Web process will not commit
a new layer tree until it receives the didUpdate message. However, since
waitForDidUpdateViewState synchronously blocks the UI process, we also
won't *send* the didUpdate message, so we block for the full timeout duration.

Instead, if we get to waitForDidUpdateViewState, just send the didUpdate without
waiting for the DisplayLink or anything else, because calling rAF slightly too
quickly, once, is certainly better than blocking the UI process for a whole second.

5:20 PM Changeset in webkit [203384] by clopez@igalia.com
  • 2 edits in trunk/Source/WebKit2

[GTK] ENABLE_OPENGL=OFF build broken since r201802
​https://bugs.webkit.org/show_bug.cgi?id=159909

Reviewed by Antonio Gomes.

  • WebProcess/WebPage/LayerTreeHost.h: Add missing include.
5:13 PM Changeset in webkit [203383] by Brent Fulgham
  • 5 edits
    4 adds in trunk

Don't associate form-associated elements with forms in other trees.
​https://bugs.webkit.org/show_bug.cgi?id=119451
<rdar://problem/27382946>

Change is based on the Blink change (patch by <​adamk@chromium.org>):
<​https://chromium.googlesource.com/chromium/blink/+/0b33128be67e7845d495d5219614c02ccfe7a414>

Reviewed by Chris Dumez.

Source/WebCore:

Prevent elements from being associated with forms that are not part of the same home subtree.
This brings us in line with the WhatWG HTML specification as of September, 2013.

Tests: fast/forms/image-disconnected-during-parse.html

fast/forms/input-disconnected-during-parse.html

  • dom/Element.h:

(WebCore::Node::rootElement): Added.

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::insertedInto): If the element is associated with a form that
is not part of the same tree, remove the association.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::insertedInto): Ditto.

LayoutTests:

  • fast/forms/image-disconnected-during-parse-expected.txt: Added.
  • fast/forms/image-disconnected-during-parse.html: Added.
  • fast/forms/input-disconnected-during-parse-expected.txt: Added.
  • fast/forms/input-disconnected-during-parse.html: Added.
4:56 PM Changeset in webkit [203382] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.42

New tag.

4:54 PM Changeset in webkit [203381] by andersca@apple.com
  • 14 edits
    5 adds in trunk/Source

WebKit nightly fails to build on macOS Sierra
​https://bugs.webkit.org/show_bug.cgi?id=159902
rdar://problem/27365672

Reviewed by Tim Horton.

Source/JavaScriptCore:

  • icu/unicode/ucurr.h: Added.

Add ucurr.h from ICU.

Source/WebCore:

  • Modules/applepay/cocoa/PaymentCocoa.mm:
  • Modules/applepay/cocoa/PaymentContactCocoa.mm:
  • Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm:
  • Modules/applepay/cocoa/PaymentMethodCocoa.mm:

Use new PassKitSPI header.

  • WebCore.xcodeproj/project.pbxproj:

Add new PassKitSPI header.

  • icu/unicode/ucurr.h: Added.

Add ucurr.h from ICU.

  • platform/spi/cocoa/PassKitSPI.h: Added.

Add new PassKitSPI header.

Source/WebKit/mac:

  • icu/unicode/ucurr.h: Added.

Add ucurr.h from ICU.

Source/WebKit2:

  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
  • UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

Use new PassKitSPI header.

Source/WTF:

  • icu/unicode/ucurr.h: Added.

Add ucurr.h from ICU.

4:39 PM Changeset in webkit [203380] by dino@apple.com
  • 15 edits in trunk

REGRESSION (r202950): Image zoom animations are broken at medium.com (159861)
​https://bugs.webkit.org/show_bug.cgi?id=159906
<rdar://problem/27391725>

Reviewed by Simon Fraser.

The fix for webkit.org/b/157569 in r200769 broke AMP pages.
The followup fix for webkit.org/b/159450 in r202950 broke Medium pages.

Revert them both until we have better testing.

Source/WebCore:

  • css/CSSParser.cpp:

(WebCore::CSSParser::addPropertyWithPrefixingVariant):
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseAnimationShorthand):
(WebCore::CSSParser::parseTransitionShorthand): Deleted.

  • css/CSSPropertyNames.in:
  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValue):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValue):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal):
(WebCore::PropertySetCSSStyleDeclaration::getPropertyValueInternal):

  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::removeShorthandProperty):
(WebCore::MutableStyleProperties::removeProperty):
(WebCore::MutableStyleProperties::removePrefixedOrUnprefixedProperty):
(WebCore::MutableStyleProperties::setProperty):
(WebCore::getIndexInShorthandVectorForPrefixingVariant):
(WebCore::MutableStyleProperties::appendPrefixingVariantProperty):
(WebCore::MutableStyleProperties::setPrefixingVariantProperty):
(WebCore::StyleProperties::asText): Deleted.

  • css/StyleProperties.h:

LayoutTests:

  • animations/fill-mode-forwards-zero-duration.html:
  • animations/play-state-start-paused.html:
  • animations/script-tests/spring-parsing.js:

(testSpring):

  • animations/spring-parsing-expected.txt:
  • animations/unprefixed-properties-expected.txt:
  • animations/unprefixed-properties.html:
  • fast/css/prefixed-unprefixed-variant-style-declaration-expected.txt:
  • fast/css/shorthand-omitted-initial-value-overrides-shorthand-expected.txt:
4:16 PM Changeset in webkit [203379] by akling@apple.com
  • 8 edits
    3 adds in trunk

There should be a way to simulate memory pressure in layout tests
<​https://webkit.org/b/159743>

Reviewed by Simon Fraser.

Source/WebCore:

Add three window.internal APIs:

  • boolean isUnderMemoryPressure (readonly attribute)
  • void beginSimulatedMemoryPressure()
  • void endSimulatedMemoryPressure()

These make it possible to write tests that exercise behaviors that only
occur during memory pressure situations.

I also implemented the "org.WebKit.lowMemory" notification handler using the new API.

Test: memory/memory-pressure-simulation.html

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::beginSimulatedMemoryPressure):
(WebCore::MemoryPressureHandler::endSimulatedMemoryPressure):

  • platform/MemoryPressureHandler.h:

(WebCore::MemoryPressureHandler::isUnderMemoryPressure):

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::platformReleaseMemory):
(WebCore::MemoryPressureHandler::install):

  • testing/Internals.cpp:

(WebCore::Internals::isUnderMemoryPressure):
(WebCore::Internals::beginSimulatedMemoryPressure):
(WebCore::Internals::endSimulatedMemoryPressure):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Add a basic test for the new APIs.

  • memory/memory-pressure-simulation-expected.txt: Added.
  • memory/memory-pressure-simulation.html: Added.
3:46 PM Changeset in webkit [203378] by commit-queue@webkit.org
  • 10 edits
    2 adds in trunk

[iOS] PDFDocumentImage should cache only a sub image of the PDF when caching the whole image is expensive
​https://bugs.webkit.org/show_bug.cgi?id=158715

Source/WebCore:

Patch by Said Abou-Hallawa <sabouhallawa@apple,com> on 2016-07-18
Reviewed by Dean Jackson.

Test: fast/images/displaced-non-cached-pdf.html

For iOS, we need to ensure the size of the cached PDF images will not
exceed some limit. Also we should be caching only a sub image of the PDF
if caching the whole image will exceed the memory limit.

  • page/Settings.cpp:

(WebCore::Settings::Settings):
(WebCore::Settings::setCachedPDFImageEnabled):

  • page/Settings.h:

(WebCore::Settings::isCachedPDFImageEnabled):

Add an option to disable caching the PDF images.

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::setCachedPDFImageEnabled):

Allow the caller of draw() to disable caching the PDF images.

(WebCore::PDFDocumentImage::cacheParametersMatch):

Match the context dirty rectangle with the cached image rectangle.

(WebCore::transformContextForPainting):

When preparing the context for drawing the PDF, take the location
of the destination rectangle into account. We do not need to scale
the location of the source rectangle because we scale the size of
the rectangle but we don't scale the whole coordinate system.

(WebCore::cachedImageRect):

Calculate the rectangle of the cached image such that it does not
exceed the limit. Start from the center of the dirty rectangle and
then expand around it.

(WebCore::PDFDocumentImage::decodedSizeChanged):

In addition to notifying the ImageObserver, it keeps track of the size
of all the cached PDF images.

(WebCore::PDFDocumentImage::updateCachedImageIfNeeded):

Ensure the size of all the cached images does not exceed the limit

(WebCore::PDFDocumentImage::destroyDecodedData):

  • platform/graphics/cg/PDFDocumentImage.h:
  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintIntoRect):

Pass the option to disable caching the PDF images to PDFDocumentImage.

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setCachedPDFImageEnabled):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

Add an internal option to disable caching the PDF images.

LayoutTests:

Patch by Said Abou-Hallawa <​sabouhallawa@apple.com> on 2016-07-18
Reviewed by Dean Jackson.

Make sure the PDF image will be displayed at the correct position if caching
the PDF image is disabled.

  • fast/images/displaced-non-cached-pdf-expected.html: Added.
  • fast/images/displaced-non-cached-pdf.html: Added.
3:33 PM Changeset in webkit [203377] by Chris Dumez
  • 9 edits
    2 adds
    6 deletes in trunk

The 2 first parameters to addEventListener() / removeEventListener() should be mandatory
​https://bugs.webkit.org/show_bug.cgi?id=158008

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

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

Source/WebCore:

The 2 first parameters to addEventListener() / removeEventListener() should be
mandatory:

Firefox 46 and Chrome 50 both match the specification and throw an exception when those
parameters are omitted. However, those parameters were marked as optional in WebKit and
the calls were no-ops if those parameters were omitted. This patch aligns our behavior
with the specification and other browsers.

Test: fast/dom/eventtarget-api-parameters.html

  • bindings/scripts/CodeGeneratorJS.pm:

(GetFunctionLength): Deleted.

  • dom/EventTarget.idl:

LayoutTests:

  • fast/dom/Window/window-legacy-event-listener-expected.txt: Removed.
  • fast/dom/Window/window-legacy-event-listener.html: Removed.
  • fast/dom/XMLHttpRequest-legacy-event-listener-expected.txt: Removed.
  • fast/dom/XMLHttpRequest-legacy-event-listener.html: Removed.
  • fast/dom/node-legacy-event-listener-expected.txt: Removed.
  • fast/dom/node-legacy-event-listener.html: Removed.

Drop legacy tests that expect the addEventListener() / removeEventListener()
parameters to be optional.

  • fast/dom/eventtarget-api-parameters-expected.txt: Added.
  • fast/dom/eventtarget-api-parameters.html: Added.

Add layout test to check that the 2 first parameters of addEventListener()
and removeEventListener() are now mandatory. It also checks that the
second parameter is nullable.

  • media/video-remote-control-playpause.html:

Drop useless call to addEventListener() without a listener as it now throws.

3:20 PM Changeset in webkit [203376] by msaboff@apple.com
  • 3 edits
    1 add in trunk/Source
ASSERTION FAILED: : (year >= 1970 && yearday >= 0)
(year < 1970 && yearday < 0) -- WTF/wtf/DateMath.cpp

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

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

New test.

  • tests/stress/regress-159883.js: Added.

Source/WTF:

The function daysFrom1970ToYear() takes an integer year and returns a double result.
The calculation uses 1970 as a baseline year and subtracts 1970 from the argument year.
It does that subtraction using integer arithmetic, which given negative years close to
INT_MIN can underflow as a result of subtracting 1970. Since we want a double result,
the fix is to cast year as a double before the subtraction, which eliminates the underflow.

  • wtf/DateMath.cpp:

(WTF::daysFrom1970ToYear):

2:33 PM Changeset in webkit [203375] by fpizlo@apple.com
  • 21 edits
    2 adds in trunk/Source/JavaScriptCore

MarkedBlocks should know that they can be used for more than JSCells
​https://bugs.webkit.org/show_bug.cgi?id=159643

Reviewed by Geoffrey Garen.

This teaches the Heap that a MarkedBlock may hold either JSCells, or Auxiliary, which is
not a JSCell. It teaches the heap and all of the things that walk the heap to ignore
non-JSCells whenever they are looking for global objects, JSObjects, and things to trace
for debugging or profiling. The idea is that we will be able to allocate butterflies and
typed array backing stores as Auxiliary in MarkedSpace rather than allocating those things
in CopiedSpace. That's what bug 159658 is all about.

This gives us a new type, called HeapCell, which is just meant to be a class distinct from
JSCell or any type we would use for Auxiliary. For convenience, JSCell is a subclass of
HeapCell. HeapCell has an enum called HeapCell::Kind, which is either HeapCell::JSCell or
HeapCell::Auxiliary. MarkedSpace no longer speaks of JSCells directly except when dealing
with destruction.

This change required doing a lot of stuff to all of those functor callbacks, since they
now take HeapCell* instead of JSCell* and they take an extra HeapCell::Kind argument to
tell them if they are dealing with JSCells or Auxiliary. I figured that this would be as
good a time as any to convert those functors to being lambda-compatible. This means that
operator() must be const. In some cases, converting the operator() to be const would have
taken more work than just turning the whole thing into a lambda. Whenever this was the
case, I converted the code to use lambdas. I left a lot of functors alone. In cases where
the functor would benefit from being a lambda, for example because it would get rid of
const_casts or mutables, I put in a FIXME referencing bug 159644.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • debugger/Debugger.cpp:

(JSC::Debugger::SetSteppingModeFunctor::SetSteppingModeFunctor):
(JSC::Debugger::SetSteppingModeFunctor::operator()):
(JSC::Debugger::ToggleBreakpointFunctor::ToggleBreakpointFunctor):
(JSC::Debugger::ToggleBreakpointFunctor::operator()):
(JSC::Debugger::ClearCodeBlockDebuggerRequestsFunctor::ClearCodeBlockDebuggerRequestsFunctor):
(JSC::Debugger::ClearCodeBlockDebuggerRequestsFunctor::operator()):
(JSC::Debugger::ClearDebuggerRequestsFunctor::ClearDebuggerRequestsFunctor):
(JSC::Debugger::ClearDebuggerRequestsFunctor::operator()):

  • heap/CodeBlockSet.h:

(JSC::CodeBlockSet::iterate):

  • heap/HandleSet.h:

(JSC::HandleNode::next):
(JSC::HandleSet::forEachStrongHandle):

  • heap/Heap.cpp:

(JSC::GatherHeapSnapshotData::GatherHeapSnapshotData):
(JSC::GatherHeapSnapshotData::operator()):
(JSC::RemoveDeadHeapSnapshotNodes::RemoveDeadHeapSnapshotNodes):
(JSC::RemoveDeadHeapSnapshotNodes::operator()):
(JSC::Heap::protectedGlobalObjectCount):
(JSC::Heap::globalObjectCount):
(JSC::Heap::protectedObjectCount):
(JSC::Heap::protectedObjectTypeCounts):
(JSC::Heap::objectTypeCounts):
(JSC::Heap::deleteAllCodeBlocks):
(JSC::MarkedBlockSnapshotFunctor::MarkedBlockSnapshotFunctor):
(JSC::MarkedBlockSnapshotFunctor::operator()):
(JSC::Zombify::visit):
(JSC::Zombify::operator()):
(JSC::Heap::zombifyDeadObjects):
(JSC::Heap::flushWriteBarrierBuffer):

  • heap/Heap.h:

(JSC::Heap::handleSet):
(JSC::Heap::handleStack):

  • heap/HeapCell.cpp: Added.

(WTF::printInternal):

  • heap/HeapCell.h: Added.

(JSC::HeapCell::HeapCell):
(JSC::HeapCell::zap):
(JSC::HeapCell::isZapped):

  • heap/HeapInlines.h:

(JSC::Heap::deprecatedReportExtraMemory):
(JSC::Heap::forEachCodeBlock):
(JSC::Heap::forEachProtectedCell):
(JSC::Heap::allocateWithDestructor):

  • heap/HeapStatistics.cpp:

(JSC::StorageStatistics::visit):
(JSC::StorageStatistics::operator()):

  • heap/HeapVerifier.cpp:

(JSC::GatherLiveObjFunctor::visit):
(JSC::GatherLiveObjFunctor::operator()):

  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::allocateBlock):
(JSC::MarkedAllocator::addBlock):
(JSC::MarkedAllocator::reset):
(JSC::MarkedAllocator::lastChanceToFinalize):
(JSC::LastChanceToFinalize::operator()): Deleted.

  • heap/MarkedAllocator.h:

(JSC::MarkedAllocator::takeLastActiveBlock):
(JSC::MarkedAllocator::resumeAllocating):
(JSC::MarkedAllocator::forEachBlock):

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::create):
(JSC::MarkedBlock::destroy):
(JSC::MarkedBlock::MarkedBlock):
(JSC::MarkedBlock::callDestructor):
(JSC::MarkedBlock::specializedSweep):
(JSC::SetNewlyAllocatedFunctor::SetNewlyAllocatedFunctor):
(JSC::SetNewlyAllocatedFunctor::operator()):
(JSC::MarkedBlock::stopAllocating):
(JSC::MarkedBlock::didRetireBlock):

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::CountFunctor::CountFunctor):
(JSC::MarkedBlock::CountFunctor::count):
(JSC::MarkedBlock::CountFunctor::returnValue):
(JSC::MarkedBlock::needsDestruction):
(JSC::MarkedBlock::cellKind):
(JSC::MarkedBlock::size):
(JSC::MarkedBlock::clearNewlyAllocated):
(JSC::MarkedBlock::isMarkedOrNewlyAllocated):
(JSC::MarkedBlock::isLive):
(JSC::MarkedBlock::isLiveCell):
(JSC::MarkedBlock::forEachCell):
(JSC::MarkedBlock::forEachLiveCell):
(JSC::MarkedBlock::forEachDeadCell):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::MarkedSpace):
(JSC::MarkedSpace::~MarkedSpace):
(JSC::MarkedSpace::lastChanceToFinalize):
(JSC::MarkedSpace::sweep):
(JSC::MarkedSpace::zombifySweep):
(JSC::MarkedSpace::resetAllocators):
(JSC::MarkedSpace::visitWeakSets):
(JSC::MarkedSpace::reapWeakSets):
(JSC::MarkedSpace::forEachAllocator):
(JSC::MarkedSpace::stopAllocating):
(JSC::MarkedSpace::resumeAllocating):
(JSC::MarkedSpace::isPagedOut):
(JSC::MarkedSpace::shrink):
(JSC::clearNewlyAllocatedInBlock):
(JSC::MarkedSpace::clearNewlyAllocated):
(JSC::MarkedSpace::clearMarks):
(JSC::Free::Free): Deleted.
(JSC::Free::operator()): Deleted.
(JSC::FreeOrShrink::FreeOrShrink): Deleted.
(JSC::FreeOrShrink::operator()): Deleted.
(JSC::VisitWeakSet::VisitWeakSet): Deleted.
(JSC::VisitWeakSet::operator()): Deleted.
(JSC::ReapWeakSet::operator()): Deleted.
(JSC::LastChanceToFinalize::operator()): Deleted.
(JSC::StopAllocatingFunctor::operator()): Deleted.
(JSC::ResumeAllocatingFunctor::operator()): Deleted.
(JSC::ClearNewlyAllocated::operator()): Deleted.
(JSC::VerifyNewlyAllocated::operator()): Deleted.

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::forEachLiveCell):
(JSC::MarkedSpace::forEachDeadCell):
(JSC::MarkedSpace::allocatorFor):
(JSC::MarkedSpace::allocateWithDestructor):
(JSC::MarkedSpace::forEachBlock):
(JSC::MarkedSpace::didAddBlock):
(JSC::MarkedSpace::objectCount):
(JSC::MarkedSpace::size):
(JSC::MarkedSpace::capacity):
(JSC::ClearMarks::operator()): Deleted.
(JSC::Sweep::operator()): Deleted.
(JSC::ZombifySweep::operator()): Deleted.
(JSC::MarkCount::operator()): Deleted.
(JSC::Size::operator()): Deleted.

  • runtime/JSCell.h:

(JSC::JSCell::zap): Deleted.
(JSC::JSCell::isZapped): Deleted.

  • runtime/JSCellInlines.h:

(JSC::allocateCell):
(JSC::JSCell::isObject):
(JSC::isZapped): Deleted.

  • runtime/JSGlobalObject.cpp:
  • tools/JSDollarVMPrototype.cpp:

(JSC::CellAddressCheckFunctor::CellAddressCheckFunctor):
(JSC::CellAddressCheckFunctor::operator()):

2:15 PM Changeset in webkit [203374] by Brent Fulgham
  • 5 edits
    4 deletes in trunk

Unreviewed, rolling out r203373.

Unaddressed

Reverted changeset:

"Don't associate form-associated elements with forms in other
trees."
​https://bugs.webkit.org/show_bug.cgi?id=119451
​http://trac.webkit.org/changeset/203373

2:12 PM Changeset in webkit [203373] by Brent Fulgham
  • 5 edits
    4 adds in trunk

Don't associate form-associated elements with forms in other trees.
​https://bugs.webkit.org/show_bug.cgi?id=119451
<rdar://problem/27382946>

Change is based on the Blink change (patch by <​adamk@chromium.org>):
<​https://chromium.googlesource.com/chromium/blink/+/0b33128be67e7845d495d5219614c02ccfe7a414>

Reviewed by Zalan Bujtas.

Source/WebCore:

Prevent elements from being associated with forms that are not part of the same home subtree.
This brings us in line with the WhatWG HTML specification as of September, 2013.

Tests: fast/forms/image-disconnected-during-parse.html

fast/forms/input-disconnected-during-parse.html

  • dom/NodeTraversal.h:

(WebCore::NodeTraversal::highestAncestorOrSelf): Added.

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::insertedInto): If the element is associated with a form that
is not part of the same tree, remove the association.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::insertedInto): Ditto.

LayoutTests:

  • fast/forms/image-disconnected-during-parse-expected.txt: Added.
  • fast/forms/image-disconnected-during-parse.html: Added.
  • fast/forms/input-disconnected-during-parse-expected.txt: Added.
  • fast/forms/input-disconnected-during-parse.html: Added.
1:59 PM Changeset in webkit [203372] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking storage/indexeddb/modern/handle-user-delete.html as flaky on mac-wk2
​https://bugs.webkit.org/show_bug.cgi?id=159896

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
1:41 PM Changeset in webkit [203371] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit2

Mail contents are temporarily obscured by black rectangles when returning from suspend and in app switcher
​https://bugs.webkit.org/show_bug.cgi?id=159894
<rdar://problem/26973202>

Reviewed by Simon Fraser.

  • UIProcess/ApplicationStateTracker.h:
  • UIProcess/ApplicationStateTracker.mm:

(WebKit::ApplicationStateTracker::ApplicationStateTracker):
(WebKit::ApplicationStateTracker::~ApplicationStateTracker):
(WebKit::ApplicationStateTracker::applicationDidCreateWindowContext):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didMoveToWindow]):
(-[WKContentView _applicationDidCreateWindowContext]):
(-[WKContentView _applicationWillEnterForeground]): Deleted.

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView didMoveToWindow]):
(-[WKPDFView _applicationDidCreateWindowContext]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidFinishSnapshottingAfterEnteringBackground):
Hide content at window context creation time, instead of when the application
becomes foregrounded. Otherwise, background snapshots (which create/destroy
window contexts, but do not bring the app into the foreground) can have
parented layers that have volatile surfaces in them. In the normal case,
we will subsequently get foregrounded and re-build the layer tree; in the
background snapshot case, we will just have an empty layer tree.

In the future, we should consider making ApplicationStateTracker use
window context creation/destruction to drive web process lifetime, so
that we can actually paint correctly for background snapshots.

1:31 PM Changeset in webkit [203370] by fpizlo@apple.com
  • 8 edits
    38 adds in trunk

Source/JavaScriptCore:
Repeatedly creating and destroying workers that enqueue DFG plans can outpace the DFG worklist, which then causes VM shutdown to stall, which then causes memory growth
​https://bugs.webkit.org/show_bug.cgi?id=159754

Reviewed by Geoffrey Garen.

If you create and destroy workers at a high rate and those workers enqueue some DFG plans
that are still not compiled at the time that the worker is closed, then the closed workers
end up stalling in VM::~VM waiting for the DFG worklist thread to finish those plans. Since
we don't actually cancel the plans, it's easy to create a situation where the workers
outpace the DFG worklist, especially if you create many workers at a time and each one
finishes just after enqueueing those plans.

The solution is to allow VM::~VM to remove plans from the DFG worklist that are related to
that VM but aren't currently being worked on. That turns out to be an easy change.

I have a test that repros this, but it's quite long-running. I call it workers/bomb.html. We
may want to exclude it from test runs because of how long it takes.

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::removeDeadPlans):
(JSC::DFG::Worklist::removeNonCompilingPlansForVM):
(JSC::DFG::Worklist::queueLength):
(JSC::DFG::Worklist::runThread):

  • dfg/DFGWorklist.h:
  • runtime/VM.cpp:

(JSC::VM::~VM):

LayoutTests:
Repeatedly creating and destroying workers that enqueue DFG plans can outpace the DFG worklist, which then causes VM shutdown to stall, which then causes a memory growth
​https://bugs.webkit.org/show_bug.cgi?id=159754

Reviewed by Geoffrey Garen.

Adds two tests that create a lot of workers that do sophisticated things. These are
long-running tests so we may want to skip them. It's OK if we end up only running them
manually occasionally.

  • workers: Added.
  • workers/bomb.html: Added.
  • workers/bomb-expected.txt: Added.
  • workers/bomb-with-v8.html: Added.
  • workers/tests: Added.
  • workers/tests/3d-cube.js: Added.
  • workers/tests/3d-morph.js: Added.
  • workers/tests/3d-raytrace.js: Added.
  • workers/tests/access-binary-trees.js: Added.
  • workers/tests/access-fannkuch.js: Added.
  • workers/tests/access-nbody.js: Added.
  • workers/tests/access-nsieve.js: Added.
  • workers/tests/bitops-3bit-bits-in-byte.js: Added.
  • workers/tests/bitops-bits-in-byte.js: Added.
  • workers/tests/bitops-bitwise-and.js: Added.
  • workers/tests/bitops-nsieve-bits.js: Added.
  • workers/tests/controlflow-recursive.js: Added.
  • workers/tests/crypto-aes.js: Added.
  • workers/tests/crypto-md5.js: Added.
  • workers/tests/crypto-sha1.js: Added.
  • workers/tests/date-format-tofte.js: Added.
  • workers/tests/date-format-xparb.js: Added.
  • workers/tests/math-cordic.js: Added.
  • workers/tests/math-partial-sums.js: Added.
  • workers/tests/math-spectral-norm.js: Added.
  • workers/tests/regexp-dna.js: Added.
  • workers/tests/string-base64.js: Added.
  • workers/tests/string-fasta.js: Added.
  • workers/tests/string-tagcloud.js: Added.
  • workers/tests/string-unpack-code.js: Added.
  • workers/tests/string-validate-input.js: Added.
  • workers/tests/v8-crypto.js: Added.
  • workers/tests/v8-deltablue.js: Added.
  • workers/tests/v8-earley-boyer.js: Added.
  • workers/tests/v8-raytrace.js: Added.
  • workers/tests/v8-regexp.js: Added.
  • workers/tests/v8-richards.js: Added.
  • workers/tests/v8-splay.js: Added.
1:16 PM Changeset in webkit [203369] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/modern/abort-requests-cancelled.html as flaky on mac-wk1
​https://bugs.webkit.org/show_bug.cgi?id=156070

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:12 PM Changeset in webkit [203368] by fpizlo@apple.com
  • 6 edits
    9 adds in trunk

Object.preventExtensions/seal/freeze makes code much slower
​https://bugs.webkit.org/show_bug.cgi?id=143247

Reviewed by Michael Saboff.

Source/JavaScriptCore:

This has been a huge pet peeve of mine for a long time, but I was always afraid of fixing
it because I thought that it would be hard. Well, it looks like it's not hard at all.

The problem is that you cannot mutate a structure that participates in transition caching.
You can only clone the structure and mutate that one. But if you do this, you have to make
a hard choice:

1) Clone the structure without caching the transition. This is what the code did before

this change. It's the most obvious choice, but it introduces an uncacheable transition
that leads to an explosion of structures, which then breaks all inline caches.


2) Perform one of the existing cacheable transitions. Cacheable transitions can either add

properties or they can do one of the NonPropertyTransitions, which until now have been
restricted to just IndexingType transitions. So, only adding transitions or making
certain prescribed changes to the indexing type count as cacheable transitions.


This change decouples NonPropertyTransition from IndexingType and adds three new kinds of
transitions: PreventExtensions, Seal, and Freeze. We have to give any cacheable transition
a name that fully disambiguates this transition from any other, so that the transition can
be cached. Since we're already giving them names in an enum, I figured that the most
pragmatic way to implement them is to have Structure::nonPropertyTransition() case on the
NonPropertyTransition and implement all of the mutations associated with that transition.
The alternative would have been to allow callers of nonPropertyTransition() to supply
something like a lambda that describes the mutation, but this seemed awkward since each
set of mutations has to anyway be tied to one of the NonPropertyTransition members.

This is an enormous speed-up on microbenchmarks that use Object.preventExtensions(),
Object.seal(), or Object.freeze(). I don't know if "real" benchmarks use these features
and I don't really care. This should be fast.

  • runtime/JSObject.cpp:

(JSC::JSObject::notifyPresenceOfIndexedAccessors):
(JSC::JSObject::createInitialUndecided):
(JSC::JSObject::createInitialInt32):
(JSC::JSObject::createInitialDouble):
(JSC::JSObject::createInitialContiguous):
(JSC::JSObject::convertUndecidedToInt32):
(JSC::JSObject::convertUndecidedToDouble):
(JSC::JSObject::convertUndecidedToContiguous):
(JSC::JSObject::convertInt32ToDouble):
(JSC::JSObject::convertInt32ToContiguous):
(JSC::JSObject::convertDoubleToContiguous):
(JSC::JSObject::switchToSlowPutArrayStorage):

  • runtime/Structure.cpp:

(JSC::Structure::suggestedArrayStorageTransition):
(JSC::Structure::addPropertyTransition):
(JSC::Structure::toUncacheableDictionaryTransition):
(JSC::Structure::sealTransition):
(JSC::Structure::freezeTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::takePropertyTableOrCloneIfPinned):
(JSC::Structure::nonPropertyTransition):
(JSC::Structure::pin):
(JSC::Structure::pinForCaching):
(JSC::Structure::allocateRareData):

  • runtime/Structure.h:
  • runtime/StructureTransitionTable.h:

(JSC::toAttributes):
(JSC::changesIndexingType):
(JSC::newIndexingType):
(JSC::preventsExtensions):
(JSC::setsDontDeleteOnAllProperties):
(JSC::setsReadOnlyOnAllProperties):

LayoutTests:

These tests now run ~25x faster.

  • js/regress/freeze-and-do-work-expected.txt: Added.
  • js/regress/freeze-and-do-work.html: Added.
  • js/regress/prevent-extensions-and-do-work-expected.txt: Added.
  • js/regress/prevent-extensions-and-do-work.html: Added.
  • js/regress/script-tests/freeze-and-do-work.js: Added.

(Foo):

  • js/regress/script-tests/prevent-extensions-and-do-work.js: Added.

(Foo):

  • js/regress/script-tests/seal-and-do-work.js: Added.

(Foo):

  • js/regress/seal-and-do-work-expected.txt: Added.
  • js/regress/seal-and-do-work.html: Added.
1:12 PM Changeset in webkit [203367] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking imported/w3c/web-platform-tests/XMLHttpRequest/event-readystatechange-loaded.htm as flaky on mac-debug WK1
​https://bugs.webkit.org/show_bug.cgi?id=159893

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
1:03 PM Changeset in webkit [203366] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/video-load-preload-metadata.html as flaky on Mac.
​https://bugs.webkit.org/show_bug.cgi?id=128312

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:51 PM Changeset in webkit [203365] by fpizlo@apple.com
  • 10 edits in trunk/Source

RegisterSet should use a Bitmap instead of a BitVector so that it never allocates memory and is trivial to copy
​https://bugs.webkit.org/show_bug.cgi?id=159863

Reviewed by Saam Barati.

Source/JavaScriptCore:

Switch RegisterSet set to Bitmap because Bitmap doesn't ever allocate memory and can be
assigned by memcpy. This should be a performance improvement for compiler code that does a
lot of things with RegisterSet. For example, it's one of the fundamental data structures in
Air. The previous use of BitVector meant that almost every operation on RegisterSet would
have a slow path call. On ARM64, it would mean memory allocation for any RegisterSet that
used all available registers.

This meant adding even more GPR/FPR reflection to the MacroAssembler API: we now have consts
called numGPRs and numFPRs. This is necessary to statically size the Bitmap in RegisterSet.

Here's the breakdown of sizes of RegisterSet on different CPUs:

x86-32: 8 bits (GPRs) + 8 bits (FPRs) + 1 bit (is deleted) = 1x uint32_t.
x86-64: 16 bits + 16 bits + 1 bit = 2x uint32_t.
ARMv7: 16 bits + 16 bits + 1 bit = 2x uint32_t.
ARM64: 32 bits + 32 bits + 1 bit = 3x uint32_t.

  • assembler/MacroAssemblerARM.h:
  • assembler/MacroAssemblerARM64.h:
  • assembler/MacroAssemblerARMv7.h:
  • assembler/MacroAssemblerX86.h:
  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::scratchRegister):

  • assembler/MacroAssemblerX86_64.h:
  • jit/RegisterSet.h:

(JSC::RegisterSet::set):
(JSC::RegisterSet::get):
(JSC::RegisterSet::setAll):
(JSC::RegisterSet::merge):
(JSC::RegisterSet::filter):
(JSC::RegisterSet::exclude):
(JSC::RegisterSet::numberOfSetRegisters):
(JSC::RegisterSet::RegisterSet):
(JSC::RegisterSet::isEmptyValue):
(JSC::RegisterSet::isDeletedValue):
(JSC::RegisterSet::operator==):
(JSC::RegisterSet::operator!=):
(JSC::RegisterSet::hash):
(JSC::RegisterSet::forEach):
(JSC::RegisterSet::setMany):

Source/WTF:

Give Bitmap all of the power of BitVector (except for automatic resizing). This means a
variant of set() that takes a bool, and a bunch of helper methods (merge, filter, exclude,
forEachSetBit, ==, !=, and hash).

  • wtf/Bitmap.h:

(WTF::WordType>::set):
(WTF::WordType>::testAndSet):
(WTF::WordType>::isFull):
(WTF::WordType>::merge):
(WTF::WordType>::filter):
(WTF::WordType>::exclude):
(WTF::WordType>::forEachSetBit):
(WTF::=):
(WTF::WordType>::hash):

12:32 PM Changeset in webkit [203364] by fpizlo@apple.com
  • 31 edits
    12 adds in trunk

DFG and FTL should support op_call_eval
​https://bugs.webkit.org/show_bug.cgi?id=159786

Reviewed by Saam Barati.
Source/JavaScriptCore:


This adds support for op_call_eval in DFG and FTL by brute force:

  • There is now a CallEval() node type, which compiles exactly the same way that we do in baseline.


  • We teach the DFG and bytecode liveness that the scope register and 'this' are read by CallEval()/op_call_eval.


We can compile eval quite well, except that right now we cannot inline functions that use
eval. It would be nice to do that, but the payoff is probably smaller. "Don't inline users
of eval" may even be an OK inlining heuristic. Not inlining users of eval allows me to
reuse the baseline implementation, which is really great. Otherwise, I'd have to get rid
of things like the rogue reads of scope register and 'this'.

The goal here is to produce speed-ups for code that has functions that do both eval and
some computational stuff. Obviously, we're not producing any benefit for the eval itself.
But now the other stuff in a function that uses eval will get to participate in
optimization.

This is a huge speed-up on microbenchmarks.

  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::printCallOp):
(JSC::CodeBlock::dumpBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::setLocal):
(JSC::DFG::ByteCodeParser::setArgument):
(JSC::DFG::ByteCodeParser::flush):
(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/DFGGraph.h:

(JSC::DFG::Graph::needsScopeRegister):
(JSC::DFG::Graph::needsFlushedThis):

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGMayExit.cpp:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction):

  • dfg/DFGNodeType.h:
  • dfg/DFGOSRExitCompiler.cpp:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStackLayoutPhase.cpp:

(JSC::DFG::StackLayoutPhase::run):

  • dfg/DFGWatchpointCollectionPhase.cpp:

(JSC::DFG::WatchpointCollectionPhase::handle):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileCallEval):
(JSC::FTL::DFG::LowerDFGToB3::compileLoadVarargs):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::restoreCalleeSavesFromVMEntryFrameCalleeSavesBuffer):
(JSC::AssemblyHelpers::emitDumbVirtualCall):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::emitTypeOf):

  • jit/JITCall.cpp:

(JSC::JIT::compileCallEvalSlowCase):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileCallEvalSlowCase):

  • jit/JITOperations.cpp:
  • tests/stress/exit-then-eval.js: Added.

(foo):

  • tests/stress/force-exit-then-eval-dfg.js: Added.

(foo):

  • tests/stress/force-exit-then-eval.js: Added.

(foo):

LayoutTests:

  • js/regress/eval-compute-expected.txt: Added.
  • js/regress/eval-compute.html: Added.
  • js/regress/eval-not-eval-compute-args-expected.txt: Added.
  • js/regress/eval-not-eval-compute-args.html: Added.
  • js/regress/eval-not-eval-compute-expected.txt: Added.
  • js/regress/eval-not-eval-compute.html: Added.
  • js/regress/script-tests/eval-compute.js: Added.

(foo):

  • js/regress/script-tests/eval-not-eval-compute-args.js: Added.

(foo):
(i.result.foo):

  • js/regress/script-tests/eval-not-eval-compute.js: Added.

(foo):
(i.result.foo):

12:23 PM Changeset in webkit [203363] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk/Source/WebCore

Move MediaSampleAVFObjC into its own file
​https://bugs.webkit.org/show_bug.cgi?id=159796
<rdar://problem/27362488>

In preparation for a feature that uses MediaSampleAVFObjC, but does
not need SourceBufferPrivateAVFObjC, it is beneficial to move
MediaSampleAVFObjC to its own file.

Patch by George Ruan <​gruan@apple.com> on 2016-07-18
Reviewed by Eric Carlson.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/MediaSample.h: Allow setting trackID to associate

MediaSample id with MediaStreamTrackPrivate id.

  • platform/graphics/avfoundation/MediaSampleAVFObjC.h: Added.
  • platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm: Moved

from MediaSampleAVFObjC
(WebCore::MediaSampleAVFObjC::presentationTime):
(WebCore::MediaSampleAVFObjC::decodeTime):
(WebCore::MediaSampleAVFObjC::duration):
(WebCore::MediaSampleAVFObjC::sizeInBytes):
(WebCore::MediaSampleAVFObjC::platformSample):
(WebCore::CMSampleBufferIsRandomAccess):
(WebCore::MediaSampleAVFObjC::flags):
(WebCore::MediaSampleAVFObjC::presentationSize):
(WebCore::MediaSampleAVFObjC::dump):
(WebCore::MediaSampleAVFObjC::offsetTimestampsBy):
(WebCore::MediaSampleAVFObjC::setTimestamps):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

Moved MediaSampleAVFObjC to its own file.
(WebCore::MediaSampleAVFObjC::platformSample): Deleted.
(WebCore::CMSampleBufferIsRandomAccess): Deleted.
(WebCore::MediaSampleAVFObjC::flags): Deleted.
(WebCore::MediaSampleAVFObjC::presentationSize): Deleted.
(WebCore::MediaSampleAVFObjC::dump): Deleted.
(WebCore::MediaSampleAVFObjC::offsetTimestampsBy): Deleted.
(WebCore::MediaSampleAVFObjC::setTimestamps): Deleted.

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:
12:18 PM Changeset in webkit [203362] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[MSE][Mac] Pass AVSampleBufferDisplayLayer HDCP status to a newly created key session
​https://bugs.webkit.org/show_bug.cgi?id=159812
<rdar://problem/27371624>

Reviewed by Jon Lee.

No new tests, it isn't possible to test this with our current testing infrastructure.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::setCDMSession): Call layerDidReceiveError if there has
been an HDCP error.
(WebCore::SourceBufferPrivateAVFObjC::rendererDidReceiveError): Remember an HDCP error.

12:12 PM Changeset in webkit [203361] by fpizlo@apple.com
  • 25 edits
    6 adds in trunk

DFG should really support jneq_ptr
​https://bugs.webkit.org/show_bug.cgi?id=159700

Reviewed by Keith Miller.

Source/JavaScriptCore:

Prior to this change, DFG statically speculated that jneq_ptr would always fall through. This
meant that programs that called o.apply() or o.call() where apply or call weren't the
expected ones (i.e. the function.prototype.apply/call) would rage-recompile forever.

This adds profiling to jneq_ptr. We now know if it always falls through or sometimes doesn't.
If it sometimes doesn't, we now emit an actual control flow diamond. I decided to add a new
NodeType for "equal pointer", since none of the existing ones really captured that. For
example, there was no way to express "equal pointer" for strings or symbols. We don't use it
for that right now, but we might, and if we did, then it would be hugely surprising that the
DFG interpreted this as value equality. So, the DFG now has CompareEqPtr, which means exactly
what jneq_ptr means by "equal pointer".

This is an enormous speed-up on microbenchmarks. I would assume that it's a speed-up on some
real things, too, but I don't know that for a fact.

  • bytecode/BytecodeList.json:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitJumpIfNotFunctionCall):
(JSC::BytecodeGenerator::emitJumpIfNotFunctionApply):
(JSC::BytecodeGenerator::emitExpectedFunctionSnippet):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasCellOperand):

  • dfg/DFGNodeType.h:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileRecordRegExpCachedResult):
(JSC::DFG::SpeculativeJIT::compileCompareEqPtr):

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGValidate.cpp:
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareEqPtr):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareLess):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEqConstant): Deleted.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_jneq_ptr):
(JSC::JIT::emit_op_eq):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_jneq_ptr):
(JSC::JIT::emit_op_eq):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:

LayoutTests:

These tests now run super fast.

  • js/regress/apply-not-apply-expected.txt: Added.
  • js/regress/apply-not-apply.html: Added.
  • js/regress/call-or-not-call-expected.txt: Added.
  • js/regress/call-or-not-call.html: Added.
  • js/regress/script-tests/apply-not-apply.js: Added.

(let.o.apply):
(foo):

  • js/regress/script-tests/call-or-not-call.js: Added.

(let.o.call):
(foo):

12:12 PM Changeset in webkit [203360] by bshafiei@apple.com
  • 3 edits in branches/safari-602-branch/Source/JavaScriptCore

Merged r203351. rdar://problem/27327111

12:07 PM Changeset in webkit [203359] by bshafiei@apple.com
  • 12 edits in branches/safari-602-branch/Source

Merge patch for rdar://problem/27360961.

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

Marking fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius-002.html as flaky on ios-sim
​https://bugs.webkit.org/show_bug.cgi?id=159881

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
11:57 AM Changeset in webkit [203357] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking http/tests/loading/basic-auth-resend-wrong-credentials.html as flaky on Mac and iOS WK2
​https://bugs.webkit.org/show_bug.cgi?id=159884

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
11:55 AM Changeset in webkit [203356] by fpizlo@apple.com
  • 7 edits
    3 adds in trunk

OSR entry into DFG has problems with lexical scoping
​https://bugs.webkit.org/show_bug.cgi?id=159687

Reviewed by Saam Barati.
Source/JavaScriptCore:


What a fun bug! It turns out that uses of lexical scoping, like "let", may sometimes cause us
to not be able to OSR enter into a loop from baseline to DFG. The bug is in a mitigation for
a different bug, which in turn had a mitigation for yet another bug, so the story here is a
long one.

DFG OSR entry has long had a mitigation for the following bug: the DFG bytecode parser may
choose to make us always OSR exit at some instruction if it thinks that it doesn't have
enough profiling for that instruction. We will do this if some kinds of put_by_id only
execute once, for example. This causes problems for loopy benchmarks like this:

put_by_id(something crazy);
for (var i = 0; i < bigNumber; ++i) simpleMath;


In this case, the put_by_id will have only executed once, and since it did something crazy
that one time, the bytecode parser will replace it with ForceOSRExit.

This creates an OSR entry bug: DFG CFA will then prove that the loop is unreachable, and will
tell OSR entry that it's impossible to enter into that loop.

We mitigated this bug a long time ago by recording mustHandleValues for loops at which we
want to enter. We inject these values into DFG CFA and we force CFA to recognize that the
loop is reachable even if CFA wanted to prove that it wasn't.

But this leads to another bug: we need to scrape the values from the stack inside
operationOptimize() and then we need to reason about them in the compiler. Some of those
values may be garbage, which would cause pandemonium inside the compiler. We also mitigated
this bug, by only recording the "vars", since those are guaranteed to be reset by op_enter.

And that's where the lexical scoping bug happens: "let" bound variables aren't part of the
"vars". DFG will see that they are live, but mustHandleValues will not have anything for
those variables, so CFA will prove that the values are Bottom. Then OSR entry will always
fail because no value is ever a subset of Bottom.

The first part of the fix is to ensure that mustHandleValues record all of the values on the
stack (i.e. within m_numCalleeLocals, rather than just m_numVars). But this creates a second
problem: we may record garbage. This patch includes a better fix for the garbage: before
touching mustHandleValues we run the bytecode liveness analysis and clear any values that are
not live. This ensures that we clear the garbage.

This is an enormous speed-up on microbenchmarks that use lexical scoping and have some crazy
put_by_id in the lead-up to the hot loop.

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::run):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::checkLivenessAndVisitChildren):
(JSC::DFG::Plan::cancel):
(JSC::DFG::Plan::cleanMustHandleValuesIfNecessary):

  • dfg/DFGPlan.h:

(JSC::DFG::Plan::canTierUpAndOSREnter):

  • jit/JITOperations.cpp:

LayoutTests:

  • js/regress/script-tests/strict-osr-entry.js: Added.

(let.o.apply_):

  • js/regress/strict-osr-entry-expected.txt: Added.
  • js/regress/strict-osr-entry.html: Added.
11:51 AM Changeset in webkit [203355] by bshafiei@apple.com
  • 7 edits in branches/safari-602-branch/Source/JavaScriptCore

Merged r203353. rdar://problem/27405849

11:48 AM Changeset in webkit [203354] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

11:47 AM Changeset in webkit [203353] by commit-queue@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

REGRESSION(r202975): --minimal build is broken
​https://bugs.webkit.org/show_bug.cgi?id=159765

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-18
Reviewed by Chris Dumez.

Covered partially by builtin generated test code.

Updating generator to add a global compilation guard around the code that generates all global internal properties.
Split the generate_methods function in two, one dedicated to the visit method and the second one dedicated to
the initialize method.

  • Scripts/builtins/builtins_generate_internals_wrapper_implementation.py:

(BuiltinsInternalsWrapperImplementationGenerator.generate_section_for_object): Use splitted generation functions.
(BuiltinsInternalsWrapperImplementationGenerator.generate_visit_method): Response to generate the visit method.
(BuiltinsInternalsWrapperImplementationGenerator._generate_initialize_static_globals): Responsible to generate
the code to initialize the internal globals. This code is put in a global compilation guard in case all
internals are compiled out by specific builds.
(BuiltinsInternalsWrapperImplementationGenerator):
(BuiltinsInternalsWrapperImplementationGenerator.generate_initialize_method): Responsible to generate the
initialize method.
(BuiltinsInternalsWrapperImplementationGenerator.generate_methods): Deleted.

  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result: Copyright change.
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result: Reflects partially the built-in

generator change.

11:46 AM Changeset in webkit [203352] by bshafiei@apple.com
  • 1 copy in branches/safari-602-branch

New Branch.

11:38 AM Changeset in webkit [203351] by keith_miller@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Fix bad assertions in genericTypedArrayViewPrivateFuncSubarrayCreate
​https://bugs.webkit.org/show_bug.cgi?id=159882
<rdar://problem/27327111>

Reviewed by Mark Lam.

According the spec toInteger can return values we don't consider ints.
Such as, -0 and +/-Infinity. This broke some assertions in
genericTypedArrayViewPrivateFuncSubarrayCreate.

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):

  • tests/stress/typedarray-subarray.js:
11:32 AM Changeset in webkit [203350] by fpizlo@apple.com
  • 10 edits in trunk

WTF::Lock should be fair eventually
​https://bugs.webkit.org/show_bug.cgi?id=159384

Reviewed by Geoffrey Garen.
Source/WTF:


In ​https://webkit.org/blog/6161/locking-in-webkit/ we showed how relaxing the fairness of
locks makes them fast. That post presented lock fairness as a trade-off between two
extremes:

  • Barging. A barging lock, like WTF::Lock, releases the lock in unlock() even if there was a thread on the queue. If there was a thread on the queue, the lock is released and that thread is made runnable. That thread may then grab the lock, or some other thread may grab the lock first (it may barge). Usually, the barging thread is the thread that released the lock in the first place. This maximizes throughput but hurts fairness. There is no good theoretical bound on how unfair the lock may become, but empirical data suggests that it's fair enough for the cases we previously measured.


  • FIFO. A FIFO lock, like HandoffLock in ToyLocks.h, does not release the lock in unlock() if there is a thread waiting. If there is a thread waiting, unlock() will make that thread runnable and inform it that it now holds the lock. This ensures perfect round-robin fairness and allows us to reason theoretically about how long it may take for a thread to grab the lock. For example, if we know that only N threads are running and each one may contend on a critical section, and each one may hold the lock for at most S seconds, then the time it takes to grab the lock is N * S. Unfortunately, FIFO locks perform very badly in most cases. This is because for the common case of short critical sections, they force a context switch after each critical section if the lock is contended.


This change makes WTF::Lock almost as fair as FIFO while still being as fast as barging.
Thanks to this new algorithm, you can now have both of these things at the same time.

This change makes WTF::Lock eventually fair. We can almost (more on the caveats below)
guarantee that the time it takes to grab a lock is N * max(1ms, S). In other words, critical
sections that are longer than 1ms are always fair. For shorter critical sections, the amount
of time that any thread waits is 1ms times the number of threads. There are some caveats
that arise from our use of randomness, but even then, in the limit as the critical section
length goes to infinity, the lock becomes fair. The corner cases are unlikely to happen; our
experiments show that the lock becomes exactly as fair as a FIFO lock for any critical
section that is 1ms or longer.

The fairness mechanism is broken into two parts. WTF::Lock can now choose to unlock a lock
fairly or unfairly thanks to the new ParkingLot token mechanism. WTF::Lock knows when to use
fair unlocking based on a timeout mechanism in ParkingLot called timeToBeFair.

ParkingLot::unparkOne() and ParkingLot::parkConditionally() can now communicate with each
other via a token. unparkOne() can pass a token, which parkConditionally() will return. This
change also makes parkConditionally() a lot more precise about when it was unparked due to a
call to unparkOne(). If unparkOne() is told that a thread was unparked then this thread is
guaranteed to report that it was unparked rather than timing out, and that thread is
guaranteed to get the token that unparkOne() passed. The token is an intptr_t. We use it as
a boolean variable in WTF::Lock, but you could use it to pass arbitrary data structures. By
default, the token is zero. WTF::Lock's unlock() will pass 1 as the token if it is doing
fair unlocking. In that case, unlock() will not release the lock, and lock() will know that
it holds the lock as soon as parkConditionally() returns. Note that this algorithm relies
on unparkOne() invoking WTF::Lock's callback while the queue lock is held, so that WTF::Lock
can make a decision about unlock strategy and inject a token while it has complete knowledge
over the state of the queue. As such, it's not immediately obvious how to implement this
algorithm on top of futexes. You really need ParkingLot!

WTF::Lock does not use fair unlocking every time. We expose a new API, Lock::unlockFairly(),
which forces the fair unlocking behavior. Additionally, ParkingLot now maintains a
per-bucket stochastic fairness timeout. When the timeout fires, the unparkOne() callback
sees UnparkResult::timeToBeFair = true. This timeout is set to be anywhere from 0ms to 1ms
at random. When a dequeue happens and there are threads that actually get dequeued, we check
if the time since the last unfair unlock (the last time timeToBeFair was set to true) is
more than the timeout amount. If so, then we set timeToBeFair to true and reset the timeout.
This means that in the absence of ParkingLot collisions, unfair unlocking is guaranteed to
happen at least once per millisecond. It will happen at 2 KHz on average. If there are
collisions, then each collision adds one millisecond to the worst case (and 0.5 ms to the
average case). The reason why we don't just use a fixed 1ms timeout is that we want to avoid
resonance. Imagine a program in which some thread acquires a lock at 1 KHz in-phase with the
timeToBeFair timeout. Then this thread would be the benefactor of fairness to the detriment
of everyone else. Randomness ensures that we aren't too fair to any one thread.

Empirically, this is neutral on our major benchmarks like JetStream but it's an enormous
improvement in LockFairnessTest. It's common for an unfair lock (either our BargingLock, the
old WTF::Lock, any of the other futex-based locks that barge, or new os_unfair_lock) to
allow only one thread to hold the lock during a whole second in which each thread is holding
the lock for 1ms at a time. This is because in a barging lock, releasing a lock after
holding it for 1ms and then reacquiring it immediately virtually ensures that none of the
other threads can wake up in time to grab it before it's relocked. But the new WTF::Lock
handles this case like a champ: each thread gets equal turns.

Here's some data. If we launch 10 threads and have each of them run for 1 second while
repeatedly holding a critical section for 1ms, then here's how many times each thread gets
to hold the lock using the old WTF::Lock algorithm:

799, 6, 1, 1, 1, 1, 1, 1, 1, 1

One thread hogged the lock for almost the whole time! With the new WTF::Lock, the lock
becomes totally fair:

80, 79, 79, 79, 79, 79, 79, 80, 80, 79

I don't know of anyone creating such an automatically-fair adaptive lock before, so I think
that this is a pretty awesome advancement to the state of the art!

This change is good for three reasons:

  • We do have long critical sections in WebKit and we don't want to have to worry about starvation. This reduces the likelihood that we will see starvation due to our lock strategy.


  • I was talking to ggaren about bmalloc's locking needs, and he wanted unlockFairly() or lockFairly() or some moral equivalent for the scavenger thread.


  • If we use a WTF::Lock to manage heap access in a multithreaded GC, we'll need the ability to unlock and relock without barging.
  • benchmarks/LockFairnessTest.cpp:

(main):

  • benchmarks/ToyLocks.h:
  • wtf/Condition.h:

(WTF::ConditionBase::waitUntil):
(WTF::ConditionBase::notifyOne):

  • wtf/Lock.cpp:

(WTF::LockBase::lockSlow):
(WTF::LockBase::unlockSlow):
(WTF::LockBase::unlockFairlySlow):
(WTF::LockBase::unlockSlowImpl):

  • wtf/Lock.h:

(WTF::LockBase::try_lock):
(WTF::LockBase::unlock):
(WTF::LockBase::unlockFairly):
(WTF::LockBase::isHeld):
(WTF::LockBase::isFullyReset):

  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionallyImpl):
(WTF::ParkingLot::unparkOne):
(WTF::ParkingLot::unparkOneImpl):
(WTF::ParkingLot::unparkAll):

  • wtf/ParkingLot.h:

(WTF::ParkingLot::parkConditionally):
(WTF::ParkingLot::compareAndPark):
(WTF::ParkingLot::unparkOne):

Tools:

  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp:
10:43 AM Changeset in webkit [203349] by yoav@yoav.ws
  • 2 edits in trunk/Source/WebCore

Add preload to features.json
​https://bugs.webkit.org/show_bug.cgi?id=159872

Reviewed by Darin Adler.

No new tests but no functional change.

  • features.json:
9:17 AM Changeset in webkit [203348] by ap@apple.com
  • 2 edits in trunk

"make ARCHS=x86_64" fails to build
​https://bugs.webkit.org/show_bug.cgi?id=159867

Reviewed by Dan Bernstein.

  • Makefile.shared: Override VALID_ARCHS when ARCHS is set, so that even projects

that normally customize VALID_ARCHS wouldn't fail to build.

6:41 AM Changeset in webkit [203347] by commit-queue@webkit.org
  • 6 edits in trunk

[Streams API] ReadableStream should throw a RangeError in case of NaN highWaterMark
​https://bugs.webkit.org/show_bug.cgi?id=159870

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-18
Reviewed by Xabier Rodriguez-Calvar.

LayoutTests/imported/w3c:

  • web-platform-tests/streams/readable-streams/bad-strategies.https-expected.txt:

Source/WebCore:

Covered by rebased test.

  • Modules/streams/StreamInternals.js:

(validateAndNormalizeQueuingStrategy): Throwing a RangeError in lieu of a TypeError in case of NaN highWaterMark.

LayoutTests:

  • streams/reference-implementation/bad-strategies.html: Reflecting isNaN change in WritableStream test.
6:24 AM MathML/Fonts edited by fred.wang@free.fr
Update supported MATH constants (diff)
5:41 AM Changeset in webkit [203346] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Windows buildfix after r203338
​https://bugs.webkit.org/show_bug.cgi?id=159875

Unreviewed buildfix.

  • dom/UserGestureIndicator.h:

(WebCore::UserGestureToken::addDestructionObserver):

3:39 AM Changeset in webkit [203345] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.13.3

WebKitGTK+ 2.13.3

3:35 AM Changeset in webkit [203344] by Carlos Garcia Campos
  • 4 edits in trunk

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.13.3 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.13.3.
2:24 AM Changeset in webkit [203343] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

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

  • PlatformMac.cmake:
2:04 AM Changeset in webkit [203342] by Carlos Garcia Campos
  • 18 edits
    1 copy
    2 adds in trunk/Source

MemoryPressureHandler doesn't work if cgroups aren't present in Linux
​https://bugs.webkit.org/show_bug.cgi?id=155255

Reviewed by Sergio Villar Senin.

Source/WebCore:

Allow to pass an eventFD file descriptor to the MemoryPressureHandler to be monitorized in case cgroups are not
available.

  • platform/MemoryPressureHandler.h:
  • platform/linux/MemoryPressureHandlerLinux.cpp:

Source/WebKit2:

There's no way to get notifications about memory pressure in Linux without using cgroups that doesn't require a
manual polling. We can get that information from /proc/meminfo, but that's not pollable so it requires to
manually check its contents in a loop sleeping for a while between checks. This means we would be waking up the
process on every poll iteration, most of the times for nothing. That's specially problematic on devices running
on battery. And taking into account that there's a memory pressure handler in every secondary process (Web,
Network and Plugin), we would be waking up all those process all the time. However, not having a memory pressure
handler is even more problematic than the manual polling.
This patch adds a class MemoryPressureMonitor to the manual polling of /proc/meminfo, but runs in the UI
process, to avoid the weakups in all other secondary processes, and uses an eventFD to notify all other
processes. It's only used in case cgroups is not available. The eventFD descriptor is sent to all other
processes at startup, and passed to the MemoryPressureHandler before install() is called for the first
time. To minimize the wakeups even in the UI process, the poll interval is calculated from 1 to 5 seconds
depending on the current memory used, so in case of low memory level we sleep for a longer time.
It's also important to make the memory calculations as accurate as possible to avoid cleaning resources in the
secondary processes unnecessarily.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess): Pass the memory pressure monitor file descriptor to the MemoryPressureHandler.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode): Encode memory pressure monitor handle.
(WebKit::NetworkProcessCreationParameters::decode): Decode memory pressure monitor handle.

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • PlatformEfl.cmake: Add new file to compilation, and update include dirs.
  • PlatformGTK.cmake: Ditto.
  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::initializePluginProcess): Pass the memory pressure monitor file descriptor to the MemoryPressureHandler.

  • Shared/Plugins/PluginProcessCreationParameters.cpp:

(WebKit::PluginProcessCreationParameters::encode): Encode memory pressure monitor handle.
(WebKit::PluginProcessCreationParameters::decode): Decode memory pressure monitor handle.

  • Shared/Plugins/PluginProcessCreationParameters.h:
  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode): Encode memory pressure monitor handle.
(WebKit::WebProcessCreationParameters::decode): Decode memory pressure monitor handle.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::PluginProcessProxy::didFinishLaunching): Create the memory pressure monitor handle for the plugin
process if needed.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess): Create the memory pressure monitor handle for the network
process if needed.
(WebKit::WebProcessPool::createNewWebProcess): Create the memory pressure monitor handle for the web process if
needed.

  • UIProcess/linux/MemoryPressureMonitor.cpp: Added.

(WebKit::lowWatermarkPages):
(WebKit::systemPageSize):
(WebKit::calculateMemoryAvailable):
(WebKit::systemMemoryUsedAsPercentage):
(WebKit::pollIntervalForUsedMemoryPercentage):
(WebKit::isSystemdMemoryPressureMonitorAvailable):
(WebKit::MemoryPressureMonitor::isEnabled):
(WebKit::MemoryPressureMonitor::singleton):
(WebKit::MemoryPressureMonitor::MemoryPressureMonitor):
(WebKit::MemoryPressureMonitor::createHandle):

  • UIProcess/linux/MemoryPressureMonitor.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess): Pass the memory pressure monitor file descriptor to the MemoryPressureHandler.

Jul 17, 2016:

11:53 PM Changeset in webkit [203341] by Carlos Garcia Campos
  • 3 edits in trunk/Source/WebKit2

REGRESSION(r202855): [GTK] ASSERTION FAILED: m_webPage.bounds().contains(bounds)
​https://bugs.webkit.org/show_bug.cgi?id=159806

Reviewed by Žan Doberšek.

The problem is that since r202855, in case of non accelerated mode, the dirty region is updated too late when
updating backing store state.

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::updateBackingStoreState): Update the dirty region to the new size when not in
accelerated compositing mode.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setSize): Update the WebPage size before resizing the frame and calling setNeedsDisplay() to
ensure that any call to setNeedsDisplay() uses the new web page bounds. This is actually a regression introduced
in r143472, where setNeedsDisplay was changed to use the web page bounds as directy rectangle. Before r143472
the dirty rectangle was passed to setNeedsDisplay and it passed the right one.

11:13 PM Changeset in webkit [203340] by Gyuyoung Kim
  • 21 edits in trunk/Source/WebCore

Clean up PassRefPtr uses in Modules/encryptedmedia, Modules/speech, and Modules/quota
​https://bugs.webkit.org/show_bug.cgi?id=159701

Reviewed by Alex Christensen.

No new tests, no behavior changes.

  • Modules/encryptedmedia/CDM.h:
  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/MediaKeys.h:
  • Modules/quota/DOMWindowQuota.cpp:
  • Modules/quota/StorageErrorCallback.cpp:

(WebCore::StorageErrorCallback::CallbackTask::CallbackTask):

  • Modules/quota/StorageErrorCallback.h:
  • Modules/quota/StorageInfo.h:
  • Modules/quota/StorageQuota.h:
  • Modules/speech/DOMWindowSpeechSynthesis.cpp:
  • Modules/speech/SpeechSynthesis.cpp:

(WebCore::SpeechSynthesis::getVoices):
(WebCore::SpeechSynthesis::startSpeakingImmediately):
(WebCore::SpeechSynthesis::speak):
(WebCore::SpeechSynthesis::cancel):
(WebCore::SpeechSynthesis::handleSpeakingCompleted):
(WebCore::SpeechSynthesis::boundaryEventOccurred):
(WebCore::SpeechSynthesis::didStartSpeaking):
(WebCore::SpeechSynthesis::didPauseSpeaking):
(WebCore::SpeechSynthesis::didResumeSpeaking):
(WebCore::SpeechSynthesis::didFinishSpeaking):
(WebCore::SpeechSynthesis::speakingErrorOccurred):

  • Modules/speech/SpeechSynthesis.h:
  • Modules/speech/SpeechSynthesisEvent.h:
  • Modules/speech/SpeechSynthesisUtterance.h:
  • Modules/speech/SpeechSynthesisVoice.cpp:

(WebCore::SpeechSynthesisVoice::create):
(WebCore::SpeechSynthesisVoice::SpeechSynthesisVoice):

  • Modules/speech/SpeechSynthesisVoice.h:
  • platform/PlatformSpeechSynthesizer.h:
  • platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:

(WebCore::PlatformSpeechSynthesisProviderEfl::fireSpeechEvent):

  • platform/mock/PlatformSpeechSynthesizerMock.cpp:

(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
(WebCore::PlatformSpeechSynthesizerMock::speak):
(WebCore::PlatformSpeechSynthesizerMock::cancel):
(WebCore::PlatformSpeechSynthesizerMock::pause):
(WebCore::PlatformSpeechSynthesizerMock::resume):

11:08 PM Changeset in webkit [203339] by fred.wang@free.fr
  • 6 edits in trunk/LayoutTests

Rebaseline Windows and EFL MathML pixel tests after r203289.
​https://bugs.webkit.org/show_bug.cgi?id=158866

Unreviewed test gardening.

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

  • platform/efl/mathml/opentype/vertical-expected.txt:
  • platform/efl/mathml/presentation/mo-stretch-expected.txt:
  • platform/win/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/win/mathml/opentype/vertical-expected.txt:
  • platform/win/mathml/presentation/mo-stretch-expected.txt:
6:07 PM Changeset in webkit [203338] by weinig@apple.com
  • 51 edits
    6 adds in trunk

[WebKit API] Add SPI to track multiple navigations caused by a single user gesture
<rdar://problem/26554137>
​https://bugs.webkit.org/show_bug.cgi?id=159856

Reviewed by Dan Bernstein.

Source/WebCore:

  • Adds a new RefCounted object to represent a unique user gesture, called UserGestureToken.
  • Makes UserGestureIndicator track UserGestureToken.
  • Refines UserGestureIndicator's interface to use Optional and a smaller enum set to represent the different initial states.
  • Stores UserGestureTokens on objects that want to forward user gesture state (DOMTimer, postMessage, and ScheduledNavigation) rather than just a boolean.
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::increment):
(WebCore::AccessibilityNodeObject::decrement):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::press):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::executeScriptInWorld):
(WebCore::ScriptController::executeScript):
Update for new UserGestureIndicator interface.

  • dom/UserGestureIndicator.cpp:

(WebCore::currentToken):
(WebCore::UserGestureToken::~UserGestureToken):
(WebCore::UserGestureIndicator::UserGestureIndicator):
(WebCore::UserGestureIndicator::~UserGestureIndicator):
(WebCore::UserGestureIndicator::currentUserGesture):
(WebCore::UserGestureIndicator::processingUserGesture):
(WebCore::UserGestureIndicator::processingUserGestureForMedia):
(WebCore::isDefinite): Deleted.

  • dom/UserGestureIndicator.h:

(WebCore::UserGestureToken::create):
(WebCore::UserGestureToken::state):
(WebCore::UserGestureToken::processingUserGesture):
(WebCore::UserGestureToken::processingUserGestureForMedia):
(WebCore::UserGestureToken::addDestructionObserver):
(WebCore::UserGestureToken::UserGestureToken):
Add UserGestureToken and track the current one explicitly.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand):

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/InspectorFrontendHost.cpp:
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):
Update for new UserGestureIndicator interface.

  • loader/NavigationAction.cpp:

(WebCore::NavigationAction::NavigationAction):

  • loader/NavigationAction.h:

(WebCore::NavigationAction::userGestureToken):
(WebCore::NavigationAction::processingUserGesture):

  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledNavigation::ScheduledNavigation):
(WebCore::ScheduledNavigation::~ScheduledNavigation):
(WebCore::ScheduledNavigation::lockBackForwardList):
(WebCore::ScheduledNavigation::wasDuringLoad):
(WebCore::ScheduledNavigation::isLocationChange):
(WebCore::ScheduledNavigation::userGestureToForward):
(WebCore::ScheduledNavigation::clearUserGesture):
(WebCore::NavigationScheduler::mustLockBackForwardList):
(WebCore::NavigationScheduler::scheduleFormSubmission):
(WebCore::ScheduledNavigation::wasUserGesture): Deleted.

  • page/DOMTimer.cpp:

(WebCore::shouldForwardUserGesture):
(WebCore::userGestureTokenToForward):
(WebCore::DOMTimer::DOMTimer):
(WebCore::DOMTimer::fired):

  • page/DOMTimer.h:
  • page/DOMWindow.cpp:

(WebCore::PostMessageTimer::PostMessageTimer):
Store the active UserGestureToken rather than just a bit.

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseDoubleClickEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::keyEvent):
(WebCore::EventHandler::handleTouchEvent):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::toggleMediaFullscreenState):
(WebCore::HitTestResult::enterFullscreenForVideo):
(WebCore::HitTestResult::toggleEnhancedFullscreenForVideo):
Update for new UserGestureIndicator interface.

Source/WebKit/mac:

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::evaluate):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView sendEvent:isDrawRect:]):
Update for new UserGestureIndicator interface.

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::PluginView::performRequest):

  • WebCoreSupport/WebContextMenuClient.cpp:

(WebContextMenuClient::searchWithGoogle):
Update for new UserGestureIndicator interface.

Source/WebKit2:

  • Shared/API/APIObject.h:
  • Shared/Cocoa/APIObject.mm:

(API::Object::newObject):

  • UIProcess/API/APIUserInitiatedAction.h: Added.

Add new APIObject type, UserInitiatedAction.

  • UIProcess/API/Cocoa/WKNavigationAction.mm:
  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:

Expose a _WKUserInitiatedAction on the WKNavigationAction.

  • UIProcess/API/Cocoa/_WKUserInitiatedAction.h: Added.
  • UIProcess/API/Cocoa/_WKUserInitiatedAction.mm: Added.

(-[_WKUserInitiatedAction consume]):
(-[_WKUserInitiatedAction isConsumed]):
(-[_WKUserInitiatedAction _apiObject]):

  • UIProcess/API/Cocoa/_WKUserInitiatedActionInternal.h: Added.

Add new _WKUserInitiatedAction type wrapping API::UserInitiatedAction.

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h:

Store the userGestureTokenIdentifier (as determined from the WebProcess's map) rather
than just a single bit. This allows us to track if a user gesture is used for multiple navigations.

  • UIProcess/API/APINavigationAction.h:

Add UserInitiatedAction member and re-implement isProcessingUserGesture in terms of it.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::createNewPage):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
Get the API::UserInitiatedAction from the WebProcessProxy (if it exists), and pass
it along to the API::NavigationAction.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::shutDown):
(WebKit::WebProcessProxy::userInitiatedActivity):
(WebKit::WebProcessProxy::didDestroyUserGestureToken):

  • UIProcess/WebProcessProxy.h:

Keep a map of active userInitiatedActivity objects.

  • UIProcess/WebProcessProxy.messages.in:

Add DidDestroyUserGestureToken message to manager API::UserInitiatedActivity lifetimes.

  • WebKit2.xcodeproj/project.pbxproj:

Add new files.

  • WebProcess/Notifications/WebNotificationManager.cpp:

(WebKit::WebNotificationManager::didClickNotification):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::performFrameLoadURLRequest):
(WebKit::PluginView::evaluate):

  • WebProcess/WebCoreSupport/WebContextMenuClient.cpp:

(WebKit::WebContextMenuClient::searchWithGoogle):

  • WebProcess/cocoa/WebPlaybackSessionManager.mm:

(WebKit::WebPlaybackSessionManager::play):
(WebKit::WebPlaybackSessionManager::pause):
(WebKit::WebPlaybackSessionManager::togglePlayState):
(WebKit::WebPlaybackSessionManager::beginScrubbing):
(WebKit::WebPlaybackSessionManager::endScrubbing):
(WebKit::WebPlaybackSessionManager::seekToTime):
(WebKit::WebPlaybackSessionManager::fastSeek):
(WebKit::WebPlaybackSessionManager::beginScanningForward):
(WebKit::WebPlaybackSessionManager::beginScanningBackward):
(WebKit::WebPlaybackSessionManager::endScanning):
(WebKit::WebPlaybackSessionManager::selectAudioMediaOption):
(WebKit::WebPlaybackSessionManager::selectLegibleMediaOption):
Update for new UserGestureIndicator interface.

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):
Get an identifier for the UserGestureToken from the WebProcess singleton
to pass to the WebProcess.

  • WebProcess/WebProcess.cpp:

(WebKit::nextUserGestureTokenIdentifier):
(WebKit::WebProcess::userGestureTokenIdentifier):
(WebKit::WebProcess::userGestureTokenDestroyed):

  • WebProcess/WebProcess.h:

Track UserGestureToken lifetimes utilizing the destructionObserver mechanism
off the tokens to indicate destruction. When destroyed, notify the UIProcess
to avoid leaks.

Tools:

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):
Add basic window.open implementation.

(-[WK2BrowserWindowController webView:decidePolicyForNavigationAction:decisionHandler:]):
Add basic navigation policy implementation which implements a rule where a user gesture is only allowed
to open a single non-web URL, all others are dropped.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/UserInitiatedActionInNavigationAction.mm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/open-multiple-external-url.html: Added.

Add API for the new SPI.

5:39 PM Changeset in webkit [203337] by rniwa@webkit.org
  • 54 edits in trunk/Source

Rename fastHasAttribute to hasAttributeWithoutSynchronization
​https://bugs.webkit.org/show_bug.cgi?id=159864

Reviewed by Chris Dumez.

Source/WebCore:

Renamed Rename fastHasAttribute to hasAttributeWithoutSynchronization for clarity.

  • accessibility/AccessibilityListBoxOption.cpp:

(WebCore::AccessibilityListBoxOption::isEnabled):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::hasAttribute):
(WebCore::AccessibilityObject::getAttribute):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • bindings/scripts/CodeGenerator.pm:

(GetterExpression):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjReflectedBooleanAttr):
(WebCore::jsTestObjReflectedCustomBooleanAttr):

  • bindings/scripts/test/ObjC/DOMTestObj.mm:

(-[DOMTestObj reflectedBooleanAttr]):
(-[DOMTestObj setReflectedBooleanAttr:]):
(-[DOMTestObj reflectedCustomBooleanAttr]):
(-[DOMTestObj setReflectedCustomBooleanAttr:]):

  • dom/Document.cpp:

(WebCore::Document::hasManifest):
(WebCore::Document::doctype):

  • dom/Element.h:

(WebCore::Node::parentElement):
(WebCore::Element::hasAttributeWithoutSynchronization):
(WebCore::Element::fastHasAttribute): Deleted.

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):

  • editing/markup.cpp:

(WebCore::createMarkupInternal):

  • html/ColorInputType.cpp:

(WebCore::ColorInputType::shouldShowSuggestions):

  • html/FileInputType.cpp:

(WebCore::FileInputType::handleDOMActivateEvent):
(WebCore::FileInputType::receiveDroppedFiles):

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::didMoveToNewDocument):
(WebCore::FormAssociatedElement::insertedInto):
(WebCore::FormAssociatedElement::removedFrom):
(WebCore::FormAssociatedElement::formAttributeChanged):

  • html/FormController.cpp:

(WebCore::ownerFormForState):

  • html/GenericCachedHTMLCollection.cpp:

(WebCore::GenericCachedHTMLCollection<traversalType>::elementMatches):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::draggable):
(WebCore::HTMLAnchorElement::href):
(WebCore::HTMLAnchorElement::sendPings):

  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::rendererIsNeeded):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::collectStyleForPresentationAttribute):
(WebCore::elementAffectsDirectionality):
(WebCore::setHasDirAutoFlagRecursively):

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::rendererIsNeeded):

  • html/HTMLFieldSetElement.cpp:

(WebCore::updateFromControlElementsAncestorDisabledStateUnder):
(WebCore::HTMLFieldSetElement::disabledAttributeChanged):
(WebCore::HTMLFieldSetElement::disabledStateChanged):
(WebCore::HTMLFieldSetElement::childrenChanged):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::formNoValidate):
(WebCore::HTMLFormControlElement::formAction):
(WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor):
(WebCore::shouldAutofocus):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::formElementIndex):
(WebCore::HTMLFormElement::noValidate):

  • html/HTMLFrameElement.cpp:

(WebCore::HTMLFrameElement::noResize):
(WebCore::HTMLFrameElement::didAttachRenderers):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::parseAttribute):
(WebCore::HTMLFrameElementBase::location):

  • html/HTMLHRElement.cpp:

(WebCore::HTMLHRElement::collectStyleForPresentationAttribute):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::isServerMap):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::finishParsingChildren):
(WebCore::HTMLInputElement::matchesDefaultPseudoClass):
(WebCore::HTMLInputElement::isActivatedSubmit):
(WebCore::HTMLInputElement::reset):
(WebCore::HTMLInputElement::multiple):
(WebCore::HTMLInputElement::setSize):
(WebCore::HTMLInputElement::shouldUseMediaCapture):

  • html/HTMLMarqueeElement.cpp:

(WebCore::HTMLMarqueeElement::minimumDelay):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::insertedInto):
(WebCore::HTMLMediaElement::selectMediaResource):
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::autoplay):
(WebCore::HTMLMediaElement::preload):
(WebCore::HTMLMediaElement::loop):
(WebCore::HTMLMediaElement::setLoop):
(WebCore::HTMLMediaElement::controls):
(WebCore::HTMLMediaElement::setControls):
(WebCore::HTMLMediaElement::muted):
(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::selectNextSourceChild):
(WebCore::HTMLMediaElement::sourceWasAdded):
(WebCore::HTMLMediaElement::mediaSessionTitle):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::parseAttribute):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::isDisabledFormControl):
(WebCore::HTMLOptGroupElement::isFocusable):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::matchesDefaultPseudoClass):
(WebCore::HTMLOptionElement::text):

  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::isDeterminate):
(WebCore::HTMLProgressElement::didElementStateChange):

  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::async):
(WebCore::HTMLScriptElement::setCrossOrigin):
(WebCore::HTMLScriptElement::asyncAttributeValue):
(WebCore::HTMLScriptElement::deferAttributeValue):
(WebCore::HTMLScriptElement::hasSourceAttribute):
(WebCore::HTMLScriptElement::dispatchLoadEvent):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::reset):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::isDefault):
(WebCore::HTMLTrackElement::ensureTrack):
(WebCore::HTMLTrackElement::loadTimerFired):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled):
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):
(WebCore::MediaElementSession::allowsAutomaticMediaDataLoading):

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::searchEventsShouldBeDispatched):
(WebCore::SearchInputType::didSetValueByUserEdit):

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForNode):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::shouldTreatURLAsSrcdocDocument):
(WebCore::FrameLoader::findFrameForNavigation):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::notifyFinished):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::getSelectedSemanticsChild):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::computePreferredLogicalWidths):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::adjustMenuListButtonStyle):

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForWithReason):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::updateAnimationPath):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::startedActiveInterval):
(WebCore::SVGAnimationElement::updateAnimation):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::insertedInto):

Source/WebKit2:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getAssistedNodeInformation):

3:00 PM Changeset in webkit [203336] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

DFG CSE is broken for MultiGetByOffset
​https://bugs.webkit.org/show_bug.cgi?id=159858

Reviewed by Saam Barati.

This disabled CSE for MultiGetByOffset. I opened bug 159859 for the long-term fix, which
would teach CSE (and other passes also) how to decay a removed MultiGetByOffset to a
CheckStructure. Since we currently just decay MultiGetByOffset to Check, we forget the
structure checks. So, if we CSE a MultiGetByOffset that checks for one set of structures with
a heap access on the same property and base that checks for different structures, then we
will forget some structure checks that we had previously. It's unsound to forget checks in
DFG IR.

This bug mostly manifested as a high-volume crash at Unreachable in FTL, because we'd prove
that the code after the MultiGetByOffset was unreachable due to the structure checks and then
CSE would remove everything but the Unreachable.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize): Remove the def() for MultiGetByOffset to disable CSE for this node for now.

  • tests/stress/cse-multi-get-by-offset-remove-checks.js: Added. This used to fail with FTL eanbled.

(Cons1):
(Cons2):
(Cons3):
(foo):
(bar):

1:35 PM Changeset in webkit [203335] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

REGRESSION (r191907): Maxthon Browser -After exit full screen video playback the browser window is blank with audio running
​https://bugs.webkit.org/show_bug.cgi?id=159731
<rdar://problem/26674003>

Patch by Jeremy Jones <​jeremyj@apple.com> on 2016-07-17
Reviewed by Tim Horton.

Primarily written by Jer Noble <​jer.noble@apple.com>.

When a view is removed from it's superview, and that superview's constraints property references
the removed superview, those constraints are removed as well. Make sure to save off a copy of
the superview's constraints before swapping in the placeholder view, and reapply those constraints
when swapping the web view back into its original superview.

  • UIProcess/mac/WKFullScreenWindowController.h:
  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController setSavedConstraints:]):
(-[WKFullScreenWindowController savedConstraints]):
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):

12:12 PM Changeset in webkit [203334] by beidson@apple.com
  • 7 edits in trunk/Source/WebCore

Exceptions logged to the JS console should use toString().
​https://bugs.webkit.org/show_bug.cgi?id=159855

Reviewed by Darin Adler.

No new tests (No change in behavior).

  • bindings/js/JSDOMBinding.cpp:

(WebCore::reportException):

  • dom/DOMCoreException.h:

(WebCore::DOMCoreException::DOMCoreException):

  • dom/ExceptionBase.cpp:

(WebCore::ExceptionBase::ExceptionBase):
(WebCore::ExceptionBase::toString):
(WebCore::ExceptionBase::consoleErrorMessage): Deleted.

  • dom/ExceptionBase.h:

(WebCore::ExceptionBase::description): Deleted.

  • svg/SVGException.h:
  • xml/XPathException.h:

(WebCore::XPathException::XPathException):

9:47 AM Changeset in webkit [203333] by beidson@apple.com
  • 477 edits in trunk

Update DOMCoreException to use the description in toString().
​https://bugs.webkit.org/show_bug.cgi?id=159857

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/send-authentication-basic-setrequestheader-and-arguments-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-non-same-origin.sub-expected.txt:
  • web-platform-tests/XMLHttpRequest/setrequestheader-bogus-name-expected.txt:
  • web-platform-tests/XMLHttpRequest/setrequestheader-bogus-value-expected.txt:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-defer-scripts-expected.txt:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-block-scripts-expected.txt:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-sync-not-hang-scriptloader-expected.txt:
  • web-platform-tests/XMLHttpRequest/xmlhttprequest-timeout-worker-synconworker-expected.txt:
  • web-platform-tests/dom/events/ProgressEvent-expected.txt:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:
  • web-platform-tests/dom/nodes/Document-createEvent-expected.txt:
  • web-platform-tests/dom/nodes/Element-closest-expected.txt:
  • web-platform-tests/dom/nodes/Element-matches-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-expected.txt:
  • web-platform-tests/dom/nodes/ParentNode-querySelector-All-xht-expected.txt:
  • web-platform-tests/dom/nodes/insert-adjacent-expected.txt:
  • web-platform-tests/domparsing/createContextualFragment-expected.txt:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/volume_nonfinite-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/month-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/range-expected.txt:
  • web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
  • web-platform-tests/html/semantics/forms/the-meter-element/meter-expected.txt:

Source/WebCore:

No new tests (Covered by changes to existing tests).

  • bindings/js/JSDOMBinding.cpp:

(WebCore::createDOMException):

  • dom/DOMCoreException.h:

(WebCore::DOMCoreException::DOMCoreException):
(WebCore::DOMCoreException::createWithDescriptionAsMessage): Deleted.

LayoutTests:

  • canvas/philip/tests/2d.missingargs.html:
  • crypto/crypto-random-values-limits-expected.txt:
  • crypto/crypto-random-values-types-expected.txt:
  • crypto/subtle/aes-cbc-wrong-key-class-expected.txt:
  • crypto/subtle/aes-kw-key-manipulation-expected.txt:
  • crypto/subtle/argument-conversion-expected.txt:
  • crypto/subtle/hmac-check-algorithm-expected.txt:
  • crypto/subtle/hmac-generate-key-expected.txt:
  • crypto/subtle/rsa-oaep-key-manipulation-expected.txt:
  • crypto/subtle/sha-1-expected.txt:
  • crypto/subtle/unwrapKey-check-usage-expected.txt:
  • crypto/subtle/wrapKey-check-usage-expected.txt:
  • css3/supports-cssom-expected.txt:
  • editing/pasteboard/data-transfer-items-expected.txt:
  • editing/selection/extend-expected.txt:
  • fast/canvas/canvas-createImageData-expected.txt:
  • fast/canvas/canvas-ellipse-negative-radius-expected.txt:
  • fast/canvas/canvas-getImageData-invalid-expected.txt:
  • fast/canvas/canvas-getImageData-invalid-result-buffer-crash-expected.txt:
  • fast/canvas/canvas-gradient-addStop-error-expected.txt:
  • fast/canvas/canvas-imageData-expected.txt:
  • fast/canvas/canvas-overloads-drawImage-expected.txt:
  • fast/canvas/canvas-pattern-behaviour-expected.txt:
  • fast/canvas/gradient-addColorStop-with-invalid-color-expected.txt:
  • fast/canvas/script-tests/canvas-createImageData.js:
  • fast/canvas/script-tests/canvas-getImageData-invalid.js:
  • fast/canvas/script-tests/canvas-imageData.js:
  • fast/canvas/script-tests/canvas-overloads-drawImage.js:
  • fast/canvas/script-tests/gradient-addColorStop-with-invalid-color.js:
  • fast/css/CSSPrimitiveValue-exceptions-expected.txt:
  • fast/css/css3-nth-tokens-script-expected.txt:
  • fast/css/css3-nth-tokens-script.html:
  • fast/css/getFloatValueForUnit-expected.txt:
  • fast/css/getFloatValueForUnit.html:
  • fast/css/insert-rule-overflow-rule-data-expected.txt:
  • fast/css/parsing-css-attribute-case-insensitive-value-1-expected.txt:
  • fast/css/parsing-css-attribute-case-insensitive-value-2-expected.txt:
  • fast/css/parsing-css-attribute-case-insensitive-value-3-expected.txt:
  • fast/css/parsing-css-attribute-case-insensitive-value-3.html:
  • fast/css/parsing-css-descendant-combinator-doubled-child-syntax-expected.txt:
  • fast/css/parsing-css-descendant-combinator-doubled-child-syntax.html:
  • fast/css/parsing-css-matches-5-expected.txt:
  • fast/css/parsing-css-matches-5.html:
  • fast/css/parsing-css-matches-6-expected.txt:
  • fast/css/parsing-css-matches-6.html:
  • fast/css/parsing-css-matches-7-expected.txt:
  • fast/css/parsing-css-matches-7.html:
  • fast/css/parsing-css-matches-8-expected.txt:
  • fast/css/parsing-css-matches-8.html:
  • fast/css/parsing-css-not-5-expected.txt:
  • fast/css/parsing-css-not-5.html:
  • fast/css/parsing-css-not-6-expected.txt:
  • fast/css/parsing-css-not-6.html:
  • fast/css/parsing-css-not-7-expected.txt:
  • fast/css/parsing-css-not-7.html:
  • fast/css/parsing-css-not-8-expected.txt:
  • fast/css/parsing-css-not-8.html:
  • fast/css/parsing-css-not-9-expected.txt:
  • fast/css/parsing-css-not-9.html:
  • fast/css/parsing-css-nth-child-of-3-expected.txt:
  • fast/css/parsing-css-nth-child-of-3.html:
  • fast/css/parsing-css-nth-child-of-4-expected.txt:
  • fast/css/parsing-css-nth-child-of-4.html:
  • fast/css/parsing-css-nth-last-child-of-3-expected.txt:
  • fast/css/parsing-css-nth-last-child-of-3.html:
  • fast/css/parsing-css-nth-last-child-of-4-expected.txt:
  • fast/css/parsing-css-nth-last-child-of-4.html:
  • fast/css/resources/CSSPrimitiveValue-exceptions.js:
  • fast/dom/DOMException/prototype-object-expected.txt:
  • fast/dom/DOMException/prototype-object.html:
  • fast/dom/DOMException/stack-trace-expected.txt:
  • fast/dom/DOMException/stack-trace.html:
  • fast/dom/Document/createElement-invalid-names-expected.txt:
  • fast/dom/Document/createElement-invalid-names.html:
  • fast/dom/Document/invalid-domain-change-throws-exception-expected.txt:
  • fast/dom/Document/replace-child-expected.txt:
  • fast/dom/Document/script-tests/invalid-domain-change-throws-exception.js:
  • fast/dom/Element/class-list-toggle-expected.txt:
  • fast/dom/Element/class-list-toggle.html:
  • fast/dom/Element/prefix-setter-exception-expected.txt:
  • fast/dom/Geolocation/argument-types-expected.txt:
  • fast/dom/Geolocation/not-enough-arguments-expected.txt:
  • fast/dom/Geolocation/script-tests/argument-types.js:

(test):

  • fast/dom/HTMLElement/insertAdjacentHTML-errors-expected.txt:
  • fast/dom/HTMLElement/script-tests/insertAdjacentHTML-errors.js:
  • fast/dom/HTMLElement/set-invalid-value-expected.txt:
  • fast/dom/HTMLElement/set-invalid-value.html:
  • fast/dom/HTMLInputElement/input-size-attribute-expected.txt:
  • fast/dom/HTMLInputElement/input-size-attribute.html:
  • fast/dom/HTMLMeterElement/script-tests/set-meter-properties.js:
  • fast/dom/HTMLMeterElement/set-meter-properties-expected.txt:
  • fast/dom/HTMLProgressElement/script-tests/set-progress-properties.js:
  • fast/dom/HTMLProgressElement/set-progress-properties-expected.txt:
  • fast/dom/HTMLSelectElement/options-collection-add-expected.txt:
  • fast/dom/HTMLSelectElement/select-add-optgroup-expected.txt:
  • fast/dom/HTMLSelectElement/select-selectedIndex-expected.txt:
  • fast/dom/HTMLSelectElement/select-selectedIndex-multiple-expected.txt:
  • fast/dom/HTMLTableElement/nullable-attributes-expected.txt:
  • fast/dom/HTMLTableElement/nullable-attributes.html:
  • fast/dom/HTMLTemplateElement/cycles-expected.txt:
  • fast/dom/HTMLTemplateElement/cycles-in-shadow-expected.txt:
  • fast/dom/Node/initial-values-expected.txt:
  • fast/dom/ParentNode-append-expected.txt:
  • fast/dom/ParentNode-prepend-expected.txt:
  • fast/dom/Range/31684-expected.txt:
  • fast/dom/Range/clone-contents-document-type-expected.txt:
  • fast/dom/Range/clone-contents-document-type.html:
  • fast/dom/Range/compareBoundaryPoints-1.html:
  • fast/dom/Range/compareBoundaryPoints-compareHow-exception-expected.txt:
  • fast/dom/Range/compareBoundaryPoints-compareHow-exception.html:
  • fast/dom/Range/extract-contents-document-type-expected.txt:
  • fast/dom/Range/extract-contents-document-type.html:
  • fast/dom/Range/range-comparePoint-detached-nodes-expected.txt:
  • fast/dom/Range/range-comparePoint-detached-nodes.html:
  • fast/dom/Range/range-exceptions-expected.txt:
  • fast/dom/Range/range-intersectsNode-expected.txt:
  • fast/dom/Range/script-tests/31684.js:
  • fast/dom/Range/script-tests/range-exceptions.js:
  • fast/dom/Range/surroundContents-1.html:
  • fast/dom/Selection/collapseToX-empty-selection-expected.txt:
  • fast/dom/Selection/script-tests/collapseToX-empty-selection.js:
  • fast/dom/SelectorAPI/dumpNodeList-almost-strict-expected.txt:
  • fast/dom/SelectorAPI/dumpNodeList-expected.txt:
  • fast/dom/SelectorAPI/not-supported-namespace-in-selector-expected.txt:
  • fast/dom/Text/splitText-expected.txt:
  • fast/dom/Text/splitText.html:
  • fast/dom/Window/anonymous-slot-with-changes-expected.txt:
  • fast/dom/Window/atob-btoa-expected.txt:
  • fast/dom/Window/custom-constructors-expected.txt:
  • fast/dom/Window/dispatchEvent-expected.txt:
  • fast/dom/Window/invalid-protocol-expected.txt:
  • fast/dom/Window/window-postmessage-clone-expected.txt:
  • fast/dom/computed-style-set-property-expected.txt:
  • fast/dom/createElementNS-namespace-errors-expected.txt:
  • fast/dom/createElementNS-namespace-errors.html:
  • fast/dom/css-mediarule-functions-expected.txt:
  • fast/dom/css-mediarule-functions.html:
  • fast/dom/custom/document-register-basic-expected.txt:
  • fast/dom/custom/document-register-basic.html:
  • fast/dom/custom/document-register-type-extensions-expected.txt:
  • fast/dom/custom/document-register-type-extensions.html:
  • fast/dom/dataset-expected.txt:
  • fast/dom/dataset-xhtml-expected.txt:
  • fast/dom/document-set-body-null-expected.txt:
  • fast/dom/document-set-body-null.html:
  • fast/dom/element-attribute-js-null-expected.txt:
  • fast/dom/insertAdjacentHTML-DocumentFragment-crash-expected.txt:
  • fast/dom/node-prefix-setter-namespace-exception-expected.txt:
  • fast/dom/outerText-no-element-expected.txt:
  • fast/dom/processing-instruction-appendChild-exceptions-expected.txt:
  • fast/dom/processing-instruction-appendChild-exceptions.xhtml:
  • fast/dom/rel-list-expected.txt:
  • fast/dom/script-tests/dataset-xhtml.js:
  • fast/dom/script-tests/dataset.js:
  • fast/dom/setAttributeNS-namespace-errors-expected.txt:
  • fast/dom/setAttributeNS-namespace-errors.html:
  • fast/dom/setPrimitiveValue-exceptions-expected.txt:
  • fast/dom/setPrimitiveValue-expected.txt:
  • fast/dynamic/insertAdjacentElement-expected.txt:
  • fast/dynamic/insertAdjacentHTML-expected.txt:
  • fast/dynamic/insertAdjacentText-expected.txt:
  • fast/dynamic/outerHTML-no-element-expected.txt:
  • fast/events/dispatch-event-being-dispatched-expected.txt:
  • fast/events/dispatch-event-being-dispatched.html:
  • fast/events/message-port-clone-expected.txt:
  • fast/events/message-port-multi-expected.txt:
  • fast/events/mutation-during-append-child-expected.txt:
  • fast/events/mutation-during-append-child.html:
  • fast/events/mutation-during-insert-before-expected.txt:
  • fast/events/mutation-during-insert-before.html:
  • fast/events/mutation-during-replace-child-2-expected.txt:
  • fast/events/mutation-during-replace-child-2.html:
  • fast/events/mutation-during-replace-child-expected.txt:
  • fast/events/mutation-during-replace-child.html:
  • fast/eventsource/eventsource-constructor-expected.txt:
  • fast/forms/color/color-setrangetext-expected.txt:
  • fast/forms/date/date-setrangetext-expected.txt:
  • fast/forms/date/date-stepup-stepdown-expected.txt:
  • fast/forms/date/date-stepup-stepdown.html:
  • fast/forms/date/input-valueasnumber-date-expected.txt:
  • fast/forms/date/input-valueasnumber-date.html:
  • fast/forms/datetime/datetime-setrangetext-expected.txt:
  • fast/forms/datetime/datetime-stepup-stepdown-expected.txt:
  • fast/forms/datetime/datetime-stepup-stepdown.html:
  • fast/forms/datetime/input-valueasnumber-datetime-expected.txt:
  • fast/forms/datetime/input-valueasnumber-datetime.html:
  • fast/forms/datetimelocal/datetimelocal-setrangetext-expected.txt:
  • fast/forms/datetimelocal/datetimelocal-stepup-stepdown-expected.txt:
  • fast/forms/datetimelocal/datetimelocal-stepup-stepdown.html:
  • fast/forms/datetimelocal/input-valueasnumber-datetimelocal-expected.txt:
  • fast/forms/datetimelocal/input-valueasnumber-datetimelocal.html:
  • fast/forms/file/file-setrangetext-expected.txt:
  • fast/forms/file/input-file-value-expected.txt:
  • fast/forms/hidden/hidden-setrangetext-expected.txt:
  • fast/forms/image/image-setrangetext-expected.txt:
  • fast/forms/input-maxlength-expected.txt:
  • fast/forms/input-maxlength.html:
  • fast/forms/input-stepup-stepdown-expected.txt:
  • fast/forms/input-stepup-stepdown.html:
  • fast/forms/input-valueasnumber-unsupported-expected.txt:
  • fast/forms/input-valueasnumber-unsupported.html:
  • fast/forms/month/input-valueasdate-expected.txt:
  • fast/forms/month/input-valueasdate.html:
  • fast/forms/month/input-valueasnumber-month-expected.txt:
  • fast/forms/month/input-valueasnumber-month.html:
  • fast/forms/month/month-setrangetext-expected.txt:
  • fast/forms/month/month-stepup-stepdown-expected.txt:
  • fast/forms/month/month-stepup-stepdown.html:
  • fast/forms/number/number-setrangetext-expected.txt:
  • fast/forms/number/number-size-expected.txt:
  • fast/forms/number/number-size.html:
  • fast/forms/number/number-stepup-stepdown-expected.txt:
  • fast/forms/number/number-stepup-stepdown-from-renderer.html:
  • fast/forms/number/number-stepup-stepdown.html:
  • fast/forms/number/number-valueasnumber-expected.txt:
  • fast/forms/number/number-valueasnumber.html:
  • fast/forms/range/input-valueasnumber-range-expected.txt:
  • fast/forms/range/input-valueasnumber-range.html:
  • fast/forms/range/range-setrangetext-expected.txt:
  • fast/forms/range/range-stepup-stepdown-expected.txt:
  • fast/forms/range/range-stepup-stepdown-from-renderer.html:
  • fast/forms/range/range-stepup-stepdown.html:
  • fast/forms/search/search-setrangetext-expected.txt:
  • fast/forms/setrangetext-expected.txt:
  • fast/forms/textarea-maxlength-expected.txt:
  • fast/forms/textarea-maxlength.html:
  • fast/forms/textarea/textarea-setrangetext-expected.txt:
  • fast/forms/time/time-setrangetext-expected.txt:
  • fast/forms/time/time-stepup-stepdown-expected.txt:
  • fast/forms/time/time-stepup-stepdown.html:
  • fast/forms/time/time-valueasnumber-expected.txt:
  • fast/forms/time/time-valueasnumber.html:
  • fast/forms/week/input-valueasnumber-week-expected.txt:
  • fast/forms/week/input-valueasnumber-week.html:
  • fast/forms/week/week-setrangetext-expected.txt:
  • fast/forms/week/week-stepup-stepdown-expected.txt:
  • fast/forms/week/week-stepup-stepdown.html:
  • fast/frames/adopt-iframe-into-itself-expected.txt:
  • fast/frames/adopt-object-into-itself-expected.txt:
  • fast/frames/resources/sandboxed-iframe-storage-disallowed.html:
  • fast/frames/sandboxed-iframe-storage-expected.txt:
  • fast/html/marquee-element-expected.txt:
  • fast/innerHTML/innerHTML-changing-document-properties-expected.txt:
  • fast/inspector-support/uncaught-dom1-exception-expected.txt:
  • fast/inspector-support/uncaught-dom3-exception-expected.txt:
  • fast/inspector-support/uncaught-dom8-exception-expected.txt:
  • fast/loader/stateobjects/pushstate-frequency-expected.txt:
  • fast/loader/stateobjects/pushstate-frequency-iframe-expected.txt:
  • fast/loader/stateobjects/replacestate-frequency-expected.txt:
  • fast/loader/stateobjects/replacestate-frequency-iframe-expected.txt:
  • fast/media/mq-js-media-except-01-expected.html:
  • fast/media/mq-js-media-except-02-expected.html:
  • fast/media/mq-js-media-except-03-expected.html:
  • fast/mediastream/MediaDevices-getUserMedia-expected.txt:
  • fast/mediastream/RTCPeerConnection-addIceCandidate-expected.txt:
  • fast/mediastream/RTCPeerConnection-closed-state-expected.txt:
  • fast/mediastream/RTCPeerConnection-createAnswer-expected.txt:
  • fast/mediastream/RTCPeerConnection-createOffer-expected.txt:
  • fast/mediastream/RTCPeerConnection-datachannel-expected.txt:
  • fast/mediastream/RTCPeerConnection-dtmf-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-local-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-have-remote-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-setLocalDescription-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-setRemoteDescription-offer-expected.txt:
  • fast/mediastream/RTCPeerConnection-stable-expected.txt:
  • fast/mediastream/RTCRtpSender-replaceTrack-expected.txt:
  • fast/notifications/notifications-document-close-crash-expected.txt:
  • fast/regions/selection/crash-deselect-expected.txt:
  • fast/selectors/closest-general-expected.txt:
  • fast/selectors/invalid-functional-pseudo-class-expected.txt:
  • fast/selectors/lang-empty-expected.txt:
  • fast/selectors/lang-extended-filtering-expected.txt:
  • fast/selectors/lang-extended-filtering-with-string-arguments-expected.txt:
  • fast/selectors/lang-invalid-expected.txt:
  • fast/selectors/lang-multiple-expected.txt:
  • fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-not-expected.txt:
  • fast/text/font-face-empty-string-expected.txt:
  • fast/text/font-face-javascript-expected.txt:
  • fast/text/font-face-set-javascript-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • fast/workers/atob-btoa-expected.txt:
  • fast/workers/worker-constructor-expected.txt:
  • fast/workers/worker-context-multi-port-expected.txt:
  • fast/workers/worker-multi-port-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responsetype-before-open-sync-request-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responsetype-document-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responsetype-set-at-headers-received-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responsetype-sync-request-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-responsetype-text-expected.txt:
  • fast/xmlhttprequest/xmlhttprequest-sync-disabled-expected.txt:
  • fast/xpath/attr-namespace-expected.txt:
  • fast/xpath/detached-subtree-invalidate-iterator-expected.txt:
  • fast/xpath/py-dom-xpath/nodetests-expected.txt:
  • http/tests/contentextensions/sync-xhr-blocked-expected.txt:
  • http/tests/loading/state-object-security-exception-expected.txt:
  • http/tests/local/fileapi/send-sliced-dragged-file-expected.txt:
  • http/tests/notifications/legacy/show-expected.txt:
  • http/tests/security/canvas-remote-read-data-url-image-redirect-expected.txt:
  • http/tests/security/canvas-remote-read-remote-image-blocked-no-crossorigin-expected.txt:
  • http/tests/security/canvas-remote-read-remote-image-expected.txt:
  • http/tests/security/canvas-remote-read-remote-image-redirect-expected.txt:
  • http/tests/security/canvas-remote-read-remote-video-blocked-no-crossorigin-expected.txt:
  • http/tests/security/canvas-remote-read-remote-video-localhost-expected.txt:
  • http/tests/security/canvas-remote-read-remote-video-redirect-expected.txt:
  • http/tests/security/contentSecurityPolicy/1.1/child-src/worker-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/connect-src-xmlhttprequest-blocked.html:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-block-aborts-all-subsequent-imports-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-blocks-xhr-redirect-cross-origin-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-importscripts-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/worker-importscripts-blocked.html:
  • http/tests/security/history-username-password-expected.txt:
  • http/tests/security/postMessage/invalid-origin-throws-exception-expected.txt:
  • http/tests/security/postMessage/target-origin-expected.txt:
  • http/tests/security/resources/canvas-video-crossorigin.js:

(testDataRetrievalAllowed):
(testDataRetrievalForbidden):

  • http/tests/security/setDomainRelaxationForbiddenForURLScheme-expected.txt:
  • http/tests/security/webgl-remote-read-remote-image-blocked-no-crossorigin-expected.txt:
  • http/tests/websocket/tests/hybi/bad-sub-protocol-control-chars-expected.txt:
  • http/tests/websocket/tests/hybi/bad-sub-protocol-empty-expected.txt:
  • http/tests/websocket/tests/hybi/bad-sub-protocol-non-ascii-expected.txt:
  • http/tests/websocket/tests/hybi/binary-type-expected.txt:
  • http/tests/websocket/tests/hybi/binary-type.html:
  • http/tests/websocket/tests/hybi/invalid-subprotocol-characters-expected.txt:
  • http/tests/websocket/tests/hybi/invalid-subprotocol-characters.html:
  • http/tests/websocket/tests/hybi/invalid-subprotocols-expected.txt:
  • http/tests/websocket/tests/hybi/invalid-subprotocols.html:
  • http/tests/websocket/tests/hybi/url-parsing-expected.txt:
  • http/tests/workers/worker-importScripts-expected.txt:
  • http/tests/workers/worker-redirect-expected.txt:
  • http/tests/xmlhttprequest/XMLHttpRequestException-expected.txt:
  • http/tests/xmlhttprequest/XMLHttpRequestException.html:
  • http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-get-fail-non-simple-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-non-simple-deny-cached-expected.txt:
  • http/tests/xmlhttprequest/access-control-basic-post-fail-non-simple-content-type-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-expected.txt:
  • http/tests/xmlhttprequest/access-control-sandboxed-iframe-denied-without-wildcard-expected.txt:
  • http/tests/xmlhttprequest/connection-error-sync-expected.txt:
  • http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt:
  • http/tests/xmlhttprequest/exceptions-expected.txt:
  • http/tests/xmlhttprequest/inject-header-expected.txt:
  • http/tests/xmlhttprequest/origin-exact-matching-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-https-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains-expected.txt:
  • http/tests/xmlhttprequest/origin-whitelisting-removal-expected.txt:
  • http/tests/xmlhttprequest/workers/access-control-basic-get-fail-non-simple-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-open-empty-method-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-invalidstaterror-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-setrequestheader-no-name-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-sync-no-progress-events-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-unsafe-redirect-expected.txt:
  • inspector/debugger/command-line-api-exception-expected.txt:
  • inspector/debugger/regress-133182-expected.txt:
  • inspector/debugger/resources/exceptions.js:

(triggerUncaughtDOMException):

  • inspector/debugger/setPauseOnExceptions-all-expected.txt:
  • inspector/debugger/setPauseOnExceptions-none-expected.txt:
  • inspector/debugger/setPauseOnExceptions-uncaught-expected.txt:
  • inspector/model/remote-object-expected.txt:
  • js/dom/dfg-custom-getter-throw-expected.txt:
  • js/dom/reflect-set-onto-dom-expected.txt:
  • js/dom/script-tests/dfg-custom-getter-throw-inlined.js:

(i.dfgIncrement):

  • js/dom/script-tests/dfg-custom-getter-throw.js:
  • loader/stateobjects/pushstate-size-expected.txt:
  • loader/stateobjects/pushstate-size-iframe-expected.txt:
  • loader/stateobjects/replacestate-size-expected.txt:
  • loader/stateobjects/replacestate-size-iframe-expected.txt:
  • media/track/regions-webvtt/vtt-region-constructor-expected.txt:
  • media/track/regions-webvtt/vtt-region-list-expected.txt:
  • platform/efl/fast/dynamic/015-expected.txt:
  • platform/gtk/fast/dynamic/015-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-ltr-2-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-ltr-2-left-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-ltr-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-ltr-right-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-rtl-2-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-rtl-2-left-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-rtl-expected.txt:
  • platform/ios-simulator-wk2/editing/selection/caret-rtl-right-expected.txt:
  • platform/ios-simulator/fast/attachment/attachment-select-on-click-expected.txt:
  • platform/ios-simulator/fast/dynamic/015-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/time-expected.txt:
  • platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt:
  • platform/ios-simulator/webaudio/analyser-exception-expected.txt:
  • platform/ios-simulator/webaudio/audiobuffersource-exception-expected.txt:
  • platform/ios-simulator/webaudio/delaynode-maxdelaylimit-expected.txt:
  • platform/mac/TestExpectations:
  • platform/mac/canvas/philip/tests/2d.missingargs-expected.txt:
  • platform/mac/fast/dynamic/015-expected.txt:
  • platform/mac/inspector/model/remote-object-expected.txt:
  • platform/win/fast/dynamic/015-expected.txt:
  • security/contentSecurityPolicy/worker-inherits-blocks-xhr-expected.txt:
  • storage/domstorage/localstorage/blocked-file-access-expected.txt:
  • storage/domstorage/localstorage/private-browsing-affects-storage-expected.txt:
  • storage/domstorage/sessionstorage/private-browsing-affects-storage-expected.txt:
  • storage/indexeddb/removed-expected.txt:
  • storage/indexeddb/removed-private-expected.txt:
  • storage/websql/open-database-set-empty-version-expected.txt:
  • svg/animations/animate-gradient-transform-expected.txt:
  • svg/as-image/svg-canvas-pattern-with-link-tainted-expected.txt:
  • svg/as-image/svg-canvas-svg-with-feimage-with-link-tainted-expected.txt:
  • svg/as-image/svg-canvas-svg-with-image-with-link-tainted-expected.txt:
  • svg/as-image/svg-canvas-xhtml-tainted-expected.txt:
  • svg/custom/acid3-test-77-expected.txt:
  • svg/custom/baseval-animval-equality-expected.txt:
  • svg/custom/getSubStringLength-expected.txt:
  • svg/custom/selectSubString-expected.txt:
  • svg/dom/SVGAngle-expected.txt:
  • svg/dom/SVGColor-expected.txt:
  • svg/dom/SVGLength-expected.txt:
  • svg/dom/SVGLength-px-expected.txt:
  • svg/dom/SVGLengthList-appendItem-expected.txt:
  • svg/dom/SVGLengthList-basics-expected.txt:
  • svg/dom/SVGLengthList-getItem-expected.txt:
  • svg/dom/SVGLengthList-initialize-expected.txt:
  • svg/dom/SVGLengthList-insertItemBefore-expected.txt:
  • svg/dom/SVGLengthList-removeItem-expected.txt:
  • svg/dom/SVGLengthList-replaceItem-expected.txt:
  • svg/dom/SVGNumberList-basics-expected.txt:
  • svg/dom/SVGPaint-expected.txt:
  • svg/dom/SVGPathSegList-clear-and-initialize-expected.txt:
  • svg/dom/SVGPointList-basics-expected.txt:
  • svg/dom/SVGPreserveAspectRatio-expected.txt:
  • svg/dom/SVGStringList-basics-expected.txt:
  • svg/dom/SVGTransformList-basics-expected.txt:
  • svg/dom/SVGTransformList-expected.txt:
  • svg/dom/SVGViewSpec-defaults-expected.txt:
  • svg/dom/altGlyph-dom-expected.txt:
  • svg/dom/svglist-exception-on-out-bounds-error-expected.txt:
  • transforms/cssmatrix-2d-interface-expected.txt:
  • transforms/cssmatrix-3d-interface-expected.txt:
  • webaudio/analyser-exception-expected.txt:
  • webaudio/analyser-exception.html:
  • webaudio/audiobuffersource-channels-expected.txt:
  • webaudio/audiobuffersource-exception-expected.txt:
  • webaudio/audiobuffersource-exception.html:
  • webaudio/convolver-channels-expected.txt:
  • webaudio/convolver-channels.html:
  • webaudio/convolver-setBuffer-different-samplerate-expected.txt:
  • webaudio/convolver-setBuffer-different-samplerate.html:
  • webaudio/delaynode-maxdelaylimit-expected.txt:
  • webaudio/offlineaudiocontext-constructor-expected.txt:
7:39 AM Changeset in webkit [203332] by Yusuke Suzuki
  • 5 edits in trunk

[JSC] Enable test262 module tests
​https://bugs.webkit.org/show_bug.cgi?id=159854

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch enables test262 module tests. Before this patch, the modules tests in test262 do not work fine.
This patch fixes the following 2 things.

  1. Test harness

Before this patch, there is only one global switch "-m" in jsc shell. So we cannot load the test262 test harness before evaluating the module tests.
This patch adds a new option, "--module-file=". It is similar to "--strict-file=". When we specify the file with "--module-file=", it is evaluated as
a module, while the other files are evaluated by following the JSC's default manner. This option allows us to load the test harness files into the
global context before loading the module tests.

  1. Module's asynchronous errors

Before this patch, the errors caused in the module evaluation are not handled as the same to the usual sync files. In synchronous execution, we have
"--exception=" option to pass the expected exception to the JSC shell. But this option does not work in the module evaluation.
This patch correctly handles this expected exception in the module evaluation promise's fulfill and reject handlers.

And we fix the YAML file. Now the recorded :fail and :normal are the correct test results for the module tests.

  • jsc.cpp:

(Script::Script):
(checkUncaughtException):
(runWithScripts):
(printUsageStatement):
(CommandLine::parseArguments):
(dumpException): Deleted.

  • tests/test262.yaml:

Tools:

Use --module-file instead.

  • Scripts/run-jsc-stress-tests:
7:33 AM Changeset in webkit [203331] by Yusuke Suzuki
  • 10 edits in trunk/Source/JavaScriptCore

[JSC] Mask TrustedImm32 to 8bit in MacroAssembler for 8bit operations
​https://bugs.webkit.org/show_bug.cgi?id=159334

Reviewed by Filip Pizlo.

Previously, in 8bit operations (like add8, compare8, test8, branch8, branchTest8 etc.),
we require that the given TrustedImm32 is in range of 8bit. While achieving this in
the manual MacroAssembler calling is easy, in Air, we don't guarantee that the higher bit
of the 8bit argument is cleared. So the current assertions are invalid.

This patch relaxes the above restriction. By removing this assertion,
8bit operations can take arbitrary 32bit imms. And only lower 8bit are effective when
emitting the code in these methods.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::branchTest8):

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::store8):
(JSC::MacroAssemblerARM::branch8):
(JSC::MacroAssemblerARM::branchTest8):
(JSC::MacroAssemblerARM::compare8):
(JSC::MacroAssemblerARM::test8):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::store8):
(JSC::MacroAssemblerARM64::branch8):
(JSC::MacroAssemblerARM64::branchTest8):
(JSC::MacroAssemblerARM64::compare8):
(JSC::MacroAssemblerARM64::test8):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::store8):
(JSC::MacroAssemblerARMv7::branch8):
(JSC::MacroAssemblerARMv7::branchTest8):
(JSC::MacroAssemblerARMv7::compare8):
(JSC::MacroAssemblerARMv7::test8):

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::store8):
(JSC::MacroAssemblerMIPS::branch8):
(JSC::MacroAssemblerMIPS::compare8):
(JSC::MacroAssemblerMIPS::branchTest8):
(JSC::MacroAssemblerMIPS::test8):

  • assembler/MacroAssemblerSH4.h:

(JSC::MacroAssemblerSH4::store8):
(JSC::MacroAssemblerSH4::branchTest8):
(JSC::MacroAssemblerSH4::branch8):
(JSC::MacroAssemblerSH4::compare8):
(JSC::MacroAssemblerSH4::test8):

  • assembler/MacroAssemblerX86.h:

(JSC::MacroAssemblerX86::store8):
(JSC::MacroAssemblerX86::branch8):
(JSC::MacroAssemblerX86::branchTest8):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::add8):
(JSC::MacroAssemblerX86Common::store8):
(JSC::MacroAssemblerX86Common::branch8):
(JSC::MacroAssemblerX86Common::branchTest8):
(JSC::MacroAssemblerX86Common::compare8):
(JSC::MacroAssemblerX86Common::test8):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::store8):
(JSC::MacroAssemblerX86_64::branch8):
(JSC::MacroAssemblerX86_64::branchTest8):

12:16 AM Changeset in webkit [203330] by mmaxfield@apple.com
  • 9 edits
    52 adds in trunk

Support new emoji group candidates
​https://bugs.webkit.org/show_bug.cgi?id=159755
<rdar://problem/27325521>

Reviewed by Dean Jackson.

Source/WebCore:

There are a few code points which should be able to be joined (with ZWJ) to
either U+2640 or U+2642 to change the gender of the emoji. These patterns
should also work with an additional 0xFE0F variation selector. This patch
adds these new patterns to our existing emoji group candidate infrastructure.

Tests: fast/text/emoji-gender-2-3.html

fast/text/emoji-gender-2-4.html
fast/text/emoji-gender-2-5.html
fast/text/emoji-gender-2-6.html
fast/text/emoji-gender-2-7.html
fast/text/emoji-gender-2-8.html
fast/text/emoji-gender-2-9.html
fast/text/emoji-gender-2.html
fast/text/emoji-gender-3.html
fast/text/emoji-gender-4.html
fast/text/emoji-gender-5.html
fast/text/emoji-gender-6.html
fast/text/emoji-gender-7.html
fast/text/emoji-gender-8.html
fast/text/emoji-gender-9.html
fast/text/emoji-gender-fe0f-3.html
fast/text/emoji-gender-fe0f-4.html
fast/text/emoji-gender-fe0f-5.html
fast/text/emoji-gender-fe0f-6.html
fast/text/emoji-gender-fe0f-7.html
fast/text/emoji-gender-fe0f-8.html
fast/text/emoji-gender-fe0f-9.html
fast/text/emoji-gender.html
fast/text/emoji-num-glyphs.html
fast/text/emoji-single-parent-family-2.html
fast/text/emoji-single-parent-family.html

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Removed incorrect ASSERT()s.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::characterRangeCodePath):

  • platform/text/CharacterProperties.h:

(WebCore::isEmojiGroupCandidate):

Source/WTF:

This patch doesn't update the rules for our cursor movement iterator, because
I don't know the language used for implementing these rules. These rules will
be updated in the near future. When they do,
editing/deleting/delete-emoji-expected.txt will need to be updated.

  • wtf/text/TextBreakIterator.cpp:

(WTF::cursorMovementIterator):

LayoutTests:

Because this patch doesn't update the rules for our cursor movement
iterator, the new expected result for editing/deleting/delete-emoji.html
expects incorrect results. In the patch where we update these rules,
the expected result should also be updated.

Because these new emoji require system support, TestExpectations has
been updated to mark the tests as failing until the system support has
been added.

  • TestExpectations:
  • editing/deleting/delete-emoji-expected.txt:
  • fast/text/emoji-gender-2-3-expected.html: Added.
  • fast/text/emoji-gender-2-3.html: Added.
  • fast/text/emoji-gender-2-4-expected.html: Added.
  • fast/text/emoji-gender-2-4.html: Added.
  • fast/text/emoji-gender-2-5-expected.html: Added.
  • fast/text/emoji-gender-2-5.html: Added.
  • fast/text/emoji-gender-2-6-expected.html: Added.
  • fast/text/emoji-gender-2-6.html: Added.
  • fast/text/emoji-gender-2-7-expected.html: Added.
  • fast/text/emoji-gender-2-7.html: Added.
  • fast/text/emoji-gender-2-8-expected.html: Added.
  • fast/text/emoji-gender-2-8.html: Added.
  • fast/text/emoji-gender-2-9-expected.html: Added.
  • fast/text/emoji-gender-2-9.html: Added.
  • fast/text/emoji-gender-2-expected-mismatch.html: Added.
  • fast/text/emoji-gender-2.html: Added.
  • fast/text/emoji-gender-3-expected.html: Added.
  • fast/text/emoji-gender-3.html: Added.
  • fast/text/emoji-gender-4-expected.html: Added.
  • fast/text/emoji-gender-4.html: Added.
  • fast/text/emoji-gender-5-expected.html: Added.
  • fast/text/emoji-gender-5.html: Added.
  • fast/text/emoji-gender-6-expected.html: Added.
  • fast/text/emoji-gender-6.html: Added.
  • fast/text/emoji-gender-7-expected.html: Added.
  • fast/text/emoji-gender-7.html: Added.
  • fast/text/emoji-gender-8-expected.html: Added.
  • fast/text/emoji-gender-8.html: Added.
  • fast/text/emoji-gender-9-expected.html: Added.
  • fast/text/emoji-gender-9.html: Added.
  • fast/text/emoji-gender-expected-mismatch.html: Added.
  • fast/text/emoji-gender-fe0f-3-expected.html: Added.
  • fast/text/emoji-gender-fe0f-3.html: Added.
  • fast/text/emoji-gender-fe0f-4-expected.html: Added.
  • fast/text/emoji-gender-fe0f-4.html: Added.
  • fast/text/emoji-gender-fe0f-5-expected.html: Added.
  • fast/text/emoji-gender-fe0f-5.html: Added.
  • fast/text/emoji-gender-fe0f-6-expected.html: Added.
  • fast/text/emoji-gender-fe0f-6.html: Added.
  • fast/text/emoji-gender-fe0f-7-expected.html: Added.
  • fast/text/emoji-gender-fe0f-7.html: Added.
  • fast/text/emoji-gender-fe0f-8-expected.html: Added.
  • fast/text/emoji-gender-fe0f-8.html: Added.
  • fast/text/emoji-gender-fe0f-9-expected.html: Added.
  • fast/text/emoji-gender-fe0f-9.html: Added.
  • fast/text/emoji-gender.html: Added.
  • fast/text/emoji-num-glyphs-expected.txt: Added.
  • fast/text/emoji-num-glyphs.html: Added.
  • fast/text/emoji-single-parent-family-2-expected-mismatch.html: Added.
  • fast/text/emoji-single-parent-family-2.html: Added.
  • fast/text/emoji-single-parent-family-expected-mismatch.html: Added.
  • fast/text/emoji-single-parent-family.html: Added.

Jul 16, 2016:

5:19 PM Changeset in webkit [203329] by Chris Dumez
  • 5 edits in trunk

Unreviewed, rolling out r203318.

Regressed most JS Benchmarks on MacBook Air by ~2% (7% on
SunSpider)

Reverted changeset:

"[JSC] Change some parameters based on a random search"
​https://bugs.webkit.org/show_bug.cgi?id=158514
​http://trac.webkit.org/changeset/203318

2:33 PM Changeset in webkit [203328] by beidson@apple.com
  • 36 edits in trunk

Update SVGException to use the description in toString().
​https://bugs.webkit.org/show_bug.cgi?id=159847

Reviewed by Darin Adler.

Source/WebCore:

No new tests (Covered by changes to existing tests).

  • bindings/js/JSDOMBinding.cpp:

(WebCore::reportException): use consoleErrorMessage for now.

  • dom/ExceptionBase.cpp:

(WebCore::ExceptionBase::consoleErrorMessage):

  • dom/ExceptionBase.h:
  • svg/SVGException.h:

LayoutTests:

  • svg/animations/animate-marker-orient-from-angle-to-autostartreverse-expected.txt:
  • svg/custom/SVGException-expected.txt:
  • svg/custom/polyline-points-crash-expected.txt:
  • svg/custom/script-tests/SVGException.js:
  • svg/dom/SVGAnimatedEnumeration-SVGClipPathElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGComponentTransferFunctionElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFEBlendElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFEColorMatrixElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFECompositeElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFEConvolveMatrixElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFEDisplacementMapElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFEMorphologyElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFETurbulenceElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGFilterElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGGradientElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGMarkerElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGMaskElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGPatternElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGTextContentElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-SVGTextPathElement-expected.txt:
  • svg/dom/SVGAnimatedEnumeration-expected.txt:
  • svg/dom/SVGLengthList-basics-expected.txt:
  • svg/dom/SVGMatrix-interface-expected.txt:
  • svg/dom/SVGNumberList-basics-expected.txt:
  • svg/dom/SVGPointList-basics-expected.txt:
  • svg/dom/SVGTransformList-basics-expected.txt:
  • svg/dom/svglist-exception-on-out-bounds-error-expected.txt:
  • svg/filters/feBlend-invalid-mode-expected.txt:
  • svg/filters/feComponentTransfer-style-crash-expected.txt:
  • svg/filters/feDisplacementMap-crash-test-expected.txt:
11:31 AM Changeset in webkit [203327] by ddkilzer@apple.com
  • 2 edits in trunk/Websites/bugs.webkit.org

Use secure (https) links on enter_bug.cgi
<​https://webkit.org/b/159853>

Reviewed by Alexey Proskuryakov.

  • template/en/default/global/choose-product.html.tmpl:

Use https instead of http for links to webkit.org.

10:21 AM Changeset in webkit [203326] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Use fastHasAttribute() when possible
​https://bugs.webkit.org/show_bug.cgi?id=159838

Reviewed by Ryosuke Niwa.

Use fastHasAttribute() when possible, for performance.

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):

  • editing/markup.cpp:

(WebCore::createMarkupInternal):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::draggable):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::parseAttribute):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::getSelectedSemanticsChild):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::adjustMenuListButtonStyle):

9:33 AM Changeset in webkit [203325] by Chris Dumez
  • 4 edits in trunk

Add move constructor / assignment operator to ListHashSet
​https://bugs.webkit.org/show_bug.cgi?id=159837

Reviewed by Darin Adler.

Source/WTF:

Add move constructor / assignment operator to ListHashSet.

  • wtf/ListHashSet.h:

(WTF::ListHashSetConstIterator::operator++):
(WTF::U>::ListHashSet):
(WTF::=):
(WTF::U>::clear):
(WTF::U>::appendNode):
(WTF::U>::prependNode):
(WTF::U>::deleteAllNodes):
(WTF::ListHashSetNode::ListHashSetNode): Deleted.

Tools:

Add API tests.

  • TestWebKitAPI/Tests/WTF/ListHashSet.cpp:

(TestWebKitAPI::TEST):

8:21 AM Changeset in webkit [203324] by rniwa@webkit.org
  • 133 edits in trunk/Source

Rename fastGetAttribute to attributeWithoutSynchronization
​https://bugs.webkit.org/show_bug.cgi?id=159852

Reviewed by Darin Adler.

Source/WebCore:

Renamed fastGetAttribute to attributeWithoutSynchronization for clarity.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::findAriaModalNodes):
(WebCore::nodeHasRole):
(WebCore::AXObjectCache::handleLiveRegionCreated):
(WebCore::AXObjectCache::handleMenuItemSelected):
(WebCore::AXObjectCache::handleAriaModalChange):
(WebCore::isNodeAriaVisible):

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::siblingWithAriaRole):
(WebCore::AccessibilityNodeObject::titleElementText):
(WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
(WebCore::AccessibilityNodeObject::hierarchicalLevel):
(WebCore::AccessibilityNodeObject::stringValue):
(WebCore::accessibleNameForNode):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):
(WebCore::AccessibilityObject::getAttribute):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::stringValue):
(WebCore::AccessibilityRenderObject::exposesTitleUIElement):

  • accessibility/AccessibilitySVGElement.cpp:

(WebCore::AccessibilitySVGElement::childElementWithMatchingLanguage):
(WebCore::AccessibilitySVGElement::accessibilityDescription):

  • bindings/objc/DOM.mm:

(-[DOMHTMLLinkElement _mediaQueryMatches]):

  • bindings/scripts/CodeGenerator.pm:

(GetterExpression):

  • bindings/scripts/CodeGeneratorObjC.pm:

(GenerateImplementation):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjReflectedStringAttr):

  • dom/AuthorStyleSheets.cpp:

(WebCore::AuthorStyleSheets::collectActiveStyleSheets):

  • dom/Document.cpp:

(WebCore::Document::buildAccessKeyMap):
(WebCore::Document::processBaseElement):

  • dom/DocumentOrderedMap.cpp:

(WebCore::DocumentOrderedMap::getElementByLabelForAttribute):

  • dom/Element.cpp:

(WebCore::Element::imageSourceURL):
(WebCore::Element::rendererIsNeeded):
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
(WebCore::Element::pseudo):
(WebCore::Element::setPseudo):
(WebCore::Element::spellcheckAttributeState):
(WebCore::Element::canContainRangeEndPoint):
(WebCore::Element::completeURLsInAttributeValue):

  • dom/Element.h:

(WebCore::Element::fastHasAttribute):
(WebCore::Element::attributeWithoutSynchronization):
(WebCore::Element::fastGetAttribute): Deleted.

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::createSheet):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestScript):
(WebCore::ScriptElement::executeScript):

  • dom/SlotAssignment.cpp:

(WebCore::slotNameFromSlotAttribute):
(WebCore::SlotAssignment::SlotAssignment):
(WebCore::recursivelyFireSlotChangeEvent):
(WebCore::SlotAssignment::didChangeSlot):
(WebCore::SlotAssignment::hostChildElementDidChange):
(WebCore::SlotAssignment::assignedNodesForSlot):
(WebCore::SlotAssignment::resolveAllSlotElements):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::labelElementForId):

  • dom/VisitedLinkState.cpp:

(WebCore::linkAttribute):

  • editing/ApplyStyleCommand.cpp:

(WebCore::isLegacyAppleStyleSpan):
(WebCore::hasNoAttributeOrOnlyStyleAttribute):

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::isInterchangeNewlineNode):
(WebCore::isInterchangeConvertedSpaceSpan):
(WebCore::positionAvoidingPrecedingNodes):
(WebCore::isMailPasteAsQuotationNode):
(WebCore::isHeaderElement):
(WebCore::isInlineNodeWithStyle):

  • editing/TextIterator.cpp:

(WebCore::isRendererReplacedElement):

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::isDataDetectorLink):
(WebCore::DataDetection::requiresExtendedContext):
(WebCore::DataDetection::dataDetectorIdentifier):
(WebCore::DataDetection::shouldCancelDefaultAction):
(WebCore::removeResultLinksFromAnchor):
(WebCore::searchForLinkRemovingExistingDDLinks):

  • editing/gtk/EditorGtk.cpp:

(WebCore::elementURL):

  • editing/htmlediting.cpp:

(WebCore::isTabSpanNode):
(WebCore::isTabSpanTextNode):
(WebCore::isMailBlockquote):
(WebCore::caretMinOffset):

  • editing/markup.cpp:

(WebCore::createFragmentFromMarkup):

  • html/Autofill.cpp:

(WebCore::AutofillData::createFromHTMLFormControlElement):

  • html/BaseTextInputType.cpp:

(WebCore::BaseTextInputType::patternMismatch):

  • html/DateInputType.cpp:

(WebCore::DateInputType::createStepRange):

  • html/DateTimeInputType.cpp:

(WebCore::DateTimeInputType::createStepRange):

  • html/DateTimeLocalInputType.cpp:

(WebCore::DateTimeLocalInputType::createStepRange):

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::findAssociatedForm):
(WebCore::FormAssociatedElement::resetFormAttributeTargetObserver):
(WebCore::FormAssociatedElement::formAttributeTargetChanged):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::draggable):
(WebCore::HTMLAnchorElement::href):
(WebCore::HTMLAnchorElement::setHref):
(WebCore::HTMLAnchorElement::target):
(WebCore::HTMLAnchorElement::origin):
(WebCore::HTMLAnchorElement::sendPings):
(WebCore::HTMLAnchorElement::handleClick):

  • html/HTMLAnchorElement.h:

(WebCore::HTMLAnchorElement::visitedLinkHash):

  • html/HTMLAppletElement.cpp:

(WebCore::HTMLAppletElement::updateWidget):

  • html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::target):

  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::attachmentTitle):
(WebCore::HTMLAttachmentElement::attachmentType):

  • html/HTMLBaseElement.cpp:

(WebCore::HTMLBaseElement::target):
(WebCore::HTMLBaseElement::href):

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::addSubresourceAttributeURLs):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::value):
(WebCore::HTMLButtonElement::computeWillValidate):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::reset):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::bgColor):
(WebCore::HTMLDocument::setBgColor):
(WebCore::HTMLDocument::fgColor):
(WebCore::HTMLDocument::setFgColor):
(WebCore::HTMLDocument::alinkColor):
(WebCore::HTMLDocument::setAlinkColor):
(WebCore::HTMLDocument::linkColor):
(WebCore::HTMLDocument::setLinkColor):
(WebCore::HTMLDocument::vlinkColor):
(WebCore::HTMLDocument::setVlinkColor):

  • html/HTMLElement.cpp:

(WebCore::contentEditableType):
(WebCore::HTMLElement::collectStyleForPresentationAttribute):
(WebCore::HTMLElement::dir):
(WebCore::HTMLElement::setDir):
(WebCore::HTMLElement::draggable):
(WebCore::HTMLElement::setDraggable):
(WebCore::HTMLElement::title):
(WebCore::HTMLElement::tabIndex):
(WebCore::HTMLElement::translateAttributeMode):
(WebCore::HTMLElement::hasDirectionAuto):
(WebCore::HTMLElement::directionality):

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::imageSourceURL):
(WebCore::HTMLEmbedElement::addSubresourceAttributeURLs):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::formEnctype):
(WebCore::HTMLFormControlElement::formMethod):
(WebCore::HTMLFormControlElement::formAction):
(WebCore::HTMLFormControlElement::autocorrect):
(WebCore::HTMLFormControlElement::autocapitalizeType):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::autocorrect):
(WebCore::HTMLFormElement::autocapitalizeType):
(WebCore::HTMLFormElement::autocapitalize):
(WebCore::HTMLFormElement::action):
(WebCore::HTMLFormElement::setAction):
(WebCore::HTMLFormElement::target):
(WebCore::HTMLFormElement::wasUserSubmitted):
(WebCore::HTMLFormElement::shouldAutocomplete):
(WebCore::HTMLFormElement::finishParsingChildren):
(WebCore::HTMLFormElement::autocomplete):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::location):
(WebCore::HTMLFrameElementBase::setLocation):

  • html/HTMLHtmlElement.cpp:

(WebCore::HTMLHtmlElement::insertedByParser):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::imageSourceURL):
(WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
(WebCore::HTMLImageElement::selectImageSource):
(WebCore::HTMLImageElement::altText):
(WebCore::HTMLImageElement::createElementRenderer):
(WebCore::HTMLImageElement::width):
(WebCore::HTMLImageElement::height):
(WebCore::HTMLImageElement::alt):
(WebCore::HTMLImageElement::draggable):
(WebCore::HTMLImageElement::setHeight):
(WebCore::HTMLImageElement::src):
(WebCore::HTMLImageElement::setSrc):
(WebCore::HTMLImageElement::addSubresourceAttributeURLs):
(WebCore::HTMLImageElement::didMoveToNewDocument):
(WebCore::HTMLImageElement::isServerMap):
(WebCore::HTMLImageElement::crossOrigin):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::initializeInputType):
(WebCore::HTMLInputElement::altText):
(WebCore::HTMLInputElement::value):
(WebCore::HTMLInputElement::defaultValue):
(WebCore::HTMLInputElement::setDefaultValue):
(WebCore::HTMLInputElement::acceptMIMETypes):
(WebCore::HTMLInputElement::acceptFileExtensions):
(WebCore::HTMLInputElement::accept):
(WebCore::HTMLInputElement::alt):
(WebCore::HTMLInputElement::effectiveMaxLength):
(WebCore::HTMLInputElement::src):
(WebCore::HTMLInputElement::setAutoFilled):
(WebCore::HTMLInputElement::dataList):
(WebCore::HTMLInputElement::resetListAttributeTargetObserver):

  • html/HTMLKeygenElement.cpp:

(WebCore::HTMLKeygenElement::isKeytypeRSA):
(WebCore::HTMLKeygenElement::appendFormData):

  • html/HTMLLIElement.cpp:

(WebCore::HTMLLIElement::didAttachRenderers):
(WebCore::HTMLLIElement::parseValue):

  • html/HTMLLabelElement.cpp:

(WebCore::HTMLLabelElement::control):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::crossOrigin):
(WebCore::HTMLLinkElement::process):
(WebCore::HTMLLinkElement::href):
(WebCore::HTMLLinkElement::rel):
(WebCore::HTMLLinkElement::target):
(WebCore::HTMLLinkElement::type):
(WebCore::HTMLLinkElement::iconType):

  • html/HTMLMarqueeElement.cpp:

(WebCore::HTMLMarqueeElement::scrollAmount):
(WebCore::HTMLMarqueeElement::setScrollAmount):
(WebCore::HTMLMarqueeElement::scrollDelay):
(WebCore::HTMLMarqueeElement::setScrollDelay):
(WebCore::HTMLMarqueeElement::loop):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::insertedInto):
(WebCore::HTMLMediaElement::crossOrigin):
(WebCore::HTMLMediaElement::networkState):
(WebCore::HTMLMediaElement::mediaSessionTitle):
(WebCore::HTMLMediaElement::doesHaveAttribute):

  • html/HTMLMetaElement.cpp:

(WebCore::HTMLMetaElement::process):
(WebCore::HTMLMetaElement::content):
(WebCore::HTMLMetaElement::httpEquiv):
(WebCore::HTMLMetaElement::name):

  • html/HTMLMeterElement.cpp:

(WebCore::HTMLMeterElement::min):
(WebCore::HTMLMeterElement::setMin):
(WebCore::HTMLMeterElement::max):
(WebCore::HTMLMeterElement::setMax):
(WebCore::HTMLMeterElement::value):
(WebCore::HTMLMeterElement::low):
(WebCore::HTMLMeterElement::high):
(WebCore::HTMLMeterElement::optimum):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
(WebCore::HTMLObjectElement::hasValidClassId):
(WebCore::HTMLObjectElement::imageSourceURL):
(WebCore::HTMLObjectElement::renderFallbackContent):
(WebCore::HTMLObjectElement::containsJavaApplet):
(WebCore::HTMLObjectElement::addSubresourceAttributeURLs):

  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::groupLabelText):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::value):
(WebCore::HTMLOptionElement::label):

  • html/HTMLParamElement.cpp:

(WebCore::HTMLParamElement::value):
(WebCore::HTMLParamElement::isURLParameter):

  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::value):
(WebCore::HTMLProgressElement::max):

  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::crossOrigin):
(WebCore::HTMLScriptElement::src):
(WebCore::HTMLScriptElement::sourceAttributeValue):
(WebCore::HTMLScriptElement::charsetAttributeValue):
(WebCore::HTMLScriptElement::typeAttributeValue):
(WebCore::HTMLScriptElement::languageAttributeValue):
(WebCore::HTMLScriptElement::forAttributeValue):
(WebCore::HTMLScriptElement::eventAttributeValue):
(WebCore::HTMLScriptElement::asyncAttributeValue):

  • html/HTMLSlotElement.cpp:

(WebCore::HTMLSlotElement::insertedInto):
(WebCore::HTMLSlotElement::removedFrom):

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::media):
(WebCore::HTMLSourceElement::setMedia):
(WebCore::HTMLSourceElement::type):
(WebCore::HTMLSourceElement::setType):

  • html/HTMLTableCellElement.cpp:

(WebCore::HTMLTableCellElement::colSpanForBindings):
(WebCore::HTMLTableCellElement::rowSpan):
(WebCore::HTMLTableCellElement::rowSpanForBindings):
(WebCore::HTMLTableCellElement::cellIndex):
(WebCore::HTMLTableCellElement::abbr):
(WebCore::HTMLTableCellElement::axis):
(WebCore::HTMLTableCellElement::setColSpanForBindings):
(WebCore::HTMLTableCellElement::headers):
(WebCore::HTMLTableCellElement::setRowSpanForBindings):
(WebCore::HTMLTableCellElement::scope):
(WebCore::HTMLTableCellElement::addSubresourceAttributeURLs):
(WebCore::HTMLTableCellElement::cellAbove):

  • html/HTMLTableColElement.cpp:

(WebCore::HTMLTableColElement::width):

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::rules):
(WebCore::HTMLTableElement::summary):
(WebCore::HTMLTableElement::addSubresourceAttributeURLs):

  • html/HTMLTableSectionElement.cpp:

(WebCore::HTMLTableSectionElement::align):
(WebCore::HTMLTableSectionElement::setAlign):
(WebCore::HTMLTableSectionElement::ch):
(WebCore::HTMLTableSectionElement::setCh):
(WebCore::HTMLTableSectionElement::chOff):
(WebCore::HTMLTableSectionElement::setChOff):
(WebCore::HTMLTableSectionElement::vAlign):
(WebCore::HTMLTableSectionElement::setVAlign):

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::appendFormData):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::strippedPlaceholder):
(WebCore::HTMLTextFormControlElement::isPlaceholderEmpty):
(WebCore::HTMLTextFormControlElement::directionForFormData):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::srclang):
(WebCore::HTMLTrackElement::label):
(WebCore::HTMLTrackElement::isDefault):
(WebCore::HTMLTrackElement::ensureTrack):
(WebCore::HTMLTrackElement::mediaElementCrossOriginAttribute):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::parseAttribute):
(WebCore::HTMLVideoElement::imageSourceURL):

  • html/ImageInputType.cpp:

(WebCore::ImageInputType::height):
(WebCore::ImageInputType::width):

  • html/InputType.cpp:

(WebCore::InputType::applyStep):

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled):

  • html/MonthInputType.cpp:

(WebCore::MonthInputType::createStepRange):

  • html/NumberInputType.cpp:

(WebCore::NumberInputType::createStepRange):
(WebCore::NumberInputType::sizeShouldIncludeDecoration):

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::createStepRange):
(WebCore::RangeInputType::handleKeydownEvent):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::appendFormData):
(WebCore::TextFieldInputType::updateAutoFillButton):

  • html/TimeInputType.cpp:

(WebCore::TimeInputType::createStepRange):

  • html/ValidationMessage.cpp:

(WebCore::ValidationMessage::updateValidationMessage):

  • html/WeekInputType.cpp:

(WebCore::WeekInputType::createStepRange):

  • html/track/WebVTTElement.cpp:

(WebCore::WebVTTElement::createEquivalentHTMLElement):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::buildObjectForFrame):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::defaultSubstituteDataForURL):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::updateFromElement):

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::isPluginContentAllowedByContentSecurityPolicy):

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::colSpan):
(WebCore::MathMLElement::rowSpan):
(WebCore::MathMLElement::childShouldCreateRenderer):
(WebCore::MathMLElement::defaultEventHandler):
(WebCore::MathMLElement::cachedMathMLLength):

  • mathml/MathMLFractionElement.cpp:

(WebCore::MathMLFractionElement::lineThickness):
(WebCore::MathMLFractionElement::cachedFractionAlignment):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::getSelectedActionChildAndIndex):
(WebCore::MathMLSelectElement::getSelectedActionChild):
(WebCore::MathMLSelectElement::getSelectedSemanticsChild):
(WebCore::MathMLSelectElement::defaultEventHandler):
(WebCore::MathMLSelectElement::willRespondToMouseClickEvents):
(WebCore::MathMLSelectElement::toggle):

  • page/EventHandler.cpp:

(WebCore::findDropZone):

  • page/Frame.cpp:

(WebCore::Frame::matchLabelsAgainstElement):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeFrame):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeImageToDataObject):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::altDisplayString):

  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::isOpen):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::imageMap):
(WebCore::RenderImage::nodeAtPoint):

  • rendering/RenderMenuList.cpp:

(RenderMenuList::itemAccessibilityText):
(RenderMenuList::itemToolTip):

  • rendering/RenderSearchField.cpp:

(WebCore::RenderSearchField::autosaveName):

  • rendering/RenderThemeIOS.mm:

(WebCore::getAttachmentProgress):
(WebCore::AttachmentInfo::AttachmentInfo):

  • rendering/RenderThemeMac.mm:

(WebCore::AttachmentLayout::layOutSubtitle):
(WebCore::RenderThemeMac::paintAttachment):

  • rendering/mathml/MathMLStyle.cpp:

(WebCore::MathMLStyle::resolveMathMLStyle):

  • rendering/mathml/RenderMathMLFenced.cpp:

(WebCore::RenderMathMLFenced::updateFromElement):

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
(WebCore::RenderMathMLOperator::setOperatorFlagFromAttributeValue):
(WebCore::RenderMathMLOperator::setOperatorProperties):

  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::hasAccent):

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement):
(WebCore::Style::SharingResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::title):
(WebCore::SVGAElement::defaultEventHandler):

  • svg/SVGAltGlyphElement.cpp:

(WebCore::SVGAltGlyphElement::glyphRef):
(WebCore::SVGAltGlyphElement::setFormat):
(WebCore::SVGAltGlyphElement::format):
(WebCore::SVGAltGlyphElement::childShouldCreateRenderer):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::toValue):
(WebCore::SVGAnimationElement::byValue):
(WebCore::SVGAnimationElement::fromValue):
(WebCore::SVGAnimationElement::isAdditive):
(WebCore::SVGAnimationElement::isAccumulated):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::xmlbase):
(WebCore::SVGElement::setXmlbase):

  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::unitsPerEm):
(WebCore::SVGFontFaceElement::xHeight):
(WebCore::SVGFontFaceElement::capHeight):
(WebCore::SVGFontFaceElement::horizontalOriginX):
(WebCore::SVGFontFaceElement::horizontalOriginY):
(WebCore::SVGFontFaceElement::horizontalAdvanceX):
(WebCore::SVGFontFaceElement::verticalOriginX):
(WebCore::SVGFontFaceElement::verticalOriginY):
(WebCore::SVGFontFaceElement::verticalAdvanceY):
(WebCore::SVGFontFaceElement::ascent):
(WebCore::SVGFontFaceElement::descent):

  • svg/SVGFontFaceNameElement.cpp:

(WebCore::SVGFontFaceNameElement::srcValue):

  • svg/SVGFontFaceUriElement.cpp:

(WebCore::SVGFontFaceUriElement::srcValue):

  • svg/SVGGlyphRefElement.cpp:

(WebCore::SVGGlyphRefElement::glyphRef):
(WebCore::SVGGlyphRefElement::setGlyphRef):

  • svg/SVGHKernElement.cpp:

(WebCore::SVGHKernElement::buildHorizontalKerningPair):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::contentScriptType):
(WebCore::SVGSVGElement::contentStyleType):

  • svg/SVGStyleElement.cpp:

(WebCore::SVGStyleElement::media):
(WebCore::SVGStyleElement::title):
(WebCore::SVGStyleElement::setTitle):

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::appendOS2Table):
(WebCore::SVGToOTFFontConverter::appendCFFTable):
(WebCore::SVGToOTFFontConverter::appendArabicReplacementSubtable):
(WebCore::SVGToOTFFontConverter::appendVORGTable):
(WebCore::SVGToOTFFontConverter::transcodeGlyphPaths):
(WebCore::SVGToOTFFontConverter::processGlyphElement):
(WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

  • svg/SVGVKernElement.cpp:

(WebCore::SVGVKernElement::buildVerticalKerningPair):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::insertedInto):
(WebCore::SVGSMILElement::parseAttribute):
(WebCore::SVGSMILElement::svgAttributeChanged):
(WebCore::SVGSMILElement::restart):
(WebCore::SVGSMILElement::fill):
(WebCore::SVGSMILElement::dur):
(WebCore::SVGSMILElement::repeatDur):
(WebCore::SVGSMILElement::repeatCount):
(WebCore::SVGSMILElement::maxValue):
(WebCore::SVGSMILElement::minValue):

Source/WebKit/mac:

  • WebView/WebHTMLRepresentation.mm:

(matchLabelsAgainstElement):

Source/WebKit/win:

  • DOMHTMLClasses.cpp:

(DOMHTMLElement::idName):

Source/WebKit2:

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):
(WebKit::WebPage::performActionOnElement):
(WebKit::WebPage::getAssistedNodeInformation):

4:33 AM Changeset in webkit [203323] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ASSERTION FAILED: isMainThread() in ~UniqueIDBDatabase() since r201997
​https://bugs.webkit.org/show_bug.cgi?id=159809

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> on 2016-07-16
Reviewed by Brady Eidson.

In r201997 the UniqueIDBDatabase was protected in executeNextDatabaseTask() because the last reference could be
removed while the task is performed. However UniqueIDBDatabase is expected to be deleted in the main thread, and
the destructor asserts when not called in the main thread, but executeNextDatabaseTask() is always called on a
secondary thread. So, if the protector contains the last reference, the object is deleted in the secondary thread.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTask): Use callOnMainThread to ensure the object is
deleted in the main thread in case the protector contains the last reference.

Jul 15, 2016:

9:51 PM Changeset in webkit [203322] by Chris Dumez
  • 49 edits in trunk/Source

Use emptyString() / nullAtom when possible
​https://bugs.webkit.org/show_bug.cgi?id=159850

Reviewed by Ryosuke Niwa.

Use emptyString() / nullAtom when possible, for performance.

Source/WebCore:

  • Modules/webaudio/AudioNode.cpp:

(WebCore::AudioNode::channelCountMode):
(WebCore::AudioNode::channelInterpretation):

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::DatabaseTracker::tracker):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::WebSocket):
(WebCore::WebSocket::didConnect):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::subprotocol):
(WebCore::WebSocketChannel::extensions):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::supportsPressAction):

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification):

  • css/CSSPropertySourceData.cpp:

(WebCore::CSSPropertySourceData::CSSPropertySourceData):

  • css/PageRuleCollector.cpp:

(WebCore::PageRuleCollector::pageName):

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::getPropertyPriority):

  • dom/DocumentMarkerController.cpp:

(WebCore::DocumentMarkerController::addDictationPhraseWithAlternativesMarker):

  • dom/Element.cpp:

(WebCore::Element::setPrefix):

  • editing/AlternativeTextController.cpp:

(WebCore::AlternativeTextController::respondToMarkerAtEndOfWord):
(WebCore::AlternativeTextController::markerDescriptionForAppliedAlternativeText):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::removeNodeAttribute):
(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::positionInsideTextNode):

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::deleteSelection):
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
(WebCore::TypingCommand::insertLineBreak):
(WebCore::TypingCommand::insertParagraphSeparator):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::styleForSelectionStart):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::stringSelectionForPasteboard):
(WebCore::Editor::stringSelectionForPasteboardWithImageAltText):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::FileReaderLoader):

  • html/FileInputType.cpp:

(WebCore::FileInputType::appendFormData):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):

  • html/HTMLOutputElement.cpp:

(WebCore::HTMLOutputElement::HTMLOutputElement):

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::handleKeydownEvent):

  • html/TextFieldInputType.cpp:

(WebCore::autoFillButtonTypeToAccessibilityLabel):

  • html/canvas/WebGLDebugShaders.cpp:

(WebCore::WebGLDebugShaders::getTranslatedShaderSource):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::dispatchContextLostEvent):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):

  • html/canvas/WebGLShader.cpp:

(WebCore::WebGLShader::WebGLShader):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlStatusDisplayElement::update):

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::captionMenuOffItem):
(WebCore::TextTrack::captionMenuAutomaticItem):

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::scroll):

  • html/track/VTTRegion.h:
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::toErrorString):
(WebCore::InspectorDOMAgent::resolveNode):
(WebCore::InspectorDOMAgent::documentURLString):
(WebCore::documentBaseURLString):

  • inspector/InspectorDOMDebuggerAgent.cpp:

(WebCore::domTypeName):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::localizedStringsURL):

  • inspector/InspectorHistory.cpp:

(WebCore::InspectorHistory::Action::mergeId):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::reload):
(WebCore::InspectorPageAgent::frameId):
(WebCore::InspectorPageAgent::loaderId):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::ruleSelector):

  • loader/EmptyClients.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::referrer):

  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::clearFailedLoadURL):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::didReceiveResponse):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/FrameTree.cpp:

(WebCore::FrameTree::setName):
(WebCore::FrameTree::clearName):

  • page/Location.cpp:

(WebCore::Location::port):

  • platform/network/ProtectionSpaceBase.cpp:

(WebCore::ProtectionSpaceBase::ProtectionSpaceBase):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::handleElementAttributes):

Source/WTF:

  • wtf/text/AtomicString.cpp:

(WTF::AtomicString::convertASCIICase):

9:17 PM Changeset in webkit [203321] by benjamin@webkit.org
  • 4 edits
    2 deletes in trunk/LayoutTests

[mac] LayoutTest fast/css/ancestor-of-hovered-element-detached.html is flaky
​https://bugs.webkit.org/show_bug.cgi?id=159173

Reviewed by Alexey Proskuryakov.

The test ancestor-of-hovered-element-detached.html is not reliably
covering r202324.

In the case of that test, the first style update is done with
the flag TeardownType::KeepHoverAndActive. This keeps the ":hover" state
set despite the subtree losing their renderer.
This looks like a serious issue that should be tested separately.

  • fast/css/ancestor-of-hovered-element-removed.html:

The :hover update timer is actually a zero timer.
It is reasonable to expect a full update after one frame update.

  • fast/css/ancestor-of-hovered-element-detached-expected.txt: Removed.
  • fast/css/ancestor-of-hovered-element-detached.html: Removed.
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
9:16 PM Changeset in webkit [203320] by commit-queue@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Convert the remaining createOutOfMemoryError()+throwException() into throwOutOfMemoryError()
​https://bugs.webkit.org/show_bug.cgi?id=159665

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

  • API/JSTypedArray.cpp:

(createTypedArray):

  • runtime/Error.cpp:

(JSC::createOutOfMemoryError):

  • runtime/Error.h:
  • runtime/ExceptionHelpers.cpp:

(JSC::throwOutOfMemoryError):

  • runtime/JSArrayBufferConstructor.cpp:

(JSC::constructArrayBuffer):

  • runtime/JSArrayBufferPrototype.cpp:

(JSC::arrayBufferProtoFuncSlice):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::create):
(JSC::JSGenericTypedArrayView<Adaptor>::createUninitialized):

7:50 PM Changeset in webkit [203319] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Test gardening after r203314
​https://bugs.webkit.org/show_bug.cgi?id=159842

Unreviewed.

7:12 PM Changeset in webkit [203318] 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

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

Source/JavaScriptCore:

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::optimizationThresholdScalingFactor):

  • runtime/Options.h:

Tools:

  • Scripts/run-jsc-stress-tests:
6:43 PM Changeset in webkit [203317] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Repaints rects drawn incorrectly when inspecting a WebView on a Retina display
​https://bugs.webkit.org/show_bug.cgi?id=159824
rdar://problem/27376305

Reviewed by Brian Burg.

InspectorOverlayPage.js set up the canvases with a deviceScaleFactor passed into
reset(), which comes from the overlay's m_page.deviceScaleFactor(). However, updatePaintRects()
used window.devicePixelRatio which was always 1.

Fix by setting the deviceScaleFactor on the m_overlayPage.

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::overlayPage):

6:19 PM Changeset in webkit [203316] by timothy@apple.com
  • 3 edits in trunk/Source/WebKit2

Web Automation: Fix element and event coord space issues
​https://bugs.webkit.org/show_bug.cgi?id=159851
rdar://problem/27375780

Reviewed by Brian Burg.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::performMouseInteraction): Subtract topContentInset() before
it goes back out to WebDriver.

  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::computeElementLayout): When using useViewportCoordinates,
subtract topContentInset() so it matches expectations.

6:14 PM Changeset in webkit [203315] by mark.lam@apple.com
  • 2 edits
    5 adds in trunk/Source/JavaScriptCore

Assertion failures and crashes with missing TDZ checks for catch-node bindings.
​https://bugs.webkit.org/show_bug.cgi?id=158797

Reviewed by Saam Barati.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitPushCatchScope):
(JSC::BytecodeGenerator::emitPopCatchScope):

  • tests/stress/catch-clause-should-be-under-tdz1.js: Added.
  • tests/stress/catch-clause-should-be-under-tdz2.js: Added.
  • tests/stress/catch-clause-should-be-under-tdz3.js: Added.
  • tests/stress/catch-clause-should-be-under-tdz4.js: Added.
  • tests/stress/catch-clause-should-be-under-tdz5.js: Added.
5:55 PM Changeset in webkit [203314] by mmaxfield@apple.com
  • 5 edits in trunk

[macOS] Work around crash in [NSAttributedString nextWordFromIndex:forward:]
​https://bugs.webkit.org/show_bug.cgi?id=159842

Reviewed by Jon Lee.

Source/WebCore:

<rdar://problem/27380532> describes a crash inside [NSAttributedString nextWordFromIndex:forward:].
This must be worked around for ​https://bugs.webkit.org/show_bug.cgi?id=159755 and
<rdar://problem/27325521>.

  • platform/text/mac/TextBoundaries.mm:

(WebCore::findNextWordFromIndex):

LayoutTests:

  • editing/deleting/delete-emoji-expected.txt:
  • editing/deleting/delete-emoji.html:
5:46 PM Changeset in webkit [203313] by beidson@apple.com
  • 9 edits in trunk

Update XPathException to use the description in toString().
​https://bugs.webkit.org/show_bug.cgi?id=159848

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Covered by changes to existing tests).

  • bindings/js/JSDOMBinding.cpp:

(WebCore::createDOMException):

  • xml/XPathException.h:

(WebCore::XPathException::XPathException):

LayoutTests:

  • fast/dom/DOMException/XPathException-expected.txt:
  • fast/dom/DOMException/resources/XPathException.js:
  • fast/xpath/4XPath/Core/test_parser-expected.txt:
  • fast/xpath/invalid-functions-expected.txt:
  • fast/xpath/py-dom-xpath/expressions-expected.txt:
5:39 PM Changeset in webkit [203312] by Beth Dakin
  • 15 edits in trunk/Source/WebKit2

Mac UI process needs to know about element focus and blur, much like iOS
​https://bugs.webkit.org/show_bug.cgi?id=159843
-and corresponding-
rdar://problem/27229504

Reviewed by Tim Horton.

This patch makes the existing iOS machinery to handle focus and blurring of
elements cross-platform. Instead of using the existing iOS messages for
startAssistingNode/stopAssistingNode, this patch adds a new message that
require only a boolean parameter: setEditableElementIsFocused.

Now that more of this code is shared, this patch teases
m_hasFocusedDueToUserInteraction out into two variables. I realized that it
was being used to mean two slightly different things on Mac and iOS, which
was very confusing. Now we have m_isAssistingNodeDueToUserInteraction to
represent the way iOS was using the variable, and we have
m_hasEverFocusedElementDueToUserInteractionSincePageTransition to represent
how Mac was using the variable. There should not be any behavior changes with
this re-name, just added clarity.

WebViewImpl has a new member variable m_editableElementIsFocused.

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

(WebKit::WebViewImpl::setEditableElementIsFocused):

Pipe the new setEditableElementIsFocused message to WebViewImpl.

  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setEditableElementIsFocused):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::setEditableElementIsFocused):

elementDidFocus() and elementDidBlur() are now PLATFORM(COCOA) instead of
PLATFORM(IOS)

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::elementDidFocus):
(WebKit::WebChromeClient::elementDidBlur):

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:

(WebKit::WebChromeClient::elementDidFocus): Deleted.
(WebKit::WebChromeClient::elementDidBlur): Deleted.

m_hasPendingBlurNotification is no longer iOS-only.

  • WebProcess/WebPage/WebPage.cpp:

Use our two new bools m_isAssistingNodeDueToUserInteraction and
m_hasEverFocusedElementDueToUserInteractionSincePageTransition
(WebKit::WebPage::didStartPageTransition):
(WebKit::WebPage::didChangeSelection):

These functions are all newly cross-platform. The Messages they send are
still platform-specific, but otherwise the logic is the same. We
dispatch_async the blur messages so that the UI process features won’t be
flashy when the user is tapping, tabbing, or clicking through form fields.
(WebKit::WebPage::resetAssistedNodeForFrame):
(WebKit::WebPage::elementDidFocus):
(WebKit::WebPage::elementDidBlur):

resetAssistedNodeForFrame() is no longer iOS-only.
(WebKit::WebPage::didCommitLoad):

Move variables and functions around so that they are defined for the right
platform, and declare the two new bools in place of the old one.

  • WebProcess/WebPage/WebPage.h:

These functions are now defined in WebPage.cpp

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::resetAssistedNodeForFrame): Deleted.
(WebKit::WebPage::elementDidFocus): Deleted.
(WebKit::WebPage::elementDidBlur): Deleted.

5:09 PM Changeset in webkit [203311] by beidson@apple.com
  • 2 edits in trunk

Revert double ChangeLog entries

5:06 PM Changeset in webkit [203310] by beidson@apple.com
  • 2 edits in trunk

Change toString() behavior for exceptions constructed with "createWithDescriptionAsMessage".
​https://bugs.webkit.org/show_bug.cgi?id=159839

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • IndexedDB-private-browsing/idbindex_get7-expected.txt:
  • IndexedDB-private-browsing/idbindex_getKey7-expected.txt:
  • IndexedDB-private-browsing/idbindex_openCursor2-expected.txt:
  • IndexedDB-private-browsing/idbindex_openKeyCursor3-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_get7-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_getKey7-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_openCursor2-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_openKeyCursor3-expected.txt:

Source/WebCore:

No new tests (Covered by changes to existing tests).

This is the first step towards extended exception messages for all exception types.

  • dom/ExceptionBase.cpp:

(WebCore::ExceptionBase::ExceptionBase):
(WebCore::ExceptionBase::toString):

  • dom/ExceptionBase.h:

LayoutTests:

  • storage/indexeddb/modern/createobjectstore-failures-expected.txt:
  • storage/indexeddb/modern/createobjectstore-failures-private-expected.txt:
  • storage/indexeddb/modern/double-abort-expected.txt:
  • storage/indexeddb/modern/double-abort-private-expected.txt:
  • storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:
  • storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-private-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-private-expected.txt:
5:04 PM Changeset in webkit [203309] by beidson@apple.com
  • 21 edits in trunk

Change toString() behavior for exceptions constructed with "createWithDescriptionAsMessage".
​https://bugs.webkit.org/show_bug.cgi?id=159839

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • IndexedDB-private-browsing/idbindex_get7-expected.txt:
  • IndexedDB-private-browsing/idbindex_getKey7-expected.txt:
  • IndexedDB-private-browsing/idbindex_openCursor2-expected.txt:
  • IndexedDB-private-browsing/idbindex_openKeyCursor3-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_get7-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_getKey7-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_openCursor2-expected.txt:
  • web-platform-tests/IndexedDB/idbindex_openKeyCursor3-expected.txt:

Source/WebCore:

No new tests (Covered by changes to existing tests).

This is the first step towards extended exception messages for all exception types.

  • dom/ExceptionBase.cpp:

(WebCore::ExceptionBase::ExceptionBase):
(WebCore::ExceptionBase::toString):

  • dom/ExceptionBase.h:

LayoutTests:

  • storage/indexeddb/modern/createobjectstore-failures-expected.txt:
  • storage/indexeddb/modern/createobjectstore-failures-private-expected.txt:
  • storage/indexeddb/modern/double-abort-expected.txt:
  • storage/indexeddb/modern/double-abort-private-expected.txt:
  • storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-expected.txt:
  • storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures-private-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-expected.txt:
  • storage/indexeddb/modern/idbdatabase-transaction-failures-private-expected.txt:
4:50 PM Changeset in webkit [203308] by Brent Fulgham
  • 1 edit
    5 adds in trunk/LayoutTests

Merge background parser Blink test case
​https://bugs.webkit.org/show_bug.cgi?id=116503

Test case is from the Blink change (patch by <​apavlov@chromium.org>):
<​https://chromium.googlesource.com/chromium/blink/+/3044d8c22b6ab5653fe572aad656ae1325725dc9>

  • fast/css/background-parser-crash-expected.txt: Added.
  • fast/css/background-parser-crash.html: Added.
  • inspector/styles: Added.
  • inspector/styles/background-parsing-crash-expected.txt: Added.
  • inspector/styles/background-parsing-crash.html: Added.
4:25 PM Changeset in webkit [203307] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

Merge First-letter Blink test case
​https://bugs.webkit.org/show_bug.cgi?id=123961

Test case is from the Blink change (patch by <​leviw@chromium.org>):
<​https://chromium.googlesource.com/chromium/blink/+/c8ff8df9fc2ad81580526d53304c281df5d93e97%5E%21/#F1>

  • fast/css-generated-content/empty-first-letter-with-columns-crash-expected.txt: Added.
  • fast/css-generated-content/empty-first-letter-with-columns-crash.html: Added.
3:38 PM Changeset in webkit [203306] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed, rolling out r203304.

This is wrong because of Node* entries in the internal HashMap

Reverted changeset:

"Add move constructor / assignment operator to ListHashSet"
​https://bugs.webkit.org/show_bug.cgi?id=159837
​http://trac.webkit.org/changeset/203304

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

Marking http/tests/cache/disk-cache/disk-cache-request-max-stale.html as a flaky timeout on ios-simulator WK2 Release
​https://bugs.webkit.org/show_bug.cgi?id=159840

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
3:25 PM Changeset in webkit [203304] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Add move constructor / assignment operator to ListHashSet
​https://bugs.webkit.org/show_bug.cgi?id=159837

Reviewed by Alex Christensen.

Add move constructor / assignment operator to ListHashSet.

  • wtf/ListHashSet.h:
2:51 PM Changeset in webkit [203303] by ggaren@apple.com
  • 38 edits in trunk/Source

Added a makeRef<T> helper
​https://bugs.webkit.org/show_bug.cgi?id=159835

Reviewed by Andreas Kling.

Anders told me to!

Source/JavaScriptCore:

  • inspector/InjectedScriptHost.cpp:

(Inspector::InjectedScriptHost::wrapper):

Source/WebCore:

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::putOrAddOnServer):

  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::deleteDatabase):
(WebCore::InProcessIDBServer::didDeleteDatabase):
(WebCore::InProcessIDBServer::openDatabase):
(WebCore::InProcessIDBServer::didOpenDatabase):
(WebCore::InProcessIDBServer::didAbortTransaction):
(WebCore::InProcessIDBServer::didCommitTransaction):
(WebCore::InProcessIDBServer::didCreateObjectStore):
(WebCore::InProcessIDBServer::didDeleteObjectStore):
(WebCore::InProcessIDBServer::didClearObjectStore):
(WebCore::InProcessIDBServer::didCreateIndex):
(WebCore::InProcessIDBServer::didDeleteIndex):
(WebCore::InProcessIDBServer::didPutOrAdd):
(WebCore::InProcessIDBServer::didGetRecord):
(WebCore::InProcessIDBServer::didGetCount):
(WebCore::InProcessIDBServer::didDeleteRecord):
(WebCore::InProcessIDBServer::didOpenCursor):
(WebCore::InProcessIDBServer::didIterateCursor):
(WebCore::InProcessIDBServer::abortTransaction):
(WebCore::InProcessIDBServer::commitTransaction):
(WebCore::InProcessIDBServer::didFinishHandlingVersionChangeTransaction):
(WebCore::InProcessIDBServer::createObjectStore):
(WebCore::InProcessIDBServer::deleteObjectStore):
(WebCore::InProcessIDBServer::clearObjectStore):
(WebCore::InProcessIDBServer::createIndex):
(WebCore::InProcessIDBServer::deleteIndex):
(WebCore::InProcessIDBServer::putOrAdd):
(WebCore::InProcessIDBServer::getRecord):
(WebCore::InProcessIDBServer::getCount):
(WebCore::InProcessIDBServer::deleteRecord):
(WebCore::InProcessIDBServer::openCursor):
(WebCore::InProcessIDBServer::iterateCursor):
(WebCore::InProcessIDBServer::establishTransaction):
(WebCore::InProcessIDBServer::fireVersionChangeEvent):
(WebCore::InProcessIDBServer::didStartTransaction):
(WebCore::InProcessIDBServer::didCloseFromServer):
(WebCore::InProcessIDBServer::notifyOpenDBRequestBlocked):
(WebCore::InProcessIDBServer::databaseConnectionClosed):
(WebCore::InProcessIDBServer::abortOpenAndUpgradeNeeded):
(WebCore::InProcessIDBServer::didFireVersionChangeEvent):
(WebCore::InProcessIDBServer::openDBRequestCancelled):
(WebCore::InProcessIDBServer::confirmDidCloseFromServer):
(WebCore::InProcessIDBServer::getAllDatabaseNames):
(WebCore::InProcessIDBServer::didGetAllDatabaseNames):

  • Modules/mediastream/MediaDevicesRequest.cpp:

(WebCore::MediaDevicesRequest::didCompleteTrackSourceInfoRequest):

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::constraintsValidated):
(WebCore::UserMediaRequest::userMediaAccessGranted):

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::scheduleNodeDeletion):
(WebCore::AudioContext::isPlayingAudioDidChange):
(WebCore::AudioContext::suspend):
(WebCore::AudioContext::resume):
(WebCore::AudioContext::close):
(WebCore::AudioContext::suspendPlayback):
(WebCore::AudioContext::mayResumePlayback):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • bindings/js/JSEventListener.h:

(WebCore::JSEventListener::jsFunction):

  • dom/Node.cpp:

(WebCore::Node::setTextContent):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::layoutSizeChanged):

  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::wrapper):

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::prepare):

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::invalidate):

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::invalidate):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::setExternalPlayback):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::start):
(WebCore::BlobResourceHandle::notifyFinish):

  • platform/network/SocketStreamHandleBase.cpp:

(WebCore::SocketStreamHandleBase::disconnect):

  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownload::didReceiveHeader):

Source/WebKit2:

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::tryStoreAsCacheEntry):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::addWorkQueueMessageReceiver):
(IPC::Connection::removeWorkQueueMessageReceiver):
(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::postConnectionDidCloseOnConnectionWorkQueue):
(IPC::Connection::connectionDidClose):
(IPC::Connection::enqueueIncomingMessage):

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::receiveSourceEventHandler):

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

  • UIProcess/API/APIUserContentExtensionStore.cpp:

(API::UserContentExtensionStore::lookupContentExtension):
(API::UserContentExtensionStore::compileContentExtension):
(API::UserContentExtensionStore::removeContentExtension):

  • UIProcess/Launcher/ProcessLauncher.cpp:

(WebKit::ProcessLauncher::ProcessLauncher):

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):

  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::createSessionStorageNamespace):
(WebKit::StorageManager::destroySessionStorageNamespace):
(WebKit::StorageManager::setAllowedSessionStorageNamespaceConnection):
(WebKit::StorageManager::cloneSessionStorageNamespace):
(WebKit::StorageManager::processDidCloseConnection):
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigin):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::fetchData):

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::pluginThreadAsyncCall):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::wheelEvent):
(WebKit::EventDispatcher::gestureEvent):
(WebKit::EventDispatcher::touchEvent):

  • WebProcess/WebPage/ViewUpdateDispatcher.cpp:

(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):

Source/WTF:

  • wtf/Ref.h:

(WTF::makeRef): Helper function to do type inference for you.

2:35 PM Changeset in webkit [203302] by Chris Dumez
  • 66 edits in trunk/Source

Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible
​https://bugs.webkit.org/show_bug.cgi?id=159793

Reviewed by Ryosuke Niwa.

Use fastGetAttribute() / setAttributeWithoutSynchronization() when possible, for performance.

Source/WebCore:

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::installReplacement):

  • dom/Element.h:

(WebCore::Element::setIdAttribute):

  • editing/ApplyStyleCommand.cpp:

(WebCore::hasNoAttributeOrOnlyStyleAttribute):
(WebCore::createFontElement):
(WebCore::ApplyStyleCommand::applyInlineStyleChange):

  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):

  • editing/Editor.cpp:

(WebCore::Editor::setBaseWritingDirection):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::isMailPasteAsQuotationNode):
(WebCore::isInlineNodeWithStyle):

  • editing/cocoa/DataDetection.mm:

(WebCore::DataDetection::detectContentInRange):

  • editing/htmlediting.cpp:

(WebCore::createTabSpanElement):

  • editing/ios/EditorIOS.mm:

(WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
(WebCore::Editor::WebContentReader::readURL):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::WebContentReader::readURL):

  • editing/markup.cpp:

(WebCore::createFragmentFromText):

  • html/BaseButtonInputType.cpp:

(WebCore::BaseButtonInputType::setValue):

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::setValue):

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::appendEntry):
(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::href):
(WebCore::HTMLAnchorElement::setHref):
(WebCore::HTMLAnchorElement::target):

  • html/HTMLAreaElement.cpp:

(WebCore::HTMLAreaElement::target):

  • html/HTMLBaseElement.cpp:

(WebCore::HTMLBaseElement::setHref):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::setType):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::didAddUserAgentShadowRoot):
(WebCore::HTMLDetailsElement::toggleOpen):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::setBgColor):
(WebCore::HTMLDocument::setFgColor):
(WebCore::HTMLDocument::setAlinkColor):
(WebCore::HTMLDocument::setLinkColor):
(WebCore::HTMLDocument::setVlinkColor):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::setDir):
(WebCore::HTMLElement::setContentEditable):
(WebCore::HTMLElement::setDraggable):
(WebCore::HTMLElement::setSpellcheck):
(WebCore::HTMLElement::setTranslate):

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::setFormEnctype):
(WebCore::HTMLFormControlElement::setFormMethod):
(WebCore::HTMLFormControlElement::setAutocorrect):
(WebCore::HTMLFormControlElement::setAutocapitalize):
(WebCore::HTMLFormControlElement::setAutocomplete):

  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::setAutocorrect):
(WebCore::HTMLFormElement::setAutocapitalize):
(WebCore::HTMLFormElement::setAction):
(WebCore::HTMLFormElement::setEnctype):
(WebCore::HTMLFormElement::setMethod):
(WebCore::HTMLFormElement::target):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::width):
(WebCore::HTMLImageElement::height):
(WebCore::HTMLImageElement::setSrc):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setType):
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::altText):
(WebCore::HTMLInputElement::setDefaultValue):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::href):
(WebCore::HTMLLinkElement::target):
(WebCore::HTMLLinkElement::type):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setSrc):
(WebCore::HTMLMediaElement::setPreload):

  • html/HTMLMeterElement.cpp:

(WebCore::HTMLMeterElement::min):
(WebCore::HTMLMeterElement::setMin):
(WebCore::HTMLMeterElement::max):
(WebCore::HTMLMeterElement::setMax):
(WebCore::HTMLMeterElement::value):
(WebCore::HTMLMeterElement::setValue):
(WebCore::HTMLMeterElement::low):
(WebCore::HTMLMeterElement::setLow):
(WebCore::HTMLMeterElement::high):
(WebCore::HTMLMeterElement::setHigh):
(WebCore::HTMLMeterElement::optimum):
(WebCore::HTMLMeterElement::setOptimum):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::containsJavaApplet):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::createForJSConstructor):
(WebCore::HTMLOptionElement::setValue):
(WebCore::HTMLOptionElement::setLabel):

  • html/HTMLProgressElement.cpp:

(WebCore::HTMLProgressElement::setValue):
(WebCore::HTMLProgressElement::setMax):

  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::typeAttributeValue):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::setMultiple):

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::setSrc):
(WebCore::HTMLSourceElement::media):
(WebCore::HTMLSourceElement::setMedia):
(WebCore::HTMLSourceElement::type):
(WebCore::HTMLSourceElement::setType):

  • html/HTMLTableSectionElement.cpp:

(WebCore::HTMLTableSectionElement::setAlign):
(WebCore::HTMLTableSectionElement::setCh):
(WebCore::HTMLTableSectionElement::chOff):
(WebCore::HTMLTableSectionElement::setChOff):
(WebCore::HTMLTableSectionElement::setVAlign):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::imageSourceURL):

  • html/HiddenInputType.cpp:

(WebCore::HiddenInputType::restoreFormControlState):
(WebCore::HiddenInputType::setValue):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::MediaDocument::replaceMediaElementTimerFired):

  • html/PluginDocument.cpp:

(WebCore::PluginDocumentParser::createDocumentStructure):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::createAutoFillButton):
(WebCore::TextFieldInputType::updateAutoFillButton):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlTimelineElement::create):
(WebCore::MediaControlPanelVolumeSliderElement::create):
(WebCore::MediaControlFullscreenVolumeSliderElement::create):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):

  • html/shadow/mac/ImageControlsButtonElementMac.cpp:

(WebCore::ImageControlsButtonElementMac::tryCreate):

  • html/shadow/mac/ImageControlsRootElementMac.cpp:

(WebCore::ImageControlsRootElement::tryCreate):

  • html/track/WebVTTElement.cpp:

(WebCore::WebVTTElement::createEquivalentHTMLElement):

  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTTreeBuilder::constructTreeFromToken):

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::createInspectorStyleSheetForDocument):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::buildObjectForFrame):

  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::toggle):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeFrame):

  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::isOpen):

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::updateFromElement):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::setXmlbase):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::setContentScriptType):
(WebCore::SVGSVGElement::setContentStyleType):

  • svg/SVGStyleElement.cpp:

(WebCore::SVGStyleElement::setMedia):
(WebCore::SVGStyleElement::setTitle):

Source/WebKit/mac:

  • WebView/WebHTMLRepresentation.mm:

(matchLabelsAgainstElement):

Source/WebKit/win:

  • DOMHTMLClasses.cpp:

(DOMHTMLElement::idName):

Source/WebKit2:

  • WebProcess/Plugins/PDF/DeprecatedPDFPlugin.mm:

(WebKit::PDFPlugin::PDFPlugin):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::createPasswordEntryForm):

  • WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:

(WebKit::PDFPluginAnnotation::attach):

  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:

(WebKit::PDFPluginChoiceAnnotation::createAnnotationElement):

2:34 PM Changeset in webkit [203301] by Chris Dumez
  • 9 edits in trunk/Source/WebCore

Modernize StaticNodeList / StaticElementList
​https://bugs.webkit.org/show_bug.cgi?id=159831

Reviewed by Ryosuke Niwa.

Modernize StaticNodeList / StaticElementList. Pass vector to adopt
as an rvalue reference instead of a non-const reference.

  • bindings/js/JSHTMLAllCollectionCustom.cpp:

(WebCore::namedItems):

  • dom/ChildListMutationScope.cpp:

(WebCore::ChildListMutationAccumulator::enqueueMutationRecord):

  • dom/MutationRecord.cpp:
  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::queryAll):

  • dom/StaticNodeList.h:
  • dom/WebKitNamedFlow.cpp:

(WebCore::WebKitNamedFlow::getRegionsByContent):
(WebCore::WebKitNamedFlow::getRegions):
(WebCore::WebKitNamedFlow::getContent):

  • svg/SVGSVGElement.cpp:

(WebCore::SVGSVGElement::collectIntersectionOrEnclosureList):

  • testing/Internals.cpp:

(WebCore::Internals::nodesFromRect):

2:18 PM Changeset in webkit [203300] by Brent Fulgham
  • 3 edits
    3 adds in trunk

Block insecure script running in a data: frame when the top-level page is HTTPS
​https://bugs.webkit.org/show_bug.cgi?id=125806
<rdar://problem/27331825>

Reviewed by Brady Eidson.

Fix based on a Blink change (patch by <​tsepez@chromium.org>):
<​https://chromium.googlesource.com/chromium/blink/+/33e553bd96e040151c1472289a0d80803bfca3a5>

Source/WebCore:

Test: http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::checkInsecureContent): Check the top-level frame's security state
before allowing insecure scripts to be used.

LayoutTests:

  • http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked-expected.txt: Added.
  • http/tests/security/mixedContent/insecure-script-in-data-iframe-in-main-frame-blocked.html: Added.
  • http/tests/security/mixedContent/resources/frame-with-data-url-frame-with-script.html: Added.
2:17 PM Changeset in webkit [203299] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

FunctionOverride's parseClause() needs to keep the CString instance in scope while its data is being used.
​https://bugs.webkit.org/show_bug.cgi?id=159828

Reviewed by Saam Barati.

Otherwise, we'll have a use after free. This issue was caught when running an
ASan debug build of testapi.

  • tools/FunctionOverrides.cpp:

(JSC::parseClause):

2:01 PM Changeset in webkit [203298] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Let the compiler generate QualifiedName copy constructor and assignment operator
​https://bugs.webkit.org/show_bug.cgi?id=159826

Reviewed by Alex Christensen.

Let the compiler generate QualifiedName copy constructor and assignment operator
as our custom implementation does nothing special. This also makes QualifiedName
movable as the compiler is now able to generate the move constructor / assignment
operator as well.

  • dom/QualifiedName.h:

(WebCore::QualifiedName::QualifiedName): Deleted.
(WebCore::QualifiedName::operator=): Deleted.

1:58 PM Changeset in webkit [203297] by keith_miller@apple.com
  • 9 edits
    1 add in trunk/Source/JavaScriptCore

%TypedArray%.prototype.indexOf is coercing non-integers or non-floats to numbers wrongly
​https://bugs.webkit.org/show_bug.cgi?id=159400

Reviewed by Geoffrey Garen.

This patch fixes coercion of non-numbers in indexOf/lastIndexOf.
Additionally, this patch fixes an issue with includes where it
would not check that the buffer remained non-neutered after
calling the toInteger() function. Lastly, some extra release
asserts have been added in some places to inform us of any issues
in the future.

Additionally, this patch changes bool toNativeFromDouble to
Optional<Type> toNativeFromDoubleWithoutCoercion. This makes it a
little clearer what the function does and also removes the return
argument. The only behavior change is that the function no longer
coerces non-numbers into numbers. That behavior was unused (maybe
unintended), however.

  • runtime/JSGenericTypedArrayView.h:

(JSC::JSGenericTypedArrayView::toAdaptorNativeFromValueWithoutCoercion):
(JSC::JSGenericTypedArrayView::sort):
(JSC::JSGenericTypedArrayView::toAdaptorNativeFromValue): Deleted.

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncCopyWithin):
(JSC::genericTypedArrayViewProtoFuncIncludes):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):

  • runtime/ToNativeFromValue.h:

(JSC::toNativeFromValueWithoutCoercion):
(JSC::toNativeFromValue): Deleted.

  • runtime/TypedArrayAdaptors.h:

(JSC::IntegralTypedArrayAdaptor::toNativeFromInt32WithoutCoercion):
(JSC::IntegralTypedArrayAdaptor::toNativeFromUint32WithoutCoercion):
(JSC::IntegralTypedArrayAdaptor::toNativeFromDoubleWithoutCoercion):
(JSC::FloatTypedArrayAdaptor::toNativeFromInt32WithoutCoercion):
(JSC::FloatTypedArrayAdaptor::toNativeFromDoubleWithoutCoercion):
(JSC::Uint8ClampedAdaptor::toNativeFromInt32WithoutCoercion):
(JSC::Uint8ClampedAdaptor::toNativeFromDoubleWithoutCoercion):
(JSC::IntegralTypedArrayAdaptor::toNativeFromInt32): Deleted.
(JSC::IntegralTypedArrayAdaptor::toNativeFromUint32): Deleted.
(JSC::IntegralTypedArrayAdaptor::toNativeFromDouble): Deleted.
(JSC::FloatTypedArrayAdaptor::toNativeFromInt32): Deleted.
(JSC::FloatTypedArrayAdaptor::toNativeFromDouble): Deleted.
(JSC::Uint8ClampedAdaptor::toNativeFromInt32): Deleted.
(JSC::Uint8ClampedAdaptor::toNativeFromDouble): Deleted.

  • tests/stress/resources/typedarray-test-helper-functions.js:
  • tests/stress/typedarray-functions-with-neutered.js:

(callWithArgs):

  • tests/stress/typedarray-includes.js: Added.
  • tests/stress/typedarray-indexOf.js:
  • tests/stress/typedarray-lastIndexOf.js:
1:56 PM Changeset in webkit [203296] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit2

Disable custom elements in Safari Tech Preview
​https://bugs.webkit.org/show_bug.cgi?id=159829

Reviewed by Chris Dumez.

Disable custom elements API in Safari Technology Preview. Our implementation is so out of sync
with the latest spec that it's actively harmful to have this feature enabled.

  • Shared/WebPreferencesDefinitions.h:
1:42 PM Changeset in webkit [203295] by dino@apple.com
  • 3 edits in trunk/Source/WebKit2

Full screen ePub embedded video is playing on 1/4 screen, cut off
​https://bugs.webkit.org/show_bug.cgi?id=159737
<rdar://problem/26259404>

Patch by Jer Noble <​jer.noble@apple.com> on 2016-07-15
Reviewed by Tim Horton.

Set the fixedLayoutSize to CGSizeZero when disabling fixed layout due to the
WebView not supporting arbitrary layout modes, and reset to the saved value
when the view does begin supporting arbitrary layout modes.

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

(WebKit::WebViewImpl::setFixedLayoutSize):
(WebKit::WebViewImpl::updateSupportsArbitraryLayoutModes):

1:19 PM Changeset in webkit [203294] by tonikitoo@webkit.org
  • 3 edits in trunk/Source/WebCore

ScrollView::setHasHorizontalScrollbar / setHasVerticalScrollbar duplicate their logic
​https://bugs.webkit.org/show_bug.cgi?id=159825

Patch introduces a (private) method to ScrollView
to share the code/logic of setHas{Horizontal,Vertical}Scrollbar.

Patch by Antonio Gomes <​tonikitoo@igalia.com> on 2016-07-15
Reviewed by Simon Fraser.

No new tests needed.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::setHasScrollbarInternal):
(WebCore::ScrollView::setHasHorizontalScrollbar):
(WebCore::ScrollView::setHasVerticalScrollbar):

  • platform/ScrollView.h:
1:03 PM Changeset in webkit [203293] by Csaba Osztrogonác
  • 3 edits in trunk/Source/JavaScriptCore

Add new functions to ARMAssembler after r202214
​https://bugs.webkit.org/show_bug.cgi?id=159713

Reviewed by Saam Barati.

  • assembler/ARMAssembler.h:

(JSC::ARMAssembler::fillNops):

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::patchableBranch32):
(JSC::MacroAssemblerARM::internalCompare32):

12:38 PM Changeset in webkit [203292] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping test from r203288 on ios-simulator due to reliance upon mouse events.
​https://bugs.webkit.org/show_bug.cgi?id=159818

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
12:27 PM Changeset in webkit [203291] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fixed content overflow and missing build information behavior.
​https://bugs.webkit.org/show_bug.cgi?id=159820

Reviewed by Timothy Hatcher.

  • wp-content/themes/webkit/nightly-start.php:
12:01 PM Changeset in webkit [203290] by timothy@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Make Open Quickly and Goto Line dialogs match Xcode 8
​https://bugs.webkit.org/show_bug.cgi?id=159823
rdar://problem/27376501

Reviewed by Brian Burg.

  • UserInterface/Views/GoToLineDialog.css:

(.go-to-line-dialog):
(.go-to-line-dialog > div > input):
(.go-to-line-dialog > div > input::placeholder):
(.go-to-line-dialog > div > img):
(.go-to-line-dialog > div): Deleted.

  • UserInterface/Views/OpenResourceDialog.css:

(.open-resource-dialog):
(.open-resource-dialog > .field):
(.open-resource-dialog > .field > input):
(.open-resource-dialog > .field > input::placeholder):
(.open-resource-dialog > .field > img):
(.open-resource-dialog > .tree-outline .item): Deleted.
(.open-resource-dialog > .tree-outline .item:first-child): Deleted.

11:47 AM Changeset in webkit [203289] by fred.wang@free.fr
  • 17 edits in trunk

MathOperator: Improve alignment for vertical size variant
​https://bugs.webkit.org/show_bug.cgi?id=158866

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

Source/WebCore:

The MathOperator class may stretch operators with either a large glyph or a glyph assembly.
In the latter case, the assembly is adjusted to match the stretch ascent and descent
requested by the callers. But in the former case the glyph ascent and descent are used
instead. We solve this by making MathOperator::stretchTo only take a targetSize and let
callers do the vertical alignment they want. This improves the rendering of fences with some
math fonts (e.g. XITS) and allows to pass the two cases of mo-axis-height-1.html.

Test: imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1.html

  • rendering/mathml/MathOperator.cpp:

(WebCore::MathOperator::stretchTo): Merge vertical and horizontal stretching into the same
function with only the targetSize as a parameter.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::stretchTo): Updated to use the new signature.
(WebCore::RenderMathMLOperator::verticalStretchedOperatorShift): Helper function to calculate
the shift necessary to align the baseline of the MathOperator instance with the one of the
RenderMathMLOperator.
(WebCore::RenderMathMLOperator::firstLineBaseline): Adjust the baseline.

  • rendering/mathml/RenderMathMLOperator.h: Declare verticalStretchedOperatorShift.
  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::layoutBlock): Use the new signature. This function aligns the top
of the radical with the overbar so we do not need to adjust baseline alignment here.

LayoutTests:

We import the latest version of mo-axis-height-1.html and update the expectation now that we
pass the two cases (size variant and glyph assembly). We also rebaseline some pixel tests.

  • imported/mathml-in-html5/fonts/math/axisheight5000-verticalarrow14000.woff: Updated.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1-expected.txt: Updated to expect PASS.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1.html: Updated to include the two tests.
  • platform/gtk/mathml/opentype/vertical-expected.png: Rebaseline to take into account better alignment of size variant.
  • platform/gtk/mathml/opentype/vertical-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/mo-stretch-expected.png: Ditto.
  • platform/gtk/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/mac/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/mac/mathml/presentation/mo-stretch-expected.txt: Ditto.
11:39 AM Changeset in webkit [203288] by beidson@apple.com
  • 3 edits
    2 adds in trunk

WebKit should prevent push/replace state with username in URL.
<rdar://problem/27361737> and ​https://bugs.webkit.org/show_bug.cgi?id=159818

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/security/history-username-password.html

  • page/History.cpp:

(WebCore::History::stateObjectAdded): Don't allow URLs with usernames/passwords.

LayoutTests:

  • http/tests/security/history-username-password-expected.txt: Added.
  • http/tests/security/history-username-password.html: Added.
11:33 AM Changeset in webkit [203287] by Ryan Haddad
  • 10 edits
    52 deletes in trunk

Unreviewed, rolling out r203266.

This change caused editing/deleting/delete-emoji.html to time
out on El Capitan, crash under GuardMalloc

Reverted changeset:

"Support new emoji group candidates"
​https://bugs.webkit.org/show_bug.cgi?id=159755
​http://trac.webkit.org/changeset/203266

11:31 AM Changeset in webkit [203286] by mark.lam@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

Stack overflow error for deeply nested classes.
​https://bugs.webkit.org/show_bug.cgi?id=157086

Reviewed by Geoffrey Garen.

Changed the StructureStubClearingWatchpoint destructor to iteratively destruct
its chain of next StructureStubClearingWatchpoints instead of recursively doing
so.

The added deep-StructureStubClearingWatchpoint-destructor-recursion.js test
produces a crash before the fix is applied, but takes about 14 minutes to run.
Hence, it is skipped.

  • bytecode/StructureStubClearingWatchpoint.cpp:

(JSC::StructureStubClearingWatchpoint::~StructureStubClearingWatchpoint):

  • tests/stress/deep-StructureStubClearingWatchpoint-destructor-recursion.js: Added.
11:30 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
11:24 AM Changeset in webkit [203285] by fred.wang@free.fr
  • 11 edits
    2 adds in trunk

Source/WebCore:
Move parsing of mfrac attributes into a MathMLFractionElement class
​https://bugs.webkit.org/show_bug.cgi?id=159624

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

We move the parsing of mfrac attributes to a MathMLFractionElement class. This allows to
minimize the updates in RenderMathMLFraction and to remove the alignment members. Many of
the members in updateLayoutParameters are actually only used in layoutBlock and could be
removed in a follow-up patch. We also improve the resolution of negative line thickness value
since the MathML recommendation says it should be rounded up to the nearest valid
value (which is zero) instead of ignoring the attribute and using the line thickness.

No new tests, already covered by existing tests.

  • CMakeLists.txt: Add MathMLFractionElement.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLAllInOne.cpp: Ditto.
  • mathml/MathMLFractionElement.cpp: Added.

(WebCore::MathMLFractionElement::MathMLFractionElement):
(WebCore::MathMLFractionElement::create):
(WebCore::MathMLFractionElement::lineThickness): Return the cached linethickness length,
parsing it again if it is dirty. This handles the special values "thin", "medium" and "thick"
or fallback to the general parseMathMLLength for MathML lengths.
(WebCore::MathMLFractionElement::cachedFractionAlignment): Return the cached alignment value,
parsing it again if it is dirty.
(WebCore::MathMLFractionElement::numeratorAlignment): Return the cached alignment.
(WebCore::MathMLFractionElement::denominatorAlignment): Ditto.
(WebCore::MathMLFractionElement::parseAttribute): Make attributes dirty.
(WebCore::MathMLFractionElement::createElementRenderer): Create a RenderMathMLFraction.

  • mathml/MathMLFractionElement.h: Added.
  • mathml/MathMLInlineContainerElement.cpp: We no longer need to handle fraction here.

(WebCore::MathMLInlineContainerElement::createElementRenderer):

  • mathml/mathtags.in: Use MathMLFractionElement for mfrac.
  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::updateLayoutParameters): New helper function to set the
layout parameters, replacing updateFromElement. We no longer parse and store the alignment
values here. We also change the resolution of negative values.
(WebCore::RenderMathMLFraction::horizontalOffset): Use the enum from MathMLFractionElement.
(WebCore::RenderMathMLFraction::layoutBlock): We call updateLayoutParameters instead of
updateFromElement. The numerator and denominator alignments are resolved here.
(WebCore::RenderMathMLFraction::parseAlignmentAttribute): Deleted. Parsing of alignment
attribute is now handled in MathMLFractionElement.
(WebCore::RenderMathMLFraction::updateFromElement): Deleted. Attribute changes are now
handled in MathMLFractionElement.
(WebCore::RenderMathMLFraction::styleDidChange): Deleted. Font changes are properly handled.

  • rendering/mathml/RenderMathMLFraction.h: Update declarations.

LayoutTests:
Move parsing of mfrac attributes into a MathMLFractionElementClass
​https://bugs.webkit.org/show_bug.cgi?id=159624

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

We update the expectation for negative linethickness. As indicated in the MathML
recommendation, it should be rounded up to the nearest valid value, which is 0.

  • mathml/presentation/mfrac-linethickness2.html: Update the comment to reflect the new behavior.
  • mathml/presentation/mfrac-linethickness2-expected.html: Use 0px as the reference for negative values.
11:06 AM Changeset in webkit [203284] by Jon Davis
  • 2 edits in trunk/Tools

Changed the start page URL for WebKit Nightly builds.
​https://bugs.webkit.org/show_bug.cgi?id=159816

Reviewed by Timothy Hatcher.

  • WebKitLauncher/start.html:
10:41 AM Changeset in webkit [203283] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

Merge InlineBidiResolver end-of-line Blink test case
​https://bugs.webkit.org/show_bug.cgi?id=126201
<rdar://problem/27331789>

Test case is from the Blink change (patch by <​igor.o@chromium.org>):
<​https://chromium.googlesource.com/chromium/blink/+/d34ca9bbbdf71905d61aa45def30063311508a64>

  • fast/text/international/bidi-crash-reached-end-of-line-expected.txt: Added.
  • fast/text/international/bidi-crash-reached-end-of-line.html: Added.
10:35 AM Changeset in webkit [203282] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

Merge Blink test case
​https://bugs.webkit.org/show_bug.cgi?id=123870

Patch is from the Blink change (patch by <​morritaw@chromium.org>):
<​https://chromium.googlesource.com/chromium/blink/+/2abd63ccea97b1fcf25b337c76f12e6ad1bfc025>

  • fast/dom/mutation-details-focus-expected.txt: Added.
  • fast/dom/mutation-details-focus.html: Added.
10:30 AM Changeset in webkit [203281] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Updating TestExpectations after r203267
​https://bugs.webkit.org/show_bug.cgi?id=159817

Unreviewed test gardening.

10:03 AM Changeset in webkit [203280] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Check whether font is nonnull for GlyphData instead of calling GlyphData::isValid()
​https://bugs.webkit.org/show_bug.cgi?id=159783

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

GlyphData::isValid() returns true for GlyphData with null 'font' pointer when the 'glyph'
index is nonzero. This behavior is not expected by the MathML code and we have had crashes
in our test suite in the past on Windows (e.g. bug 140653). We thus replace the call to
GlyphData::isValid() with a stronger verification: Whether the 'font' pointer is nonzero.

No new tests, this only makes null pointer checks stronger.

  • rendering/mathml/MathOperator.cpp:

(WebCore::boundsForGlyph):
(WebCore::advanceWidthForGlyph):
(WebCore::MathOperator::getBaseGlyph):
(WebCore::MathOperator::setSizeVariant):
(WebCore::MathOperator::fillWithVerticalExtensionGlyph):
(WebCore::MathOperator::fillWithHorizontalExtensionGlyph):
(WebCore::MathOperator::paintVerticalGlyphAssembly):
(WebCore::MathOperator::paintHorizontalGlyphAssembly):
(WebCore::MathOperator::paint):

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::computePreferredLogicalWidths):

  • rendering/mathml/RenderMathMLToken.cpp:

(WebCore::RenderMathMLToken::computePreferredLogicalWidths):
(WebCore::RenderMathMLToken::firstLineBaseline):
(WebCore::RenderMathMLToken::layoutBlock):
(WebCore::RenderMathMLToken::paint):
(WebCore::RenderMathMLToken::paintChildren):

9:51 AM Changeset in webkit [203279] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Add DejaVu Math TeX Gyre to the list of math fonts.
​https://bugs.webkit.org/show_bug.cgi?id=159805

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

DejaVu 2.36 has a new math font that can be used for MathML rendering. Because this font is
likely to be installed on many systems (Linux, LibreOffice, etc) we include it in the default
list of font-families in mathml.css in order to increase the chance to find a math font.

No new tests, it only affects rendering when DejaVu Math TeX Gyre is installed on the system.

  • css/mathml.css:

(math):

9:48 AM Changeset in webkit [203278] by commit-queue@webkit.org
  • 3 edits
    41 adds in trunk/LayoutTests

Import more tests from the MathML in HTML5 test suite
​https://bugs.webkit.org/show_bug.cgi?id=159715

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

  • imported/mathml-in-html5/fonts/math/lineheight5000-typolineheight2300.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-5-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/subsup-5.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/spaces/space-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/spaces/space-1.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/spaces/space-2-expected.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/spaces/space-2.html: Added.
  • imported/mathml-in-html5/mathml/relations/css-styling/color-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/css-styling/color-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/css-styling/visibility-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/css-styling/visibility-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/class-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/class-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/class-2-expected.txt: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/class-2.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/color-attributes-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/color-attributes-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/display-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/display-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/dynamic-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/dynamic-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/integration-point-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/integration-point-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/integration-point-2-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/integration-point-2.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/integration-point-3-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/integration-point-3.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/namespace-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/namespace-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/required-extensions-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/required-extensions-1.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/required-extensions-2-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/required-extensions-2.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/unique-identifier-2-expected.txt: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/unique-identifier-2.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/unique-identifier-3-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/html5-tree/unique-identifier-3.html: Added.
  • imported/mathml-in-html5/mathml/relations/text-and-math/use-typo-metrics-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/text-and-math/use-typo-metrics-1.html: Added.
  • platform/ios-simulator/TestExpectations: Mark use-typo-metrics-1.html as failing.
  • platform/mac/TestExpectations: Ditto.
9:42 AM Changeset in webkit [203277] by eric.carlson@apple.com
  • 5 edits in trunk

[MSE] Increase the SourceBuffer "fudge factor"
​https://bugs.webkit.org/show_bug.cgi?id=159813
<rdar://problem/27372033>

Reviewed by Jon Lee.
Source/WebCore:

Some media encoding/conversion pipelines are sloppy when doing sample time/timescale
math, and the error accumulation results in small gaps in the media timeline. r202641
increased the maximum allowable gap from 0.01 second to one 24fps frame, but it turns
out that at least one large provider has a significant amount of content encoded with
up to two 24fps frames.

No new tests, updated media/media-source/media-source-small-gap.html.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::currentTimeFudgeFactor): Increase maximum gap to 2002 / 24000 frames.

LayoutTests:

  • media/media-source/media-source-small-gap-expected.txt:
  • media/media-source/media-source-small-gap.html:
9:11 AM MathML edited by fred.wang@free.fr
(diff)
9:06 AM MathML/Fonts edited by fred.wang@free.fr
Add DejaVu font (diff)
7:52 AM Changeset in webkit [203276] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Fix expectations in test262.yaml
​https://bugs.webkit.org/show_bug.cgi?id=159810

Reviewed by Keith Miller.

  • tests/test262.yaml:
5:46 AM Changeset in webkit [203275] by commit-queue@webkit.org
  • 53 edits in trunk/Source/WebCore

Add final keyword to WebCore/svg classes
​https://bugs.webkit.org/show_bug.cgi?id=159802

Patch by Rawinder Singh <​rawinder.singh-webkit@cisra.canon.com.au> on 2016-07-15
Reviewed by Youenn Fablet.

Updated classes in the WebCore/svg directory to be marked as final where appropriate.

  • svg/SVGException.h:
  • svg/SVGLengthList.h:
  • svg/SVGMatrix.h:
  • svg/SVGNumberList.h:
  • svg/SVGPaint.h:
  • svg/SVGPathBuilder.h:
  • svg/SVGPathByteStreamBuilder.h:
  • svg/SVGPathByteStreamSource.h:
  • svg/SVGPathSegArcAbs.h:
  • svg/SVGPathSegArcRel.h:
  • svg/SVGPathSegClosePath.h:
  • svg/SVGPathSegCurvetoCubicAbs.h:
  • svg/SVGPathSegCurvetoCubicRel.h:
  • svg/SVGPathSegCurvetoCubicSmoothAbs.h:
  • svg/SVGPathSegCurvetoCubicSmoothRel.h:
  • svg/SVGPathSegCurvetoQuadraticAbs.h:
  • svg/SVGPathSegCurvetoQuadraticRel.h:
  • svg/SVGPathSegCurvetoQuadraticSmoothAbs.h:
  • svg/SVGPathSegCurvetoQuadraticSmoothRel.h:
  • svg/SVGPathSegLinetoAbs.h:
  • svg/SVGPathSegLinetoHorizontalAbs.h:
  • svg/SVGPathSegLinetoHorizontalRel.h:
  • svg/SVGPathSegLinetoRel.h:
  • svg/SVGPathSegLinetoVerticalAbs.h:
  • svg/SVGPathSegLinetoVerticalRel.h:
  • svg/SVGPathSegListBuilder.h:
  • svg/SVGPathSegListSource.h:
  • svg/SVGPathSegMovetoAbs.h:
  • svg/SVGPathSegMovetoRel.h:
  • svg/SVGPathStringSource.h:
  • svg/SVGPathTraversalStateBuilder.h:
  • svg/SVGPointList.h:
  • svg/SVGRenderingIntent.h:
  • svg/SVGStringList.h:
  • svg/SVGTRefElement.cpp:
  • svg/SVGToOTFFontConversion.cpp:
  • svg/SVGTransformList.h:
  • svg/SVGUnitTypes.h:
  • svg/SVGViewSpec.h:
  • svg/SVGZoomEvent.h:
  • svg/animation/SMILTimeContainer.h:
  • svg/animation/SVGSMILElement.cpp:
  • svg/graphics/filters/SVGFEImage.h:
  • svg/graphics/filters/SVGFilter.h:
  • svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
  • svg/properties/SVGAnimatedPropertyTearOff.h:
  • svg/properties/SVGAnimatedTransformListPropertyTearOff.h:
  • svg/properties/SVGMatrixTearOff.h:
  • svg/properties/SVGPathSegListPropertyTearOff.h:
  • svg/properties/SVGStaticListPropertyTearOff.h:
  • svg/properties/SVGStaticPropertyTearOff.h:
  • svg/properties/SVGTransformListPropertyTearOff.h:
5:38 AM Changeset in webkit [203274] by pvollan@apple.com
  • 5 edits
    1 add in trunk

Uninitialized variable in DIBPixelData can cause a dangerous memory write
​https://bugs.webkit.org/show_bug.cgi?id=159414

Reviewed by Brent Fulgham.

Source/WebCore:

Initialize local BITMAP variable, in case the ::GetObject function that should initialize it
fails to do so, because the bitmap handle is invalid.

Tests: Tools/TestWebKitAPI/Tests/WebCore/win/DIBPixelData.cpp

  • platform/graphics/win/DIBPixelData.cpp:

(WebCore::DIBPixelData::initialize): Initialize local variable.
(WebCore::DIBPixelData::setRGBABitmapAlpha): Return early if we have no bitmap.

  • platform/graphics/win/DIBPixelData.h: Link fix.

Tools:

Add test to check that DIBPixelData::setRGBABitmapAlpha does not cause a crash
when the HDC parameter is invalid.

  • TestWebKitAPI/PlatformWin.cmake:
  • TestWebKitAPI/Tests/WebCore/win/DIBPixelData.cpp: Added.

(TestWebKitAPI::TEST):

3:21 AM Changeset in webkit [203273] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WTF

Revert r202560 to fix the ARMv7 build with ARM instruction set
​https://bugs.webkit.org/show_bug.cgi?id=159707

Reviewed by Carlos Garcia Campos.

2:43 AM Changeset in webkit [203272] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Disable Inline Caching on ARMv7 traditional until proper fix
​https://bugs.webkit.org/show_bug.cgi?id=159759

Reviewed by Saam Barati.

  • jit/Repatch.cpp:

(JSC::forceICFailure):

2:25 AM Changeset in webkit [203271] by Carlos Garcia Campos
  • 5 edits
    1 copy
    1 add in trunk/Tools

[GTK] Add basic tabs support to MiniBrowser
​https://bugs.webkit.org/show_bug.cgi?id=159803

Reviewed by Sergio Villar Senin.

It's quite common to have issues with web views loaded in secondary tabs, and we need to use an external browser
like epiphany to debug those issues. It would be a lot easier to work on those bugs if we could use the MiniBrowser.

  • MiniBrowser/gtk/BrowserTab.c: Added.

(titleChanged):
(isLoadingChanged):
(decidePolicy):
(removeChildIfInfoBar):
(loadChanged):
(createInfoBarQuestionMessage):
(tlsErrorsDialogResponse):
(loadFailedWithTLSerrors):
(permissionRequestDialogResponse):
(decidePermissionRequest):
(colorChooserRGBAChanged):
(popoverColorClosed):
(colorChooserRequestFinished):
(runColorChooserCallback):
(inspectorOpenedInWindow):
(inspectorClosed):
(browserTabSetProperty):
(browserTabFinalize):
(browser_tab_init):
(browserTabConstructed):
(browser_tab_class_init):
(getInternalURI):
(browser_tab_new):
(browser_tab_get_web_view):
(browser_tab_load_uri):
(browser_tab_get_title_widget):
(browser_tab_set_status_text):
(browser_tab_toggle_inspector):
(browser_tab_start_search):
(browser_tab_stop_search):
(browser_tab_add_accelerators):
(fullScreenMessageTimeoutCallback):
(browser_tab_enter_fullscreen):
(browser_tab_leave_fullscreen):

  • MiniBrowser/gtk/BrowserTab.h: Added.
  • MiniBrowser/gtk/BrowserWindow.c:

(getExternalURI):
(browserWindowSetStatusText):
(reloadOrStopCallback):
(goBackCallback):
(goForwardCallback):
(settingsCallback):
(webViewURIChanged):
(browserWindowHistoryItemActivated):
(browserWindowUpdateNavigationActions):
(webViewCreate):
(webViewEnterFullScreen):
(webViewLeaveFullScreen):
(webViewDecidePolicy):
(browserWindowCanZoomIn):
(browserWindowCanZoomOut):
(browserWindowZoomIn):
(browserWindowZoomOut):
(scrollEventCallback):
(faviconChanged):
(webViewIsLoadingChanged):
(defaultZoomCallback):
(searchCallback):
(newTabCallback):
(toggleWebInspector):
(reloadPage):
(reloadPageIgnoringCache):
(stopPageLoad):
(loadHomePage):
(editingCommandCallback):
(insertImageCommandCallback):
(insertLinkCommandCallback):
(browserWindowSetupEditorToolbar):
(browserWindowSwitchTab):
(browserWindowTabAddedOrRemoved):
(browser_window_init):
(browserWindowConstructed):
(browserWindowSaveSession):
(browserWindowDeleteEvent):
(browser_window_new):
(browser_window_append_view):
(browser_window_load_uri):
(browser_window_load_session):
(browser_window_set_background_color):
(resetStatusText): Deleted.
(activateUriEntryCallback): Deleted.
(webViewTitleChanged): Deleted.
(resetEntryProgress): Deleted.
(browserWindowCreateBackForwardMenu): Deleted.
(webViewReadyToShow): Deleted.
(webViewLoadFailed): Deleted.
(webViewMouseTargetChanged): Deleted.
(browserWindowUpdateZoomActions): Deleted.
(webViewZoomLevelChanged): Deleted.
(updateUriEntryIcon): Deleted.
(zoomInCallback): Deleted.
(zoomOutCallback): Deleted.
(toggleFullScreen): Deleted.
(browserWindowEditingCommandToggleButtonSetActive): Deleted.
(browserWindowFinalize): Deleted.
(browser_window_class_init): Deleted.

  • MiniBrowser/gtk/BrowserWindow.h:
  • MiniBrowser/gtk/CMakeLists.txt:
  • MiniBrowser/gtk/main.c:

(createBrowserTab):
(aboutURISchemeRequestCallback):
(main):
(parseBackgroundColor): Deleted.

Jul 14, 2016:

11:03 PM Changeset in webkit [203270] by keith_miller@apple.com
  • 1 edit
    24089 adds in trunk/Source/JavaScriptCore

Add Test262 test files and yaml

Rubber Stamped by Benjamin Poulain.

This patch adds all the test262 test files and the yaml that drives
run-jsc-stress-tests.

  • tests/test262.yaml: Added. Yaml file to drive the test262 test suite with our driver.
  • tests/test262/LICENSE: Added. License for the test262 test suite.
  • tests/test262/harness/: Added. Harness directory for the test262 tests.
  • tests/test262/test/: Added. Directory with all the actual test files.
10:49 PM Changeset in webkit [203269] by yoav@yoav.ws
  • 7 edits in trunk

Change CSSParser::sourceSize returning Optional<CSSParser::SourceSize>
​https://bugs.webkit.org/show_bug.cgi?id=159666

Reviewed by Michael Catanzaro.

Source/WebCore:

Tests:

fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html

  • css/CSSGrammar.y.in: Avoid adding SourceSize to source_size_list when the value is a Nullopt.
  • css/CSSParser.cpp:

(WebCore::CSSParser::sourceSize): Return a Nullopt when an invalid value is encountered.

  • css/CSSParser.h:

LayoutTests:

Added a test to make sure that an invalid source-size value is skipped, but the next one is properly picked.

  • fast/dom/HTMLImageElement/sizes/image-sizes-invalids-expected.txt:
  • fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html:
9:59 PM Changeset in webkit [203268] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Return the correct value from Heap::externalMemorySize
​https://bugs.webkit.org/show_bug.cgi?id=159797
<rdar://problem/27362446>

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

  • heap/Heap.h:

(JSC::Heap::externalMemorySize):
We should have been returning m_externalMemorySize which is a subset
of m_extraMemorySize. In practice the difference can be small. A major
difference in "extra memory size" may be from deprecated memory size
and array buffer sizes.

8:56 PM Changeset in webkit [203267] by tonikitoo@webkit.org
  • 8 edits
    6 adds in trunk

[RTL Scrollbars] Frame scrollbars don't move to the right when text direction changes to RTL
​https://bugs.webkit.org/show_bug.cgi?id=158252

Patch by Antonio Gomes <​tonikitoo@igalia.com> on 2016-07-14
Reviewed by Myles C. Maxfield.

Source/WebCore:

When the 'dir' attribute changes either on body or on the document
element level, the associated FrameView does not trigger an update on
the frame level vertical scrollbar.

Patch adds a 'hook' so that RenderBox::styleDidChange can call in
order to get the document level scrollbar placed properly in the next
layout.

Test: fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement.html

fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement-2.html
fast/scrolling/rtl-scrollbars-alternate-iframe-body-dir-attr-does-not-update-scrollbar-placement.html

  • page/FrameView.cpp:

(WebCore::FrameView::topContentDirectionDidChange):

  • page/FrameView.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):

LayoutTests:

  • fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement.html: Added.
  • fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement-expected.txt: Added.
  • fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement-2.html: Added.
  • fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement-2-expected.html: Added.
  • fast/scrolling/rtl-scrollbars-alternate-iframe-body-dir-attr-does-not-update-scrollbar-placement.html: Added.
  • fast/scrolling/rtl-scrollbars-alternate-iframe-body-dir-attr-does-not-update-scrollbar-placement-expected.txt: Added.
8:11 PM Changeset in webkit [203266] by mmaxfield@apple.com
  • 10 edits
    52 adds in trunk

Support new emoji group candidates
​https://bugs.webkit.org/show_bug.cgi?id=159755
<rdar://problem/27325521>

Reviewed by Dean Jackson.

Source/WebCore:

There are a few code points which should be able to be joined (with ZWJ) to
either U+2640 or U+2642 to change the gender of the emoji. These patterns
should also work with an additional 0xFE0F variation selector. This patch
adds these new patterns to our existing emoji group candidate infrastructure.

Tests: fast/text/emoji-gender-2-3.html

fast/text/emoji-gender-2-4.html
fast/text/emoji-gender-2-5.html
fast/text/emoji-gender-2-6.html
fast/text/emoji-gender-2-7.html
fast/text/emoji-gender-2-8.html
fast/text/emoji-gender-2-9.html
fast/text/emoji-gender-2.html
fast/text/emoji-gender-3.html
fast/text/emoji-gender-4.html
fast/text/emoji-gender-5.html
fast/text/emoji-gender-6.html
fast/text/emoji-gender-7.html
fast/text/emoji-gender-8.html
fast/text/emoji-gender-9.html
fast/text/emoji-gender-fe0f-3.html
fast/text/emoji-gender-fe0f-4.html
fast/text/emoji-gender-fe0f-5.html
fast/text/emoji-gender-fe0f-6.html
fast/text/emoji-gender-fe0f-7.html
fast/text/emoji-gender-fe0f-8.html
fast/text/emoji-gender-fe0f-9.html
fast/text/emoji-gender.html
fast/text/emoji-num-glyphs.html
fast/text/emoji-single-parent-family-2.html
fast/text/emoji-single-parent-family.html

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Removed incorrect ASSERT()s.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::characterRangeCodePath):

  • platform/text/CharacterProperties.h:

(WebCore::isEmojiGroupCandidate):

Source/WTF:

This patch doesn't update the rules for our cursor movement iterator, because
I don't know the language used for implementing these rules. These rules will
be updated in the near future. When they do,
editing/deleting/delete-emoji-expected.txt will need to be updated.

  • wtf/text/TextBreakIterator.cpp:

(WTF::cursorMovementIterator):

LayoutTests:

Because this patch doesn't update the rules for our cursor movement
iterator, the new expected result for editing/deleting/delete-emoji.html
expects incorrect results. In the patch where we update these rules,
the expected result should also be updated.

Because these new emoji require system support, TestExpectations has
been updated to mark the tests as failing until the system support has
been added.

  • TestExpectations:
  • editing/deleting/delete-emoji-expected.txt:
  • editing/deleting/delete-emoji.html:
  • fast/text/emoji-gender-2-3-expected.html: Added.
  • fast/text/emoji-gender-2-3.html: Added.
  • fast/text/emoji-gender-2-4-expected.html: Added.
  • fast/text/emoji-gender-2-4.html: Added.
  • fast/text/emoji-gender-2-5-expected.html: Added.
  • fast/text/emoji-gender-2-5.html: Added.
  • fast/text/emoji-gender-2-6-expected.html: Added.
  • fast/text/emoji-gender-2-6.html: Added.
  • fast/text/emoji-gender-2-7-expected.html: Added.
  • fast/text/emoji-gender-2-7.html: Added.
  • fast/text/emoji-gender-2-8-expected.html: Added.
  • fast/text/emoji-gender-2-8.html: Added.
  • fast/text/emoji-gender-2-9-expected.html: Added.
  • fast/text/emoji-gender-2-9.html: Added.
  • fast/text/emoji-gender-2-expected-mismatch.html: Added.
  • fast/text/emoji-gender-2.html: Added.
  • fast/text/emoji-gender-3-expected.html: Added.
  • fast/text/emoji-gender-3.html: Added.
  • fast/text/emoji-gender-4-expected.html: Added.
  • fast/text/emoji-gender-4.html: Added.
  • fast/text/emoji-gender-5-expected.html: Added.
  • fast/text/emoji-gender-5.html: Added.
  • fast/text/emoji-gender-6-expected.html: Added.
  • fast/text/emoji-gender-6.html: Added.
  • fast/text/emoji-gender-7-expected.html: Added.
  • fast/text/emoji-gender-7.html: Added.
  • fast/text/emoji-gender-8-expected.html: Added.
  • fast/text/emoji-gender-8.html: Added.
  • fast/text/emoji-gender-9-expected.html: Added.
  • fast/text/emoji-gender-9.html: Added.
  • fast/text/emoji-gender-expected-mismatch.html: Added.
  • fast/text/emoji-gender-fe0f-3-expected.html: Added.
  • fast/text/emoji-gender-fe0f-3.html: Added.
  • fast/text/emoji-gender-fe0f-4-expected.html: Added.
  • fast/text/emoji-gender-fe0f-4.html: Added.
  • fast/text/emoji-gender-fe0f-5-expected.html: Added.
  • fast/text/emoji-gender-fe0f-5.html: Added.
  • fast/text/emoji-gender-fe0f-6-expected.html: Added.
  • fast/text/emoji-gender-fe0f-6.html: Added.
  • fast/text/emoji-gender-fe0f-7-expected.html: Added.
  • fast/text/emoji-gender-fe0f-7.html: Added.
  • fast/text/emoji-gender-fe0f-8-expected.html: Added.
  • fast/text/emoji-gender-fe0f-8.html: Added.
  • fast/text/emoji-gender-fe0f-9-expected.html: Added.
  • fast/text/emoji-gender-fe0f-9.html: Added.
  • fast/text/emoji-gender.html: Added.
  • fast/text/emoji-num-glyphs-expected.txt: Added.
  • fast/text/emoji-num-glyphs.html: Added.
  • fast/text/emoji-single-parent-family-2-expected-mismatch.html: Added.
  • fast/text/emoji-single-parent-family-2.html: Added.
  • fast/text/emoji-single-parent-family-expected-mismatch.html: Added.
  • fast/text/emoji-single-parent-family.html: Added.
7:31 PM Changeset in webkit [203265] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

CrashTracer: com.apple.WebKit.WebContent at WebCore: WebCore::MediaQueryEvaluator::evaluate const
​https://bugs.webkit.org/show_bug.cgi?id=159799
<rdar://problem/27346959>

Reviewed by Myles Maxfield.

Speculative fix for this crash, which seems to happen when asking for the Node's
renderer(). From the incoming crash logs, it is triggered by mutations on
a <picture> or <img> element, which would require choosing a new source,
and causing some media queries to evaluate.

The only place in MediaQueryEvaluator that has anything to do with
renderers is when gathering up some style information to pass to the
actual evaluation function. I put a guard against a missing documentElement
in there.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evaluate): Make sure documentElement is not
null.

7:17 PM Changeset in webkit [203264] by commit-queue@webkit.org
  • 55 edits in trunk/Source/WebCore

Update HTML*Element class override methods in final classes
​https://bugs.webkit.org/show_bug.cgi?id=159456

Patch by Rawinder Singh <​rawinder.singh-webkit@cisra.canon.com.au> on 2016-07-14
Reviewed by Youenn Fablet.

Update HTML*Element classes so that overriden methods in final classes are marked final.
Also marked HTMLDivElement overriden methods as final since they are not overridden by derived classes.

  • html/HTMLAppletElement.h:
  • html/HTMLAreaElement.h:
  • html/HTMLAttachmentElement.h:
  • html/HTMLAudioElement.h:
  • html/HTMLBRElement.h:
  • html/HTMLBaseElement.h:
  • html/HTMLBodyElement.h:
  • html/HTMLButtonElement.h:
  • html/HTMLCanvasElement.h:
  • html/HTMLDataElement.h:
  • html/HTMLDetailsElement.h:
  • html/HTMLDivElement.h:
  • html/HTMLEmbedElement.h:
  • html/HTMLFieldSetElement.h:
  • html/HTMLFontElement.h:
  • html/HTMLFormElement.h:
  • html/HTMLFrameSetElement.h:
  • html/HTMLHRElement.h:
  • html/HTMLHtmlElement.h:
  • html/HTMLKeygenElement.h:
  • html/HTMLLIElement.h:
  • html/HTMLLabelElement.h:
  • html/HTMLLegendElement.h:
  • html/HTMLLinkElement.h:
  • html/HTMLMapElement.h:
  • html/HTMLMarqueeElement.h:
  • html/HTMLMetaElement.h:
  • html/HTMLMeterElement.h:
  • html/HTMLModElement.h:
  • html/HTMLOListElement.h:
  • html/HTMLObjectElement.h:
  • html/HTMLOptGroupElement.h:
  • html/HTMLOptionElement.h:
  • html/HTMLOutputElement.h:
  • html/HTMLParagraphElement.h:
  • html/HTMLParamElement.h:
  • html/HTMLPreElement.h:
  • html/HTMLProgressElement.h:
  • html/HTMLQuoteElement.h:
  • html/HTMLScriptElement.h:
  • html/HTMLSourceElement.h:
  • html/HTMLStyleElement.h:
  • html/HTMLSummaryElement.h:
  • html/HTMLTableCaptionElement.h:
  • html/HTMLTableColElement.h:
  • html/HTMLTableElement.h:
  • html/HTMLTableSectionElement.h:
  • html/HTMLTemplateElement.h:
  • html/HTMLTextAreaElement.h:
  • html/HTMLTitleElement.h:
  • html/HTMLUListElement.h:
  • html/HTMLUnknownElement.h:
  • html/HTMLVideoElement.h:
  • html/HTMLWBRElement.h:
7:11 PM Changeset in webkit [203263] by sbarati@apple.com
  • 8 edits in trunk

It should be a syntax error to have a 'use strict' directive inside a function that has a non-simple parameter list
​https://bugs.webkit.org/show_bug.cgi?id=159790
<rdar://problem/27171636>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Is is a syntax error for a function's parameter list to be non-simple
and for the function to also contain a 'use strict' directive.

See section 14.2.1 of the spec:
​https://tc39.github.io/ecma262/#sec-arrow-function-definitions-static-semantics-early-errors

  • parser/Parser.cpp:

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

  • parser/Parser.h:

(JSC::Scope::Scope):
(JSC::Scope::strictMode):
(JSC::Scope::isValidStrictMode):
(JSC::Scope::shadowsArguments):
(JSC::Scope::setHasNonSimpleParameterList):
(JSC::Scope::hasNonSimpleParameterList):
(JSC::Scope::copyCapturedVariablesToVector):

LayoutTests:

  • js/parser-syntax-check-expected.txt:
  • js/script-tests/parser-syntax-check.js:
7:07 PM Changeset in webkit [203262] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Modernize GlyphMetricsMap
​https://bugs.webkit.org/show_bug.cgi?id=159788

Reviewed by Darin Adler.

Modernize GlyphMetricsMap a bit.

  • platform/graphics/GlyphMetricsMap.h:
  • Drop WTF_MAKE_NONCOPYABLE as the class is already non-copyable due to having to having a std::unique_ptr data member.
  • Drop GlyphMetricsMap default constructor and let the compiler generate it instead. This required using inline initialization for m_filledPrimaryPage.

(WebCore::GlyphMetricsMap::GlyphMetricsPage::GlyphMetricsPage):

  • Make m_metrics data member private as it does not need to be public.
  • Make setMetricsForIndex(unsigned index, const T& metrics) setter private as it does not need to be public.
  • Make GlyphMetricsPage(const T& initialValue) constructor explicit as it takes only 1 parameter.

(WebCore::GlyphMetricsMap<T>::locatePageSlowCase):

  • Use HashMap::ensure() to make the code a bit nicer.
6:46 PM Changeset in webkit [203261] by Simon Fraser
  • 5 edits
    5 adds in trunk

[iOS WK2] When scrolling apple.com/music on iPad Pro in landscape, left-hand tiles appear first
​https://bugs.webkit.org/show_bug.cgi?id=159798
rdar://problem/27362717

Reviewed by Tim Horton.
Source/WebCore:

In out-of-visible tiled layers, we always allocated the top-left tile, wasting
memory and causing ugliness when scrolling that layer into view. This happened
because getTileIndexRangeForRect() had no way to express the fact that no tiles
should be created.

Fix getTileIndexRangeForRect() to return a bool, and fix callers to respect the
return value.

Test: compositing/tiling/offscreen-tiled-layer.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::dumpAdditionalProperties):

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::setNeedsDisplayInRect):
(WebCore::TileGrid::tilesWouldChangeForCoverageRect):
(WebCore::TileGrid::getTileIndexRangeForRect):
(WebCore::TileGrid::revalidateTiles):
(WebCore::TileGrid::ensureTilesForRect):
(WebCore::TileGrid::extent):

  • platform/graphics/ca/TileGrid.h:

LayoutTests:

Test with an offscreen tiled layer.

  • compositing/tiling/offscreen-tiled-layer-expected.txt: Added.
  • compositing/tiling/offscreen-tiled-layer.html: Added.
  • platform/ios-simulator-wk1/compositing/tiling/offscreen-tiled-layer-expected.txt: Added.
  • platform/ios-simulator-wk2/compositing/tiling/offscreen-tiled-layer-expected.txt: Added.
  • platform/mac-wk1/compositing/tiling/offscreen-tiled-layer-expected.txt: Added.
5:52 PM Changeset in webkit [203260] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping editing/spelling/copy-paste-crash.html on ios-simulator.
​https://bugs.webkit.org/show_bug.cgi?id=142969

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
5:39 PM Changeset in webkit [203259] by Brent Fulgham
  • 1 edit
    4 adds in trunk/LayoutTests

Merge Blink test case
​https://bugs.webkit.org/show_bug.cgi?id=117422

Patch is from a set of Blink changes (patches by <​leviw@chromium.org>):
<​https://chromium.googlesource.com/chromium/blink/+/507e1576555bd2ce6688206f28339c25761893b1>
<​https://chromium.googlesource.com/chromium/blink/+/4c95872f52340cf0cf9a2a7078bb63a94f38d302>

  • fast/list/list-style-position-inside-expected.txt: Added.
  • fast/list/list-style-position-inside.html: Added.
  • fast/sub-pixel/float-list-inside-expected.txt: Added.
  • fast/sub-pixel/float-list-inside.html: Added.
5:10 PM Changeset in webkit [203258] by wilander@apple.com
  • 3 edits
    2 adds in trunk

Remove credentials in URL when accessed through location.href
​https://bugs.webkit.org/show_bug.cgi?id=139562
<rdar://problem/27331164>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: http/tests/security/location-href-clears-username-password.html

The reason for this change is to not allow scripts on the page to
exfiltrate username and password from the URL.

  • page/Location.cpp:

(WebCore::Location::href):

Now checks if there is a username or password in the URL. If so,
it copies the URL and removes the username and password.

LayoutTests:

The reason for this change is to not allow scripts on the page to
exfiltrate username and password from the URL.

  • http/tests/security/location-href-clears-username-password-expected.txt: Added.
  • http/tests/security/location-href-clears-username-password.html: Added.

Test case adapted from ​https://src.chromium.org/viewvc/blink?revision=189367&view=revision.

5:00 PM Changeset in webkit [203257] by commit-queue@webkit.org
  • 4 edits in trunk

Allow RefPtrs of const RefCounted types
​https://bugs.webkit.org/show_bug.cgi?id=158269

Patch by Alex Christensen <​achristensen@webkit.org> on 2016-07-14
Reviewed by Anders Carlsson.

Source/WTF:

  • wtf/RefCounted.h:

(WTF::RefCountedBase::ref):
(WTF::RefCountedBase::~RefCountedBase):
(WTF::RefCountedBase::derefBase):
(WTF::RefCounted::deref):
Creating references to a const object does not really modify the object,
so everything in RefCounted is now mutable, and ref and deref are const.

Tools:

  • TestWebKitAPI/Tests/WTF/RefPtr.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::ConstRefCounted::create):
(TestWebKitAPI::returnConstRefCountedRef):
(TestWebKitAPI::returnRefCountedRef):

4:46 PM Changeset in webkit [203256] by Jon Davis
  • 4 edits in trunk/Websites/webkit.org

Improved WebKit Nightly start page design.
​https://bugs.webkit.org/show_bug.cgi?id=159780

Reviewed by Timothy Hatcher.

Added better 404 handling, improved presentation of the
start page and new Apache rewrites for the P1 bug list.

  • .htaccess:
  • wp-content/themes/webkit/functions.php:
  • wp-content/themes/webkit/nightly-start.php:
4:45 PM Changeset in webkit [203255] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

Merge Blink test case
​https://bugs.webkit.org/show_bug.cgi?id=116507

Patch is from a Blink change (patch by <​ojan@chromium.org>):
<​https://chromium.googlesource.com/chromium/blink/+/6598fc75a7260643ecfc42856ef24bcf96380443>

  • compositing/iframes/crash-mouse-event-expected.txt: Added.
  • compositing/iframes/crash-mouse-event.html: Added.
4:38 PM Changeset in webkit [203254] by commit-queue@webkit.org
  • 7 edits
    1 copy in trunk/Source/WebInspectorUI

Web Inspector: Rename CCTNode to CallingContextTreeNode
​https://bugs.webkit.org/show_bug.cgi?id=159782

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

  • UserInterface/Models/CallingContextTree.js:
  • UserInterface/Models/CallingContextTreeNode.js:

Extra to its own file and rename.

  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • UserInterface/TestStub.html:

Include the new file.

  • UserInterface/Views/ProfileDataGridNode.js:

(WebInspector.ProfileDataGridNode):

  • UserInterface/Views/ProfileDataGridTree.js:

(WebInspector.ProfileDataGridTree.prototype._updateCurrentFocusDetails):
Rename shorthand "cctnode".

4:37 PM Changeset in webkit [203253] by Matt Baker
  • 9 edits in trunk/Source/WebInspectorUI

Web Inspector: SidebarPanel classes should use View.layout instead of "refresh"
​https://bugs.webkit.org/show_bug.cgi?id=159745
<rdar://problem/27335252>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:

(WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.set applicationCacheFrame):
Use needsLayout.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel.prototype.layout):
Move refresh logic to layout.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.initialLayout):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._styleSheetAddedOrRemoved):
Defer layout to coalesce updates.
(WebInspector.CSSStyleDetailsSidebarPanel):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh): Deleted.

  • UserInterface/Views/DOMDetailsSidebarPanel.js:

(WebInspector.DOMDetailsSidebarPanel.prototype.set domNode):
Use needsLayout.

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

Move refresh logic to layout.

  • UserInterface/Views/DetailsSidebarPanel.js:

(WebInspector.DetailsSidebarPanel.prototype.shown): Deleted.
Base class already forces a layout when shown.
(WebInspector.DetailsSidebarPanel.prototype.needsRefresh): Deleted.
No longer needed.
(WebInspector.DetailsSidebarPanel.prototype.refresh): Deleted.
Renamed layout.
(WebInspector.DetailsSidebarPanel): Deleted.

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WebInspector.LayerTreeDetailsSidebarPanel.prototype.supportsDOMNode):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype._layerTreeDidChange):
Use needsLayout.
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.shown):
Base class already forces a layout when shown.

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype.set resource):
Use needsLayout.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.js:

(WebInspector.ScopeChainDetailsSidebarPanel):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype.set callFrame):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._addWatchExpression):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._removeWatchExpression):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._clearAllWatchExpressions):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._refreshAllWatchExpressionsButtonClicked):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._didEvaluateExpression):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._mainResourceDidChange):
Use needsLayout.

4:33 PM Changeset in webkit [203252] by jfernandez@igalia.com
  • 4 edits in trunk/Source/WebCore

[css-grid] Handle min-content/max-content with orthogonal flows
​https://bugs.webkit.org/show_bug.cgi?id=159294

Reviewed by Darin Adler.

Currently there is no support for orthogonal flows in many aspects of the
Grid Layout logic.

The Grid sizing algorithm should be adapted to this scenario, hence this
patch focus on the min-content and max-content functions, used to resolve
content based track sizes.

There are still issues related to alignment and sizes using percentages,
but they will be addressed in different patches.

Tests: fast/css-grid-layout/grid-item-positioning-with-orthogonal-flows.html

fast/css-grid-layout/grid-item-sizing-with-orthogonal-flows.html
fast/css-grid-layout/grid-item-spanning-and-orthogonal-flows.html
fast/css-grid-layout/grid-track-sizing-with-orthogonal-flows.html
fast/css-grid-layout/grid-track-sizing-with-percentages-and-orthogonal-flows.html

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalWidthInRegion):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::GridSizingData::advanceNextState):
(WebCore::RenderGrid::GridSizingData::isValidTransitionForDirection):
(WebCore::RenderGrid::computeTrackSizesForDirection):
(WebCore::RenderGrid::repeatTracksSizingIfNeeded): Added.
(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::hasOverrideContainingBlockContentSizeForChild):
(WebCore::overrideContainingBlockContentSizeForChild):
(WebCore::setOverrideContainingBlockContentSizeForChild):
(WebCore::shouldClearOverrideContainingBlockContentSizeForChild):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::isOrthogonalChild): Added.
(WebCore::RenderGrid::logicalHeightForChild):
(WebCore::RenderGrid::flowAwareDirectionForChild): Added.
(WebCore::RenderGrid::minSizeForChild):
(WebCore::RenderGrid::updateOverrideContainingBlockContentSizeForChild):
(WebCore::RenderGrid::minContentForChild):
(WebCore::RenderGrid::maxContentForChild):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::layoutPositionedObject):
(WebCore::RenderGrid::offsetAndBreadthForPositionedChild):
(WebCore::RenderGrid::assumedRowsSizeForOrthogonalChild): Added.
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::columnAxisPositionForChild):
(WebCore::RenderGrid::rowAxisPositionForChild):
(WebCore::RenderGrid::findChildLogicalPosition):

  • rendering/RenderGrid.h:

(WebCore::RenderGrid::SizingOperation): This enum has been moved to the header file.
(WebCore::RenderGrid::m_hasAnyOrthogonalChild): New class attribute to know if there are any orthogonal grid items.
(WebCore::RenderGrid::updateOverrideContainingBlockContentSizeForChild):
(WebCore::RenderGrid::logicalHeightForChild):
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::assumedRowsSizeForOrthogonalChild):

4:21 PM Changeset in webkit [203251] by Ryan Haddad
  • 14 edits in trunk/Source/WebKit2

Unreviewed, rolling out r203248.

This change causes LayoutTests to crash and exit early

Reverted changeset:

"Use more Refs with WorkQueues"
​https://bugs.webkit.org/show_bug.cgi?id=159792
​http://trac.webkit.org/changeset/203248

4:17 PM Changeset in webkit [203250] by Chris Dumez
  • 25 edits in trunk/Source

Use emptyString() instead of "" when possible
​https://bugs.webkit.org/show_bug.cgi?id=159789

Reviewed by Alex Christensen.

Use emptyString() instead of "" when possible to reduce String allocations.

Source/WebCore:

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::performOpenAndVerify):

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

(WebCore::MutableStyleProperties::removeProperty):
(WebCore::MutableStyleProperties::removeCustomProperty):

  • editing/TextCheckingHelper.cpp:

(WebCore::TextCheckingHelper::findFirstMisspellingOrBadGrammar):
(WebCore::TextCheckingHelper::findFirstBadGrammar):

  • editing/TypingCommand.h:

(WebCore::TypingCommand::create):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::cleanup):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::fillMediaListChain):

  • page/UserContentURLPattern.cpp:

(WebCore::UserContentURLPattern::parse):

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::load):

  • platform/gtk/DataObjectGtk.h:

(WebCore::DataObjectGtk::clearURIList):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):

  • platform/network/curl/ResourceHandleManager.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerTreeAsText):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::updateContent):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::noneDashboardRegions):

  • rendering/svg/SVGTextMetrics.cpp:

(WebCore::SVGTextMetrics::SVGTextMetrics):

  • xml/XPathParser.cpp:

(WebCore::XPath::Parser::lexString):

Source/WebKit/cf:

  • WebCoreSupport/WebInspectorClientCF.cpp:

(populateSetting):

Source/WebKit/win:

  • Plugins/PluginView.cpp:

(WebCore::parseRFC822HeaderFields):

Source/WebKit2:

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::pasteboardChangedOwner):

  • WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:

(WebKit::parseRFC822HeaderFields):
(WebKit::NPN_Status):

4:15 PM Changeset in webkit [203249] by Brent Fulgham
  • 4 edits
    2 adds in trunk

editing/spelling/spellcheck-async.html sometimes crashes with GuardMalloc
​https://bugs.webkit.org/show_bug.cgi?id=142969
<rdar://problem/27331095>

Reviewed by Alex Christensen.

Fix based on a Blink change (patch by <​rouslan@chromium.org>):
<​https://chromium.googlesource.com/chromium/blink/+/c713736b122c2224804b2db72f1f711cb47ee260%5E%21/#F1>

Source/WebCore:

Test: editing/spelling/copy-paste-crash.html

editing/spelling/spellcheck-async.html

  • editing/SpellChecker.cpp:

(WebCore::SpellCheckRequest::didSucceed):
(WebCore::SpellCheckRequest::didCancel):

LayoutTests:

  • editing/spelling/copy-paste-crash-expected.txt: Added.
  • editing/spelling/copy-paste-crash.html: Added.
  • platform/platform/mac-wk2/TestExpectations: Skip test on mac-wk2 since all Spelling tests are

currently broken (see <​https://webkit.org/b/105616>).

4:04 PM Changeset in webkit [203248] by achristensen@apple.com
  • 14 edits in trunk/Source/WebKit2

Use more Refs with WorkQueues
​https://bugs.webkit.org/show_bug.cgi?id=159792

Reviewed by Brady Eidson.

  • NetworkProcess/CustomProtocols/CustomProtocolManager.h:
  • Platform/IPC/Connection.cpp:

(IPC::Connection::setShouldExitOnSyncMessageSendFailure):
(IPC::Connection::addWorkQueueMessageReceiver):

  • Platform/IPC/Connection.h:
  • Shared/mac/SecItemShim.cpp:

(WebKit::SecItemShim::initializeConnection):

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::create):
(WebKit::LocalStorageDatabaseTracker::LocalStorageDatabaseTracker):

  • UIProcess/Storage/LocalStorageDatabaseTracker.h:
  • UIProcess/Storage/StorageManager.cpp:

(WebKit::StorageManager::StorageArea::openDatabaseAndImportItemsIfNeeded):
(WebKit::StorageManager::StorageManager):

  • UIProcess/Storage/StorageManager.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::processWillOpenConnection):
(WebKit::WebResourceLoadStatisticsStore::processDidCloseConnection):

  • UIProcess/mac/SecItemShimProxy.cpp:

(WebKit::SecItemShimProxy::initializeConnection):
(WebKit::SecItemShimProxy::secItemRequest):

  • WebProcess/Plugins/PluginProcessConnectionManager.cpp:

(WebKit::PluginProcessConnectionManager::initializeConnection):
(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):

  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::initializeConnection):
(WebKit::EventDispatcher::wheelEvent):

  • WebProcess/WebPage/ViewUpdateDispatcher.cpp:

(WebKit::ViewUpdateDispatcher::initializeConnection):
(WebKit::ViewUpdateDispatcher::visibleContentRectUpdate):

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

Remove duplicate TestExpectations entry.

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:05 PM Changeset in webkit [203246] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

ImageBuffer's succes flag should be set to false at the very beginning of the c'tor.
​https://bugs.webkit.org/show_bug.cgi?id=159784

Reviewed by Simon Fraser.

No change in functionality.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::ImageBuffer):

2:52 PM Changeset in webkit [203245] by timothy@apple.com
  • 6 edits in trunk/Source/WebKit2

Web Automation: FrameNotFound errors happen a lot for the main frame
​https://bugs.webkit.org/show_bug.cgi?id=159777
rdar://problem/27224628

Send both pageID and frameID, and have the WebProcess side resolve the
mainFrame from 0 based on the known pageID. This avoids a race waiting
for the DidCreateMainFrame message.

Reviewed by Brian Burg.

  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::webFrameIDForHandle):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::evaluateJavaScriptFunction):
(WebKit::WebAutomationSession::resolveChildFrameHandle):
(WebKit::WebAutomationSession::resolveParentFrameHandle):
(WebKit::WebAutomationSession::computeElementLayout):
(WebKit::WebAutomationSession::getAllCookies):
(WebKit::WebAutomationSession::deleteSingleCookie):
(WebKit::WebAutomationSession::webFrameProxyForHandle): Deleted.
(WebKit::WebAutomationSession::webFrameIDForHandle): Added.

  • UIProcess/Automation/WebAutomationSession.h:
  • WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithOrdinal):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithNodeHandle):
(WebKit::WebAutomationSessionProxy::resolveChildFrameWithName):
(WebKit::WebAutomationSessionProxy::resolveParentFrame):
(WebKit::WebAutomationSessionProxy::focusFrame):
(WebKit::WebAutomationSessionProxy::computeElementLayout):
(WebKit::WebAutomationSessionProxy::takeScreenshot):
(WebKit::WebAutomationSessionProxy::getCookiesForFrame):
(WebKit::WebAutomationSessionProxy::deleteCookie):

  • WebProcess/Automation/WebAutomationSessionProxy.h:
  • WebProcess/Automation/WebAutomationSessionProxy.messages.in:
2:43 PM Changeset in webkit [203244] by achristensen@apple.com
  • 26 edits
    2 adds
    4 deletes in trunk/Source

Use SocketProvider to create SocketStreamHandles
​https://bugs.webkit.org/show_bug.cgi?id=159774

Source/WebCore:

Reviewed by Brady Eidson.

No new tests. No change in behaviour.

In r202930 I introduced the SocketProvider, but I used it to make a WebSocketChannel
instead of a SocketStreamHandle, which is the class I want to make into an interface
and proxy the web traffic over to the NetworkProcess.

  • CMakeLists.txt:
  • Modules/websockets/ThreadableWebSocketChannel.cpp: Added.

(WebCore::ThreadableWebSocketChannel::create):
I removed this in 202930, so this is restoring it from that patch, hence the old copyright.

  • Modules/websockets/ThreadableWebSocketChannel.h:

(WebCore::ThreadableWebSocketChannel::ThreadableWebSocketChannel):

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::WebSocketChannel):
(WebCore::WebSocketChannel::connect):

  • Modules/websockets/WebSocketChannel.h:

(WebCore::WebSocketChannel::create):

  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::WorkerThreadableWebSocketChannel):
(WebCore::WorkerThreadableWebSocketChannel::resume):
(WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::Bridge):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::~Bridge):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:

(WebCore::WorkerThreadableWebSocketChannel::create):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::create):

  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::overlayPage):

  • loader/EmptyClients.cpp:

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

  • loader/EmptyClients.h:
  • page/SocketProvider.cpp: Added.

(WebCore::SocketProvider::createSocketStreamHandle):

  • page/SocketProvider.h:

(WebCore::SocketProvider::~SocketProvider): Deleted.

  • platform/network/cf/SocketStreamHandle.h:
  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

Source/WebKit:

Reviewed by Alex Christensen.

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

Source/WebKit/mac:

Reviewed by Brady Eidson.

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

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

Source/WebKit/win:

Reviewed by Brady Eidson.

  • WebSocketProvider.cpp: Removed.
  • WebSocketProvider.h: Removed.
  • WebView.cpp: Replaced WebSocketProvider with SocketProvider as we did in WebCore.

Source/WebKit2:

Reviewed by Brady Eidson.

  • WebProcess/Network/WebSocketProvider.cpp:

(WebKit::WebSocketProvider::createSocketStreamHandle):
(WebKit::WebSocketProvider::createWebSocketChannel): Deleted.

  • WebProcess/Network/WebSocketProvider.h:
2:42 PM Changeset in webkit [203243] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Maintain selected function when switching between different profile representations
​https://bugs.webkit.org/show_bug.cgi?id=159778
<rdar://problem/27355913>

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

  • UserInterface/Models/CallingContextTree.js:

(WebInspector.CCTNode):
(WebInspector.CCTNode.prototype.get hash):
(WebInspector.CCTNode.prototype.findOrMakeChild):
(WebInspector.CCTNode.prototype.equals):
Expose the hash so two nodes can be compared cheaply.

  • UserInterface/Views/ProfileView.js:

(WebInspector.ProfileView.prototype._repopulateDataGridFromTree):
(WebInspector.ProfileView.prototype._restoreSharedState):
(WebInspector.ProfileView.prototype._dataGridNodeSelected):
Share data between multiple ProfileViews. Currently just remembering
and restoring the selected function.

  • UserInterface/Views/ScriptProfileTimelineView.js:

(WebInspector.ScriptProfileTimelineView):
(WebInspector.ScriptProfileTimelineView.prototype._showProfileViewForOrientation):
Include the shared data when constructing new ProfileViews.

2:39 PM Changeset in webkit [203242] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][iOS] Potential null dereference under ViewGestureController::beginSwipeGesture()
​https://bugs.webkit.org/show_bug.cgi?id=159776
<rdar://problem/22467100>

Reviewed by Tim Horton.

Potential null dereference under ViewGestureController::beginSwipeGesture() of:
m_webPageProxy.backForwardList().currentItem()

The client side is expected to call ViewGestureController::canSwipeInDirection() but
this only guarantees that the m_alternateBackForwardListSourceView's currentItem is
non-null when m_alternateBackForwardListSourceView is non-null. It does not guarantee
that m_webPageProxy's currentItem is non-null.

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):

2:15 PM Changeset in webkit [203241] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

"User delete" tests are flakey timeouts (and/or DatabaseProcess crashes).
​https://bugs.webkit.org/show_bug.cgi?id=158741

Reviewed by Alex Christensen.

No new tests (Covered by existing tests in some configurations)

  • Check if a database hard delete is complete in more places.
  • Asynchronously clear out the hard close protector instead of synchronously.
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::didPerformUnconditionalDeleteBackingStore):
(WebCore::IDBServer::UniqueIDBDatabase::didFinishHandlingVersionChange):
(WebCore::IDBServer::UniqueIDBDatabase::connectionClosedFromClient):
(WebCore::IDBServer::UniqueIDBDatabase::transactionCompleted):
(WebCore::IDBServer::UniqueIDBDatabase::executeNextDatabaseTaskReply):
(WebCore::IDBServer::UniqueIDBDatabase::maybeFinishHardClose):
(WebCore::IDBServer::UniqueIDBDatabase::isDoneWithHardClose):
(WebCore::IDBServer::UniqueIDBDatabase::doneWithHardClose): Deleted.

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

(WebCore::IDBServer::UniqueIDBDatabase::hardClosedForUserDelete):

  • Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:

(WebCore::IDBServer::UniqueIDBDatabaseConnection::didAbortTransaction):

2:01 PM Changeset in webkit [203240] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

CSSStyleSheet members should clear their owner node when destroyed
​https://bugs.webkit.org/show_bug.cgi?id=117470

Reviewed by Chris Dumez.

Make sure that CSSStyleSheet members are detached from their owner node when
the owning object is destroyed.

I audited other CSSStyleSheet uses, and found one other place where the owner node was not
being cleared during destruction. The Inspector also uses CSSStyleSheet, but seems to
handle the node ownership properly.

Fix based on a Blink change (patch by <​haraken@chromium.org>):
<​https://chromium.googlesource.com/chromium/blink/+/c4949bfdeb2a613701afa1410bdae70531b8f6bf>

Also includes a follow-up fix (patch by <​haraken@chromium.org>):
<​https://chromium.googlesource.com/chromium/blink/+/9c3932dc80b33429db3a5873cb266b726c8a19bf>

No test case. Was found by the Chromium team through review of their crash traces under minor DOM GC.

  • contentextensions/ContentExtensionStyleSheet.cpp:

(WebCore::ContentExtensions::ContentExtensionStyleSheet::~ContentExtensionStyleSheet):

  • contentextensions/ContentExtensionStyleSheet.h:
  • dom/InlineStyleSheetOwner.cpp:

(WebCore::InlineStyleSheetOwner::~InlineStyleSheetOwner):
(WebCore::authorStyleSheetsForElement):

1:54 PM Changeset in webkit [203239] by ggaren@apple.com
  • 2 edits
    2 adds in trunk/Source/JavaScriptCore

ASSERTION FAILED: : this != replacement()
​https://bugs.webkit.org/show_bug.cgi?id=159779

Reviewed by Michael Saboff.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jettison): If we jettison during GC, and our owner
is dead, we choose not to replace ourselves. (See
​https://bugs.webkit.org/show_bug.cgi?id=159588.) So, it's possible to
invalidate and still be our owner's CodeBlock. Relax our ASSERT to allow
for this.

1:14 PM Changeset in webkit [203238] by Csaba Osztrogonác
  • 12 edits in trunk/Source

Fix the !ENABLE(WEB_SOCKETS) build after r202930
​https://bugs.webkit.org/show_bug.cgi?id=159768

Reviewed by Alex Christensen.

Source/WebCore:

  • loader/EmptyClients.cpp:
  • loader/EmptyClients.h:
  • page/SocketProvider.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::WorkerThread):

Source/WebKit/mac:

  • Misc/WebSocketProvider.h:

Source/WebKit/win:

  • WebSocketProvider.h:

Source/WebKit2:

  • WebProcess/Network/WebSocketProvider.h:
12:46 PM Changeset in webkit [203237] by Brent Fulgham
  • 1 edit
    2 adds in trunk/LayoutTests

Add test to confirm we do not crash in media destruction
​https://bugs.webkit.org/show_bug.cgi?id=122816

Test based on a Blink change (patch by <​igor.o@sisa.samsung.com>):
<​https://chromium.googlesource.com/chromium/blink/+/7a2b2dcefbc013003487d5055eeda7a57daafa93%5E%21/#F0>

We do not seem to have the bug that prompted the Chromium source change. Adding
test case to ensure we do not introduce this problem in the future.

  • editing/undo/audio-in-undo-stack-crash-expected.txt: Added.
  • editing/undo/audio-in-undo-stack-crash.html: Added.
12:45 PM Changeset in webkit [203236] by Chris Dumez
  • 3 edits in trunk/Source/WTF

Avoid an extra heap allocation when dispatching Functions to WorkQueue
​https://bugs.webkit.org/show_bug.cgi?id=158367

Reviewed by Anders Carlsson.

Avoid an extra heap allocation when dispatching Functions to WorkQueue
by adding leakCallable() / adoptCallable() functions to Function.

  • wtf/Function.h:
  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::WorkQueue::dispatch):
(WTF::WorkQueue::dispatchAfter):

12:32 PM Changeset in webkit [203235] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

DOMIterators should be assigned a correct prototype
​https://bugs.webkit.org/show_bug.cgi?id=159115

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-14
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/headers/headers-basic.html: Updating test (changes to be upstreamed to w3c wpt repo)

Source/WebCore:

Default iterator object internal prototype property is the Iterator prototype as defined in
​http://heycam.github.io/webidl/#dfn-iterator-prototype-object.
Linking DOMIterator prototype to IteratorPrototype.
This allows adding @@iterator property to the result of entries, keys and values methods.
This in turns allow doing for-of loops on them.

Covered by updated test.

  • ForwardingHeaders/runtime/IteratorPrototype.h: Added.
  • bindings/js/JSDOMIterator.h: Setting correct prototype and marking next prototype property as enumerable.
12:30 PM Changeset in webkit [203234] by commit-queue@webkit.org
  • 5 edits in trunk

Remove support for value iterators from JSDOMIterator
​https://bugs.webkit.org/show_bug.cgi?id=159293

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-14
Reviewed by Chris Dumez.

Source/WebCore:

Value iterators are now handled without using DOMIterator.
Since FontFaceSet is using DOMIterator as an intermediate step towards supporting set-like,
entries and forEach implementation should be made compliant with set-like.
This means that item value should be passed instead of an index in entries iterator and forEach callback.

Covered by updated test.

  • bindings/js/JSDOMIterator.h:

(WebCore::JSDOMIterator<JSWrapper>::asJS): Pass set item as entries value field.
(WebCore::appendForEachArguments): Pass set item as second parameter.
(WebCore::iteratorForEach): Remove index handling.

LayoutTests:

  • fast/text/font-face-set-javascript-expected.txt:
  • fast/text/font-face-set-javascript.html:
12:29 PM Changeset in webkit [203233] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(MATHML) build after r201739
​https://bugs.webkit.org/show_bug.cgi?id=159767

Reviewed by Alex Christensen.

  • dom/Document.cpp:

(WebCore::Document::validateCustomElementName):

12:28 PM Changeset in webkit [203232] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(CSS_IMAGE_SET) build
​https://bugs.webkit.org/show_bug.cgi?id=159766

Reviewed by Alex Christensen.

  • css/CSSParser.cpp:
12:09 PM Changeset in webkit [203231] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

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

  • platform/mac/TestExpectations:
11:33 AM Changeset in webkit [203230] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Possible crash under NavigationState::NavigationClient::processDidCrash()
​https://bugs.webkit.org/show_bug.cgi?id=159773
<rdar://problem/19814215>

Reviewed by Anders Carlsson.

Add a m_navigationState.m_navigationDelegateMethods.webViewWebProcessDidCrash before
trying to call it to avoid crashing if the client does not implement it.

At the beginning of the method, we abort early only if both webViewWebContentProcessDidTerminate
and webViewWebProcessDidCrash are implemented. However, if webViewWebContentProcessDidTerminate
implemented but not webViewWebProcessDidCrash we can end up crashing as we fail to check later
on before trying to call it.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::processDidCrash):

11:18 AM Changeset in webkit [203229] by mark.lam@apple.com
  • 5 edits
    1 add in trunk

JSONObject Walker::walk must save array length before processing array elements.
​https://bugs.webkit.org/show_bug.cgi?id=153485

Reviewed by Darin Adler and Michael Saboff.

Source/JavaScriptCore:

According to ​https://tc39.github.io/ecma262/#sec-internalizejsonproperty,
JSON.parse() should cache the length of an array and use the cached length when
iterating array elements (see section 24.3.1.1 2.b.iii).

  • runtime/JSONObject.cpp:

(JSC::Walker::walk):

  • tests/stress/JSON-parse-should-cache-array-lengths.js: Added.

(toString):
(shouldBe):
(test):
(test2):

LayoutTests:

  • js/JSON-parse-reviver-expected.txt:
  • js/script-tests/JSON-parse-reviver.js:
  • Fixed a bug in arrayReviver() where it was setting the array length to 3, but was immediately returning a value from the reviver for index 3. This effectively forces array.length to 4. As a result, case 4 always failed silently, and case 5 never executed.
  • Added tracking of cases visited by the revivers so that they can be verified.
10:59 AM Changeset in webkit [203228] by fred.wang@free.fr
  • 26 edits in trunk/Source/WebCore

Cleanup of MathML headers
​https://bugs.webkit.org/show_bug.cgi?id=159336

Reviewed by Alex Christensen.

We do some cleanup in MathML headers:

  • Use #pragma once
  • Use final for class that are not extended.
  • Use final instead of override for virtual members that are not overridden by derived classes.
  • Try and reduce the visibility of function members to private or protected as appropriate.
  • Remove useless #include
  • Remove useless class or friendship declaration
  • Remove unused functions

No new tests, behavior is unchanged.

  • mathml/MathMLElement.h:
  • mathml/MathMLInlineContainerElement.h:
  • mathml/MathMLMathElement.h:
  • mathml/MathMLMencloseElement.h:
  • mathml/MathMLOperatorDictionary.h:
  • mathml/MathMLPaddedElement.h:
  • mathml/MathMLSelectElement.h:
  • mathml/MathMLSpaceElement.h:
  • mathml/MathMLTextElement.h:
  • rendering/mathml/MathOperator.h:
  • rendering/mathml/RenderMathMLBlock.h:
  • rendering/mathml/RenderMathMLFenced.h:
  • rendering/mathml/RenderMathMLFraction.h:
  • rendering/mathml/RenderMathMLMath.h:
  • rendering/mathml/RenderMathMLMenclose.h:
  • rendering/mathml/RenderMathMLOperator.h:
  • rendering/mathml/RenderMathMLRoot.h:
  • rendering/mathml/RenderMathMLRow.cpp:

(WebCore::RenderMathMLRow::RenderMathMLRow): Deleted. We no longer create anonymous row.

  • rendering/mathml/RenderMathMLRow.h:
  • rendering/mathml/RenderMathMLScripts.h:
  • rendering/mathml/RenderMathMLSpace.h:
  • rendering/mathml/RenderMathMLToken.h:
  • rendering/mathml/RenderMathMLUnderOver.h:
10:50 AM Changeset in webkit [203227] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Fix the DatabaseProcess build with disabled IDB
​https://bugs.webkit.org/show_bug.cgi?id=159769

Reviewed by Alex Christensen.

  • WebProcess/Databases/WebToDatabaseProcessConnection.cpp:

(WebKit::WebToDatabaseProcessConnection::didClose):

10:38 AM Changeset in webkit [203226] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[mips] Handle properly unaligned halfword load
​https://bugs.webkit.org/show_bug.cgi?id=153226

Patch by Julien Brianceau <​jbriance@cisco.com> on 2016-07-14
Reviewed by Michael Catanzaro.

Waiting for the kernel to silently fix-up unaligned accesses is
not efficient, so let's provide an implementation of load16Unaligned
in mips macro assembler.

Performance improvement seen with SunSpider's regexp-dna test.

  • assembler/MacroAssemblerMIPS.h:

(JSC::MacroAssemblerMIPS::load16Unaligned):
(JSC::MacroAssemblerMIPS::load32WithUnalignedHalfWords):

10:26 AM Changeset in webkit [203225] by achristensen@apple.com
  • 6 edits in trunk/Source/WebCore

Pass SessionID to WebSocketHandle constructor
​https://bugs.webkit.org/show_bug.cgi?id=159772

Reviewed by Brady Eidson.

No new tests. No change in behavior.

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::connect):

  • platform/network/cf/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

  • platform/network/cf/SocketStreamHandleCFNet.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):

  • platform/network/curl/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

  • platform/network/soup/SocketStreamHandle.h:
8:48 AM Changeset in webkit [203224] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GLib] Use a GSource instead of a thread to poll memory pressure eventFD in linux implementation
​https://bugs.webkit.org/show_bug.cgi?id=159346

Patch by Carlos Garcia Campos <​cgarcia@igalia.com> on 2016-07-14
Reviewed by Antonio Gomes.

This is a follow up of r203216 to fix wrong use of Optional values.

  • platform/linux/MemoryPressureHandlerLinux.cpp:
5:33 AM Changeset in webkit [203223] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[ThreadedCompositor] Build fails in debug mode after r202040
​https://bugs.webkit.org/show_bug.cgi?id=159757

Patch by Hyunjun Ko <Hyunjun Ko> on 2016-07-14
Reviewed by Michael Catanzaro.

Debug mode build failed due to call getter method, which is
removed, in ASSERT().

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::glContext): Deleted.
(WebKit::ThreadedCompositor::didChangeVisibleRect): Deleted.
(WebKit::ThreadedCompositor::renderLayerTree): Deleted.

4:16 AM Changeset in webkit [203222] by commit-queue@webkit.org
  • 13 edits
    15 adds in trunk

DOM value iterable interfaces should use Array prototype methods
​https://bugs.webkit.org/show_bug.cgi?id=159296

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-14
Reviewed by Chris Dumez and Mark Lam.

Source/JavaScriptCore:

  • JavaScriptCore.xcodeproj/project.pbxproj: Marking some header files as private so that they can be included in

WebCore.

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation): copying iterable methods (entries, forEach, keys and values) to private slots.

Source/WebCore:

Test: fast/dom/NodeList/nodelist-iterable.html
Also covered by updated layout test and binding tests.

For value iterators, copy the iterator methods from Array prototype: as per ​https://heycam.github.io/webidl/#es-iterable,
[re: entries] If the interface has a value iterator, then the Function object is the initial value of the "entries" data property of %ArrayPrototype% ([ECMA-262], section 6.1.7.4).
[re: keys] If the interface has a value iterator, then the Function object is the initial value of the "keys" data property of %ArrayPrototype% ([ECMA-262], section 6.1.7.4).
[re: forEach] If the interface defines an indexed property getter, then the Function object is the initial value of the "forEach" data property of %ArrayPrototype% ([ECMA-262], section 6.1.7.4).
[re: Symbol.iterator] If the interface defines an indexed property getter, then the Function object is %ArrayProto_values% ([ECMA-262], section 6.1.7.4).
[re: values] If the interface has a value iterator, then the Function object is the value of the @@iterator property.

This change applies only to NodeList at the moment.
Copy of Array prototype iterator methods is disabled if the interface has no indexed getter.

  • CMakeLists.txt:
  • ForwardingHeaders/builtins/BuiltinNames.h: Added.
  • ForwardingHeaders/builtins/JSCBuiltins.h: Added.
  • ForwardingHeaders/runtime/CommonIdentifiers.h: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMIterator.cpp: Added.

(WebCore::addValueIterableMethods): Copy iterator methods from array prototype.

  • bindings/js/JSDOMIterator.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GeneratePropertiesHashTable):
(GenerateImplementation):
(IsValueIterableInterface): Introduced to only copy iterator methods if the interface has an indexed getter.
(IsKeyValueIterableInterface): Introduced to detect whether generating iterator methods.
(GenerateImplementationIterableFunctions):

  • bindings/scripts/test/GObject/WebKitDOMTestIterable.cpp: Added.
  • bindings/scripts/test/GObject/WebKitDOMTestIterable.h: Added.
  • bindings/scripts/test/GObject/WebKitDOMTestIterablePrivate.h: Added.
  • bindings/scripts/test/JS/JSTestIterable.cpp: Added.
  • bindings/scripts/test/JS/JSTestIterable.h: Added.
  • bindings/scripts/test/JS/JSTestObj.cpp: Updated as TestObj defines both iterable<> and indexed getter.
  • bindings/scripts/test/ObjC/DOMTestIterable.h: Added.
  • bindings/scripts/test/ObjC/DOMTestIterable.mm: Added.
  • bindings/scripts/test/ObjC/DOMTestIterableInternal.h: Added.
  • bindings/scripts/test/TestIterable.idl: Added to handle the case of value iterator without indexed getter defined.

Array prototype methods should not be copied.

  • bindings/scripts/test/TestObj.idl: Changing to be a value iterator (with indexed getter already defined).

Array prototype methods should be copied.

LayoutTests:

  • fast/dom/nodeListIterator-expected.txt:
  • fast/dom/nodeListIterator.html:
  • fast/dom/NodeList/nodelist-iterable-expected.txt: Added.
  • fast/dom/NodeList/nodelist-iterable.html: Added.
3:14 AM Changeset in webkit [203221] by commit-queue@webkit.org
  • 11 edits
    3 adds in trunk

[Fetch API] Request and Response url getter should use URL serialization
​https://bugs.webkit.org/show_bug.cgi?id=159705

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/basic/response-url-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/response-url-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/response-url-worker.html: Added.
  • web-platform-tests/fetch/api/basic/response-url.html: Added.
  • web-platform-tests/fetch/api/basic/response-url.js: Added.

(checkResponseURL):

  • web-platform-tests/fetch/api/request/request-init-003.sub-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-003.sub.html:

Source/WebCore:

Tests: fetch/fetch-url-serialization.html

imported/w3c/web-platform-tests/fetch/api/basic/response-url-worker.html
imported/w3c/web-platform-tests/fetch/api/basic/response-url.html

Implementing ​https://url.spec.whatwg.org/#concept-url-serializer and applying it to Request and Response getter.
Adding a temporary routine to compute url cannot-be-a-base-url flag. The parsing routine should store that
information in the URL itself.

Added tests to cover serialization routine. Failing tests are mostly due to limitations of the URL parser.
Tests do not check for URLs with username and password as Request constructor throws with such URLs.

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::url): Adding request url serialization, fragment included.

  • Modules/fetch/FetchRequest.h:
  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::url): Adding response url serialization, fragment excluded.

  • Modules/fetch/FetchResponse.h:
  • platform/URL.cpp:

(WebCore::cannotBeABaseURL): Temporary helper function to have a coarse evaluation of url cannot-be-a-base-url flag.
(WebCore::URL::serialize): Implementation of ​https://url.spec.whatwg.org/#concept-url-serializer.

  • platform/URL.h:

(WebCore::URL::hasUser): Helper getter.
(WebCore::URL::hasPassword): Ditto.
(WebCore::URL::hasQuery): Ditto.
(WebCore::URL::hasFragment): Ditto.

LayoutTests:

  • fetch/fetch-url-serialization-expected.txt: Added.
  • fetch/fetch-url-serialization.html: Added.
  • fetch/fetch-urls.json: Added.
1:36 AM Changeset in webkit [203220] by svillar@igalia.com
  • 3 edits in trunk/Source/WebCore

[css-grid] Const-ify track sizing algorithm
​https://bugs.webkit.org/show_bug.cgi?id=159716

Reviewed by Carlos Garcia Campos.

All the methods used to run the track sizing algorithm should not
modify the state of LayoutGrid. We can safely const-ify all of them
and remove the ugly const_cast in computeIntrinsicLogicalWidths().

No new tests needed as there is no change in behavior.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::logicalHeightForChild):
(WebCore::RenderGrid::minSizeForChild):
(WebCore::RenderGrid::updateOverrideContainingBlockContentLogicalWidthForChild):
(WebCore::RenderGrid::minContentForChild):
(WebCore::RenderGrid::maxContentForChild):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
(WebCore::RenderGrid::currentItemSizeForTrackSizeComputationPhase):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::RenderGrid::distributeSpaceToTracks):

  • rendering/RenderGrid.h:
12:54 AM Changeset in webkit [203219] by jer.noble@apple.com
  • 4 edits in trunk

REGRESSION (r202918): LayoutTest media/video-main-content-allow-then-deny.html is flaky, failing almost every time on El Capitan
​https://bugs.webkit.org/show_bug.cgi?id=159533

Reviewed by Eric Carlson.

Source/WebCore:

Move the contents of mainContentCheckTimerFired() into updateIsMainContent() so that the
results of changing the m_isMainContent ivar are acted upon no matter why m_isMainContent
changes.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::mainContentCheckTimerFired):
(WebCore::MediaElementSession::updateIsMainContent):

LayoutTests:

  • platform/mac/TestExpectations:
12:29 AM Changeset in webkit [203218] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests

Rebaseline test after r203204 and r203207.

  • js/typed-array-mutated-during-set-expected.txt:
12:05 AM Changeset in webkit [203217] by achristensen@apple.com
  • 14 edits in trunk/Source

Modernize WebSocket handle
​https://bugs.webkit.org/show_bug.cgi?id=159750

Reviewed by Brady Eidson.

Source/WebCore:

No new tests. No change in behavior.
This patch just removes ThreadableWebSocketChannel::InvalidMessage which is never used
and makes our use of SocketStreamHandleClient a reference instead of a pointer.

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

(WebCore::WebSocket::send):

  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::connect):

  • platform/network/SocketStreamHandleBase.cpp:

(WebCore::SocketStreamHandleBase::SocketStreamHandleBase):
(WebCore::SocketStreamHandleBase::send):
(WebCore::SocketStreamHandleBase::disconnect):
(WebCore::SocketStreamHandleBase::sendPendingData):
(WebCore::SocketStreamHandleBase::setClient): Deleted.

  • platform/network/SocketStreamHandleBase.h:

(WebCore::SocketStreamHandleBase::~SocketStreamHandleBase):
(WebCore::SocketStreamHandleBase::bufferedAmount):
(WebCore::SocketStreamHandleBase::client):

  • platform/network/cf/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

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

  • platform/network/curl/SocketStreamHandle.h:

(WebCore::SocketStreamHandle::create):

  • platform/network/curl/SocketStreamHandleCurl.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::readData):
(WebCore::SocketStreamHandle::didReceiveData):
(WebCore::SocketStreamHandle::didOpenSocket):
(WebCore::SocketStreamHandle::createCopy):

  • platform/network/soup/SocketStreamHandle.h:
  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::~SocketStreamHandle):
(WebCore::SocketStreamHandle::connected):
(WebCore::SocketStreamHandle::connectedCallback):
(WebCore::SocketStreamHandle::readBytes):
(WebCore::SocketStreamHandle::didFail):
(WebCore::SocketStreamHandle::writeReady):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::beginWaitingForSocketWritability):

Source/WebKit2:

  • UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp:

(WebKit::connectionCallback):

Jul 13, 2016:

11:36 PM Changeset in webkit [203216] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

[GLib] Use a GSource instead of a thread to poll memory pressure eventFD in linux implementation
​https://bugs.webkit.org/show_bug.cgi?id=159346

Reviewed by Antonio Gomes.

The eventFD file descriptor is pollable, so it would be much better to use a poll instead of a blocking read in
a secondary thread and then communicate back to the main thread. This is very easy to do with GSource in GLib,
so we could use that when GLib is available and keep the current implementation as a fallback.

  • platform/MemoryPressureHandler.cpp:

(WebCore::m_holdOffTimer): Use a RunLoop timer.

  • platform/MemoryPressureHandler.h:
  • platform/linux/MemoryPressureHandlerLinux.cpp:

(WebCore::MemoryPressureHandler::EventFDPoller::EventFDPoller): Helper class do the eventFD polling.
(WebCore::MemoryPressureHandler::logErrorAndCloseFDs): Check if file descriptors are -1 not 0.
(WebCore::MemoryPressureHandler::install): Return early also if the hold off timer is active. Use EventFDPoller
to do the polling.
(WebCore::MemoryPressureHandler::uninstall): Stop the hold off timer and clear the EventFDPoller.

11:34 PM Changeset in webkit [203215] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r202273): [GTK] Redirected X window is resized to the previous size on size allocate
​https://bugs.webkit.org/show_bug.cgi?id=159551

Reviewed by Michael Catanzaro.

In r202273 I added webkitWebViewBaseResizeRedirectedWindow() helper to remove duplicated code in all places
where we were resizing the redirected window to the current drawing area size. But on size allocate, we were
updating the redirected window first, and then the drawing area, to ensure that when the drawing area notifies
the web process the redirected window is already at the new size. This regression doesn't have any visual
effect, because we are ensure the right size always before rendering, but there's a small extra resize in this case.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseSizeAllocate): Resize the redirected window before updating the drawing area size.

11:17 PM Changeset in webkit [203214] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Test WTF.StringViewIterators is crashing since r203119
​https://bugs.webkit.org/show_bug.cgi?id=159710

Reviewed by Darin Adler.

There are two problems in the test case added in r203119. First is that it's testing
StringView::CodeUnits::Iterator instead of StringView::CodePoints::Iterator, and second is that
StringView::codePoints() returns a temporary, so the iterator created from the temporary ends up pointing to a
const reference to the string view member of the deleted CodePoints object.

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

10:24 PM Changeset in webkit [203213] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Fix the magic numbers for ARM traditional in InlineAccess.h
​https://bugs.webkit.org/show_bug.cgi?id=159708

Reviewed by Saam Barati.

  • bytecode/InlineAccess.h:

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

9:55 PM Changeset in webkit [203212] by fred.wang@free.fr
  • 25 edits in trunk/LayoutTests

Rebaseline EFL and Windows MathML tests after r203171

Unreviewed test gardening.

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

  • platform/efl/mathml/opentype/horizontal-expected.txt:
  • platform/efl/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/efl/mathml/opentype/large-operators-expected.txt:
  • platform/efl/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/efl/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • platform/efl/mathml/opentype/vertical-expected.txt:
  • 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.txt:
  • platform/efl/mathml/presentation/mspace-children-expected.txt:
  • platform/efl/mathml/presentation/roots-expected.txt:
  • platform/efl/mathml/radical-fallback-expected.txt:
  • platform/win/mathml/mathml-in-dashboard-expected.txt:
  • platform/win/mathml/opentype/horizontal-expected.txt:
  • platform/win/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/win/mathml/opentype/large-operators-expected.txt:
  • platform/win/mathml/opentype/opentype-stretchy-expected.txt:
  • platform/win/mathml/opentype/opentype-stretchy-horizontal-expected.txt:
  • platform/win/mathml/opentype/vertical-expected.txt:
  • platform/win/mathml/presentation/menclose-notation-default-longdiv-expected.txt:
  • platform/win/mathml/presentation/mo-stretch-expected.txt:
  • platform/win/mathml/presentation/mspace-children-expected.txt:
  • platform/win/mathml/presentation/roots-expected.txt:
  • platform/win/mathml/radical-fallback-expected.txt:
8:45 PM Changeset in webkit [203211] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

[CSS][ARMv7] :nth-child() do not reserve enough registers if it is in backtracking chain
​https://bugs.webkit.org/show_bug.cgi?id=159746
rdar://problem/26156169

Reviewed by Andreas Kling.

The generator generateElementIsNthChild() requires 6 registers in style resolution
to mark previous siblings with generateAddStyleRelationIfResolvingStyle() in the loop.

We were only reserving 5, which is a problem is the sixth is taken by the backtracking
register. x86_64 was already requiring 6 for unrelated reasons and ARM64 has so many registers
that you cannot possibly run out of them in CSS JIT.

I generalized the x86_64 path to all architectures.
I did not limit this case to style resolution because the extra register is irrelevant
in most cases. The only difference is one extra push/pop on ARMv7 if you use querySelector
with :nth-child in a backtracking chain.

This problem is covered by the existing test fast/selectors/nth-child-with-backtracking.html

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::minimumRegisterRequirements): Deleted.

8:43 PM Changeset in webkit [203210] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop unnecessary check from ContainerNode::removeChild()
​https://bugs.webkit.org/show_bug.cgi?id=159747

Reviewed by Andreas Kling.

Drop unnecessary check from ContainerNode::removeChild() to make sure that
the parent of the node being removed is |this|. We already do this check
a few lines above. The only thing that happens in between is the ref'ing
of the node, which does not cause any JS execution.

This check was introduced in r55783 because there used to be a call to
document()->removeFocusedNodeOfSubtree(child.get());
between the two checks. However, this call has been removed since then
and the extra parentNode() check was left in.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::removeChild): Deleted.

7:38 PM Changeset in webkit [203209] by dbates@webkit.org
  • 3 edits in trunk/Tools

[iOS] Copy WebKitTestRunnerInjectedBundle.bundle into PlugIns subdirectory and code sign it
​https://bugs.webkit.org/show_bug.cgi?id=159738
<rdar://problem/27304649>

Reviewed by Dan Bernstein.

The bundle WebKitTestRunnerInjectedBundle.bundle contains executable code and should be
code signed if applicable. We should also copy this bundle into the PlugIns subdirectory
of the WebKitTestRunnerApp.app bundle instead of the top-level bundle directory as the
PlugIns subdirectory is the directory where loadable bundles of an app are expected to live.

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::initializeInjectedBundlePath): Modified code to look for the
bundle WebKitTestRunnerInjectedBundle.bundle in the plugin directory of the main bundle.

7:01 PM Changeset in webkit [203208] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WTF

Addressing post-review comments after r203119
​https://bugs.webkit.org/show_bug.cgi?id=159749

Unreviewed.

  • wtf/text/StringView.h:

(WTF::StringView::CodePoints::Iterator::Iterator):
(WTF::StringView::CodePoints::Iterator::operator*):
(WTF::StringView::CodePoints::Iterator::operator==):

6:45 PM Changeset in webkit [203207] by keith_miller@apple.com
  • 3 edits in trunk/LayoutTests

Unreviewed, rebaseline tests for ES6 TypedArray behavior.

  • js/typed-array-mutated-during-set-expected.txt:
  • js/typed-array-mutated-during-set.html:
6:20 PM Changeset in webkit [203206] by msaboff@apple.com
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

YARR uses mixture of int and unsigned values to index into subject string
​https://bugs.webkit.org/show_bug.cgi?id=159744

Reviewed by Benjamin Poulain.

In most cases, we refer to characters in subject strings using a negative index from the number of
"checked" characters in a subject string. The required length is compared against the actual length
and then we use that required length as the checked amount. For example, when matching the string of
4 digits in the RegExp /abc \d{4}/, we know that need 8 characters in the subject string. We refer
to the digits part of the expression from an already checked index of 8 and use negative offsets of
-4 through -1. In many cases we used a signed int for the negative offsets. There are other cases
where we used unsigned values as the amount of negative offset to use when accessing subject characters.

Changed all occurrances of character offsets to unsigned or Checked Arithmetic unsigned values. Note
that the pre-existing Checked class is used in other places to check for under/overflow with arithmetic
operations. Those unsigned offsets are always the number of characters before (negative) from the
current checked character offset. Also added some asserts for cases where arithmetic is not protected
by other checks or with Checked<> wrapped values.

In the case of the JIT, subject characters are accessed using base with scaled index and offset
addressing. The MacroAssembler provides this addressing using the BaseIndex struct. The offset for
this struct is a 32 bit signed quantity. Since we only care about negative offsets, we really only
have 31 bits. Changed the generation of a BaseOffset address to handle the case when the offset and
scaled combination will exceed the 31 bits of negative offset. This is done by moving the base value
into a temp register and biasing the temp base and offset to smaller values so that we can emit
instructions that can reference characters without exceeding the 31 bits of negative offset.

To abstract the character address generation, put the base with scaled index and offset into
one function and used that function everywhere the YARR JIT wants to access subject characters.
Also consilidated a few cases where we were generating inline what readCharacter() does. Usually
this was due to using a different index register.

Added a new regression test.

  • tests/stress/regress-159744.js: Added regression test.

(testRegExp):

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::recordParenthesesMatch):
(JSC::Yarr::Interpreter::resetMatches):
(JSC::Yarr::Interpreter::matchParenthesesOnceEnd):
(JSC::Yarr::Interpreter::backtrackParenthesesOnceEnd):
(JSC::Yarr::ByteCompiler::closeBodyAlternative):
(JSC::Yarr::ByteCompiler::atomParenthesesSubpatternEnd):
(JSC::Yarr::ByteCompiler::atomParenthesesOnceEnd):
(JSC::Yarr::ByteCompiler::atomParenthesesTerminalEnd):
(JSC::Yarr::ByteCompiler::emitDisjunction):

  • yarr/YarrInterpreter.h:

(JSC::Yarr::ByteTerm::ByteTerm):
(JSC::Yarr::ByteTerm::BOL):
(JSC::Yarr::ByteTerm::UncheckInput):
(JSC::Yarr::ByteTerm::EOL):
(JSC::Yarr::ByteTerm::WordBoundary):
(JSC::Yarr::ByteTerm::BackReference):

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::notAtEndOfInput):
(JSC::Yarr::YarrGenerator::negativeOffsetIndexedAddress):
(JSC::Yarr::YarrGenerator::readCharacter):
(JSC::Yarr::YarrGenerator::jumpIfCharNotEquals):
(JSC::Yarr::YarrGenerator::storeToFrame):
(JSC::Yarr::YarrGenerator::generateAssertionBOL):
(JSC::Yarr::YarrGenerator::backtrackAssertionBOL):
(JSC::Yarr::YarrGenerator::generateAssertionEOL):
(JSC::Yarr::YarrGenerator::matchAssertionWordchar):
(JSC::Yarr::YarrGenerator::generateAssertionWordBoundary):
(JSC::Yarr::YarrGenerator::generatePatternCharacterOnce):
(JSC::Yarr::YarrGenerator::generatePatternCharacterFixed):
(JSC::Yarr::YarrGenerator::generatePatternCharacterGreedy):
(JSC::Yarr::YarrGenerator::backtrackPatternCharacterNonGreedy):
(JSC::Yarr::YarrGenerator::generateCharacterClassOnce):
(JSC::Yarr::YarrGenerator::generateCharacterClassFixed):
(JSC::Yarr::YarrGenerator::generateCharacterClassGreedy):
(JSC::Yarr::YarrGenerator::backtrackCharacterClassNonGreedy):
(JSC::Yarr::YarrGenerator::generate):
(JSC::Yarr::YarrGenerator::backtrack):
(JSC::Yarr::YarrGenerator::YarrGenerator):

  • yarr/YarrPattern.h:

(JSC::Yarr::PatternTerm::PatternTerm):

5:52 PM Changeset in webkit [203205] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.1.1

New tag.

5:15 PM Changeset in webkit [203204] by keith_miller@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Crashes with detached ArrayBuffers
​https://bugs.webkit.org/show_bug.cgi?id=157088
<rdar://problem/27327362>

Reviewed by Filip Pizlo.

TypedArray.prototype.fill was incorrect because it should perform
ToNumber coercion each time it tries to store the
object. Currently, we only perform the coercion once at the
beginning of the loop. If we find that we need to improve the
performance of this function, we can add a faster C++ path back
that only handles the primitive case.

This patch also moves the isNeutered() checks from put and
putByIndex into setIndex. This fixes an issue where setIndex might
store to a no longer valid offset.

  • builtins/TypedArrayPrototype.js:

(globalPrivate.typedArrayClampArgumentToStartOrEnd):
(fill):

  • runtime/JSGenericTypedArrayView.h:

(JSC::JSGenericTypedArrayView::setIndexQuickly):
(JSC::JSGenericTypedArrayView::setIndex):
(JSC::JSGenericTypedArrayView::setRangeToValue): Deleted.

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::put): Deleted.
(JSC::JSGenericTypedArrayView<Adaptor>::putByIndex): Deleted.

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncFill): Deleted.

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSTypedArrayViewPrototype::finishCreation):
(JSC::typedArrayViewProtoFuncFill): Deleted.

  • tests/stress/typedarray-fill.js:
  • tests/stress/typedarray-functions-with-neutered.js:

(defaultForArg):
(test2):
(checkArgumentsForType): Deleted.
(checkArguments): Deleted.

5:12 PM Changeset in webkit [203203] by Beth Dakin
  • 2 edits in trunk/Tools

Attempted build fix.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
5:11 PM Changeset in webkit [203202] by msaboff@apple.com
  • 3 edits
    3 adds in trunk

Some bad unicode regex escapes aren't flagged as errors
​https://bugs.webkit.org/show_bug.cgi?id=158080

Reviewed by Saam Barati.

Source/JavaScriptCore:

If we have a partial unicode escape, eg /\u{1/u or /\u12|abc/u, we
didn't check for the closing '}' and processed the unicode escape with
the hex value provided.

Added a check that we properly terminated a \u{} unicode escape.
If we fail that check and there isn't a prior error, we record that we
have an invalid unicode escape. The next existing line in the code will
terminate parsing and bubble up the error.

  • yarr/YarrParser.h:

(JSC::Yarr::Parser::parseEscape):

LayoutTests:

New tests.

  • js/regress-158080.html: Added.
  • js/script-tests/regress-158080.js: Added.
5:08 PM Changeset in webkit [203201] by jiewen_tan@apple.com
  • 3 edits
    118 adds in trunk/LayoutTests

Import W3C WebCryptoAPI tests
​https://bugs.webkit.org/show_bug.cgi?id=159636

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • WebCryptoAPI/OWNERS: Added.
  • WebCryptoAPI/README.md: Added.
  • WebCryptoAPI/WebCryptoAPI.idl: Added.
  • WebCryptoAPI/digest/digest.js: Added.

(run_test.):
(run_test.copyBuffer):
(run_test.equalBuffers):
(run_test):

  • WebCryptoAPI/digest/digest.worker.js: Added.
  • WebCryptoAPI/digest/test_digest-expected.txt: Added.
  • WebCryptoAPI/digest/test_digest.html: Added.
  • WebCryptoAPI/digest/w3c-import.log: Added.
  • WebCryptoAPI/encrypt_decrypt/aes.js: Added.

(run_test.):
(run_test.importVectorKey):
(run_test):
(run_test.equalBuffers):

  • WebCryptoAPI/encrypt_decrypt/aes_cbc.worker.js: Added.
  • WebCryptoAPI/encrypt_decrypt/aes_cbc_vectors.js: Added.

(getTestVectors):

  • WebCryptoAPI/encrypt_decrypt/aes_ctr.worker.js: Added.
  • WebCryptoAPI/encrypt_decrypt/aes_ctr_vectors.js: Added.

(getTestVectors):

  • WebCryptoAPI/encrypt_decrypt/aes_gcm.worker.js: Added.
  • WebCryptoAPI/encrypt_decrypt/aes_gcm_vectors.js: Added.

(getTestVectors):

  • WebCryptoAPI/encrypt_decrypt/rsa.js: Added.

(run_test.):
(run_test.else):
(run_test.importVectorKeys):
(run_test.copyBuffer):
(run_test.equalBuffers):
(run_test):

  • WebCryptoAPI/encrypt_decrypt/rsa.worker.js: Added.
  • WebCryptoAPI/encrypt_decrypt/rsa_vectors.js: Added.

(getTestVectors):

  • WebCryptoAPI/encrypt_decrypt/test_aes_cbc-expected.txt: Added.
  • WebCryptoAPI/encrypt_decrypt/test_aes_cbc.html: Added.
  • WebCryptoAPI/encrypt_decrypt/test_aes_ctr-expected.txt: Added.
  • WebCryptoAPI/encrypt_decrypt/test_aes_ctr.html: Added.
  • WebCryptoAPI/encrypt_decrypt/test_aes_gcm-expected.txt: Added.
  • WebCryptoAPI/encrypt_decrypt/test_aes_gcm.html: Added.
  • WebCryptoAPI/encrypt_decrypt/test_rsa_oaep-expected.txt: Added.
  • WebCryptoAPI/encrypt_decrypt/test_rsa_oaep.html: Added.
  • WebCryptoAPI/encrypt_decrypt/w3c-import.log: Added.
  • WebCryptoAPI/generateKey/failures.js: Added.

(run_test.parameterString):
(run_test.testError):
(run_test):
(run_test.invalidUsages):
(run_test.):

  • WebCryptoAPI/generateKey/failures.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_AES-CBC.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_AES-CTR.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_AES-GCM.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_AES-KW.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_ECDH.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_ECDSA.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_HMAC.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_RSA-OAEP.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_RSA-PSS.worker.js: Added.
  • WebCryptoAPI/generateKey/failures_RSASSA-PKCS1-v1_5.worker.js: Added.
  • WebCryptoAPI/generateKey/successes.js: Added.

(run_test.parameterString):
(run_test.):
(run_test.testSuccess):
(run_test):

  • WebCryptoAPI/generateKey/successes.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_AES-CBC.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_AES-CTR.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_AES-GCM.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_AES-KW.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_ECDH.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_ECDSA.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_HMAC.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_RSA-OAEP.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_RSA-PSS.worker.js: Added.
  • WebCryptoAPI/generateKey/successes_RSASSA-PKCS1-v1_5.worker.js: Added.
  • WebCryptoAPI/generateKey/test_aes-cbc-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_aes-cbc.html: Added.
  • WebCryptoAPI/generateKey/test_aes-ctr-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_aes-ctr.html: Added.
  • WebCryptoAPI/generateKey/test_failures-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures.html: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-CBC-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-CBC.html: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-CTR-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-CTR.html: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-GCM-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-GCM.html: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-KW-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_AES-KW.html: Added.
  • WebCryptoAPI/generateKey/test_failures_ECDH-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_ECDH.html: Added.
  • WebCryptoAPI/generateKey/test_failures_ECDSA-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_ECDSA.html: Added.
  • WebCryptoAPI/generateKey/test_failures_HMAC-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_HMAC.html: Added.
  • WebCryptoAPI/generateKey/test_failures_RSA-OAEP-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_RSA-OAEP.html: Added.
  • WebCryptoAPI/generateKey/test_failures_RSA-PSS-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_RSA-PSS.html: Added.
  • WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_failures_RSASSA-PKCS1-v1_5.html: Added.
  • WebCryptoAPI/generateKey/test_successes-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes.html: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-CBC-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-CBC.html: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-CTR-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-CTR.html: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-GCM-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-GCM.html: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-KW-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_AES-KW.html: Added.
  • WebCryptoAPI/generateKey/test_successes_ECDH-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_ECDH.html: Added.
  • WebCryptoAPI/generateKey/test_successes_ECDSA-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_ECDSA.html: Added.
  • WebCryptoAPI/generateKey/test_successes_HMAC-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_HMAC.html: Added.
  • WebCryptoAPI/generateKey/test_successes_RSA-OAEP-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_RSA-OAEP.html: Added.
  • WebCryptoAPI/generateKey/test_successes_RSA-PSS-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_RSA-PSS.html: Added.
  • WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5-expected.txt: Added.
  • WebCryptoAPI/generateKey/test_successes_RSASSA-PKCS1-v1_5.html: Added.
  • WebCryptoAPI/generateKey/w3c-import.log: Added.
  • WebCryptoAPI/getRandomValues.js: Added.

(run_test.):
(run_test):

  • WebCryptoAPI/getRandomValues.worker.js: Added.
  • WebCryptoAPI/idlharness-expected.txt: Added.
  • WebCryptoAPI/idlharness.html: Added.
  • WebCryptoAPI/idlharness.worker.js: Added.

(request.onload):

  • WebCryptoAPI/test_getRandomValues-expected.txt: Added.
  • WebCryptoAPI/test_getRandomValues.html: Added.
  • WebCryptoAPI/tools/generate.py: Added.
  • WebCryptoAPI/tools/w3c-import.log: Added.
  • WebCryptoAPI/util/helpers.js: Added.

(allNonemptySubsetsOf):
(objectToString.):
(objectToString):
(assert_goodCryptoKey):
(allAlgorithmSpecifiersFor):
(allValidUsages):
(allNameVariants):

  • WebCryptoAPI/util/w3c-import.log: Added.
  • WebCryptoAPI/w3c-import.log: Added.

LayoutTests:

Skip test cases for unimplemented features.

4:54 PM Changeset in webkit [203200] by Chris Dumez
  • 8 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r203199.

Broke the build

Reverted changeset:

"Crashes with detached ArrayBuffers"
​https://bugs.webkit.org/show_bug.cgi?id=157088
​http://trac.webkit.org/changeset/203199

4:38 PM Changeset in webkit [203199] by keith_miller@apple.com
  • 8 edits in trunk/Source/JavaScriptCore

Crashes with detached ArrayBuffers
​https://bugs.webkit.org/show_bug.cgi?id=157088
<rdar://problem/27327362>

Reviewed by Filip Pizlo.

TypedArray.prototype.fill was incorrect because it should perform
ToNumber coercion each time it tries to store the
object. Currently, we only perform the coercion once at the
beginning of the loop. If we find that we need to improve the
performance of this function, we can add a faster C++ path back
that only handles the primitive case.

This patch also moves the isNeutered() checks from put and
putByIndex into setIndex. This fixes an issue where setIndex might
store to a no longer valid offset.

  • builtins/TypedArrayPrototype.js:

(globalPrivate.typedArrayClampArgumentToStartOrEnd):
(fill):

  • runtime/JSGenericTypedArrayView.h:

(JSC::JSGenericTypedArrayView::setIndexQuickly):
(JSC::JSGenericTypedArrayView::setIndex):
(JSC::JSGenericTypedArrayView::setRangeToValue): Deleted.

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::put): Deleted.
(JSC::JSGenericTypedArrayView<Adaptor>::putByIndex): Deleted.

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncFill): Deleted.

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSTypedArrayViewPrototype::finishCreation):
(JSC::typedArrayViewProtoFuncFill): Deleted.

  • tests/stress/typedarray-fill.js:
  • tests/stress/typedarray-functions-with-neutered.js:

(defaultForArg):
(test2):
(checkArgumentsForType): Deleted.
(checkArguments): Deleted.

4:33 PM Changeset in webkit [203198] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Uncaught Exception: TypeError: null is not an object (evaluating 'this._contentViewContainer.currentContentView.showsFilterBar')
​https://bugs.webkit.org/show_bug.cgi?id=159696
<rdar://problem/27312356>

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
Early return if content view not visible, since the event is sent during
tab teardown and the current TimelineView may be invalid.

3:43 PM Changeset in webkit [203197] by Lucas Forschler
  • 1 delete in trunk/Websites/test-results

Remove test-results.

3:42 PM Changeset in webkit [203196] by Chris Dumez
  • 20 edits in trunk/Source/WebKit2

[WK2] Use more references for connections
​https://bugs.webkit.org/show_bug.cgi?id=159739

Reviewed by Alex Christensen.

Use more references for connections to make it more obvious they cannot
be null.

  • DatabaseProcess/DatabaseToWebProcessConnection.cpp:

(WebKit::DatabaseToWebProcessConnection::DatabaseToWebProcessConnection):

  • DatabaseProcess/DatabaseToWebProcessConnection.h:

(WebKit::DatabaseToWebProcessConnection::connection):

  • DatabaseProcess/IndexedDB/WebIDBConnectionToClient.cpp:

(WebKit::WebIDBConnectionToClient::messageSenderConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):

  • NetworkProcess/NetworkConnectionToWebProcess.h:

(WebKit::NetworkConnectionToWebProcess::connection):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::messageSenderConnection):

  • Shared/mac/CookieStorageShim.mm:

(WebKit::webKitCookieStorageCopyRequestHeaderFieldsForURL):

  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::messageSenderConnection):
(WebKit::preregisterSandboxExtensionsIfNecessary):

  • WebProcess/Databases/WebToDatabaseProcessConnection.cpp:

(WebKit::WebToDatabaseProcessConnection::WebToDatabaseProcessConnection):

  • WebProcess/Databases/WebToDatabaseProcessConnection.h:

(WebKit::WebToDatabaseProcessConnection::connection):

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerFileBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLOptionallyFileBacked):
(WebKit::BlobRegistryProxy::unregisterBlobURL):
(WebKit::BlobRegistryProxy::registerBlobURLForSlice):
(WebKit::BlobRegistryProxy::blobSize):
(WebKit::BlobRegistryProxy::writeBlobsToTemporaryFiles):

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::NetworkProcessConnection):
(WebKit::NetworkProcessConnection::writeBlobsToTemporaryFiles):

  • WebProcess/Network/NetworkProcessConnection.h:

(WebKit::NetworkProcessConnection::connection):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::remove):
(WebKit::WebLoaderStrategy::setDefersLoading):
(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::createPingHandle):

  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::messageSenderConnection):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::cookiesForDOM):
(WebKit::WebPlatformStrategies::setCookiesFromDOM):
(WebKit::WebPlatformStrategies::cookiesEnabled):
(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):
(WebKit::WebPlatformStrategies::getRawCookies):
(WebKit::WebPlatformStrategies::deleteCookie):
(WebKit::WebPlatformStrategies::addCookie):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::startDownload):
(WebKit::WebFrame::convertMainResourceLoadToDownload):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::ensureLegacyPrivateBrowsingSessionInNetworkProcess):
(WebKit::WebProcess::networkConnection):
(WebKit::WebProcess::prefetchDNS):

  • WebProcess/WebProcess.h:
3:40 PM Changeset in webkit [203195] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Move WKPreferencesRef functions to the correct file
​https://bugs.webkit.org/show_bug.cgi?id=159741

Reviewed by Sam Weinig.

Also, get rid of WKPreferencesGetPaymentsEnabled and WKPreferencesSetPaymentsEnabled.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesGetApplePayEnabled):
(WKPreferencesSetApplePayEnabled):
(WKPreferencesGetApplePayCapabilityDisclosureAllowed):
(WKPreferencesSetApplePayCapabilityDisclosureAllowed):

  • UIProcess/API/C/WKPreferencesRef.h:
  • UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WKPreferencesGetApplePayEnabled): Deleted.
(WKPreferencesSetApplePayEnabled): Deleted.
(WKPreferencesGetApplePayCapabilityDisclosureAllowed): Deleted.
(WKPreferencesSetApplePayCapabilityDisclosureAllowed): Deleted.
(WKPreferencesGetPaymentsEnabled): Deleted.
(WKPreferencesSetPaymentsEnabled): Deleted.

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

Remove duplicated TestExpectation for perf/rel-list-remove.html on ios-simulator

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
3:02 PM Changeset in webkit [203193] by mmaxfield@apple.com
  • 4 edits in trunk/LayoutTests

Test gardening for fast/text/font-face-javascript.html
​https://bugs.webkit.org/show_bug.cgi?id=156631

Unreviewed.

  • TestExpectations:
  • fast/text/font-face-javascript-expected.txt:
  • fast/text/font-face-javascript.html:
2:58 PM Changeset in webkit [203192] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Add _applePayCapabilityDisclosureAllowed SPI declaration
​https://bugs.webkit.org/show_bug.cgi?id=159740

Reviewed by Dan Bernstein.

Also, delete an old method that is no longer used.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _paymentsEnabled]): Deleted.
(-[WKWebViewConfiguration _setPaymentsEnabled:]): Deleted.

2:56 PM Changeset in webkit [203191] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.41/Source/WebCore

Merged r203172. rdar://problem/27306545

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

Marking imported/blink/storage/indexeddb/blob-valid-after-deletion.html as flaky on Mac and ios-simulator
​https://bugs.webkit.org/show_bug.cgi?id=158640

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
2:33 PM Changeset in webkit [203189] by Alan Bujtas
  • 2 edits in trunk/Source/WebKit2

Blank news article on kottke.org
​https://bugs.webkit.org/show_bug.cgi?id=159733
<rdar://problem/26743065>

Reviewed by Simon Fraser.

This patch ensures that we update the visible content rect, when Auto Layout moves the WKWebView around.
We normally expect setFrameRect to be called to position WKWebView. However Auto Layout relies on layoutSubviews,
and in order to always have up-to-date visible content rect, we need to override layoutSubviews in WKWebView.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView layoutSubviews]):

2:14 PM Changeset in webkit [203188] by commit-queue@webkit.org
  • 1 edit
    4 adds in trunk/LayoutTests

Add test verifying detached iframes cannot set IDB values
​https://bugs.webkit.org/show_bug.cgi?id=159736

Patch by Alex Christensen <​achristensen@webkit.org> on 2016-07-13
Reviewed by Brady Eidson.

We match Chrome but not Firefox in this case.

  • storage/indexeddb/detached-iframe-expected.txt: Added.
  • storage/indexeddb/detached-iframe.html: Added.
  • storage/indexeddb/resources/detached-iframe.html: Added.
  • storage/indexeddb/resources/detached-iframe.js: Added.

(done):
(unexpectedErrorCallback):
(getRequestCallback):
(dbOpenedSecondTime):
(getValueFromIDB):
(makeDetachedFrame):
(prepareDatabase):

1:52 PM Changeset in webkit [203187] by rniwa@webkit.org
  • 8 edits
    3 copies
    5 adds in trunk

REGRESSION(r202953): Clicking on input[type=file] doesn't open a file picker
​https://bugs.webkit.org/show_bug.cgi?id=159686
Source/WebCore:

Reviewed by Chris Dumez.

The bug was caused by DOMActivate event not propagating out of the user-agent shadow tree
of a file input, and FileInputType not receiving the event to open the file picker.

Made DOMActivate "composed" event which cross shadow boundaries to fix the bug. The feedback
was given back to W3C on ​https://github.com/w3c/webcomponents/issues/513#issuecomment-231851617

Test: fast/forms/file/open-file-panel.html

  • dom/Event.cpp:

(WebCore::Event::composed):

Tools:

Reviewed by Chris Dumez.

Added a code to print "OPEN FILE PANEL" in the text when runOpenPanel is called in the UI delegate.

  • WebKitTestRunner/TestController.cpp:

(WTR::runOpenPanel):
(WTR::TestController::createOtherPage):
(WTR::TestController::createWebViewWithOptions):

LayoutTests:

<rdar://problem/27263589>

Reviewed by Chris Dumez.

Added a regression test for opening a file picker on a type=file input element.

The test currently only works on WebKit2 since the support for logging "OPEN FILE PANEL"
was only added to WebKitTestRunner.

Also added WebKit2 specific expected results for some tests that tries to open file panel.

  • fast/forms/file/open-file-panel-expected.txt: Added.
  • fast/forms/file/open-file-panel.html: Added.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wk2/accessibility: Added.
  • platform/wk2/accessibility/axpress-on-aria-button-expected.txt: Copied from LayoutTests/accessibility/axpress-on-aria-button-expected.txt.
  • platform/wk2/accessibility/file-upload-button-with-axpress-expected.txt: Copied from LayoutTests/accessibility/file-upload-button-with-axpress-expected.txt.
  • platform/wk2/fast: Added.
  • platform/wk2/fast/events: Added.
  • platform/wk2/fast/events/domactivate-sets-underlying-click-event-as-handled-expected.txt: Copied from LayoutTests/fast/events/domactivate-sets-underlying-click-event-as-handled-expected.txt.
1:51 PM Changeset in webkit [203186] by Beth Dakin
  • 5 edits
    1 move
    1 add in trunk

Add more candidate tests
​https://bugs.webkit.org/show_bug.cgi?id=159730

Reviewed by Tim Horton.

Source/WebKit/mac:

Move shouldRequestCandidates from WebViewInternal to WebViewPrivate so that
we can use it in tests.

  • WebView/WebViewInternal.h:
  • WebView/WebViewPrivate.h:

Tools:

This patch re-names ViewWithEditableAreaLeak.mm to CandidateTests.mm and adds
two new tests to that file.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/focus-inputs.html: Added.
  • TestWebKitAPI/Tests/mac/CandidateTests.mm: Copied from TestWebKitAPI/Tests/mac/ViewWithEditableAreaLeak.mm.

(-[CandidateRequestFrameLoadDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/ViewWithEditableAreaLeak.mm: Removed.
1:33 PM Changeset in webkit [203185] by Lucas Forschler
  • 2 adds in trunk/Websites/test-results

Update results-safari config.

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

Merged r203172. rdar://problem/27306545

1:31 PM Changeset in webkit [203183] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.40.1-branch/Source

Versioning.

1:30 PM Changeset in webkit [203182] by bshafiei@apple.com
  • 1 copy in branches/safari-602.1.40.1-branch

New Branch.

1:26 PM Changeset in webkit [203181] by bshafiei@apple.com
  • 4 edits in tags/Safari-602.1.41

Merged r203167. rdar://problem/26358998

1:25 PM Changeset in webkit [203180] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.40-branch/Source

Versioning.

1:23 PM Changeset in webkit [203179] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

1:20 PM Changeset in webkit [203178] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.41

New tag.

1:09 PM Changeset in webkit [203177] by Lucas Forschler
  • 8 edits
    1 delete in trunk/Websites/test-results

Revert 203176.

1:04 PM Changeset in webkit [203176] by Lucas Forschler
  • 8 edits
    1 add in trunk/Websites/test-results

Update command for the results maintenance script.

1:02 PM Changeset in webkit [203175] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.7

New tag.

1:01 PM Changeset in webkit [203174] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

WebKit2 shouldn't signal custom protocol clients from the NSURLConnection loader thread.
​https://bugs.webkit.org/show_bug.cgi?id=159725
<rdar://problem/27323131>

Reviewed by Andy Estes.

WebKit2 shouldn't signal custom protocol clients from the NSURLConnection
loader thread. Instead, use the RunLoop the WKCustomProtocol was initialized
on.

  • NetworkProcess/CustomProtocols/Cocoa/CustomProtocolManagerCocoa.mm:

(-[WKCustomProtocol initWithRequest:cachedResponse:client:]):
(WebKit::dispatchOnInitializationRunLoop):
(WebKit::CustomProtocolManager::didFailWithError):
(WebKit::CustomProtocolManager::didLoadData):
(WebKit::CustomProtocolManager::didReceiveResponse):
(WebKit::CustomProtocolManager::didFinishLoading):
(WebKit::CustomProtocolManager::wasRedirectedToRequest):
(WebKit::dispatchOnResourceLoaderRunLoop): Deleted.

1:00 PM Changeset in webkit [203173] by bshafiei@apple.com
  • 4 edits in branches/safari-602.1.40-branch

Merged r203167. rdar://problem/26358998

12:17 PM Changeset in webkit [203172] by Antti Koivisto
  • 2 edits in trunk/Source/WebCore

v2: WebContent crash due to RELEASE_ASSERT(!m_inLoadPendingImages) in StyleResolver::~StyleResolver()
​https://bugs.webkit.org/show_bug.cgi?id=159722

Reviewed by Andreas Kling.

We have crashes where a StyleResolver is deleted underneath pseudoStyleForElement (key parts of the stack):

0 WebCore::StyleResolver::~StyleResolver
3 WebCore::AuthorStyleSheets::updateActiveStyleSheets
4 WebCore::Document::styleResolverChanged
5 WebKit::WebPage::viewportConfigurationChanged()
6 WebKit::WebPage::mainFrameDidLayout()
9 WebCore::FrameLoader::checkCompleted
13 WebCore::ResourceLoader::cancel
19 WebKit::WebLoaderStrategy::loadResource
24 WebCore::Style::loadPendingImage
27 WebCore::StyleResolver::pseudoStyleForElement
29 WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement
33 WebCore::Document::recalcStyle

This appears to be happening when a content blocker blocks a resource load for an image referenced from a stylesheet
and triggers synchronous cancellation of the load. With engine in suitable state this can clear style resolver.

No test, don't know how to make one. This is very timing and engine state dependent.

  • dom/AuthorStyleSheets.cpp:

(WebCore::AuthorStyleSheets::updateActiveStyleSheets):

We have an existing check here that prevents destruction of the style resolver when we are in the middle of
a style resolution. However the old inStyleRecalc() bit no longer covers the render tree update phase. Pseudo
elements are resolved during render tree update.

Fix by adding a check for inRenderTreeUpdate() bit too.

This just fixes a regression. A proper fix would be to gather all resources during style resolution
and trigger the loads afterwards.

12:14 PM Changeset in webkit [203171] by fred.wang@free.fr
  • 68 edits in trunk

Remove padding and margin around the <math> element
​https://bugs.webkit.org/show_bug.cgi?id=157989

Source/WebCore:

Reviewed by Brent Fulgham.

No new tests, already covered by existing tests.

  • css/mathml.css:

(math): Remove padding.
(math[display="block"]): Remove margin.

LayoutTests:

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

  • imported/mathml-in-html5/mathml/relations/html5-tree/href-click-1.html: Remove spacing hack.
  • imported/mathml-in-html5/mathml/relations/html5-tree/href-click-2.html: Ditto.
  • mathml/presentation/fractions-box-expected.html: Ditto.
  • mathml/presentation/fractions-box.html: Ditto.
  • mathml/presentation/href-enter.html: Ditto.
  • mathml/presentation/maction-toggle-href.html: Ditto.
  • mathml/presentation/mpadded-1-2.html: Ditto.
  • mathml/presentation/mpadded-1.html: Ditto.
  • mathml/presentation/mpadded-2.html: Ditto.
  • mathml/presentation/mpadded-3.html: Ditto.
  • mathml/presentation/mpadded-4-expected.html: Ditto.
  • mathml/presentation/mpadded-4.html: Ditto.
  • mathml/presentation/mspace-prefered-width.html: Ditto.
  • mathml/presentation/mspace-units-expected.html: Ditto.
  • mathml/presentation/mspace-units.html: Ditto.
  • mathml/presentation/mspace.html: Ditto.
  • mathml/presentation/scripts-height-expected.html: Ditto.
  • mathml/presentation/scripts-subsup-expected.html: Ditto.
  • mathml/presentation/scripts-subsup.html: Ditto.
  • mathml/presentation/scripts-underover-expected.html: Ditto.
  • mathml/presentation/scripts-underover.html: Ditto.
  • mathml/presentation/semantics-2.html: Ditto.
  • mathml/presentation/semantics-3.html: Ditto.
  • mathml/presentation/semantics-4.html: Ditto.
  • mathml/presentation/semantics-href.html: Ditto.
  • mathml/presentation/style-border-padding-background.html: Ditto.
  • platform/gtk/mathml/opentype/horizontal-expected.png: Rebaseline due to spacing change around the math tag.
  • platform/gtk/mathml/opentype/horizontal-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/horizontal-munderover-expected.png: Ditto.
  • 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.png: Ditto.
  • platform/gtk/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.png: Ditto.
  • platform/gtk/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/vertical-expected.png: Ditto.
  • platform/gtk/mathml/opentype/vertical-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/menclose-notation-default-longdiv-expected.png: Ditto.
  • platform/gtk/mathml/presentation/menclose-notation-default-longdiv-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/menclose-notation-values-expected.png: Ditto.
  • platform/gtk/mathml/presentation/menclose-notation-values-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/mo-stretch-expected.png: Ditto.
  • platform/gtk/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/mspace-children-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/roots-expected.png: Ditto.
  • platform/gtk/mathml/presentation/roots-expected.txt: Ditto.
  • platform/gtk/mathml/radical-fallback-expected.png: Ditto.
  • platform/gtk/mathml/radical-fallback-expected.txt: Ditto.
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-expected.txt: Ditto.
  • platform/ios-simulator/mathml/opentype/opentype-stretchy-horizontal-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/menclose-notation-default-longdiv-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/menclose-notation-values-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/mspace-children-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
  • platform/ios-simulator/mathml/radical-fallback-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/presentation/menclose-notation-default-longdiv-expected.txt: Ditto.
  • platform/mac/mathml/presentation/menclose-notation-values-expected.txt: Ditto.
  • platform/mac/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/mac/mathml/presentation/mspace-children-expected.txt: Ditto.
  • platform/mac/mathml/presentation/roots-expected.txt: Ditto.
  • platform/mac/mathml/radical-fallback-expected.txt: Ditto.
  • mathml/mathml-in-dashboard-expected.txt: Ditto
12:11 PM Changeset in webkit [203170] by jdiggs@igalia.com
  • 5 edits in trunk

AX: [ATK] spinbutton-crash.html fails
​https://bugs.webkit.org/show_bug.cgi?id=159723

Reviewed by Chris Fleizach.

Tools:

Implement support for AXDecrementButton and AXIncrementButton in
ATK's AccessibilityUIElement::uiElementAttributeValue().

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::uiElementAttributeValue):

LayoutTests:

In ATK, the accessible object for an input element has no children for
the text component. As a result, the spinner is the first and only child.
In AXAPI, the input element has an AXGroup child for the text component.
As a result, the spinner is the second of two children. Therefore, add a
helper method to accessibility-helper.js to retrieve the correct child
for the current platform use it in spinbutton-crash.html.

  • accessibility/spinbutton-crash.html: Modified.
  • resources/accessibility-helper.js:

(spinnerForTextInput): Added.

11:44 AM Changeset in webkit [203169] by enrica@apple.com
  • 14 edits in trunk/Source

Update supported platforms in xcconfig files to match the sdk names.
​https://bugs.webkit.org/show_bug.cgi?id=159728

Reviewed by Tim Horton.

  • Configurations/Base.xcconfig:
11:36 AM Changeset in webkit [203168] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

"requiredShippingAddressFields" has been deprecated error thrown when using "requiredBillingAddressFields"
​https://bugs.webkit.org/show_bug.cgi?id=159729
rdar://problem/27314974

Reviewed by Tim Horton.

Fix a paste-o.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::createPaymentRequest):

10:49 AM Changeset in webkit [203167] by pvollan@apple.com
  • 4 edits in trunk

[Win] DLLs are missing version information.
​https://bugs.webkit.org/show_bug.cgi?id=159349

Reviewed by Alex Christensen.

Avoid using environment variable WEBKIT_LIBRARIES when finding version stamper utility,
in case it is not defined. Instead, use the location of the perl script to find the
utility.

.:

  • Source/cmake/tools/scripts/version-stamp.pl:

WebKitLibraries:

  • win/tools/scripts/version-stamp.pl:
10:40 AM Changeset in webkit [203166] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking imported/w3c/web-platform-tests/XMLHttpRequest/send-redirect-post-upload.htm as failing on Mac and ios-sim Release WK2
​https://bugs.webkit.org/show_bug.cgi?id=159724

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
10:25 AM Changeset in webkit [203165] by Brent Fulgham
  • 3 edits
    3 adds in trunk

[WK1][iOS] Crash when WebSocket attempts to dispatch a mixed content blocker event
​https://bugs.webkit.org/show_bug.cgi?id=159680
<rdar://problem/22102028>

Reviewed by Zalan Bujtas.

Source/WebCore:

WK1 on iOS should not use RunLoop::main(). Instead, it should be dispatching events
on the WebThread.

Test: http/tests/ssl/mixedContent/insecure-websocket.html

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect): Do not use RunLoop::main() when we should be using
the WebThread.

LayoutTests:

  • http/tests/ssl/mixedContent: Added.
  • http/tests/ssl/mixedContent/insecure-websocket-expected.txt: Added.
  • http/tests/ssl/mixedContent/insecure-websocket.html: Added.
9:30 AM Changeset in webkit [203164] by commit-queue@webkit.org
  • 44 edits
    117 adds in trunk/LayoutTests

Refresh WPT tests up to c875b42
​https://bugs.webkit.org/show_bug.cgi?id=159712

Patch by Youenn Fablet <​youennf@gmail.com> on 2016-07-13
Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • resources/ImportExpectations:
  • resources/TestRepositories:
  • resources/web-platform-tests-modules.json:
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-6-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/open-url-multi-window-6.htm: Added.
  • web-platform-tests/XMLHttpRequest/responsexml-basic-expected.txt:
  • web-platform-tests/XMLHttpRequest/responsexml-basic.htm:
  • web-platform-tests/XMLHttpRequest/responsexml-document-properties-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-redirect-post-upload-expected.txt: Added.
  • web-platform-tests/XMLHttpRequest/send-redirect-post-upload.htm: Added.
  • web-platform-tests/init.py:
  • web-platform-tests/dom/events/CustomEvent-expected.txt: Added.
  • web-platform-tests/dom/events/CustomEvent.html: Added.
  • web-platform-tests/dom/events/Event-dispatch-bubbles-true-expected.txt: Added.
  • web-platform-tests/dom/events/Event-dispatch-bubbles-true.html: Added.
  • web-platform-tests/dom/events/Event-dispatch-detached-click-expected.txt: Added.
  • web-platform-tests/dom/events/Event-dispatch-detached-click.html: Added.
  • web-platform-tests/dom/events/Event-dispatch-multiple-stopPropagation-expected.txt: Added.
  • web-platform-tests/dom/events/Event-dispatch-multiple-stopPropagation.html: Added.
  • web-platform-tests/dom/events/Event-dispatch-order-expected.txt: Added.
  • web-platform-tests/dom/events/Event-dispatch-order.html: Added.
  • web-platform-tests/dom/events/Event-dispatch-throwing-expected.txt: Added.
  • web-platform-tests/dom/events/Event-dispatch-throwing.html: Added.
  • web-platform-tests/dom/events/Event-init-while-dispatching-expected.txt: Added.
  • web-platform-tests/dom/events/Event-init-while-dispatching.html: Added.
  • web-platform-tests/dom/events/Event-subclasses-constructors-expected.txt: Added.
  • web-platform-tests/dom/events/Event-subclasses-constructors.html: Added.
  • web-platform-tests/dom/events/EventListener-handleEvent-expected.txt: Added.
  • web-platform-tests/dom/events/EventListener-handleEvent.html: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-1.sub-expected.txt: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-1.sub.html: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-2.sub-expected.txt: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-2.sub.html: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-subframe-1.sub.html: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-subframe-2.sub.html: Added.
  • web-platform-tests/dom/events/EventListener-incumbent-global-subsubframe.sub.html: Added.
  • web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt: Added.
  • web-platform-tests/dom/lists/DOMTokenList-coverage-for-attributes.html: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-expected.txt:
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.html: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.svg: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.xhtml: Added.
  • web-platform-tests/dom/nodes/Document-createElement-namespace-tests/empty.xml: Added.
  • web-platform-tests/dom/nodes/ProcessingInstruction-escapes-1-expected.txt: Added.
  • web-platform-tests/dom/nodes/ProcessingInstruction-escapes-1.xhtml: Added.
  • web-platform-tests/domparsing/DOMParser-parseFromString-html-expected.txt:
  • web-platform-tests/domparsing/DOMParser-parseFromString-html.html:
  • web-platform-tests/domparsing/createContextualFragment-expected.txt: Added.
  • web-platform-tests/domparsing/createContextualFragment.html: Added.
  • web-platform-tests/domparsing/innerhtml-01-expected.txt: Added.
  • web-platform-tests/domparsing/innerhtml-01.xhtml: Added.
  • web-platform-tests/domparsing/innerhtml-03-expected.txt: Added.
  • web-platform-tests/domparsing/innerhtml-03.xhtml: Added.
  • web-platform-tests/domparsing/innerhtml-04-expected.txt: Added.
  • web-platform-tests/domparsing/innerhtml-04.html: Added.
  • web-platform-tests/domparsing/innerhtml-05-expected.txt: Added.
  • web-platform-tests/domparsing/innerhtml-05.xhtml: Added.
  • web-platform-tests/domparsing/innerhtml-06-expected.txt: Added.
  • web-platform-tests/domparsing/innerhtml-06.html: Added.
  • web-platform-tests/domparsing/innerhtml-07-expected.txt: Added.
  • web-platform-tests/domparsing/innerhtml-07.html: Added.
  • web-platform-tests/domparsing/insert_adjacent_html-expected.txt: Added.
  • web-platform-tests/domparsing/insert_adjacent_html.html: Added.
  • web-platform-tests/domparsing/insert_adjacent_html.js: Added.

(testThrowingNoParent):

  • web-platform-tests/domparsing/outerhtml-01-expected.txt: Added.
  • web-platform-tests/domparsing/outerhtml-01.html: Added.
  • web-platform-tests/domparsing/outerhtml-02-expected.txt: Added.
  • web-platform-tests/domparsing/outerhtml-02.html: Added.
  • web-platform-tests/domparsing/xml-serialization-expected.txt: Added.
  • web-platform-tests/domparsing/xml-serialization.xhtml: Added.
  • web-platform-tests/fetch/api/basic/request-head-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/request-head-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/request-head-worker.html: Added.
  • web-platform-tests/fetch/api/basic/request-head.html: Added.
  • web-platform-tests/fetch/api/basic/request-head.js: Added.

(promise_test):

  • web-platform-tests/fetch/api/basic/request-headers-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers-worker-expected.txt:
  • web-platform-tests/fetch/api/basic/request-headers.js:
  • web-platform-tests/fetch/api/basic/response-url-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/response-url-worker-expected.txt: Added.
  • web-platform-tests/fetch/api/basic/response-url-worker.html: Added.
  • web-platform-tests/fetch/api/basic/response-url.html: Added.
  • web-platform-tests/fetch/api/basic/response-url.js: Added.

(checkResponseURL):

  • web-platform-tests/fetch/api/basic/w3c-import.log:
  • web-platform-tests/fetch/api/cors/cors-basic-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-cookies-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight-worker-expected.txt:
  • web-platform-tests/fetch/api/cors/cors-preflight.js:

(corsPreflight):

  • web-platform-tests/fetch/api/cors/cors-redirect-credentials-worker-expected.txt:
  • web-platform-tests/fetch/api/credentials/authentication-basic-worker-expected.txt:
  • web-platform-tests/fetch/api/credentials/cookies-worker-expected.txt:
  • web-platform-tests/fetch/api/policies/referrer-origin-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-location-worker-expected.txt:
  • web-platform-tests/fetch/api/redirect/redirect-mode-worker-expected.txt:
  • web-platform-tests/fetch/api/request/request-init-002.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/html/dom/interfaces.html:
  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_about_blank-expected.txt: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_about_blank.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_invalid-expected.txt: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_href_invalid.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_srcdoc-expected.txt: Added.
  • web-platform-tests/html/semantics/document-metadata/the-base-element/base_srcdoc.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context-expected.txt: Added.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/document-without-browsing-context.html: Added.
  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-01-expected.txt:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/link-style-error-01.html:
  • web-platform-tests/html/semantics/document-metadata/the-link-element/stylesheet.py: Added.

(main):

  • web-platform-tests/html/semantics/document-metadata/the-link-element/w3c-import.log:
  • web-platform-tests/html/semantics/embedded-content/media-elements/video_008-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/media-elements/video_008.htm: Added.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/historical-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-canvas-element/historical.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback-subdocument.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-embed-element/embed-in-object-fallback.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/change_child.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/change_grandchild.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/change_parentage-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/change_parentage.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross_origin_child.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross_origin_grandchild.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/cross_origin_parentage.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-allowfullscreen.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-load-event-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-load-event.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_harness.js: Added.

(get_test_results.):
(get_test_results):

  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_escaping.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_helper.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_nonescaping.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_child.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_grandchild.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_parentage-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/same_origin_parentage.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-iframe-element/stash.py: Added.

(main):

  • 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/invalid-src-expected.txt: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/invalid-src.html: Added.
  • web-platform-tests/html/semantics/embedded-content/the-img-element/w3c-import.log:
  • web-platform-tests/html/semantics/forms/form-submission-0/submit-entity-body-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/form-submission-0/submit-entity-body.html: Added.
  • 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-form-element/form-indexed-element-expected.txt: Added.
  • web-platform-tests/html/semantics/forms/the-form-element/form-indexed-element.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-executed-after-shutdown-child.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-executed-after-shutdown-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-executed-after-shutdown.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/script-not-executed-after-shutdown.js: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/scripting-enabled-expected.txt: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/scripting-enabled.html: Added.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/w3c-import.log:
  • web-platform-tests/lint.whitelist:
  • web-platform-tests/streams/readable-streams/bad-strategies.https-expected.txt:
  • web-platform-tests/streams/readable-streams/bad-strategies.js:

(get string_appeared_here):
(promise_test): Deleted.

LayoutTests:

  • TestExpectations: Adding some test expectations and skipping some resource files.
9:10 AM Changeset in webkit [203163] by fred.wang@free.fr
  • 3 edits
    2 adds in trunk

The display property of many MathML elements can not be overriden by page authors
​https://bugs.webkit.org/show_bug.cgi?id=139403

Source/WebCore:

The mathml.css user agent stylesheet currently forces most MathML elements to render with
'display: block'. We remove the !important keyword so that users can override the display
property, for example to hide elements with 'display: none'. This is consistent with the
behavior for SVG or HTML elements.

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

Test: imported/mathml-in-html5/mathml/relations/css-styling/display-1.html

  • css/mathml.css:

(math):
(math[display="block"]):
(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):
(mtd > *):

LayoutTests:

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

  • imported/mathml-in-html5/mathml/relations/css-styling/display-1-expected.html: Added.
  • imported/mathml-in-html5/mathml/relations/css-styling/display-1.html: Added.
9:08 AM Changeset in webkit [203162] by commit-queue@webkit.org
  • 11 edits in trunk

[Fetch API] Response should not become disturbed on the ReadableStream creation
​https://bugs.webkit.org/show_bug.cgi?id=159714

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/response/response-stream-disturbed-1-expected.txt:

Source/WebCore:

Covered by rebased test and existing tests.

  • Modules/fetch/FetchResponse.cpp:

(WebCore::FetchResponse::stop): Making the response disturbed if cancelled.

  • Modules/fetch/FetchResponseSource.cpp:

(WebCore::FetchResponseSource::firstReadCallback): Start enqueueing as soon as first read is made.
(WebCore::FetchResponseSource::doStart): Keep the start promise unresolved so that pull is not called.
FetchResponse is a push source.

  • Modules/fetch/FetchResponseSource.h:
  • Modules/streams/ReadableStreamInternals.js:

(readFromReadableStreamReader): Calling @firstReadCallback.

  • Modules/streams/ReadableStreamSource.h:

(WebCore::ReadableStreamSource::firstReadCallback): Default implementation (does nothing).

  • Modules/streams/ReadableStreamSource.idl: Adding firstReadCallback private method.
  • bindings/js/WebCoreBuiltinNames.h: Adding @firstReadCallback.
7:48 AM Changeset in webkit [203161] by fred.wang@free.fr
  • 2 edits in trunk/LayoutTests

Update Windows expectations for two MathML tests.

Unreviewed test gardening.

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

  • platform/win/TestExpectations:
6:09 AM Changeset in webkit [203160] by clopez@igalia.com
  • 4 edits in trunk

[EFL] [GTK] Enable back crypto subtle on development builds.
​https://bugs.webkit.org/show_bug.cgi?id=159260

Reviewed by Carlos Garcia Campos.

Tools:

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

  • platform/gtk/TestExpectations: Enable back the tests that were

passing on GTK.

5:03 AM Changeset in webkit [203159] by Philippe Normand
  • 5 edits in trunk/Source/WebCore

[GStreamer][GL] crash within triggerRepaint
​https://bugs.webkit.org/show_bug.cgi?id=159552

Reviewed by Xabier Rodriguez-Calvar.

Revert the un-needed changes introduced in r203056 and use the
MainThreadNotifier without redundant checks.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::createWeakPtr):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:

(WebCore::MediaPlayerPrivateGStreamerBase::createWeakPtr): Deleted.

4:37 AM Changeset in webkit [203158] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebCore

Unreviewed. Fix GObject DOM bindings API breaks after r203047-

webkit_dom_document_set_title() and webkit_dom_html_title_element_set_text() now can raise exceptions.

  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_document_set_title):
(webkit_dom_html_title_element_set_text):

  • bindings/gobject/WebKitDOMDeprecated.h:
  • bindings/gobject/WebKitDOMDeprecated.symbols:
  • bindings/gobject/webkitdom.symbols:
  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateProperty):
(FunctionUsedToNotRaiseException):

4:00 AM Changeset in webkit [203157] by Carlos Garcia Campos
  • 8 edits in trunk/Source

[Coordinated Graphics] Remove toCoordinatedGraphicsLayer and use downcast instead
​https://bugs.webkit.org/show_bug.cgi?id=159469

Reviewed by Michael Catanzaro.

Source/WebCore:

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinatorCoordinatedGraphics::detachFromStateTree):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::scrollableAreaScrollLayerDidChange):
(WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::isCoordinatedGraphicsLayer):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::toCoordinatedLayerID):
(WebCore::CoordinatedGraphicsLayer::setShouldUpdateVisibleRect):
(WebCore::CoordinatedGraphicsLayer::removeFromParent):
(WebCore::CoordinatedGraphicsLayer::setMaskLayer):
(WebCore::CoordinatedGraphicsLayer::flushCompositingState):
(WebCore::CoordinatedGraphicsLayer::syncPendingStateChangesIncludingSubLayers):
(WebCore::CoordinatedGraphicsLayer::findFirstDescendantWithContentsRecursively):
(WebCore::CoordinatedGraphicsLayer::updateContentBuffersIncludingSubLayers):
(WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
(WebCore::CoordinatedGraphicsLayer::selfOrAncestorHasActiveTransformAnimation):
(WebCore::CoordinatedGraphicsLayer::selfOrAncestorHaveNonAffineTransforms):
(WebCore::toCoordinatedGraphicsLayer): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

Source/WebKit2:

  • WebProcess/WebPage/CoordinatedGraphics/CompositingCoordinator.cpp:

(WebKit::CompositingCoordinator::flushPendingLayerChanges):
(WebKit::CompositingCoordinator::initializeRootCompositingLayerIfNeeded):
(WebKit::CompositingCoordinator::mainContentsLayer):

3:22 AM Changeset in webkit [203156] by Csaba Osztrogonác
  • 4 edits in trunk/Source/JavaScriptCore

CLoop buildfix after r203142
​https://bugs.webkit.org/show_bug.cgi?id=159706

Unreviewed buildfix.

  • interpreter/CLoopStack.cpp:

(JSC::CLoopStack::isSafeToRecurse):

  • interpreter/CLoopStack.h:
  • interpreter/CLoopStackInlines.h:

(JSC::CLoopStack::isSafeToRecurse): Deleted.

1:36 AM Changeset in webkit [203155] by Carlos Garcia Campos
  • 9 edits
    1 copy in trunk/Source

[GTK] WebKitGtk+ uses too many file descriptors
​https://bugs.webkit.org/show_bug.cgi?id=152316

Reviewed by Michael Catanzaro.

Source/WebKit2:

The problem is that we are keeping file descriptors open in SharedMemory objects. Those objects can be kept
alive for a long time, for example in case of cached resources sent from the network process as shareable
resources. The thing is that we keep the file descriptor in the SharedMemory object only to be able to create a
Handle, duplicating the file descriptor. However, we are also assuming that we create handles for SharedMemory
objects created by another handle which is wrong. SharedMemory objects are created to map a file or data and
then a handle is created to send it to another process, or to map an existing file or data for a given handle
received from another process. They can also be created to wrap another map, but in that case we don't own the
file descritor nor the mapped data. So, after mapping from a handle, we no longer need the file descriptor, and
it can be closed to release it, while the mapped memory data will still be alive until munmap() is called. This
drastically reduces the amount of file descriptors used by WebKitGTK+.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::readBytesFromSocket): Use setCloseOnExec().
(IPC::Connection::createPlatformConnection): Ditto.

  • Platform/SharedMemory.h:
  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::map): Close the file descriptor right after mmap.
(WebKit::SharedMemory::~SharedMemory): Close the file descriptor only if it hasn't been closed yet.
(WebKit::SharedMemory::createHandle): Add an ASSERT to ensure we only try to create a handle for SharedMemory
objects having a valid file descriptor. Use dupCloseOnExec() to duplicate the handle and set the close on exec flag.

  • UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:

(WebKit::ProcessLauncher::launchProcess): Use setCloseOnExec().

Source/WTF:

Add helper functions to duplicate a file descriptor setting close on exec flag, and also to set close on exec
flag to an existing file descriptor.

  • wtf/UniStdExtras.h:
  • wtf/UniStdExtras.cpp

(WTF::setCloseOnExec):
(WTF::dupCloseOnExec):

1:21 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:21 AM Changeset in webkit [203154] by fred.wang@free.fr
  • 6 edits in trunk/LayoutTests

Update MathML expectations on EFL and Windows ports.

Unreviewed test gardening.

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

  • platform/efl/mathml/opentype/horizontal-expected.txt:
  • platform/efl/mathml/opentype/horizontal-munderover-expected.txt:
  • platform/win/TestExpectations:
  • platform/win/mathml/opentype/horizontal-expected.txt:
  • platform/win/mathml/opentype/horizontal-munderover-expected.txt:

Jul 12, 2016:

11:44 PM Changeset in webkit [203153] by commit-queue@webkit.org
  • 5 edits in trunk

[Fetch API] isRedirected should be conveyed in workers
​https://bugs.webkit.org/show_bug.cgi?id=159676

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

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/redirect/redirect-method-worker-expected.txt:

Source/WebCore:

Passing isRedirected value between threads.
Rebasing corresponding worker test, even though it is currently skipped (due to crashing flakiness).

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::crossThreadData):
(WebCore::ResourceResponseBase::fromCrossThreadData):

  • platform/network/ResourceResponseBase.h:
10:45 PM Changeset in webkit [203152] by Lucas Forschler
  • 1 edit in trunk/Websites/test-results/init-database.sql

Fix SQL: quote hyphenated string.

9:50 PM Changeset in webkit [203151] by eric.carlson@apple.com
  • 6 edits
    2 adds in trunk

REGRESSION (r202509): media controls controls enabled AirPlay placeholder is shown
​https://bugs.webkit.org/show_bug.cgi?id=159685
<rdar://problem/27198899>

Reviewed by Dean Jackson.

Source/WebCore:

Test: media/controls/airplay-controls.html

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.shouldShowControls): Split some of the logic out of shouldHaveControls.
(Controller.prototype.shouldHaveControls): Having controls != showing controls.
(Controller.prototype.updateControls): Call shouldShowControls, not shouldHaveControls.
(Controller.prototype.updateWirelessPlaybackStatus): Add 'appletv' to the class when active.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus): Call ensureMediaControlsShadowRoot
in case the controls haven't been created yet.

LayoutTests:

  • media/controls/airplay-controls-expected.txt: Added.
  • media/controls/airplay-controls.html: Added.
  • media/controls/controls-test-helpers.js:

(ControlsTest.prototype.get currentState): Put a try block around the call to get the current
status in case it fails.

  • platform/mac/TestExpectations: Skip the new test on Yosemite where AirPlay doesn't work.
9:47 PM Changeset in webkit [203150] by fred.wang@free.fr
  • 8 edits
    1 copy
    1 add in trunk/Source/WebCore

Move parsing of mpadded attributes to a MathMLPaddedElement class
​https://bugs.webkit.org/show_bug.cgi?id=159620

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

No new tests, behavior is unchanged.

  • CMakeLists.txt: Add MathMLPaddedElement files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLAllInOne.cpp: Ditto.
  • mathml/MathMLInlineContainerElement.cpp: Remove handling of mpadded.
  • mathml/MathMLPaddedElement.cpp: Added.

(WebCore::MathMLPaddedElement::MathMLPaddedElement):
(WebCore::MathMLPaddedElement::create):
(WebCore::MathMLPaddedElement::width): Expose width attribute as a MathMLLength until mpadded
pseudo-units are supported.
(WebCore::MathMLPaddedElement::height): Ditto.
(WebCore::MathMLPaddedElement::depth): Ditto
(WebCore::MathMLPaddedElement::lspace): Ditto.
(WebCore::MathMLPaddedElement::voffset): Ditto.
(WebCore::MathMLPaddedElement::parseAttribute): Make length attribute dirty.
(WebCore::MathMLPaddedElement::createElementRenderer): Moved code from MathMLInlineContainerElement.

  • mathml/MathMLPaddedElement.h: Added.
  • mathml/mathtags.in: Map mapdded to MathMLPaddedElement.
  • rendering/mathml/RenderMathMLPadded.cpp:

(WebCore::RenderMathMLPadded::resolveWidth): Helper function to resolve width.
(WebCore::RenderMathMLPadded::resolveAttributes): Helper function to resolve all attributes.
(WebCore::RenderMathMLPadded::computePreferredLogicalWidths): Use resolveWidth.
(WebCore::RenderMathMLPadded::layoutBlock): Use resolveAttributes.

  • rendering/mathml/RenderMathMLPadded.h: Add new helper functions to access attributes from

the MathMLPaddedElement class.

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

[Cocoa] Simulated memory warning doesn't trigger libcache purge.
<​https://webkit.org/b/159688>

Reviewed by Chris Dumez.

Since simulated memory warnings will have the "is under memory pressure" flag set,
we were skipping the libcache purge call.

Add a separate flag that tracks whether we're under simulated pressure, and always
prod libcache in that case.

  • platform/MemoryPressureHandler.h:
  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::platformReleaseMemory):
(WebCore::MemoryPressureHandler::install):

8:30 PM Changeset in webkit [203148] by Lucas Forschler
  • 2 edits
    2 adds in trunk/Websites/test-results

<rdar://problem/22524456> Mitigate performance degradation of the flakiness dashboard

Rubber-stamped by Dean Johnson.

  • init-database.sql:

Rewrite the init-database.sql file to allow for table partitioning, based on insert date.
Some important things to note:

The main results table is unchanged, but will no longer contain any rows.
Partitioned tables will be generated on demand, and will inherit from 'results'
It is possible to query the 'results' table directly, and that will get data from all child tables.
This should keep us from requiring any client side code changes.


  • public_partition_maintenance: Added.

Maintenance script which will be called on a nightly schedule to purge expired data.
This data will be exported and compressed to a sub-folder, then dropped from the database.
I'm not sure how big it will be, so we'll likely need to keep an eye on it.


  • test-database.sql: Added.

Simple helper function to test that results partitions are created/deleted correctly.

6:25 PM Changeset in webkit [203147] by benjamin@webkit.org
  • 9 edits
    3 adds
    6 deletes in trunk

[JSC] Array.prototype.join() fails some conformance tests
​https://bugs.webkit.org/show_bug.cgi?id=159657

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

Source/JavaScriptCore:

There were a couple of failures:
-separator.toString() was called *before* we get the length

and process ToLength() on it.

-We were using toUInt32() on length instead of ToLength(),

failing on big integers and various negative numbers.

Additionally, I replaced the "fast" ArrayStorage path
by a fully generic implementation that does not depends on StringJoiner.

The reason is StringJoiner was doing poorly on sparse objects
in certain cases.
If you have a sparse object with a length > INT_MAX but very few
indices defined, and you join on the empty string, it should be possible
to join the array (albeit very slowly). With StringJoiner, we fail
because we try to allocate > INT_MAX empty strings in a contiguous vector.

  • runtime/ArrayPrototype.cpp:

(JSC::slowJoin):
(JSC::canUseFastJoin):
(JSC::fastJoin):
(JSC::arrayProtoFuncJoin):
(JSC::join): Deleted.

  • runtime/JSArray.h:

(JSC::toLength):

Source/WTF:

  • wtf/text/AtomicString.cpp:

(WTF::AtomicString::number):

  • wtf/text/AtomicString.h:

LayoutTests:

I removed 3 sputnik tests that are incorrect in the latest spec.
In ES5, Array.prototype.join() was using ToUint32 on the argument:

​https://es5.github.io/#x15.4.4.5

In ES6, the function uses ToLength:

​https://tc39.github.io/ecma262/#sec-array.prototype.join

The test use Infinity and very large integer as the length.
They are guaranteed to time out or run out of memory.
Even if we waited the hours it takes to run this, the results would be different
from what the tests expect.

  • js/array-join-expected.txt: Added.
  • js/array-join.html: Added.
  • js/script-tests/array-join.js: Added.
6:24 PM Changeset in webkit [203146] 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:
5:55 PM Changeset in webkit [203145] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

[iOS WK2] After zooming and when under memory pressure, page tiles sometimes don't redraw while panning
​https://bugs.webkit.org/show_bug.cgi?id=159697
rdar://problem/26314075

Reviewed by Benjamin Poulain.

When under memory pressure, and after pinching back to minimum scale, WebPage::updateVisibleContentRects()
would sometimes always bail under the "boundedScale != currentScale..." condition.

This happened because the visibleContentRectUpdateInfo.scale() is a double, but m_page->pageScaleFactor()
is a float, and the constraining between min and max scale (which are doubles) caused boundedScale
to be always different from currentScale.

Fix by using floats throughout.

No test because there's no way to simulate memory pressure for testing.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::updateVisibleContentRects):

5:45 PM Changeset in webkit [203144] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: C Loop build fix after r203142.

Not reviewed.

  • interpreter/CLoopStackInlines.h:

(JSC::CLoopStack::isSafeToRecurse):

5:20 PM Changeset in webkit [203143] by Ryan Haddad
  • 8 edits
    2 copies
    4 adds
    3 deletes in trunk

Unreviewed, rolling out r203131.
​https://bugs.webkit.org/show_bug.cgi?id=159698

This change caused an existing LayoutTest to time out on debug
testers (Requested by ryanhaddad on #webkit).

Reverted changeset:

"[JSC] Array.prototype.join() fails some conformance tests"
​https://bugs.webkit.org/show_bug.cgi?id=159657
​http://trac.webkit.org/changeset/203131

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

5:19 PM Changeset in webkit [203142] by mark.lam@apple.com
  • 23 edits
    1 add in trunk

We should use different stack limits for stack checks from JS and host code.
​https://bugs.webkit.org/show_bug.cgi?id=159442
<rdar://problem/26889188>

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

We have 2 stack reservedZoneSizes:

  1. Options::softReservedZoneSize()
  2. Options::reservedZoneSize()

Respectively, there are used to define 2 stack limits based on these reserved
zone sizes:

  1. VM::m_softStackLimit
  2. VM::m_stackLimit

Options::reservedZoneSize() is the amount of the stack space that JSC guarantees
to the VM and client host code for it's use. Host code that has well known
stack usage characteristics (i.e. doesn't call arbitrary code) may do stack
checks against the VM::m_stackLimit limit (which is computed using
Options::reservedZoneSize()).

Options::softReservedZoneSize() is a more conservative amount of reserved stack
space. This is used to compute the VM::m_softStackLimit limit. Any code that
is difficult to have its stack usage characterized (i.e. may call arbitrary code)
may need more stack space for its work. Hence, these should do stack checks
against the VM::m_softStackLimit limit.

JS code and host code that may call into JS code falls into the category of code
that may call arbitrary code. Hence, they should do stack checks against the
VM::m_softStackLimit limit.

Accordingly, the VM now provides 2 recursion check functions:

  1. VM::isSafeToRecurseSoft() will do a stack check against VM::m_softStackLimit. In addition, for C Loop builds, VM::isSafeToRecurseSoft() will also check the CLoopStack against VM::m_cloopStackLimit.
  1. VM::isSafeToRecurse() will do a stack check against VM::m_stackLimit.

Also added a promise-infinite-recursion-should-not-crash.js test.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitNodeInTailPosition):
(JSC::BytecodeGenerator::emitNodeInConditionContext):

  • interpreter/CLoopStack.cpp:

(JSC::CLoopStack::grow):

  • interpreter/CLoopStack.h:

(JSC::CLoopStack::size):

  • interpreter/CLoopStackInlines.h:

(JSC::CLoopStack::ensureCapacityFor):
(JSC::CLoopStack::isSafeToRecurse):
(JSC::CLoopStack::topOfFrameFor):

  • interpreter/CachedCall.h:

(JSC::CachedCall::CachedCall):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • parser/Parser.cpp:
  • runtime/Options.h:
  • runtime/ProxyObject.cpp:

(JSC::performProxyGet):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::performHasProperty):
(JSC::ProxyObject::getOwnPropertySlotCommon):
(JSC::ProxyObject::performPut):
(JSC::performProxyCall):
(JSC::performProxyConstruct):
(JSC::ProxyObject::performDelete):
(JSC::ProxyObject::performPreventExtensions):
(JSC::ProxyObject::performIsExtensible):
(JSC::ProxyObject::performDefineOwnProperty):
(JSC::ProxyObject::performGetOwnPropertyNames):
(JSC::ProxyObject::performSetPrototype):
(JSC::ProxyObject::performGetPrototype):

  • runtime/RegExp.cpp:

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

  • runtime/StringRecursionChecker.h:

(JSC::StringRecursionChecker::performCheck):

  • runtime/VM.cpp:

(JSC::VM::setStackPointerAtVMEntry):
(JSC::VM::updateSoftReservedZoneSize):
(JSC::preCommitStackMemory):
(JSC::VM::updateStackLimits):
(JSC::VM::updateStackLimit): Deleted.

  • runtime/VM.h:

(JSC::VM::stackLimit):
(JSC::VM::softStackLimit):
(JSC::VM::addressOfSoftStackLimit):
(JSC::VM::setCLoopStackLimit):
(JSC::VM::isSafeToRecurse):
(JSC::VM::lastStackTop):
(JSC::VM::setException):

  • runtime/VMInlines.h:

(JSC::VM::ensureStackCapacityFor):
(JSC::VM::isSafeToRecurseSoft):
(JSC::VM::shouldTriggerTermination):

  • tests/stress/promise-infinite-recursion-should-not-crash.js: Added.

(testPromise):
(promiseFunc):

  • yarr/YarrPattern.cpp:

Tools:

In ​http://trac.webkit.org/r203067, we limited the amount of stack that tests will
run with to keep stack overflow tests sane. Turns out, we also need to teach the
LayoutTestRelay to pass env vars over to the iOS simulator. This is needed in
order to keep the js/regress-139548.html test happy with this patch.

Also fixed up run_webkit_tests.py to explicitly pass an int size value for the
JSC_maxPerThreadStackUsage option. Otherwise, it will pass a float value.

  • LayoutTestRelay/LayoutTestRelay/LTRelayController.m:

(-[LTRelayController _environmentVariables]):

  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(main):

LayoutTests:

  • js/regress-141098-expected.txt:
  • js/script-tests/regress-141098.js:

(testEval):
(probeAndRecurse):

  • Gave all the test constants names.
  • Tweaked the constants to allow the test to run in the least amount of time, and also to behave consistently across all test configurations.
  • Re-enable eager tests now that the test should finish quickly.
5:05 PM Changeset in webkit [203141] by fpizlo@apple.com
  • 4 edits in trunk

platformUserPreferredLanguages on Mac should not try to put the region into the language
​https://bugs.webkit.org/show_bug.cgi?id=159693

Rubber stamped by Alexey Proskuryakov.

Source/WTF:

Currently, navigator.language is the thing that we use as the BCP-47 tag in our Intl code
when certain APIs are called without a locale argument. That mostly makes sense, and is
deeply wired into our engine.

In r200105, we made Intl aware of the region as a separate thing from the language by having
platformUserPreferredLanguages() return something like a BCP-47 tag that was
<language>-<region>. For example, if I told System Preferences that I want to speak English
but live in Poland then we'd get "en-pl". This had the effect of making Intl APIs format
dates using Polish formatting, for example.

But this is an odd change, since that same function also feeds into navigator.language.
"en-pl" isn't what we want there, since my System Preferences settings aren't supposed to
mean that I want to speak Polish-style English. There's no such thing.

It may be worthwhile to wire the region settings more elegantly into Intl, but if we do that,
it should be via a mechanism that is separate from navigator.language. So, this change simply
reverts r200105.

  • wtf/PlatformUserPreferredLanguagesMac.mm:

(WTF::httpStyleLanguageCode):
(WTF::platformUserPreferredLanguages):
(WTF::isValidICUCountryCode): Deleted.

Tools:

Revert the test change in r200105.

  • TestWebKitAPI/Tests/mac/NavigatorLanguage.mm:

(TestWebKitAPI::languageForSystemLanguage):

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

Versioning.

4:57 PM Changeset in webkit [203139] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.6

New tag.

4:57 PM Changeset in webkit [203138] by bshafiei@apple.com
  • 6 edits in branches/safari-602.1.40-branch/Source

Merged r203134. rdar://problem/27312176

4:49 PM Changeset in webkit [203137] by dino@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION (202694): Audio and Video playback controls: Cannot find a position slider to adjust playback position using VO.
​https://bugs.webkit.org/show_bug.cgi?id=159661
<rdar://problem/27285135>

Unreviewed. Slight tweak to test to hopefully avoid flakiness.

  • media/controls/default-size-should-show-scrubber-expected.txt:
  • media/controls/default-size-should-show-scrubber.html:
4:20 PM Changeset in webkit [203136] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/css/ancestor-of-hovered-element-detached.html as flaky on Mac
​https://bugs.webkit.org/show_bug.cgi?id=159173

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:16 PM Changeset in webkit [203135] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

REGRESSION(r192789): Web Inspector: Log Value context menu appears twice
​https://bugs.webkit.org/show_bug.cgi?id=159681
<rdar://problem/27304804>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-07-12
Reviewed by Brian Burg.

In r192789 contextmenu events may bubble up so that multiple handlers
may append ContextMenuItems. In nested ObjectTrees / ObjectPreviews
this could result in duplicate items. Add a flag on the bubbling event
so that we only include Object Tree context menu items for the deepest
part of the Object Tree, but still allow bubbling up to the root.

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._contextMenuHandler):
(WebInspector.ObjectPreviewView):

  • UserInterface/Views/ObjectTreeBaseTreeElement.js:

(WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler):

4:14 PM Changeset in webkit [203134] by pvollan@apple.com
  • 6 edits in trunk/Source

[Win] Fix for build error when trying to version stamp dll.
​https://bugs.webkit.org/show_bug.cgi?id=159692

Reviewed by Brent Fulgham.

Use correct path to version stamp script.

Source/JavaScriptCore:

  • CMakeLists.txt:

Source/WebKit:

  • CMakeLists.txt:

Source/WTF:

  • wtf/CMakeLists.txt:
3:43 PM Changeset in webkit [203133] by Chris Dumez
  • 8 edits in trunk/Source/WebKit2

[WK2][NetworkSession] Fix unsafe RunLoop::dispatch() in NetworkLoad constructor
​https://bugs.webkit.org/show_bug.cgi?id=159691

Reviewed by Brady Eidson.

Remove unsafe RunLoop::dispatch() in NetworkLoad constructor. It captured |this| but there
was no guarantee the NetworkLoad would still be alive by the time the lambda gets executed.

Instead, the constructor now takes a NetworkSession& parameter so that the call sites
have to retrieve the NetworkSession for a given SessionID and deal with the fact that
there may be no such NetworkSession before constructing the NetworkLoad.

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

3:21 PM Changeset in webkit [203132] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Web Inspector: ER: Copy as cURL
​https://bugs.webkit.org/show_bug.cgi?id=159380

Patch by Johan K. Jensen <​johan_jensen@apple.com> on 2016-07-12
Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

Inspired by ​https://chromium.googlesource.com/chromium/src/+/b7c1115dbae65030ad96e773d9a270465a05f5c4/third_party/WebKit/Source/devtools/front_end/network/NetworkLogView.js

This "Copy as cURL" feature only approximates the original request as only some parts of
that request is known to the frontend.

  • UserInterface/Models/Resource.js:

(WebInspector.Resource.prototype.generateCURLCommand.escapeStringPosix.escapeCharacter):
(WebInspector.Resource.prototype.generateCURLCommand.escapeStringPosix):
(WebInspector.Resource.prototype.generateCURLCommand):
(WebInspector.Resource):

  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WebInspector.ResourceTimelineDataGridNode.prototype.appendContextMenuItems):

LayoutTests:

  • http/tests/inspector/network/copy-as-curl-expected.txt: Added.
  • http/tests/inspector/network/copy-as-curl.html: Added.
3:08 PM Changeset in webkit [203131] by commit-queue@webkit.org
  • 8 edits
    3 adds
    6 deletes in trunk

[JSC] Array.prototype.join() fails some conformance tests
​https://bugs.webkit.org/show_bug.cgi?id=159657

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

Source/JavaScriptCore:

There were a couple of failures:
-separator.toString() was called *before* we get the length

and process ToLength() on it.

-We were using toUInt32() on length instead of ToLength(),

failing on big integers and various negative numbers.

Additionally, I replaced the "fast" ArrayStorage path
by a fully generic implementation that does not depends on StringJoiner.

The reason is StringJoiner was doing poorly on sparse objects
in certain cases.
If you have a sparse object with a length > INT_MAX but very few
indices defined, and you join on the empty string, it should be possible
to join the array (albeit very slowly). With StringJoiner, we fail
because we try to allocate > INT_MAX empty strings in a contiguous vector.

  • runtime/ArrayPrototype.cpp:

(JSC::slowJoin):
(JSC::canUseFastJoin):
(JSC::fastJoin):
(JSC::arrayProtoFuncJoin):
(JSC::join): Deleted.

  • runtime/JSArray.h:

(JSC::toLength):

Source/WTF:

  • wtf/text/AtomicString.cpp:

(WTF::AtomicString::number):

  • wtf/text/AtomicString.h:

LayoutTests:

I removed 3 sputnik tests that are incorrect in the latest spec.
In ES5, Array.prototype.join() was using ToUint32 on the argument:

​https://es5.github.io/#x15.4.4.5

In ES6, the function uses ToLength:

​https://tc39.github.io/ecma262/#sec-array.prototype.join

The test use Infinity and very large integer as the length.
They are guaranteed to time out or run out of memory.
Even if we waited the hours it takes to run this, the results would be different
from what the tests expect.

  • js/array-join-expected.txt: Added.
  • js/array-join.html: Added.
  • js/script-tests/array-join.js: Added.
3:06 PM Changeset in webkit [203130] by mark.lam@apple.com
  • 21 edits in trunk/Source/JavaScriptCore

More stack limit and reserved zone renaming.
​https://bugs.webkit.org/show_bug.cgi?id=159690

Rubber-stamped by Geoffrey Garen.

We should rename the following:

osStackLimitWithReserve => softStackLimit
reservedZoneSize => softReservedZoneSize
errorModeReservedZoneSize => reservedZoneSize

  • API/tests/PingPongStackOverflowTest.cpp:

(testPingPongStackOverflow):

  • dfg/DFGJITCompiler.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

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

  • interpreter/CLoopStack.cpp:

(JSC::CLoopStack::CLoopStack):
(JSC::CLoopStack::grow):
(JSC::CLoopStack::releaseExcessCapacity):
(JSC::CLoopStack::addToCommittedByteCount):
(JSC::CLoopStack::setSoftReservedZoneSize):
(JSC::CLoopStack::setReservedZoneSize): Deleted.

  • interpreter/CLoopStack.h:

(JSC::CLoopStack::size):

  • interpreter/CLoopStackInlines.h:

(JSC::CLoopStack::shrink):

  • 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/ErrorHandlingScope.cpp:

(JSC::ErrorHandlingScope::ErrorHandlingScope):
(JSC::ErrorHandlingScope::~ErrorHandlingScope):

  • runtime/ErrorHandlingScope.h:
  • runtime/Options.h:
  • runtime/RegExp.cpp:

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

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::setStackPointerAtVMEntry):
(JSC::VM::updateSoftReservedZoneSize):
(JSC::VM::updateStackLimit):
(JSC::VM::updateReservedZoneSize): Deleted.

  • runtime/VM.h:

(JSC::VM::stackPointerAtVMEntry):
(JSC::VM::softReservedZoneSize):
(JSC::VM::softStackLimit):
(JSC::VM::addressOfSoftStackLimit):
(JSC::VM::cloopStackLimit):
(JSC::VM::setCLoopStackLimit):
(JSC::VM::isSafeToRecurse):
(JSC::VM::reservedZoneSize): Deleted.
(JSC::VM::osStackLimitWithReserve): Deleted.
(JSC::VM::addressOfOSStackLimitWithReserve): Deleted.

  • runtime/VMInlines.h:

(JSC::VM::ensureStackCapacityFor):

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::startFunction):

2:51 PM Changeset in webkit [203129] by Chris Dumez
  • 4 edits
    4 adds in trunk

[WK2] Protect against bad database data in LocalStorageDatabase::importItems()
​https://bugs.webkit.org/show_bug.cgi?id=159663
<rdar://problem/18995873>

Reviewed by Benjamin Poulain.

Source/WebKit2:

Protect against bad database data in LocalStorageDatabase::importItems(). We
crash if the database contains a null key or a null value so protect against
it given that we have evidence it can happen.

With this change, I can no longer reproduce the UIProcess crash on evernote.com
that is documented at <rdar://problem/18995873>.

  • UIProcess/Storage/LocalStorageDatabase.cpp:

(WebKit::LocalStorageDatabase::importItems):

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageNullEntries.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageNullEntries.localstorage: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageNullEntries.localstorage-shm: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageNullEntries.mm: Added.

(-[LocalStorageNullEntriesMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):

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

Marking storage/indexeddb/database-close-private.html as flaky on Mac
​https://bugs.webkit.org/show_bug.cgi?id=158500

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:48 PM Changeset in webkit [203127] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking storage/indexeddb/modern/handle-user-delete.html as flaky on Yosemite Release
​https://bugs.webkit.org/show_bug.cgi?id=158741

Unreviewed test gardening.

  • platform/mac/TestExpectations:
1:31 PM Changeset in webkit [203126] by bshafiei@apple.com
  • 5 edits in branches/safari-602.1.40-branch/Source

Versioning.

1:25 PM Changeset in webkit [203125] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.5

New tag.

1:24 PM Changeset in webkit [203124] by bshafiei@apple.com
  • 10 edits in branches/safari-602.1.40-branch

Merged r203111. rdar://problem/26358998

12:40 PM Changeset in webkit [203123] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/indexeddb/deleteDatabaseNamesWithSpace.html as a flaky timeout on Mac debug.
​https://bugs.webkit.org/show_bug.cgi?id=159684

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:40 PM Changeset in webkit [203122] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Update test expectations for rdar://problem/26590623 after r203117.

  • platform/mac/TestExpectations:
12:12 PM Changeset in webkit [203121] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Marking imported/w3c/web-platform-tests/fetch/api/request/request-cache.html as flaky on Mac and ios-simulator
​https://bugs.webkit.org/show_bug.cgi?id=159683

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
11:50 AM Changeset in webkit [203120] by dino@apple.com
  • 3 edits
    2 adds in trunk

REGRESSION (202694): Audio and Video playback controls: Cannot find a position slider to adjust playback position using VO.
​https://bugs.webkit.org/show_bug.cgi?id=159661
<rdar://problem/27285135>

Reviewed by Eric Carlson.

Source/WebCore:

The change in r202694 caused MediaDocuments to not always
show their scrubber. The fix is to reduce the minimum amount
of size needed to show the scrubber.

Test: media/controls/default-size-should-show-scrubber.html

  • Modules/mediacontrols/mediaControlsApple.js: 80 pixels is enough

to show the scrubber.

LayoutTests:

Add a test that checks the scrubber is visible on a default media element.
Unfortunately this isn't quite an accurate test, since we really want to
examine a Media Document, but it's close enough.

  • media/controls/default-size-should-show-scrubber-expected.txt: Added.
  • media/controls/default-size-should-show-scrubber.html: Added.
11:48 AM Changeset in webkit [203119] by mmaxfield@apple.com
  • 4 edits in trunk

Relax ordering requirements on StringView::CodePoints iterator
​https://bugs.webkit.org/show_bug.cgi?id=159609

Reviewed by Darin Adler.

Source/WTF:

Previously, there was a requirement where if you use a CodePoints
iterator, you couldn't dereference twice in a row or increment
twice in a row. This restriction is unnecessary.

  • wtf/text/StringView.h:

(WTF::StringView::CodePoints::Iterator::Iterator):
(WTF::StringView::CodePoints::Iterator::advanceCurrentCodePoint):
(WTF::StringView::CodePoints::Iterator::operator*):
(WTF::StringView::CodePoints::Iterator::operator==):

Tools:

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

10:43 AM Changeset in webkit [203118] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fixing Tools/Scripts/run-builtins-generator-tests after ​https://trac.webkit.org/changeset/202975
​https://bugs.webkit.org/show_bug.cgi?id=159564

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-12
Reviewed by Brian Burg.

  • Scripts/webkitpy/codegen/main.py:

(BuiltinsGeneratorTests.generate_from_js_builtins): Changing --with-wrapper-files option to --wrappers.

10:17 AM Changeset in webkit [203117] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/preload/single_download_preload_runner.html as a timeout
​https://bugs.webkit.org/show_bug.cgi?id=159678

Unreviewed test gardening.

9:43 AM Changeset in webkit [203116] by fred.wang@free.fr
  • 4 edits
    2 moves in trunk/Source/WebCore

Move MathMLOperatorDictionary from rendering to DOM
​https://bugs.webkit.org/show_bug.cgi?id=159619

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

No new tests, behavior is unchanged.

  • CMakeLists.txt: Use the new location of MathMLOperatorDictionary files.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • mathml/MathMLAllInOne.cpp: Add MathMLOperatorDictionary.cpp
  • mathml/MathMLOperatorDictionary.cpp: Renamed from Source/WebCore/rendering/mathml/MathMLOperatorDictionary.cpp.
  • mathml/MathMLOperatorDictionary.h: Renamed from Source/WebCore/rendering/mathml/MathMLOperatorDictionary.h.
7:36 AM Changeset in webkit [203115] by Gyuyoung Kim
  • 14 edits in trunk

Remove ENABLE_CSS3_TEXT_LINE_BREAK flag
​https://bugs.webkit.org/show_bug.cgi?id=159671

Reviewed by Csaba Osztrogonác.

ENABLE_CSS3_TEXT_LINE_BREAK feature was implemented without guards.
​https://bugs.webkit.org/show_bug.cgi?id=89235

So this guard can be removed in build scripts.

.:

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
6:05 AM Changeset in webkit [203114] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: Use separate files for TreeOutline/TreeElement and DataGrid/DataGridNode
​https://bugs.webkit.org/show_bug.cgi?id=159659

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

  • UserInterface/Main.html:
  • UserInterface/Views/DataGrid.js:
  • UserInterface/Views/DataGridNode.js: Added.
  • UserInterface/Views/TreeElement.js: Added.
  • UserInterface/Views/TreeOutline.js:

Extra the component classes to their own file.

6:04 AM Changeset in webkit [203113] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r203059.
​https://bugs.webkit.org/show_bug.cgi?id=159673

B and R channels now swapped on desktop GL builds (Requested
by philn on #webkit).

Reverted changeset:

"Red and blue colors are swapped in video rendered through
WebGL when GSTREAMER_GL is enabled"
​https://bugs.webkit.org/show_bug.cgi?id=159621
​http://trac.webkit.org/changeset/203059

4:29 AM Changeset in webkit [203112] by Csaba Osztrogonác
  • 2 edits
    2 adds in trunk/Source/WTF

JSCOnly bulidfix after r203078
​https://bugs.webkit.org/show_bug.cgi?id=159669

Reviewed by Yusuke Suzuki.

  • wtf/PlatformJSCOnly.cmake:
  • wtf/text/jsconly/TextBreakIteratorInternalICUJSCOnly.cpp: Added.

(WTF::currentSearchLocaleID):
(WTF::currentTextBreakLocaleID):

4:14 AM Changeset in webkit [203111] by pvollan@apple.com
  • 10 edits in trunk

[Win] DLLs are missing version information.
​https://bugs.webkit.org/show_bug.cgi?id=159349

Reviewed by Brent Fulgham.

.:

The version stamping will fail if the target path has forward slashes.

  • Source/cmake/tools/scripts/version-stamp.pl: Replace forward slashes with backslashes.

Source/JavaScriptCore:

Generate autoversion.h and run perl version stamp utility.

  • CMakeLists.txt:

Source/WebKit:

Run perl version stamp utility.

  • CMakeLists.txt:

Source/WTF:

Generate autoversion.h and run perl version stamp utility.

  • wtf/CMakeLists.txt:

WebKitLibraries:

The version stamping will fail if the target path has forward slashes.

  • win/tools/scripts/version-stamp.pl: Replace forward slashes with backslashes.
2:04 AM Changeset in webkit [203110] by yoav@yoav.ws
  • 4 edits in trunk/Source/WebCore

js/dom/global-constructors-attributes.html is flaky: ResourceTiming runtime feature leaks between tests
​https://bugs.webkit.org/show_bug.cgi?id=158902

Reviewed by Benjamin Poulain.

Adds a new reset() mechanism to RuntimeEnabledFeatures so that they could be brought back to the initial state.
This reset() is then called from DumpRenderTree and WebKitTestRunner.

No new tests but hopefully current tests will be less flaky.

  • bindings/generic/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
(WebCore::RuntimeEnabledFeatures::reset):

  • bindings/generic/RuntimeEnabledFeatures.h:
  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState): reset RuntimeEnabledFeatures.

Jul 11, 2016:

11:24 PM Changeset in webkit [203109] by Gyuyoung Kim
  • 24 edits in trunk/Source

Purge PassRefPtr in platform/efl and platform/mac
​https://bugs.webkit.org/show_bug.cgi?id=159548

Reviewed by Alex Christensen.

Remove all use of PassRefPtr and clean up unnecessary tabs and spaces.
Source/WebCore:

WebKit2 codes are also changed because of setBufferForType()'s modification.

No new tests, no behavior changes.

  • platform/PasteboardStrategy.h:
  • platform/PlatformPasteboard.h:
  • platform/PlatformSpeechSynthesizer.h:
  • platform/SerializedPlatformRepresentation.h:
  • platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:

(WebCore::PlatformSpeechSynthesisProviderEfl::speak):

  • platform/efl/PlatformSpeechSynthesisProviderEfl.h:
  • platform/efl/PlatformSpeechSynthesizerEfl.cpp:

(WebCore::PlatformSpeechSynthesizer::speak):

  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::setBufferForType):

  • platform/ios/PlatformSpeechSynthesizerIOS.mm:

(SOFT_LINK_CONSTANT):
(-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:]):
(-[WebSpeechSynthesisWrapper mapSpeechRateToPlatformRate:]):
(-[WebSpeechSynthesisWrapper speakUtterance:]):
(-[WebSpeechSynthesisWrapper pause]):
(-[WebSpeechSynthesisWrapper resume]):
(-[WebSpeechSynthesisWrapper cancel]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didStartSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didPauseSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didContinueSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didCancelSpeechUtterance:]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:willSpeakRangeOfSpeechString:utterance:]):
(WebCore::PlatformSpeechSynthesizer::speak):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::write):

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::getTypes):
(WebCore::PlatformPasteboard::getPathnamesForType):
(WebCore::PlatformPasteboard::color):
(WebCore::PlatformPasteboard::copy):
(WebCore::PlatformPasteboard::setBufferForType):
(WebCore::PlatformPasteboard::setPathnamesForType):

  • platform/mac/PlatformSpeechSynthesizerMac.mm:

(-[WebSpeechSynthesisWrapper initWithSpeechSynthesizer:]):
(-[WebSpeechSynthesisWrapper speakUtterance:]):
(-[WebSpeechSynthesisWrapper pause]):
(-[WebSpeechSynthesisWrapper resume]):
(-[WebSpeechSynthesisWrapper cancel]):
(-[WebSpeechSynthesisWrapper speechSynthesizer:didFinishSpeaking:]):
(WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
(WebCore::PlatformSpeechSynthesizer::speak):

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

(WebCore::SerializedPlatformRepresentationMac::data):
(WebCore::jsValueWithValueInContext):

  • platform/mock/PlatformSpeechSynthesizerMock.cpp:

(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):
(WebCore::PlatformSpeechSynthesizerMock::speak):
(WebCore::PlatformSpeechSynthesizerMock::cancel):

  • platform/mock/PlatformSpeechSynthesizerMock.h:

Source/WebKit/mac:

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::setBufferForType):

Source/WebKit2:

WebKit2 codes are also changed because of setBufferForType()'s modification.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::setPasteboardBufferForType):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::setBufferForType):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
11:04 PM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
10:59 PM Changeset in webkit [203108] by fred.wang@free.fr
  • 9 edits
    1 copy
    1 add in trunk/Source/WebCore

Move parsing of mspace attributes to a MathMLSpaceElement class
​https://bugs.webkit.org/show_bug.cgi?id=156795

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

No new tests, already covered by existing tests.

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

(WebCore::MathMLElement::cachedMathMLLength): Helper function to returned the cached parsed
value of a MathML length and parsing the corresponding attribute value if the cache is dirty.

  • mathml/MathMLElement.h: Add a dirty boolean to MathML Length structure. Declare cachedMathMLLength.
  • mathml/MathMLSpaceElement.cpp: New class for the <mspace> element.

(WebCore::MathMLSpaceElement::MathMLSpaceElement):
(WebCore::MathMLSpaceElement::create):
(WebCore::MathMLSpaceElement::parseAttribute): Make width, height, depth attributes dirty.
(WebCore::MathMLSpaceElement::createElementRenderer):

  • mathml/MathMLSpaceElement.h: New class for the <mspace> element.

We define MathML lengths for width, height and depth attributes are on the class and expose
with the corresponding helper functions via memoization.

  • mathml/MathMLTextElement.cpp: Remove handling of mspace from this class.

(WebCore::MathMLTextElement::createElementRenderer):

  • mathml/mathtags.in: Change the interface for mspace to use the new class.
  • rendering/mathml/RenderMathMLSpace.cpp: Do not store width/height/depth values on the

renderer and instead just use the corresponding MathML lengths on the element class.
(WebCore::RenderMathMLSpace::RenderMathMLSpace): Use MathMLSpaceElement and remove member
initialization.
(WebCore::RenderMathMLSpace::computePreferredLogicalWidths): Use spaceWidth().
(WebCore::RenderMathMLSpace::spaceWidth): Helper function to resolve the width attribute value.
(WebCore::RenderMathMLSpace::getSpaceHeightAndDepth): Ditto for height and depth.
(WebCore::RenderMathMLSpace::layoutBlock): Use the helper functions to get the mspace metrics.
(WebCore::RenderMathMLSpace::firstLineBaseline): Ditto.
(WebCore::RenderMathMLSpace::updateFromElement): Deleted.
(WebCore::RenderMathMLSpace::styleDidChange): Deleted.

  • rendering/mathml/RenderMathMLSpace.h: Use MathMLSpaceElement, replace members with helper

functions and and make element() usable from a const instance.

10:06 PM Changeset in webkit [203107] by commit-queue@webkit.org
  • 7 edits
    3 adds in trunk

ECMAScript 2016: %TypedArray%.prototype.includes implementation
​https://bugs.webkit.org/show_bug.cgi?id=159385

Patch by Caio Lima <Caio Lima> on 2016-07-11
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

This patch implements the ECMAScript 2016:
%TypedArray%.prototype.includes
following spec 22.2.3.14
​https://tc39.github.io/ecma262/2016/#sec-%typedarray%.prototype.includes

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncIncludes):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::typedArrayViewProtoFuncIncludes):
(JSC::JSTypedArrayViewPrototype::finishCreation):

LayoutTests:

This patch implements test case to ECMAScript 2016:
%TypedArray%.prototype.includes implementation
following spec 22.2.3.14
​https://tc39.github.io/ecma262/2016/#sec-%typedarray%.prototype.includes

  • js/regress/script-tests/typed-array-includes.js: Added.

(assertProperError):
(testIntTypedArray):
(testFloatTypedArray):

  • js/typed-array-includes-expected.txt: Added.
  • js/typed-array-includes.html: Added.
9:47 PM Changeset in webkit [203106] by fred.wang@free.fr
  • 5 edits in trunk/Source/WebCore

Create a MathMLLength struct to handle the parsing of MathML length.
​https://bugs.webkit.org/show_bug.cgi?id=156792

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

We introduce a structure for MathML lengths that will be used in the future to store the
parsed values in the MathElement class. We also rewrite the parsing function for MathML
lengths in order to improve efficiency and code reuse. This function is moved into the
MathElement class and only the conversion to LayoutUnit remains in the renderer classes.

No new tests, already covered by existing tests.

  • mathml/MathMLElement.cpp:

(WebCore::parseNamedSpace): Helper function to parse a named space.
(WebCore::MathMLElement::parseMathMLLength): Parsing function for MathML lengths.

  • mathml/MathMLElement.h: Declare new function and structure to handle MathML lengths.
  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::toUserUnits): Helper function to resolve a MathML length.
(WebCore::parseMathMLLength): Remove the old parsing code and just use MathMLElement::parseMathMLLength and toUserUnits instead.
(WebCore::parseMathMLNamedSpace): Deleted.

  • rendering/mathml/RenderMathMLBlock.h: Remove unused function.
9:34 PM Changeset in webkit [203105] by fred.wang@free.fr
  • 2 edits in trunk/LayoutTests

Disable some a failing test.

Unreviewed test gardening.

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

  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-1.html:
9:28 PM Changeset in webkit [203104] by fred.wang@free.fr
  • 9 edits
    13 adds in trunk

Add support for @href attribute in MathML
​https://bugs.webkit.org/show_bug.cgi?id=85733

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

Source/WebCore:

We add support for the href attribute from MathML 3 but ignore the deprecated XLink version.
We also use the code from HTMLAnchorElement SVGAElement to make MathMLElement with a href
attribute behave as a link.
Finally, we adjust mathml.css based on rules from the html and svg user agent stylesheets.

Tests: mathml/mathml-in-html5/href-click-1.html

mathml/mathml-in-html5/href-click-2.html
mathml/presentation/href-enter.html
mathml/presentation/href-style.html
mathml/presentation/maction-toggle-href.html
mathml/presentation/semantics-href.html

  • css/mathml.css:

(:any-link): Set color and mouse cursor of links.
(:any-link:active): Set color of active links.
(:focus): Set outline of focused links.

  • mathml/MathMLElement.cpp:

(WebCore::MathMLElement::parseAttribute): Parse the href attribute.
(WebCore::MathMLElement::willRespondToMouseClickEvents): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::defaultEventHandler): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::canStartSelection): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::isFocusable): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::isKeyboardFocusable): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::isMouseFocusable): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::isURLAttribute): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::supportsFocus): Based on HTMLAnchorElement/SVGAElement.
(WebCore::MathMLElement::tabIndex): Based on HTMLAnchorElement/SVGAElement.

  • mathml/MathMLElement.h: Define new members.
  • mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::willRespondToMouseClickEvents): We also verify whether
the parent class will respond.

  • mathml/mathattrs.in: Add href attribute.

LayoutTests:

We import some tests from the MathML in HTML5 test suite to
test clicks on href attributes and write similar tests.
We also test tab/enter keys and user agent style with links.

  • mathml/mathml-in-html5/href-click-1.html: Added. Verify mouse click on a MathML link.
  • mathml/mathml-in-html5/href-click-1-expected.html: Added.
  • mathml/mathml-in-html5/href-click-2.html: Added.

Verify mouse click on a descendant of a MathML link.

  • mathml/mathml-in-html5/href-click-2-expected.html: Added.
  • mathml/presentation/href-enter.html: Added.

Verify tab navigation and activing link with enter.

  • mathml/presentation/href-enter-expected.html: Added.
  • mathml/presentation/href-style.html: Added.

Verify default style of links and of focused links.

  • mathml/presentation/href-style-expected.html: Added.
  • mathml/presentation/maction-toggle-href.html: Added.

Verify conflicts between maction toggle and href link.

  • mathml/presentation/maction-toggle-href-expected.html: Added.
  • mathml/presentation/semantics-href.html: Added. Verify mouse click on a <semantics> link.
  • mathml/presentation/semantics-href-expected.html: Added.
  • platform/mac/TestExpectations: Disable MathML link tests that rely on keyboard events.
  • platform/ios-simulator/TestExpectations: Ditto.
9:03 PM Changeset in webkit [203103] by fred.wang@free.fr
  • 2 edits
    2 adds
    2 deletes in trunk/LayoutTests

Replace reftest mathml/presentation/fractions-positions.html with script tests
​https://bugs.webkit.org/show_bug.cgi?id=159558

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

  • TestExpectations: Remove fractions-positions.html
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-1.html: Added.
  • mathml/presentation/fractions-positions-expected.html: Removed.
  • mathml/presentation/fractions-positions.html: Removed.
8:30 PM Changeset in webkit [203102] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: ProfileView sometimes shows Top Functions data despite Top Functions being disabled
​https://bugs.webkit.org/show_bug.cgi?id=159660
<rdar://problem/27291647>

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

  • UserInterface/Views/ScriptProfileTimelineView.js:

(WebInspector.ScriptProfileTimelineView.prototype._profileOrientationButtonClicked):
Pass the value of the setting, not the setting itself.

5:57 PM Changeset in webkit [203101] by benjamin@webkit.org
  • 7 edits in trunk

[JSC] Array.from() and Array.of() try to build objects even if "this" is not a constructor
​https://bugs.webkit.org/show_bug.cgi?id=159604

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

The spec says IsConstructor(), we were just checking if "this"
is any function.

  • builtins/ArrayConstructor.js:

(of):
(from):

LayoutTests:

  • js/array-from-expected.txt:
  • js/array-of-expected.txt:
  • js/script-tests/array-from.js:
  • js/script-tests/array-of.js:
5:16 PM Changeset in webkit [203100] by ggaren@apple.com
  • 4 edits in trunk/Source/bmalloc

Crash due to abort() calling libc++.1.dylib: std::1::thread::detach()
​https://bugs.webkit.org/show_bug.cgi?id=159655

Reviewed by Sam Weinig.

It's not entirely clear what was happening in these crashes, but our
use of detach() was 100% forward-looking, so we can just remove it for
now.

This patch removes the ability for the scavenger owner to die before
the scavenger thread dies (which was unused) and also removes the
ability for the scavenger thread to exit (which was used, but we
messed up and did thread joining lazily, so we never got any benefit
from thread exit.)

We can add these features back when we need them, and make them work then.

  • bmalloc/AsyncTask.h:

(bmalloc::Function>::AsyncTask): We start out in the running state now
because we know that starting our thread will run it.

(bmalloc::Function>::~AsyncTask): We don't support destruction anymore.

(bmalloc::Function>::runSlowCase): I removed the Exited state.

(bmalloc::Function>::threadRunLoop): I removed the Exited and
ExitRequested states.

  • bmalloc/Heap.h:
  • bmalloc/VMHeap.h:
4:53 PM Changeset in webkit [203099] by weinig@apple.com
  • 3 edits in trunk/Source/WebCore

Speech Synthesis: getting list of voices no longer works
<rdar://problem/22954120>
​https://bugs.webkit.org/show_bug.cgi?id=159656

Reviewed by Tim Horton.

  • platform/PlatformSpeechSynthesizer.h:
  • platform/mac/PlatformSpeechSynthesizerMac.mm:

Default initialize m_voiceListIsInitialized to false so it is
initialized on both Mac and iOS. Remove the explicit initialization
from the Mac.

4:44 PM Changeset in webkit [203098] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

<rdar://problem/27285599> REGRESSION: Assertion under CertificateInfo::trust() every time I focus a text field

Reviewed by Sam Weinig.

The assertion added to CertificateInfo::trust() in r203040 is wrong, and is triggered when
focusing a form field via calls to -[WKWebProcessPlugInFrame _serverTrust], so remove it.

  • platform/network/cf/CertificateInfo.h:

(WebCore::CertificateInfo::trust):

4:44 PM Changeset in webkit [203097] by Simon Fraser
  • 3 edits
    2 adds in trunk

Deleting in a text input inside an iframe causes the page to scroll incorrectly
​https://bugs.webkit.org/show_bug.cgi?id=159654
rdar://problem/26805722

Reviewed by Zalan Bujtas.

Source/WebCore:

Editor::revealSelectionAfterEditingOperation() needs the same iOS-specific reveal
behavior as was added for typing in r202295.

Test: fast/forms/ios/delete-in-input-in-iframe.html

  • editing/Editor.cpp:

(WebCore::Editor::revealSelectionAfterEditingOperation):

LayoutTests:

  • fast/forms/ios/delete-in-input-in-iframe-expected.txt: Added.
  • fast/forms/ios/delete-in-input-in-iframe.html: Added.
4:39 PM Changeset in webkit [203096] by keith_miller@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

defineProperty on a index of a TypedArray should throw if configurable
​https://bugs.webkit.org/show_bug.cgi?id=159653

Reviewed by Saam Barati.

When I fixed this before I misread the spec and thought it said we
should throw if the descriptor said the proprety is not
configurable. This is the opposite. We should throw if the
descriptor says the property is configurable.

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):

  • tests/stress/typedarray-access-monomorphic-neutered.js:
  • tests/stress/typedarray-access-neutered.js:
  • tests/stress/typedarray-configure-index.js: Added.

(assert):
(assertThrows):
(makeDescriptor):
(test):

4:34 PM Changeset in webkit [203095] by jmarcell@apple.com
  • 2 edits in trunk/Tools

SVN.create_patch should find svn-create-patch relative to the WebKit root.
​https://bugs.webkit.org/show_bug.cgi?id=159652

Reviewed by Daniel Bates.

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

(SVN.create_patch): Use WebKitFinder to find the WebKit checkout so that we can find svn-create-patch relative to it.

4:29 PM Changeset in webkit [203094] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][iOS] Intermittent crash in [UIApplication beginBackgroundTaskWithName] expiration handler
​https://bugs.webkit.org/show_bug.cgi?id=159648
<rdar://problem/27219361>

Reviewed by Anders Carlsson.

We see an intermittent crash in [UIApplication beginBackgroundTaskWithName] expiration handler.
From the traces, we noticed the expiration handler can get called on a non-main thread under
certain conditions, which our code is designed to deal with.

In particular, we get called on a non-main thread when UIKit fails to acquire the assertion.
Update our expiration handler to always notify the clients on the main thread.

  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):

4:25 PM Changeset in webkit [203093] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

Fix indentation in FrameLoaderTypes.h
​https://bugs.webkit.org/show_bug.cgi?id=159650

Reviewed by Brady Eidson.

  • loader/FrameLoaderTypes.h:
4:23 PM Changeset in webkit [203092] by mmaxfield@apple.com
  • 9 edits
    2 adds in trunk

Honor the second argument to FontFaceSet.load and FontFaceSet.check
​https://bugs.webkit.org/show_bug.cgi?id=159607
<rdar://problem/27284902>

Reviewed by Zalan Bujtas.

Source/WebCore:

This second argument is used in conjunction with the unicode-range CSS property, so that
loading from a FontFaceSet only loads the fonts which actually match the characters given.
Previously, we hadn't implemented proper support for this unicode-range property, but now
that we have implemented it, we should honor this second argument.

Test: fast/text/unicode-range-javascript.html

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::rangesMatchCodePoint):

  • css/CSSFontFace.h:
  • css/CSSFontFaceSet.cpp:

(WebCore::codePointsFromString):
(WebCore::CSSFontFaceSet::matchingFaces):

LayoutTests:

  • fast/text/font-face-set-document-expected.txt:
  • fast/text/font-face-set-document.html:
  • fast/text/font-face-set-javascript-expected.txt:
  • fast/text/font-face-set-javascript.html:
  • fast/text/unicode-range-javascript-expected.txt: Added.
  • fast/text/unicode-range-javascript.html: Added.
4:18 PM Changeset in webkit [203091] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Unable to edit fields or drag to select text in Dashboard widgets.
​https://bugs.webkit.org/show_bug.cgi?id=159647
<rdar://problem/26941698>

Reviewed by Brent Fulgham.

RenderObject::computeAbsoluteRepaintRect's first paramenter is no longer in/out. Use the return
value to set the clip on the dashboard region.

Not testable.

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::addAnnotatedRegions):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::addAnnotatedRegions):

4:05 PM Changeset in webkit [203090] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit/win

Build fix.

Unreviewed.

  • WebDropSource.cpp:

(generateMouseEvent):

3:51 PM Changeset in webkit [203089] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Tried to fix the macOS build.

  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(-[WKNavigationAction description]):

3:35 PM Changeset in webkit [203088] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Potential null dereference under DocumentLoader::mainReceivedError()
​https://bugs.webkit.org/show_bug.cgi?id=159640
<rdar://problem/27283372>

Reviewed by Brady Eidson.

Move frameLoader() null check a bit earlier in DocumentLoader::mainReceivedError()
as it was dereferenced before the check.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::mainReceivedError):

3:08 PM Changeset in webkit [203087] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

some paths in Array.prototype.splice don't account for the array not having certain indexed properties
​https://bugs.webkit.org/show_bug.cgi?id=159641
<rdar://problem/27171999>

Reviewed by Filip Pizlo and Keith Miller.

Array.prototype.splice was incorrectly putting properties on
the result array even if the |this| array didn't have those
properties. This is not the behavior of the spec. However, this
could also cause a crash because we can construct a program where
we would putByIndex on a typed array where the value we are
putting is JSValue(). This is bad because the typed array will
try to convert JSValue() into an integer.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncSplice):

  • tests/stress/array-prototype-splice-making-typed-array.js: Added.

(assert):
(test):

3:02 PM Changeset in webkit [203086] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

Cleaned up API availability.

Requested by Tim Horton.

  • UIProcess/API/Cocoa/WKNavigationAction.mm:
  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
2:34 PM Changeset in webkit [203085] by enrica@apple.com
  • 38 edits in trunk/Source

Add synthetic click origin to WKNavigationAction.
​https://bugs.webkit.org/show_bug.cgi?id=159584
rdar://problem/25610422

Reviewed by Tim Horton.

Source/WebCore:

Adding plumbing code to pass synthetic click type
through WebCore.

  • dom/Element.cpp:

(WebCore::Element::dispatchMouseEvent):
(WebCore::Element::dispatchMouseForceWillBegin):

  • dom/MouseEvent.cpp:

(WebCore::MouseEvent::create):
(WebCore::MouseEvent::MouseEvent):
(WebCore::MouseEvent::initMouseEvent):
(WebCore::MouseEvent::cloneFor):

  • dom/MouseEvent.h:

(WebCore::MouseEvent::createForBindings):
(WebCore::MouseEvent::button):
(WebCore::MouseEvent::syntheticClickType):
(WebCore::MouseEvent::buttonDown):
(WebCore::MouseEvent::setRelatedTarget):

  • dom/SimulatedClick.cpp:
  • dom/WheelEvent.cpp:

(WebCore::WheelEvent::WheelEvent):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::showContextMenuAt):

  • page/DragController.cpp:

(WebCore::createMouseEvent):
(WebCore::DragController::DragController):

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchDragEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
(WebCore::EventHandler::fakeMouseMoveEventTimerFired):

  • platform/PlatformMouseEvent.h:

(WebCore::PlatformMouseEvent::PlatformMouseEvent):
(WebCore::PlatformMouseEvent::clickCount):
(WebCore::PlatformMouseEvent::modifierFlags):
(WebCore::PlatformMouseEvent::force):
(WebCore::PlatformMouseEvent::syntheticClickType):

  • replay/SerializationMethods.cpp:

(JSC::EncodingTraits<PlatformMouseEvent>::decodeValue):

Source/WebKit/ios:

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _dragSourceEndedAt:operation:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

  • WebDropSource.cpp:

(generateMouseEvent):

Source/WebKit2:

Adds a private property to WKNavigationAction to retrieve
the origin of the synthetic click.

  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h:
  • Shared/WebEvent.h:

(WebKit::WebMouseEvent::button):
(WebKit::WebMouseEvent::menuTypeForEvent):
(WebKit::WebMouseEvent::force):
(WebKit::WebMouseEvent::syntheticClickType):

  • Shared/WebMouseEvent.cpp:

(WebKit::WebMouseEvent::WebMouseEvent):
(WebKit::WebMouseEvent::encode):
(WebKit::WebMouseEvent::decode):

  • Shared/mac/WebEventFactory.mm:

(WebKit::WebEventFactory::createWebMouseEvent):
(WebKit::WebEventFactory::createWebWheelEvent):

  • UIProcess/API/APINavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationAction.mm:

(toWKNavigationType):
(toWKSyntheticClickType):
(-[WKNavigationAction description]):
(-[WKNavigationAction sourceFrame]):
(-[WKNavigationAction request]):
(-[WKNavigationAction _syntheticClickType]):
(-[WKNavigationAction modifierFlags]):

  • UIProcess/API/Cocoa/WKNavigationActionPrivate.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _twoFingerSingleTapGestureRecognized:]):
(-[WKContentView _longPressRecognized:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::getSelectionContext):
(WebKit::WebPageProxy::handleTwoFingerTapAtPoint):
(WebKit::WebPageProxy::selectWithTwoTouches):

  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:

(WebKit::mouseButtonForMouseEvent):
(WebKit::syntheticClickTypeForMouseEvent):
(WebKit::InjectedBundleNavigationAction::modifiersForNavigationAction):
(WebKit::InjectedBundleNavigationAction::mouseButtonForNavigationAction):
(WebKit::InjectedBundleNavigationAction::syntheticClickTypeForNavigationAction):
(WebKit::InjectedBundleNavigationAction::create):
(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):

  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.h:

(WebKit::InjectedBundleNavigationAction::navigationType):
(WebKit::InjectedBundleNavigationAction::modifiers):
(WebKit::InjectedBundleNavigationAction::mouseButton):
(WebKit::InjectedBundleNavigationAction::hitTestResult):
(WebKit::InjectedBundleNavigationAction::formElement):
(WebKit::InjectedBundleNavigationAction::syntheticClickType):
(WebKit::InjectedBundleNavigationAction::shouldOpenExternalURLs):
(WebKit::InjectedBundleNavigationAction::shouldTryAppLinks):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createWindow):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNewWindowAction):
(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):
(WebKit::WebPage::contextMenuAtPointInWindow):
(WebKit::WebPage::dragEnded):
(WebKit::WebPage::simulateMouseDown):
(WebKit::WebPage::simulateMouseUp):
(WebKit::WebPage::simulateMouseMotion):
(WebKit::WebPage::setCompositionForTesting):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleSyntheticClick):
(WebKit::WebPage::completePendingSyntheticClickForContentChangeObserver):
(WebKit::WebPage::completeSyntheticClick):
(WebKit::WebPage::sendTapHighlightForNodeIfNecessary):
(WebKit::WebPage::handleTwoFingerTapAtPoint):
(WebKit::WebPage::potentialTapAtPosition):
(WebKit::WebPage::inspectorNodeSearchMovedToPosition):

2:10 PM Changeset in webkit [203084] by andersca@apple.com
  • 15 edits in trunk/Source

Able to open multiple payment sheets in Safari at the same time
​https://bugs.webkit.org/show_bug.cgi?id=159637
rdar://problem/26411339

Reviewed by Beth Dakin.

Source/WebCore:

Fold PaymentCoordinator::showPaymentUI into PaymentCoordinator::beginPaymentSession and
change the return value of the latter member function to a bool to indicate whether the
payment UI could be shown (or whether it's already showing).

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::begin):
Check the return value of beginPaymentSession.

  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::beginPaymentSession):
This now takes a payment session and returns a boolean.
(WebCore::PaymentCoordinator::showPaymentUI): Deleted.

  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/PaymentCoordinatorClient.h:
  • loader/EmptyClients.cpp:

The showPaymentUI client function now returns a bool.

Source/WebKit/mac:

Update for WebCore changes.

  • WebCoreSupport/WebPaymentCoordinatorClient.h:
  • WebCoreSupport/WebPaymentCoordinatorClient.mm:

(WebPaymentCoordinatorClient::showPaymentUI):

Source/WebKit2:

  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::showPaymentUI):
Add result out parameter. Set the result to false if isShowingPaymentUI is true, otherwise set isShowingPaymentUI to true.

(WebKit::WebPaymentCoordinatorProxy::didReachFinalState):
Set isShowingPaymentUI to false.

  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.h:
  • UIProcess/ApplePay/WebPaymentCoordinatorProxy.messages.in:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::showPaymentUI):

  • WebProcess/ApplePay/WebPaymentCoordinator.h:

The showPaymentUI message and client functions now return booleans.

2:04 PM Changeset in webkit [203083] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Crash when backspacing in number field with spin button
​https://bugs.webkit.org/show_bug.cgi?id=157830

Reviewed by Chris Fleizach.

Source/WebCore:

It's possible to access spin button parts after they've been detached from their parent, which can lead to crashes.
This adds in a number of redundant safeguards to prevent this and other cases in the future.

Test: accessibility/spinbutton-crash.html

  • accessibility/AccessibilitySpinButton.cpp:

(WebCore::AccessibilitySpinButton::incrementButton):
(WebCore::AccessibilitySpinButton::decrementButton):
(WebCore::AccessibilitySpinButton::addChildren):

LayoutTests:

  • accessibility/spinbutton-crash-expected.txt: Added.
  • accessibility/spinbutton-crash.html: Added.
1:53 PM Changeset in webkit [203082] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Possible null dereference under EventHandler::dispatchMouseEvent()
​https://bugs.webkit.org/show_bug.cgi?id=159632
<rdar://problem/27247619>

Reviewed by Andreas Kling.

FrameSelection::toNormalizedRange() can return null even when FrameSelection::isRange()
returns true so add a null check.

  • page/EventHandler.cpp:

(WebCore::EventHandler::dispatchMouseEvent):

1:48 PM Changeset in webkit [203081] by mark.lam@apple.com
  • 33 edits
    3 moves in trunk/Source/JavaScriptCore

Refactor JSStack to only be the stack data structure for the C Loop.
​https://bugs.webkit.org/show_bug.cgi?id=159545

Reviewed by Geoffrey Garen.

Changes made:

  1. Renamed JSStack to CLoopStack.
  2. Made all of CLoopStack code to conditional on #if !ENABLE(JIT) i.e. they will only be in effect for the C Loop build.
  3. Changed clients of JSStack to use new equivalent VM APIs:
    1. JSStack::ensureCapacityFor() => VM::ensureStackCapacityFor()
    2. JSStack::committedByteCount() => VM::committedStackByteCount()
  4. Made VM::updateReservedZoneSize() call CLoopStack::setReservedZoneSize() instead of calling it from all the clients of VM::updateReservedZoneSize().
  5. Removed all unnecessary references to JSStack.
  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MaxFrameExtentForSlowPathCall.h:
  • bytecode/BytecodeConventions.h:
  • dfg/DFGGraph.h:
  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry):

  • heap/Heap.cpp:

(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::willStartIterating):
(JSC::Heap::gatherJSStackRoots):
(JSC::Heap::stack): Deleted.

  • heap/Heap.h:
  • interpreter/CLoopStack.cpp: Copied from Source/JavaScriptCore/interpreter/JSStack.cpp.

(JSC::commitSize):
(JSC::CLoopStack::CLoopStack):
(JSC::CLoopStack::~CLoopStack):
(JSC::CLoopStack::grow):
(JSC::CLoopStack::gatherConservativeRoots):
(JSC::CLoopStack::sanitizeStack):
(JSC::CLoopStack::releaseExcessCapacity):
(JSC::CLoopStack::addToCommittedByteCount):
(JSC::CLoopStack::setReservedZoneSize):
(JSC::CLoopStack::committedByteCount):
(JSC::JSStack::JSStack): Deleted.
(JSC::JSStack::~JSStack): Deleted.
(JSC::JSStack::growSlowCase): Deleted.
(JSC::JSStack::gatherConservativeRoots): Deleted.
(JSC::JSStack::sanitizeStack): Deleted.
(JSC::JSStack::releaseExcessCapacity): Deleted.
(JSC::JSStack::addToCommittedByteCount): Deleted.
(JSC::JSStack::setReservedZoneSize): Deleted.
(JSC::JSStack::lowAddress): Deleted.
(JSC::JSStack::highAddress): Deleted.
(JSC::JSStack::committedByteCount): Deleted.

  • interpreter/CLoopStack.h: Copied from Source/JavaScriptCore/interpreter/JSStack.h.

(JSC::CLoopStack::containsAddress):
(JSC::CLoopStack::lowAddress):
(JSC::CLoopStack::highAddress):
(JSC::CLoopStack::reservationTop):
(JSC::JSStack::containsAddress): Deleted.
(JSC::JSStack::lowAddress): Deleted.
(JSC::JSStack::highAddress): Deleted.
(JSC::JSStack::reservationTop): Deleted.

  • interpreter/CLoopStackInlines.h: Copied from Source/JavaScriptCore/interpreter/JSStackInlines.h.

(JSC::CLoopStack::ensureCapacityFor):
(JSC::CLoopStack::topOfFrameFor):
(JSC::CLoopStack::topOfStack):
(JSC::CLoopStack::shrink):
(JSC::CLoopStack::setCLoopStackLimit):
(JSC::JSStack::ensureCapacityFor): Deleted.
(JSC::JSStack::topOfFrameFor): Deleted.
(JSC::JSStack::topOfStack): Deleted.
(JSC::JSStack::shrink): Deleted.
(JSC::JSStack::grow): Deleted.
(JSC::JSStack::setCLoopStackLimit): Deleted.

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::unsafeCallSiteIndex):
(JSC::CallFrame::currentVPC):
(JSC::CallFrame::stack): Deleted.

  • interpreter/CallFrame.h:

(JSC::ExecState::callerFrameAndPC):
(JSC::ExecState::unsafeCallerFrameAndPC):

  • interpreter/Interpreter.cpp:

(JSC::sizeOfVarargs):
(JSC::sizeFrameForForwardArguments):
(JSC::sizeFrameForVarargs):
(JSC::Interpreter::Interpreter):

  • interpreter/Interpreter.h:

(JSC::Interpreter::cloopStack):
(JSC::Interpreter::getOpcode):
(JSC::Interpreter::isCallBytecode):
(JSC::Interpreter::stack): Deleted.

  • interpreter/JSStack.cpp: Removed.
  • interpreter/JSStack.h: Removed.
  • interpreter/JSStackInlines.h: Removed.
  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::dump):

  • jit/JIT.h:
  • jit/JITOperations.cpp:
  • jit/JSInterfaceJIT.h:
  • jit/SpecializedThunkJIT.h:
  • jit/ThunkGenerators.cpp:
  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::llint_stack_check_at_vm_entry):

  • llint/LLIntThunks.cpp:
  • llint/LowLevelInterpreter.cpp:

(JSC::CLoop::execute):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::arityCheckFor):

  • runtime/ErrorHandlingScope.cpp:

(JSC::ErrorHandlingScope::ErrorHandlingScope):
(JSC::ErrorHandlingScope::~ErrorHandlingScope):

  • runtime/JSGlobalObject.h:
  • runtime/MemoryStatistics.cpp:

(JSC::globalMemoryStatistics):

  • runtime/StackAlignment.h:
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::updateReservedZoneSize):
(JSC::sanitizeStackForVM):
(JSC::VM::committedStackByteCount):

  • runtime/VM.h:

(JSC::VM::reservedZoneSize):
(JSC::VM::osStackLimitWithReserve):
(JSC::VM::addressOfOSStackLimitWithReserve):

  • runtime/VMInlines.h:

(JSC::VM::ensureStackCapacityFor):
(JSC::VM::shouldTriggerTermination):

1:22 PM Changeset in webkit [203080] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Transition and Animation sections in Visual Styles sidebar should have more spacing to their left
​https://bugs.webkit.org/show_bug.cgi?id=159633
<rdar://problem/27281805>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/VisualStyleDetailsPanel.css:

(.visual-style-property-container.animation):

1:11 PM Changeset in webkit [203079] by Ryan Haddad
  • 9 edits in trunk/Source

Unreviewed, rolling out r203064.
​https://bugs.webkit.org/show_bug.cgi?id=159642

This change causes LayoutTest crashes on WK1 ASan (Requested
by ryanhaddad on #webkit).

Reverted changeset:

"Use refs for ResourceLoaders"
​https://bugs.webkit.org/show_bug.cgi?id=159592
​http://trac.webkit.org/changeset/203064

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

12:50 PM Changeset in webkit [203078] by mmaxfield@apple.com
  • 7 edits in trunk

Implement grapheme cluster iterator on StringView
​https://bugs.webkit.org/show_bug.cgi?id=159598

Reviewed by Anders Carlsson.

This is in preparation for honoring the second argument to FontFaceSet.load().

Source/WTF:

  • wtf/text/StringView.cpp:

(WTF::StringView::GraphemeClusters::Iterator::Impl::Impl):
(WTF::StringView::GraphemeClusters::Iterator::Impl::operator++):
(WTF::StringView::GraphemeClusters::Iterator::Impl::operator*):
(WTF::StringView::GraphemeClusters::Iterator::Impl::operator==):
(WTF::StringView::GraphemeClusters::Iterator::Impl::computeIndexEnd):
(WTF::StringView::GraphemeClusters::Iterator::Iterator):
(WTF::StringView::GraphemeClusters::Iterator::~Iterator):
(WTF::StringView::GraphemeClusters::Iterator::operator*):
(WTF::StringView::GraphemeClusters::Iterator::operator==):
(WTF::StringView::GraphemeClusters::Iterator::operator!=):

  • wtf/text/StringView.h:

(WTF::StringView::GraphemeClusters::GraphemeClusters):

  • text/TextBreakIterator.cpp:

(WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator):

  • text/TextBreakIterator.h:

Tools:

  • TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::compareLoopIterations):
(TestWebKitAPI::TEST):

12:43 PM Changeset in webkit [203077] by Brent Fulgham
  • 3 edits
    2 adds in trunk

[WebGL] Check for existing buffer exists for enabled vertex array attributes before permitting glDrawArrays to execute
​https://bugs.webkit.org/show_bug.cgi?id=159590
<rdar://problem/26865535>

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/canvas/webgl/webgl-drawarrays-crash-2.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateVertexAttributes): If enabled array buffer attributes exist,
ensure that an array buffer has been bound.

LayoutTests:

  • fast/canvas/webgl/webgl-drawarrays-crash-2-expected.txt: Added.
  • fast/canvas/webgl/webgl-drawarrays-crash-2.html: Added.
12:13 PM Changeset in webkit [203076] by keith_miller@apple.com
  • 10 edits
    3 adds in trunk

STP TypedArray.subarray 5x slowdown compared to 9.1
​https://bugs.webkit.org/show_bug.cgi?id=156404
Source/JavaScriptCore:

<rdar://problem/26493032>

Reviewed by Geoffrey Garen.

This patch moves the species constructor work for
%TypedArray%.prototype.subarray to a js wrapper. By moving the
species constructor work to JS we are able to completely optimize
it out in DFG. The actual work of creating a TypedArray is still
done in C++ since we are able to avoid calling into the
constructor, which is expensive. This patch also changes the error
message when a %TypedArray%.prototype function is passed a non-typed
array this value. Finally, we used to check that the this value
had not been detached, however, this behavior was incorrect.

  • builtins/BuiltinNames.h:
  • builtins/TypedArrayPrototype.js:

(globalPrivate.typedArraySpeciesConstructor):
(subarray):

  • runtime/ConstructData.cpp:

(JSC::construct):

  • runtime/ConstructData.h:
  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):
(JSC::genericTypedArrayViewProtoFuncSubarray): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::typedArrayViewPrivateFuncLength):
(JSC::typedArrayViewPrivateFuncSubarrayCreate):
(JSC::JSTypedArrayViewPrototype::finishCreation):
(JSC::typedArrayViewProtoFuncSubarray): Deleted.

  • runtime/JSTypedArrayViewPrototype.h:

LayoutTests:

Reviewed by Geoffrey Garen.

Add new micro-benchmark for testing subarray performance with small subarray sizes.

  • js/regress/script-tests/typed-array-subarray.js: Added.

(createManySubs):
(go):

  • js/regress/typed-array-subarray-expected.txt: Added.
  • js/regress/typed-array-subarray.html: Added.
12:08 PM Changeset in webkit [203075] by n_wang@apple.com
  • 33 edits in trunk

AX: WKWebView should have API to prevent pinch-to-zoom always being allowed
​https://bugs.webkit.org/show_bug.cgi?id=158364

Reviewed by Anders Carlsson.

Source/WebCore:

Removed the internals settings for viewport force always user scalable.

Changes are covered in modified tests.

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
(WebCore::Internals::Internals):
(WebCore::Internals::composedTreeAsText):
(WebCore::Internals::setLinkPreloadSupport):
(WebCore::Internals::setViewportForceAlwaysUserScalable): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit2:

Added a property in WKWebViewConfiguration so that developers can toggle the ignoring
viewport scale limits setting.

Changes are covered in modified tests.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetResourceCachingDisabled):
(WKPageSetIgnoresViewportScaleLimits):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(shouldAllowPictureInPictureMediaPlayback):
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _navigationGestureDidEnd]):
(forceAlwaysUserScalableChangedCallback): Deleted.
(-[WKWebView _updateForceAlwaysUserScalable]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.h:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration encodeWithCoder:]):
(-[WKWebViewConfiguration initWithCoder:]):
(-[WKWebViewConfiguration copyWithZone:]):

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::setViewportConfigurationMinimumLayoutSize):
(WebKit::WebPageProxy::setForceAlwaysUserScalable):
(WebKit::WebPageProxy::setMaximumUnobscuredSize):
(WebKit::WebPageProxy::updateForceAlwaysUserScalable): Deleted.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::disableInspectorNodeSearch):
(WebKit::WebPage::setForceAlwaysUserScalable):
(WebKit::innerFrameQuad):
(WebKit::WebPage::updateForceAlwaysUserScalable): Deleted.

Tools:

Added a function in TestRunner so that we can toggle the ignoring viewport
scale limits setting. Also added a test option for that in order to change the
configuration of the webview in test.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setNavigationGesturesEnabled):
(WTR::TestRunner::setIgnoresViewportScaleLimits):
(WTR::nextUIScriptCallbackID):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

(WTR::TestRunner::shouldDecideNavigationPolicyAfterDelay):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetStateToConsistentValues):
(WTR::updateTestOptionsFromTestHeader):
(WTR::TestController::setNavigationGesturesEnabled):
(WTR::TestController::setIgnoresViewportScaleLimits):
(WTR::TestController::platformWillRunTest):

  • WebKitTestRunner/TestController.h:

(WTR::TestController::setShouldDecideNavigationPolicyAfterDelay):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

  • WebKitTestRunner/TestOptions.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):

LayoutTests:

  • fast/viewport/ios/force-always-user-scalable.html:
  • fast/viewport/ios/user-scalable-does-not-scale-for-keyboard-focus-with-author-defined-scale.html:
  • fast/viewport/ios/user-scalable-scales-for-keyboard-focus-with-no-author-defined-scale.html:
11:51 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
11:46 AM Changeset in webkit [203074] by fred.wang@free.fr
  • 14 edits
    22 adds in trunk

Use parameters from the OpenType MATH table for <munderover>
​https://bugs.webkit.org/show_bug.cgi?id=155756

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

Source/WebCore:

We follow the description from the MathML in HTML5 implementation
to improve the layout of <munderover> using some constants from the MATH table.

Tests: imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-1.html

imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-2.html
imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-3.html
imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-4.html
mathml/presentation/attributes-accent-accentunder-dynamic.html

  • mathml/mathattrs.in: Add accentunder attribute.
  • rendering/mathml/MathMLOperatorDictionary.h: Remove FIXME comment.
  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::hasAccent): Helper function to determine whether
the over/under script should be treated as an accent.
(WebCore::RenderMathMLUnderOver::getVerticalParameters): Helper function to read
some vertical parameters from the MATH table.
(WebCore::RenderMathMLUnderOver::layoutBlock): Take into account the new vertical
parameters for the layout of <munderover>.

  • rendering/mathml/RenderMathMLUnderOver.h: Define new helper functions.

LayoutTests:

Import some tests from the MathML in HTML5 test suite to verify
the layout of the <munderover> element. We also write a test to
verify dynamic change of accent/accentunder attributes and adjust
other tests.

  • imported/mathml-in-html5/fonts/math/limits-lowerlimitbaselinedropmin3000.woff: Added.
  • imported/mathml-in-html5/fonts/math/limits-lowerlimitgapmin11000.woff: Added.
  • imported/mathml-in-html5/fonts/math/limits-upperlimitbaselinerisemin5000.woff: Added.
  • imported/mathml-in-html5/fonts/math/limits-upperlimitgapmin7000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stretchstack-bottomshiftdown3000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stretchstack-gapabovemin7000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stretchstack-gapbelowmin11000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stretchstack-topshiftup5000.woff: Added.
  • imported/mathml-in-html5/fonts/math/underover-accentbaseheight4000-overbarextraascender3000.woff: Added.
  • imported/mathml-in-html5/fonts/math/underover-accentbaseheight4000-overbarverticalgap11000.woff: Added.
  • imported/mathml-in-html5/fonts/math/underover-accentbaseheight4000-underbarextradescender5000.woff: Added.
  • imported/mathml-in-html5/fonts/math/underover-accentbaseheight4000-underbarverticalgap7000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-1.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-2-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-2.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-3-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-3.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-4-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/scripts/underover-parameters-4.html: Added.
  • mathml/presentation/attributes-accent-accentunder-dynamic.html: Added.

Test dynamic changes of accent and accentunder.

  • mathml/presentation/attributes-accent-accentunder-dynamic-expected.html: Added.
  • mathml/presentation/scripts-underover.html: Remove one of the test since munderover

with an empty script is no longer equivalent to munder or mover.

  • mathml/presentation/scripts-underover-expected.html: Ditto.
  • platform/gtk/mathml/opentype/horizontal-expected.png: Updated due to change in

vertical metrics of scripts.

  • platform/gtk/mathml/opentype/horizontal-expected.txt: Ditto.
  • platform/gtk/mathml/opentype/horizontal-munderover-expected.png: Ditto.
  • platform/gtk/mathml/opentype/horizontal-munderover-expected.txt: Ditto.
  • platform/gtk/mathml/presentation/roots-expected.txt: Udapted due to script baseline fix.
  • platform/gtk/mathml/presentation/roots-expected.png: ditto.
  • mathml/presentation/underover-nonstretchy-or-vertical.html: Prevent the <mo> to be treated

as an accent so that we always get the same spacing as the reference. We also use the Ahem
font to make the result more reliable.

11:42 AM Changeset in webkit [203073] by fred.wang@free.fr
  • 4 edits
    9 adds in trunk

Use Stack* parameters from the OpenType MATH table
​https://bugs.webkit.org/show_bug.cgi?id=155714

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

Source/WebCore:

Test: mathml/mathml-in-html5/frac-parameters-2.html

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::updateFromElement): Set the stack parameters when
the line thickness is zero.
(WebCore::RenderMathMLFraction::layoutBlock): Correctly set the <mfrac> ascent and
the denominator vertical offset when the line thickness is zero.
(WebCore::RenderMathMLFraction::paint): Early return when we actually do not need to
paint any fraction bar.

  • rendering/mathml/RenderMathMLFraction.h: Define an isStack helper function and define

members corresponding to stack parameters.

LayoutTests:

We import a test from the MathML in HTML5 test suite to verify Stack* parameters.

  • imported/mathml-in-html5/fonts/math/stack-axisheight7000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stack-bottomdisplaystyleshiftdown5000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stack-bottomshiftdown6000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stack-displaystylegapmin4000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stack-gapmin8000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stack-topdisplaystyleshiftup3000.woff: Added.
  • imported/mathml-in-html5/fonts/math/stack-topshiftup9000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-2-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-2.html: Added.
11:38 AM Changeset in webkit [203072] by fred.wang@free.fr
  • 12 edits
    11 adds in trunk

Add support for mathvariants that cannot be emulated via CSS.
​https://bugs.webkit.org/show_bug.cgi?id=108778

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

Source/WebCore:

Tests: mathml/mathml-in-html5/mathvariant-transforms-1.html

mathml/mathml-in-html5/mathvariant-transforms-2.html
mathml/presentation/mathvariant-inheritance.html
mathml/presentation/mathvariant-tokens.html

We remove the old code to emulate partial mathvariant support via CSS and add support
for all mathvariant values using the technique used for implicit italic on <mi> element.
We also rely on the MathMLStyle class introduced earlier to support custome MathML style
and manage inheritance of mathvariant values.
The function that tries and converts one base character into a transformed mathvariant
character is based on similar code from Gecko:
​http://hg.mozilla.org/mozilla-central/file/tip/layout/generic/MathMLTextRunFactory.cpp
Note that we only support transform on token elements with a single character, which
should cover the most important use cases.

  • css/mathml.css: Remove the CSS rules to emulate some mathvariant values.

(math[mathvariant="normal"], mstyle[mathvariant="normal"], mo[mathvariant="normal"], mn[mathvariant="normal"], mi[mathvariant="normal"], mtext[mathvariant="normal"], mspace[mathvariant="normal"], ms[mathvariant="normal"]): Deleted.
(math[mathvariant="bold"], mstyle[mathvariant="bold"], mo[mathvariant="bold"], mn[mathvariant="bold"], mi[mathvariant="bold"], mtext[mathvariant="bold"], mspace[mathvariant="bold"], ms[mathvariant="bold"]): Deleted.
(math[mathvariant="italic"], mstyle[mathvariant="italic"], mo[mathvariant="italic"], mn[mathvariant="italic"], mi[mathvariant="italic"], mtext[mathvariant="italic"], mspace[mathvariant="italic"], ms[mathvariant="italic"]): Deleted.
(math[mathvariant="bold-italic"], mstyle[mathvariant="bold-italic"], mo[mathvariant="bold-italic"], mn[mathvariant="bold-italic"], mi[mathvariant="bold-italic"], mtext[mathvariant="bold-italic"], mspace[mathvariant="bold-italic"], ms[mathvariant="bold-italic"]): Deleted.

  • mathml/MathMLInlineContainerElement.cpp: We resolve mathml style when mathvariant changes.

(WebCore::MathMLInlineContainerElement::parseAttribute):

  • mathml/MathMLMathElement.cpp: ditto.

(WebCore::MathMLMathElement::parseAttribute):

  • mathml/MathMLTextElement.cpp: ditto.

(WebCore::MathMLTextElement::parseAttribute):

  • rendering/mathml/MathMLStyle.cpp: Add mathvariant property to the MathML style.

(WebCore::MathMLStyle::MathMLStyle): Init mathvariant to none.
(WebCore::MathMLStyle::getMathMLStyle): Helper function to retrieve the MathML style on a renderer.
(WebCore::MathMLStyle::updateStyleIfNeeded): Take into account change of mathvariant.
(WebCore::MathMLStyle::parseMathVariant): Helper function to parse a mathvariant attribute.
(WebCore::MathMLStyle::resolveMathMLStyle): Take into account mathvariant value: it is None
by default, inherited and can be modified via an attribute on <math>, <mstyle> or token
elements. We also refactor a bit to share logic between displaystyle and mathvariant.
(WebCore::MathMLStyle::setDisplayStyle): Deleted.

  • rendering/mathml/MathMLStyle.h: Add mathvariant members and update declarations.
  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::updateTokenContent): Call the function from the parent class
to consider mathvariant on <mo>.

  • rendering/mathml/RenderMathMLToken.cpp:

We implement a mathVariant function to transform a base character into its transformed mathvariant:

  • There are some regularity that allows to perform this via simple linear transforms.
  • However, there are also many exceptions and we rely on some sorted MathVariantMapping

tables to handle these cases.
(WebCore::ExtractKey): Helper function to perform binary searches on MathVariant tables.
(WebCore::MathVariantMappingSearch): ditto.
(WebCore::mathVariant): New function to perform mathvariant transforms.
(WebCore::RenderMathMLToken::updateMathVariantGlyph): Use the mathVariant function to
perform all transformations, not just the italic one.
(WebCore::transformToItalic): Deleted. Replaced with the more general mathVariant function.

LayoutTests:

Import a test from the MathML in HTML5 test suite to perform an exhaustive
verification of all the mathvariant transforms allowed.
We also add some tests to verify inheritance of the mathvariant style, the
effect on each token element and dynamic modification of mathvariant.
Finally, we modify one test now that mathvariant is no longer emulated via CSS.

  • mathml/mathml-in-html5/fonts/mathvariant-transforms.woff: Added.
  • mathml/mathml-in-html5/mathvariant-transforms-1-expected.html: Added.
  • mathml/mathml-in-html5/mathvariant-transforms-1.html: Added.
  • mathml/mathml-in-html5/mathvariant-transforms-2-expected.html: Added.
  • mathml/mathml-in-html5/mathvariant-transforms-2.html: Added.
  • mathml/presentation/attributes-mathvariant-expected.html: Update this test now that

mathvariant is correctly implemented using character transforms.

  • mathml/presentation/mathvariant-inheritance-expected.html: Added.
  • mathml/presentation/mathvariant-inheritance.html: Added.
  • mathml/presentation/mathvariant-tokens-expected.html: Added.
  • mathml/presentation/mathvariant-tokens.html: Added.
  • mathml/presentation/mathvariant-dynamic.html: Added.
  • mathml/presentation/mathvariant-dynamic-expected.html: Added.
11:31 AM Changeset in webkit [203071] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking media/controls/inline-elements-dropoff-order.html as failing on El Capitan
​https://bugs.webkit.org/show_bug.cgi?id=151287

Unreviewed test gardening.

  • platform/mac/TestExpectations:
11:08 AM Changeset in webkit [203070] by Konstantin Tokarev
  • 2 edits in trunk/Tools

[GTK] install-dependencies should not install packages built by jhbuild.
​https://bugs.webkit.org/show_bug.cgi?id=159628

Reviewed by Michael Catanzaro.

  • gtk/install-dependencies:

Don't install icu, harfbuzz, orc, llvm, freetype, fontconfig.

11:05 AM Changeset in webkit [203069] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

System proxy settings not used when building deps with jhbuild
​https://bugs.webkit.org/show_bug.cgi?id=159567

Patch by Olivier Blin <Olivier Blin> on 2016-07-11
Reviewed by Michael Catanzaro.

This adds the gsettings-desktop-schemas-devel build dep to enable
the libgiognomeproxy.so gio module in glib-networking, which uses
GSettings on org.gnome.system.proxy.
This is needed to query system proxy settings for Gnome desktops.

dconf can be manually added to jhbuild to build the
libdconfsettings.so gio module for GSettings, so that
libgiognomeproxy.so can access system settings.

​https://trac.webkit.org/wiki/WebKitGTK/StartHacking#Workingbehindaproxy

As an alternative to dconf settings, this commit also adds the
libproxy-devel build dep to enable the libgiolibproxy.so module in
glib-networking (suggested by Fujii Hironori).

It is useful to read proxy settings from environment variables.
From a Gnome desktop, one may unset the GNOME_DESKTOP_SESSION_ID
environment variable to force using the envvar module in libproxy.

  • gtk/install-dependencies:
10:46 AM Changeset in webkit [203068] 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 r203057.

  • platform/mac-elcapitan/media/controls: Added.
  • platform/mac-elcapitan/media/controls/inline-elements-dropoff-order-expected.txt: Added.
  • platform/mac-yosemite/media/controls: Added.
10:04 AM Changeset in webkit [203067] by mark.lam@apple.com
  • 6 edits in trunk

Change run-webkit-tests.py and run-jsc-stress-tests to use a smaller JS stack size for testing.
​https://bugs.webkit.org/show_bug.cgi?id=159524

Reviewed by Michael Saboff.

Tools:

Forced tests to run with only a 1.5M JS stack size instead of the default 4M.
Also fixed up some tests to behave better to work with this new limit. This
should make stack overflow tests complete sooner.

  • Scripts/run-jsc-stress-tests:
  • Scripts/webkitpy/layout_tests/run_webkit_tests.py:

(main):

LayoutTests:

  • js/dom/deep-recursion-test.html:
  • js/script-tests/stack-overflow-arrity-catch.js:

(funcWith20Args):

9:33 AM Changeset in webkit [203066] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Pause small video elements when returning to inline.
​https://bugs.webkit.org/show_bug.cgi?id=159535

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

Will add a test in a later commit.

When exiting fullscreen, don't allow playback to continue inline if video is too small.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::isVideoTooSmallForInlinePlayback): Added.
(WebCore::HTMLMediaElement::exitFullscreen): Pause if video is too small.

  • html/HTMLMediaElement.h:
9:26 AM Changeset in webkit [203065] by nael.ouedraogo@crf.canon.fr
  • 12 edits in trunk/Source/WebCore

toNative functions in JSDOMBinding.h should take an ExecState reference instead of pointer
​https://bugs.webkit.org/show_bug.cgi?id=159298

Reviewed by Youenn Fablet.

Pass ExecState by reference instead of pointer.

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::idbKeyPathFromValue):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::constructJSBlob):

  • bindings/js/JSDOMBinding.h: Pass ExecState by reference instead of pointer.

(WebCore::toJSSequence):
(WebCore::NativeValueTraits<String>::nativeValue):
(WebCore::NativeValueTraits<unsigned>::nativeValue):
(WebCore::NativeValueTraits<float>::nativeValue):
(WebCore::NativeValueTraits<double>::nativeValue):
(WebCore::toNativeArray):
(WebCore::toNativeArguments):

  • bindings/js/JSDOMConvert.h:

(WebCore::Converter<Vector<T>>::convert):

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

  • bindings/js/JSFileCustom.cpp:

(WebCore::constructJSFile):

  • bindings/js/JSMessagePortCustom.cpp:

(WebCore::fillMessagePortArray):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):
(JSValueToNative):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalSequence):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArray):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArrayIsEmpty):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
(WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence):
(WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence2):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
(WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
(WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
(WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::constructJSTestOverloadedConstructors5):

  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::jsTestTypedefsPrototypeFunctionFunc):
(WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
(WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):

9:01 AM Changeset in webkit [203064] by achristensen@apple.com
  • 9 edits in trunk/Source

Use refs for ResourceLoaders
​https://bugs.webkit.org/show_bug.cgi?id=159592

Reviewed by Chris Dumez.

Source/WebCore:

No new tests. No change in behavior except a fixed memory leak in WebKit1.

  • loader/LoaderStrategy.h:
  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::finishNetworkLoad):
(WebCore::ResourceLoader::setDefersLoading):
(WebCore::ResourceLoader::frameLoader):
(WebCore::ResourceLoader::willSwitchToSubstituteResource):
(WebCore::ResourceLoader::willSendRequestInternal):

Source/WebKit:

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(webResourceLoadScheduler):
(WebResourceLoadScheduler::hostForURL):
(WebResourceLoadScheduler::WebResourceLoadScheduler):
(WebResourceLoadScheduler::loadResource):
(WebResourceLoadScheduler::schedulePluginStreamLoad):
(WebResourceLoadScheduler::scheduleLoad):
(WebResourceLoadScheduler::remove):
(WebResourceLoadScheduler::setDefersLoading):
(WebResourceLoadScheduler::crossOriginRedirectReceived):
(WebResourceLoadScheduler::servePendingRequests):
(WebResourceLoadScheduler::resumePendingRequests):
(WebResourceLoadScheduler::HostInformation::priorityToIndex):
(WebResourceLoadScheduler::HostInformation::schedule):
(WebResourceLoadScheduler::HostInformation::addLoadInProgress):
(WebResourceLoadScheduler::HostInformation::remove):

  • WebCoreSupport/WebResourceLoadScheduler.h:

(WebResourceLoadScheduler::HostInformation::name):
(WebResourceLoadScheduler::HostInformation::requestsPending):
m_nonHTTPProtocolHost used to be a leaked pointer, and now it's a member variable.

Source/WebKit2:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::scheduleInternallyFailedLoad):
(WebKit::WebLoaderStrategy::internallyFailedLoadTimerFired):
(WebKit::WebLoaderStrategy::startLocalLoad):
(WebKit::WebLoaderStrategy::remove):
(WebKit::WebLoaderStrategy::setDefersLoading):
(WebKit::WebLoaderStrategy::crossOriginRedirectReceived):

  • WebProcess/Network/WebLoaderStrategy.h:
8:55 AM Changeset in webkit [203063] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK] Whitespace fixes in install-dependencies script

Unreviewed.

  • gtk/install-dependencies:
8:54 AM Changeset in webkit [203062] by Michael Catanzaro
  • 2 edits in trunk/Tools

[GTK] Install missing Fedora dependencies

Unreviewed.

  • gtk/install-dependencies:
8:25 AM Changeset in webkit [203061] by Antti Koivisto
  • 3 edits in trunk/Source/WebKit2

Update stable cache version in NetworkCache::Storage::deleteOldVersions()
​https://bugs.webkit.org/show_bug.cgi?id=159618
rdar://problem/26715745

Reviewed by Chris Dumez.

NetworkCache::Storage::deleteOldVersions() keeps the previous shipped cache version (4) for Mac around so
development WebKit doesn’t clobber system Safari cache. Update this to the current version so old caches
go away in customer systems.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::deleteOldVersions):

  • NetworkProcess/cache/NetworkCacheStorage.h:

Move lastStableVersion to header next to the current version.

8:08 AM Changeset in webkit [203060] by commit-queue@webkit.org
  • 6 edits in trunk

Using dpi unit in sizes attribute raises SIGSEGV
​https://bugs.webkit.org/show_bug.cgi?id=159412

Patch by Fujii Hironori <Fujii Hironori> on 2016-07-11
Reviewed by Darin Adler.

Source/WebCore:

CSSParser::sourceSize returns a invalid CSSParser::SourceSize
whose length is a null value for a dpi unit value. Because
CSSParserValue::createCSSValue returns null for a dpi value.

Tests:

fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html
imported/w3c/web-platform-tests/html/semantics/embedded-content/the-img-element/sizes/parse-a-sizes-attribute.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::sourceSize): Create a CSSPrimitiveValue of
CSS_UNKNOWN if CSSParserValue::createCSSValue returns null.

LayoutTests:

  • TestExpectations: Unskip fast/dom/HTMLImageElement/sizes.
  • fast/dom/HTMLImageElement/sizes/image-sizes-invalids-expected.txt: Updated.
  • fast/dom/HTMLImageElement/sizes/image-sizes-invalids.html: Added a dpi unit test case.

Renumbering element IDs.

7:52 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
7:44 AM Changeset in webkit [203059] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Red and blue colors are swapped in video rendered through WebGL when GSTREAMER_GL is enabled
​https://bugs.webkit.org/show_bug.cgi?id=159621

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

When a video is rendered through WebGL, and GSTREAMER_GL is enabled, red and blue colors are swapped.
This occurs for example with the following videos:
​http://www.scirra.com/labs/bugs/webglvideo/
​http://www.dailymotion.com/embed/video/x4jiicp?autoplay=1

This is because ImageGStreamerCairo expects video frames in either
BGRA or ARGB, while when GSTREAMER_GL is enabled,
createVideoSinkGL() forces a RGBA format.

Without GSTREAMER_GL, the rendering is fine since
VideoSinkGStreamer uses either BGRA or ARGB.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL):

7:41 AM Changeset in webkit [203058] by Philippe Normand
  • 7 edits in trunk/Source/WebCore

[GStreamer] remove WEBKIT_DEBUG support
​https://bugs.webkit.org/show_bug.cgi?id=159553

Reviewed by Xabier Rodriguez-Calvar.

Remove the *_MEDIA_MESSAGE macros specific to the GStreamer
platform code and replace them with standard GST_DEBUG macros. In
Debug builds the WEBKIT_DEBUG=Media logs now only contain logs
related with the cross-platform Media element code. If GStreamer
logs are needed, the GST_DEBUG=webkit*:5 environment variable can
be used.

  • platform/graphics/gstreamer/GStreamerUtilities.h:
  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:

(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample):
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfStreamChanged):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties):
(WebCore::MediaPlayerPrivateGStreamer::load):
(WebCore::MediaPlayerPrivateGStreamer::commitLoad):
(WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
(WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
(WebCore::MediaPlayerPrivateGStreamer::play):
(WebCore::MediaPlayerPrivateGStreamer::pause):
(WebCore::MediaPlayerPrivateGStreamer::duration):
(WebCore::MediaPlayerPrivateGStreamer::seek):
(WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate):
(WebCore::MediaPlayerPrivateGStreamer::paused):
(WebCore::MediaPlayerPrivateGStreamer::newTextSample):
(WebCore::MediaPlayerPrivateGStreamer::handleMessage):
(WebCore::MediaPlayerPrivateGStreamer::processBufferingStats):
(WebCore::MediaPlayerPrivateGStreamer::fillTimerFired):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded):
(WebCore::MediaPlayerPrivateGStreamer::didLoadingProgress):
(WebCore::MediaPlayerPrivateGStreamer::totalBytes):
(WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation):
(WebCore::MediaPlayerPrivateGStreamer::setDownloadBuffering):
(WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize):
(WebCore::MediaPlayerPrivateGStreamerBase::setVolume):
(WebCore::MediaPlayerPrivateGStreamerBase::volumeChangedCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL):
(WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerOwr.cpp:

(WebCore::MediaPlayerPrivateGStreamerOwr::~MediaPlayerPrivateGStreamerOwr):
(WebCore::MediaPlayerPrivateGStreamerOwr::play):
(WebCore::MediaPlayerPrivateGStreamerOwr::pause):
(WebCore::MediaPlayerPrivateGStreamerOwr::currentTime):
(WebCore::MediaPlayerPrivateGStreamerOwr::load):
(WebCore::MediaPlayerPrivateGStreamerOwr::internalLoad):
(WebCore::MediaPlayerPrivateGStreamerOwr::stop):
(WebCore::MediaPlayerPrivateGStreamerOwr::createGSTAudioSinkBin):
(WebCore::MediaPlayerPrivateGStreamerOwr::trackEnded):
(WebCore::MediaPlayerPrivateGStreamerOwr::trackMutedChanged):
(WebCore::MediaPlayerPrivateGStreamerOwr::trackSettingsChanged):
(WebCore::MediaPlayerPrivateGStreamerOwr::trackEnabledChanged):

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::getLanguageCode):
(WebCore::TrackPrivateBaseGStreamer::getTag):

7:37 AM Changeset in webkit [203057] by eric.carlson@apple.com
  • 6 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.
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::setAllowsAirPlayForMediaPlayback): Renamed from setWirelessPlaybackDisabled.
(WebCore::InternalSettings::setWirelessPlaybackDisabled): Deleted.

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

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.
  • platform/mac-elcapitan/media/controls: Added.
  • platform/mac-elcapitan/media/controls/inline-elements-dropoff-order-expected.txt: Added.
7:35 AM Changeset in webkit [203056] by Philippe Normand
  • 5 edits in trunk/Source/WebCore

[GStreamer][GL] crash within triggerRepaint
​https://bugs.webkit.org/show_bug.cgi?id=159552

Reviewed by Xabier Rodriguez-Calvar.

Ensure the sizeChanged notification is emitted from the main
thread. When GStreamer-GL rendering is enabled the appsink draw
callbacks are fired in a non-main thread.

The WeakPtr support was moved to the player base class so that it
can be used there as well as in the MediaPlayerPrivateGStreamer
sub-class.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(WebCore::MediaPlayerPrivateGStreamer::createWeakPtr): Deleted.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:

(WebCore::MediaPlayerPrivateGStreamerBase::createWeakPtr):

2:47 AM Changeset in webkit [203055] by fred.wang@free.fr
  • 5 edits in trunk/LayoutTests

Update expectations for some MathML pixel tests on Windows.

Unreviewed test gardening.

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

  • platform/win/mathml/opentype/vertical-expected.txt:
  • platform/win/mathml/presentation/mo-stretch-expected.txt:
  • platform/win/mathml/presentation/roots-expected.txt:
  • platform/win/mathml/radical-fallback-expected.txt:
2:43 AM Changeset in webkit [203054] by fred.wang@free.fr
  • 5 edits in trunk/LayoutTests

Update expectations for some MathML pixel tests on EFL.

Unreviewed test gardening.

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

  • platform/efl/mathml/opentype/vertical-expected.txt:
  • platform/efl/mathml/presentation/mo-stretch-expected.txt:
  • platform/efl/mathml/presentation/roots-expected.txt:
  • platform/efl/mathml/radical-fallback-expected.txt:
2:28 AM Changeset in webkit [203053] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r202992): JSC varargs tests are broken
​https://bugs.webkit.org/show_bug.cgi?id=159616

Reviewed by Csaba Osztrogonác.

The substitution miss in r202992 causes varargs tests failures in GTK port.

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetupVarargsFrameFastCase):

12:42 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:26 AM Changeset in webkit [203052] by Yusuke Suzuki
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] Promise.{all,race} no longer use @@species
​https://bugs.webkit.org/show_bug.cgi?id=159615

Reviewed by Keith Miller.

As per the latest ES draft, Promise.{all,race} no longer use @@species.
So, this patch drops FIXMEs.

  • builtins/PromiseConstructor.js:

(all):
(race):

  • tests/stress/ignore-promise-species.js: Added.

(shouldBe):
(DerivedPromise.prototype.get Symbol):
(DerivedPromise):

Jul 10, 2016:

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

Versioning.

11:05 PM Changeset in webkit [203050] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.4

New tag.

11:03 PM Changeset in webkit [203049] by bshafiei@apple.com
  • 2 edits in branches/safari-602.1.40-branch/Source/WebKit2

Merged r203044. rdar://problem/27268111

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

Versioning.

10:06 PM Changeset in webkit [203047] by Chris Dumez
  • 14 edits
    4 adds in trunk

Setting document.title reuses <title>'s textnode child
​https://bugs.webkit.org/show_bug.cgi?id=28864
<rdar://problem/7186473>

Reviewed by Benjamin Poulain.

Source/WebCore:

Setting document.title should be equivalent to setting the 'textContent'
IDL attribute of the <title> element:

In particular, this means we should always create a new Text node and
replace all the <title>'s children with this new Node, as per:

Previously, WebKit would in some cases reuse the existing <title>'s
Text node and merely update its data.

Firefox and Chrome behave as per the specification so this aligns our
behavior with other major browsers as well.

Test: fast/dom/title-setter-new-text-node.html

  • dom/Document.cpp:

(WebCore::Document::setTitle):

  • Call Node::setTextContent() instead of HTMLTitleElement::setText(), as per the specification.
  • Take an ExceptionCode parameter and pass it to Node::setTextContent() as it may throw.
  • dom/Document.h:
  • dom/Document.idl:
  • html/HTMLTitleElement.cpp:

(WebCore::HTMLTitleElement::setText):
Update implementation of HTMLTitleElement::setText() to call
setTextContent() as per the specification:

  • html/HTMLTitleElement.h:
  • html/HTMLTitleElement.idl:
  • html/ImageDocument.cpp:

(WebCore::ImageDocument::finishedParsing):

  • svg/SVGTitleElement.cpp:
  • svg/SVGTitleElement.h:

Drop setText() setter which was duplicated from HTMLTitleElement::setText()
now that Document::setTitle() calls SVGTitleElement::setTextContent()
instead.

LayoutTests:

  • fast/dom/title-setter-new-text-node-expected.txt: Added.
  • fast/dom/title-setter-new-text-node.html: Added.

Add test coverage.

  • fast/dom/title-text-property-2-expected.txt:
  • fast/dom/title-text-property-expected.txt:
  • http/tests/globalhistory/history-delegate-basic-title-expected.txt:

Rebaseline a few tests now that we do not reuse the <title>'s text
node child.

9:28 PM Changeset in webkit [203046] by commit-queue@webkit.org
  • 7 edits
    3 deletes in trunk

Unreviewed, rolling out r203037.
​https://bugs.webkit.org/show_bug.cgi?id=159614

The JSC tests are breaking in elcapitan-debug-tests-jsc and
elcapitan-release-tests-jsc (Requested by caiolima on
#webkit).

Reverted changeset:

"ECMAScript 2016: %TypedArray%.prototype.includes
implementation"
​https://bugs.webkit.org/show_bug.cgi?id=159385
​http://trac.webkit.org/changeset/203037

8:58 PM Changeset in webkit [203045] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Fix LogicalSelectionOffsetCaches to work with detached render tree.
​https://bugs.webkit.org/show_bug.cgi?id=159605
<rdar://problem/27248845>

Reviewed by Brent Fulgham.

Source/WebCore:

When the renderer that is being destroyed is on a selection boundary,
we need to ensure that all its cached pointers across the selection code (e.g. SelectionSubtreeData)
are getting reset. In order to do that, we call clearSelection() on the RenderView.
One of the last steps of clearing selection is to collect the selection gaps. Selection gaps uses this
LogicalSelectionOffsetCaches helper class to collect selection information across blocks.
LogicalSelectionOffsetCaches normally operates on rooted renderers. However we need to ensure sure that
it can also handle renderers that are no longer part of the render tree.

Test: fast/text/selection-on-a-detached-tree.html

  • rendering/LogicalSelectionOffsetCaches.h:

(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::setBlock):
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::logicalLeftSelectionOffset):
(WebCore::LogicalSelectionOffsetCaches::ContainingBlockInfo::logicalRightSelectionOffset):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::logicalLeftSelectionOffset):
(WebCore::RenderBlock::logicalRightSelectionOffset):

LayoutTests:

  • fast/text/selection-on-a-detached-tree-expected.txt: Added.
  • fast/text/selection-on-a-detached-tree.html: Added.
7:52 PM Changeset in webkit [203044] by Beth Dakin
  • 1 edit
    1 add in trunk/Source/WebKit2

Update mediaIcon.pdf
​https://bugs.webkit.org/show_bug.cgi?id=159613
-and corresponding-
rdar://problem/27268111

Reviewed by Sam Weinig.

  • Resources/mediaIcon.pdf: Replaced.
4:28 PM Changeset in webkit [203043] by Chris Dumez
  • 3 edits
    4 adds in trunk

adoptNode() changes css class to lowercase for document loaded with XHR responseType = "document"
​https://bugs.webkit.org/show_bug.cgi?id=159555
<rdar://problem/27252541>

Reviewed by Benjamin Poulain.

Source/WebCore:

Follow-up on r203018 which was incomplete. We need to update ElementData's
m_classNames / m_idForStyleResolution when the source document is in strict
mode and the destination document is in quirks mode as well.

Test: fast/dom/Document/adoptNode-quirks-mismatch2.html

  • dom/Element.cpp:

(WebCore::Element::didMoveToNewDocument):

LayoutTests:

Add test coverage.

  • fast/dom/Document/adoptNode-quirks-mismatch2-expected.txt: Added.
  • fast/dom/Document/adoptNode-quirks-mismatch2.html: Added.
  • fast/dom/Document/resources/document-noquirks-class.html: Added.
  • fast/dom/Document/resources/document-noquirks-id.html: Added.
2:46 PM Changeset in webkit [203042] by weinig@apple.com
  • 5 edits in trunk/Source/WebCore

Rename isEmojiModifier to isEmojiFitzpatrickModifier to better capture its function
​https://bugs.webkit.org/show_bug.cgi?id=159610

Reviewed by Dan Bernstein.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::characterRangeCodePath):

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::advanceByCombiningCharacterSequence):
Update for rename.

  • platform/text/CharacterProperties.h:

(WebCore::isEmojiGroupCandidate):
(WebCore::isEmojiFitzpatrickModifier):
(WebCore::isVariationSelector):
Rename isEmojiModifier -> isEmojiFitzpatrickModifier. Also add some comments
explaining what the characters these predicate act on to demystify them a bit.

  • rendering/RenderText.cpp:

(WebCore::RenderText::previousOffsetForBackwardDeletion):
Update for rename and rename a related variable.

11:50 AM Changeset in webkit [203041] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Add self to WebKit2 Owners
​https://bugs.webkit.org/show_bug.cgi?id=159499

Patch by Alex Christensen <​achristensen@webkit.org> on 2016-07-10
Reviewed by Sam Weinig.

  • Owners:
11:48 AM Changeset in webkit [203040] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Fix client certificate authentication after r200463
​https://bugs.webkit.org/show_bug.cgi?id=159574
<rdar://problem/26931006>

Patch by Alex Christensen <​achristensen@webkit.org> on 2016-07-10
Reviewed by Sam Weinig.

Source/WebCore:

No new tests. We really need a test for this

  • platform/network/cf/CertificateInfo.h:

(WebCore::CertificateInfo::CertificateInfo):
(WebCore::CertificateInfo::trust):
Make sure we only get the trust for Trust type CertificateInfos.
If we mix up our types, we get unexpected nullptrs, which will cause authentication to fail.

Source/WebKit2:

  • Shared/Authentication/mac/AuthenticationManager.mac.mm:

(WebKit::leafCertificate):
(WebKit::chain):
Handle the different types of CertificateInfos.

10:53 AM Changeset in webkit [203039] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Fix Windows build after r203038

Unreviewed.

  • platform/text/TextAllInOne.cpp:
10:15 AM Changeset in webkit [203038] by mmaxfield@apple.com
  • 43 edits
    8 copies
    6 moves
    6 adds
    3 deletes in trunk/Source

Move breaking iterator code to WTF
​https://bugs.webkit.org/show_bug.cgi?id=159594

Reviewed by Alex Christensen.

This is in preparation for giving StringView a GraphemeClusters iterator.
Such an interator needs to be implemented on top of our breaking iterator
code.

Source/WebCore:

No new tests because there is no behavior change.

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWin.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/CharacterData.cpp:
  • editing/TextCheckingHelper.cpp:
  • editing/TextIterator.cpp:
  • editing/VisibleUnits.cpp:
  • html/HTMLInputElement.cpp:
  • html/HTMLTextAreaElement.cpp:
  • html/InputType.cpp:
  • html/TextFieldInputType.cpp:
  • html/TextInputType.cpp:
  • platform/LocalizedStrings.cpp:
  • platform/graphics/StringTruncator.cpp:
  • platform/graphics/cg/ColorCG.cpp:

(WTF::RetainPtr<CGColorRef>>::createValueForKey):
(WebCore::RetainPtr<CGColorRef>>::createValueForKey): Deleted.

  • platform/graphics/mac/ComplexTextController.cpp:
  • platform/text/LineBreakIteratorPoolICU.h:

(WebCore::LineBreakIteratorPool::LineBreakIteratorPool): Deleted.
(WebCore::LineBreakIteratorPool::sharedPool): Deleted.
(WebCore::LineBreakIteratorPool::makeLocaleWithBreakKeyword): Deleted.
(WebCore::LineBreakIteratorPool::take): Deleted.
(WebCore::LineBreakIteratorPool::put): Deleted.

  • platform/text/TextBoundaries.cpp:
  • platform/text/TextBreakIterator.cpp:

(WebCore::initializeIterator): Deleted.
(WebCore::initializeIteratorWithRules): Deleted.
(WebCore::setTextForIterator): Deleted.
(WebCore::setContextAwareTextForIterator): Deleted.
(WebCore::wordBreakIterator): Deleted.
(WebCore::sentenceBreakIterator): Deleted.
(WebCore::cursorMovementIterator): Deleted.
(WebCore::acquireLineBreakIterator): Deleted.
(WebCore::releaseLineBreakIterator): Deleted.
(WebCore::mapLineIteratorModeToRules): Deleted.
(WebCore::isCJKLocale): Deleted.
(WebCore::openLineBreakIterator): Deleted.
(WebCore::closeLineBreakIterator): Deleted.
(WebCore::compareAndSwapNonSharedCharacterBreakIterator): Deleted.
(WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): Deleted.
(WebCore::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): Deleted.
(WebCore::textBreakFirst): Deleted.
(WebCore::textBreakLast): Deleted.
(WebCore::textBreakNext): Deleted.
(WebCore::textBreakPrevious): Deleted.
(WebCore::textBreakPreceding): Deleted.
(WebCore::textBreakFollowing): Deleted.
(WebCore::textBreakCurrent): Deleted.
(WebCore::isTextBreak): Deleted.
(WebCore::isWordTextBreak): Deleted.
(WebCore::numGraphemeClusters): Deleted.
(WebCore::numCharactersInGraphemeClusters): Deleted.

  • platform/text/TextBreakIterator.h:

(WebCore::LazyLineBreakIterator::LazyLineBreakIterator): Deleted.
(WebCore::LazyLineBreakIterator::~LazyLineBreakIterator): Deleted.
(WebCore::LazyLineBreakIterator::string): Deleted.
(WebCore::LazyLineBreakIterator::isLooseCJKMode): Deleted.
(WebCore::LazyLineBreakIterator::lastCharacter): Deleted.
(WebCore::LazyLineBreakIterator::secondToLastCharacter): Deleted.
(WebCore::LazyLineBreakIterator::setPriorContext): Deleted.
(WebCore::LazyLineBreakIterator::updatePriorContext): Deleted.
(WebCore::LazyLineBreakIterator::resetPriorContext): Deleted.
(WebCore::LazyLineBreakIterator::priorContextLength): Deleted.
(WebCore::LazyLineBreakIterator::get): Deleted.
(WebCore::LazyLineBreakIterator::resetStringAndReleaseIterator): Deleted.
(WebCore::NonSharedCharacterBreakIterator::operator TextBreakIterator*): Deleted.

  • platform/text/cf/HyphenationCF.cpp:
  • platform/text/efl/TextBreakIteratorInternalICUEfl.cpp:

(WebCore::currentSearchLocaleID): Deleted.
(WebCore::currentTextBreakLocaleID): Deleted.

  • platform/text/enchant/TextCheckerEnchant.cpp:
  • platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp:

(WebCore::currentSearchLocaleID): Deleted.
(WebCore::currentTextBreakLocaleID): Deleted.

  • platform/text/icu/UTextProvider.cpp:

(WebCore::fixPointer): Deleted.
(WebCore::uTextCloneImpl): Deleted.

  • platform/text/icu/UTextProvider.h:

(WebCore::uTextProviderContext): Deleted.
(WebCore::initializeContextAwareUTextProvider): Deleted.
(WebCore::uTextAccessPinIndex): Deleted.
(WebCore::uTextAccessInChunkOrOutOfRange): Deleted.

  • platform/text/icu/UTextProviderLatin1.cpp:

(WebCore::uTextLatin1Clone): Deleted.
(WebCore::uTextLatin1NativeLength): Deleted.
(WebCore::uTextLatin1Access): Deleted.
(WebCore::uTextLatin1Extract): Deleted.
(WebCore::uTextLatin1MapOffsetToNative): Deleted.
(WebCore::uTextLatin1MapNativeIndexToUTF16): Deleted.
(WebCore::uTextLatin1Close): Deleted.
(WebCore::openLatin1UTextProvider): Deleted.
(WebCore::textLatin1ContextAwareGetCurrentContext): Deleted.
(WebCore::textLatin1ContextAwareMoveInPrimaryContext): Deleted.
(WebCore::textLatin1ContextAwareSwitchToPrimaryContext): Deleted.
(WebCore::textLatin1ContextAwareMoveInPriorContext): Deleted.
(WebCore::textLatin1ContextAwareSwitchToPriorContext): Deleted.
(WebCore::uTextLatin1ContextAwareClone): Deleted.
(WebCore::uTextLatin1ContextAwareNativeLength): Deleted.
(WebCore::uTextLatin1ContextAwareAccess): Deleted.
(WebCore::uTextLatin1ContextAwareExtract): Deleted.
(WebCore::uTextLatin1ContextAwareClose): Deleted.
(WebCore::openLatin1ContextAwareUTextProvider): Deleted.

  • platform/text/icu/UTextProviderUTF16.cpp:

(WebCore::textUTF16ContextAwareGetCurrentContext): Deleted.
(WebCore::textUTF16ContextAwareMoveInPrimaryContext): Deleted.
(WebCore::textUTF16ContextAwareSwitchToPrimaryContext): Deleted.
(WebCore::textUTF16ContextAwareMoveInPriorContext): Deleted.
(WebCore::textUTF16ContextAwareSwitchToPriorContext): Deleted.
(WebCore::uTextUTF16ContextAwareClone): Deleted.
(WebCore::uTextUTF16ContextAwareNativeLength): Deleted.
(WebCore::uTextUTF16ContextAwareAccess): Deleted.
(WebCore::uTextUTF16ContextAwareExtract): Deleted.
(WebCore::uTextUTF16ContextAwareClose): Deleted.
(WebCore::openUTF16ContextAwareUTextProvider): Deleted.

  • platform/text/mac/TextBoundaries.mm:
  • platform/text/mac/TextBreakIteratorInternalICUMac.mm:

(WebCore::textBreakLocalePreference): Deleted.
(WebCore::topLanguagePreference): Deleted.
(WebCore::getLocale): Deleted.
(WebCore::getSearchLocale): Deleted.
(WebCore::currentSearchLocaleID): Deleted.
(WebCore::getTextBreakLocale): Deleted.
(WebCore::currentTextBreakLocaleID): Deleted.

  • platform/text/win/TextBreakIteratorInternalICUWin.cpp:

(WebCore::currentSearchLocaleID): Deleted.
(WebCore::currentTextBreakLocaleID): Deleted.

  • rendering/RenderBlock.cpp:
  • rendering/RenderText.cpp:
  • rendering/RenderText.h:
  • rendering/SimpleLineLayoutTextFragmentIterator.h:
  • rendering/break_lines.cpp:
  • rendering/break_lines.h:
  • rendering/line/LineBreaker.h:

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • icu/unicode/ubrk.h: Added.
  • icu/unicode/utext.h: Renamed from Source/WebCore/icu/unicode/utext.h.
  • wtf/CMakeLists.txt:
  • wtf/PlatformEfl.cmake:
  • wtf/PlatformGTK.cmake:
  • wtf/PlatformMac.cmake:
  • wtf/PlatformWin.cmake:
  • wtf/TinyLRUCache.h:
  • wtf/text/LineBreakIteratorPoolICU.h: Renamed from Source/WebCore/platform/text/LineBreakIteratorPoolICU.h.

(WTF::LineBreakIteratorPool::LineBreakIteratorPool):
(WTF::LineBreakIteratorPool::sharedPool):
(WTF::LineBreakIteratorPool::makeLocaleWithBreakKeyword):
(WTF::LineBreakIteratorPool::take):
(WTF::LineBreakIteratorPool::put):

  • wtf/text/TextBreakIterator.cpp: Renamed from Source/WebCore/platform/text/TextBreakIterator.cpp.

(WTF::initializeIterator):
(WTF::initializeIteratorWithRules):
(WTF::setTextForIterator):
(WTF::setContextAwareTextForIterator):
(WTF::wordBreakIterator):
(WTF::sentenceBreakIterator):
(WTF::cursorMovementIterator):
(WTF::acquireLineBreakIterator):
(WTF::releaseLineBreakIterator):
(WTF::mapLineIteratorModeToRules):
(WTF::isCJKLocale):
(WTF::openLineBreakIterator):
(WTF::closeLineBreakIterator):
(WTF::compareAndSwapNonSharedCharacterBreakIterator):
(WTF::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator):
(WTF::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator):
(WTF::textBreakFirst):
(WTF::textBreakLast):
(WTF::textBreakNext):
(WTF::textBreakPrevious):
(WTF::textBreakPreceding):
(WTF::textBreakFollowing):
(WTF::textBreakCurrent):
(WTF::isTextBreak):
(WTF::isWordTextBreak):
(WTF::numGraphemeClusters):
(WTF::numCharactersInGraphemeClusters):

  • wtf/text/TextBreakIterator.h: Renamed from Source/WebCore/platform/text/TextBreakIterator.h.

(WTF::LazyLineBreakIterator::LazyLineBreakIterator):
(WTF::LazyLineBreakIterator::~LazyLineBreakIterator):
(WTF::LazyLineBreakIterator::string):
(WTF::LazyLineBreakIterator::isLooseCJKMode):
(WTF::LazyLineBreakIterator::lastCharacter):
(WTF::LazyLineBreakIterator::secondToLastCharacter):
(WTF::LazyLineBreakIterator::setPriorContext):
(WTF::LazyLineBreakIterator::updatePriorContext):
(WTF::LazyLineBreakIterator::resetPriorContext):
(WTF::LazyLineBreakIterator::priorContextLength):
(WTF::LazyLineBreakIterator::get):
(WTF::LazyLineBreakIterator::resetStringAndReleaseIterator):
(WTF::NonSharedCharacterBreakIterator::operator TextBreakIterator*):

  • wtf/text/TextBreakIteratorInternalICU.h: Renamed from Source/WebCore/platform/text/TextBreakIteratorInternalICU.h.
  • wtf/text/efl/TextBreakIteratorInternalICUEfl.cpp: Renamed from Source/WebCore/platform/text/efl/TextBreakIteratorInternalICUEfl.cpp.

(WebCore::currentSearchLocaleID):
(WebCore::currentTextBreakLocaleID):

  • wtf/text/gtk/TextBreakIteratorInternalICUGtk.cpp: Renamed from Source/WebCore/platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp.

(WebCore::currentSearchLocaleID):
(WebCore::currentTextBreakLocaleID):

  • wtf/text/icu/UTextProvider.cpp: Renamed from Source/WebCore/platform/text/icu/UTextProvider.cpp.

(WTF::fixPointer):
(WTF::uTextCloneImpl):

  • wtf/text/icu/UTextProvider.h: Renamed from Source/WebCore/platform/text/icu/UTextProvider.h.

(WTF::uTextProviderContext):
(WTF::initializeContextAwareUTextProvider):
(WTF::uTextAccessPinIndex):
(WTF::uTextAccessInChunkOrOutOfRange):

  • wtf/text/icu/UTextProviderLatin1.cpp: Renamed from Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp.

(WTF::uTextLatin1Clone):
(WTF::uTextLatin1NativeLength):
(WTF::uTextLatin1Access):
(WTF::uTextLatin1Extract):
(WTF::uTextLatin1MapOffsetToNative):
(WTF::uTextLatin1MapNativeIndexToUTF16):
(WTF::uTextLatin1Close):
(WTF::openLatin1UTextProvider):
(WTF::textLatin1ContextAwareGetCurrentContext):
(WTF::textLatin1ContextAwareMoveInPrimaryContext):
(WTF::textLatin1ContextAwareSwitchToPrimaryContext):
(WTF::textLatin1ContextAwareMoveInPriorContext):
(WTF::textLatin1ContextAwareSwitchToPriorContext):
(WTF::uTextLatin1ContextAwareClone):
(WTF::uTextLatin1ContextAwareNativeLength):
(WTF::uTextLatin1ContextAwareAccess):
(WTF::uTextLatin1ContextAwareExtract):
(WTF::uTextLatin1ContextAwareClose):
(WTF::openLatin1ContextAwareUTextProvider):

  • wtf/text/icu/UTextProviderLatin1.h: Renamed from Source/WebCore/platform/text/icu/UTextProviderLatin1.h.
  • wtf/text/icu/UTextProviderUTF16.cpp: Renamed from Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp.

(WTF::textUTF16ContextAwareGetCurrentContext):
(WTF::textUTF16ContextAwareMoveInPrimaryContext):
(WTF::textUTF16ContextAwareSwitchToPrimaryContext):
(WTF::textUTF16ContextAwareMoveInPriorContext):
(WTF::textUTF16ContextAwareSwitchToPriorContext):
(WTF::uTextUTF16ContextAwareClone):
(WTF::uTextUTF16ContextAwareNativeLength):
(WTF::uTextUTF16ContextAwareAccess):
(WTF::uTextUTF16ContextAwareExtract):
(WTF::uTextUTF16ContextAwareClose):
(WTF::openUTF16ContextAwareUTextProvider):

  • wtf/text/icu/UTextProviderUTF16.h: Renamed from Source/WebCore/platform/text/icu/UTextProviderUTF16.h.
  • wtf/text/mac/TextBreakIteratorInternalICUMac.mm: Renamed from Source/WebCore/platform/text/mac/TextBreakIteratorInternalICUMac.mm.

(WTF::textBreakLocalePreference):
(WTF::topLanguagePreference):
(WTF::getLocale):
(WTF::getSearchLocale):
(WTF::currentSearchLocaleID):
(WTF::getTextBreakLocale):
(WTF::currentTextBreakLocaleID):

  • wtf/text/win/TextBreakIteratorInternalICUWin.cpp: Renamed from Source/WebCore/platform/text/win/TextBreakIteratorInternalICUWin.cpp.

(WebCore::currentSearchLocaleID):
(WebCore::currentTextBreakLocaleID):

1:24 AM Changeset in webkit [203037] by commit-queue@webkit.org
  • 7 edits
    3 adds in trunk

ECMAScript 2016: %TypedArray%.prototype.includes implementation
​https://bugs.webkit.org/show_bug.cgi?id=159385

Patch by Caio Lima <Caio Lima> on 2016-07-10
Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

This patch implements the ECMAScript 2016:
%TypedArray%.prototype.includes
following spec 22.2.3.14
​https://tc39.github.io/ecma262/2016/#sec-%typedarray%.prototype.includes

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncIncludes):

  • runtime/JSTypedArrayViewPrototype.cpp:

(JSC::typedArrayViewProtoFuncIncludes):
(JSC::JSTypedArrayViewPrototype::finishCreation):

LayoutTests:

This patch implements test case to ECMAScript 2016:
%TypedArray%.prototype.includes implementation
following spec 22.2.3.14
​https://tc39.github.io/ecma262/2016/#sec-%typedarray%.prototype.includes

  • js/regress/script-tests/typed-array-includes.js: Added.

(assertProperError):
(testIntTypedArray):
(testFloatTypedArray):

  • js/typed-array-includes-expected.txt: Added.
  • js/typed-array-includes.html: Added.
1:03 AM Changeset in webkit [203036] by Yusuke Suzuki
  • 42 edits
    2 adds in trunk

[GTK] Crash on ​https://diafygi.github.io/webcrypto-examples with ENABLE_SUBTLE_CRYPTO
​https://bugs.webkit.org/show_bug.cgi?id=159189

Reviewed by Michael Catanzaro.

Source/WebCore:

Currently, we explicitly release the pointers of std::unique_ptr<CryptoAlgorithm> and std::unique_ptr<CryptoAlgorithmParameters>,
and delete them in the asynchronously called lambdas. In GnuTLS version, callback function is accidentally called twice,
and it incurs the double free problem.
In SubtleCrypto code, we have the rule that we must not call failureCallback when the error code is filled in synchronous execution.
So we drop the failureCallback calling code in GnuTLS subtle crypto code.

But, rather than carefully handling un-smart-pointer-managed raw pointer's life time, we should use ref counted pointer for that.
Using the raw delete is error-prone.

This patch also changes CryptoAlgorithm and CryptoAlgorithmParameters to RefCounted. And use Ref and RefPtr instead.
The change eliminates the ad-hoc delete code. And now, the lambdas can be called multiple times since once the result of the promise
is resolved or rejected, subsequent resolve / reject calls are ignored.

And this patch also fixes the incorrect call to the lambda that is already WTFMoved.

While we can see several return WTFMove(...), they are necessary since it uses implicit type conversions, like,
Ref<A> => RefPtr<A>, and Ref<Derived> => Ref<Base>.

  • bindings/js/JSCryptoAlgorithmDictionary.cpp:

(WebCore::createAesCbcParams):
(WebCore::createAesKeyGenParams):
(WebCore::createHmacParams):
(WebCore::createHmacKeyParams):
(WebCore::createRsaKeyGenParams):
(WebCore::createRsaKeyParamsWithHash):
(WebCore::createRsaOaepParams):
(WebCore::createRsaSsaParams):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForSign):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
(WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey):

  • bindings/js/JSCryptoAlgorithmDictionary.h:
  • bindings/js/JSCryptoKeySerializationJWK.cpp:

(WebCore::createHMACParameters):
(WebCore::createRSAKeyParametersWithHash):
(WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):

  • bindings/js/JSCryptoKeySerializationJWK.h:
  • bindings/js/JSSubtleCryptoCustom.cpp:

(WebCore::createAlgorithmFromJSValue):
(WebCore::importKey):
(WebCore::JSSubtleCrypto::importKey):
(WebCore::JSSubtleCrypto::wrapKey):
(WebCore::JSSubtleCrypto::unwrapKey):

  • crypto/CryptoAlgorithm.h:
  • crypto/CryptoAlgorithmParameters.h:
  • crypto/CryptoAlgorithmRegistry.cpp:

(WebCore::CryptoAlgorithmRegistry::create):

  • crypto/CryptoAlgorithmRegistry.h:
  • crypto/CryptoKeySerialization.h:
  • crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:

(WebCore::CryptoAlgorithmAES_CBC::create):

  • crypto/algorithms/CryptoAlgorithmAES_CBC.h:
  • crypto/algorithms/CryptoAlgorithmAES_KW.cpp:

(WebCore::CryptoAlgorithmAES_KW::create):

  • crypto/algorithms/CryptoAlgorithmAES_KW.h:
  • crypto/algorithms/CryptoAlgorithmHMAC.cpp:

(WebCore::CryptoAlgorithmHMAC::create):

  • crypto/algorithms/CryptoAlgorithmHMAC.h:
  • crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::create):

  • crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::create):

  • crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
  • crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:

(WebCore::CryptoAlgorithmRSA_OAEP::create):

  • crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
  • crypto/algorithms/CryptoAlgorithmSHA1.cpp:

(WebCore::CryptoAlgorithmSHA1::create):

  • crypto/algorithms/CryptoAlgorithmSHA1.h:
  • crypto/algorithms/CryptoAlgorithmSHA224.cpp:

(WebCore::CryptoAlgorithmSHA224::create):

  • crypto/algorithms/CryptoAlgorithmSHA224.h:
  • crypto/algorithms/CryptoAlgorithmSHA256.cpp:

(WebCore::CryptoAlgorithmSHA256::create):

  • crypto/algorithms/CryptoAlgorithmSHA256.h:
  • crypto/algorithms/CryptoAlgorithmSHA384.cpp:

(WebCore::CryptoAlgorithmSHA384::create):

  • crypto/algorithms/CryptoAlgorithmSHA384.h:
  • crypto/algorithms/CryptoAlgorithmSHA512.cpp:

(WebCore::CryptoAlgorithmSHA512::create):

  • crypto/algorithms/CryptoAlgorithmSHA512.h:
  • crypto/gnutls/CryptoAlgorithmAES_CBCGnuTLS.cpp:

(WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
(WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):

  • crypto/gnutls/CryptoAlgorithmAES_KWGnuTLS.cpp:

(WebCore::CryptoAlgorithmAES_KW::platformEncrypt):
(WebCore::CryptoAlgorithmAES_KW::platformDecrypt):

  • crypto/gnutls/CryptoAlgorithmHMACGnuTLS.cpp:

(WebCore::CryptoAlgorithmHMAC::platformSign):
(WebCore::CryptoAlgorithmHMAC::platformVerify):

  • crypto/gnutls/CryptoAlgorithmRSAES_PKCS1_v1_5GnuTLS.cpp:

(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):

  • crypto/gnutls/CryptoAlgorithmRSASSA_PKCS1_v1_5GnuTLS.cpp:

(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify):

  • crypto/gnutls/CryptoAlgorithmRSA_OAEPGnuTLS.cpp:

(WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
(WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):

  • crypto/keys/CryptoKeySerializationRaw.cpp:

(WebCore::CryptoKeySerializationRaw::reconcileAlgorithm):

  • crypto/keys/CryptoKeySerializationRaw.h:

LayoutTests:

If you execute the added test with subtle-crypto-enabled GTK environment without this patch, this causes the crash.

  • crypto/subtle/unimplemented-unwrap-crash-expected.txt: Added.
  • crypto/subtle/unimplemented-unwrap-crash.html: Added.

Jul 9, 2016:

3:58 PM Changeset in webkit [203035] by rniwa@webkit.org
  • 10 edits in trunk/Websites/perf.webkit.org

Perf dashboard can consume 50-70% of CPU on MacBook even if user is not interacting at all
​https://bugs.webkit.org/show_bug.cgi?id=159597

Reviewed by Chris Dumez.

TimeSeriesChart and InteractiveTimeSeriesChart had been relying on continually polling on requestAnimationFrame
to update itself in response to its canvas resizing. Even though there as an early exit in the case there was
nothing to update, this is still causing a significant power drain when the user is not interacting at all.

Let TimeSeriesChart use the regular top-down render path like other components with exceptions of listening to
window's resize eventas well as when new JSONs are fetched from the server. The render() call to the latter case
will be coerced into a single callback on requestAnimationFrame to avoid DOM-mutation-layout churn.

  • public/v3/components/base.js:

(ComponentBase.isElementInViewport): Deleted.

  • public/v3/components/chart-pane-base.js:

(ChartPaneBase.prototype.render): Enqueue charts to render.

  • public/v3/components/chart-styles.js:

(ChartStyles.dashboardOptions): Removed updateOnRequestAnimationFrame which is no longer an available option.

  • public/v3/components/time-series-chart.js:

(TimeSeriesChart): Replaced the code to register itself for rAF by the code to listen to resize events on window.
(TimeSeriesChart._updateOnRAF): Deleted.
(TimeSeriesChart._updateAllCharts): Added.
(TimeSeriesChart.prototype._enqueueToRender): Added.
(TimeSeriesChart._renderEnqueuedCharts): Added.
(TimeSeriesChart.prototype.fetchMeasurementSets): Avoid calling fetchBetween when the range had been fetched.
Without this change, we can incur a significant number of redundant calls to render() when adjusting the domain
in charts page by the slider. When no new JSON is fetched, simply enqueue this chart to render on rAF.
(TimeSeriesChart.prototype._didFetchMeasurementSet): Enqueue this chart to render on rAF.
(TimeSeriesChart.prototype.render): Removed the check for isElementInViewport since we no longer get render() call
when this chart moves into the viewport (as we no longer listen to every rAF or scroll event).

  • public/v3/models/measurement-set.js:

(MeasurementSet.prototype.hasFetchedRange): Fixed various bugs revealed by the new use in fetchMeasurementSets.

  • public/v3/pages/chart-pane-status-view.js:

(ChartPaneStatusView.prototype._updateRevisionListForNewCurrentRepository): Removed the dead code. It was probably
copied from when this code was in InteractiveTimeSeries chart. There is no this._forceRender in this component.

  • public/v3/pages/dashboard-page.js:

(DashboardPage.prototype.render): Enqueue charts to render.

  • public/v3/pages/heading.js:

(SummaryPage.prototype.open): Removed the call to isElementInViewport. This wasn't really doing anything useful in
this component.

  • unit-tests/measurement-set-tests.js: Added tests for hasFetchedRange.

(.waitForMeasurementSet): Moved to be used in a newly added test case.

2:07 PM Changeset in webkit [203034] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore
REGRESSION(201900): validation failure for GetByOffset/PutByOffset in VALIDATE((node), node->child1().node() == node->child2().node()
node->child1()->result() == NodeResultStorage)

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

Reviewed by Keith Miller.

This removes an incorrect validation rule and replaces it with a FIXME about how to make this
aspect of IR easier to validate soundly.

It's not valid to assert that two children of a node are the same. It should always be valid
to take:

Foo(@x, @x)

and turn it into:

a: ValueRep(@x)
b: ValueRep(@x)
Foo(@a, @b)

or even something like:

y: Identity(@y)
Foo(@x, @y)

That's because it should be possible to rewire any data flow edge something that produces an
equivalent value.

The validation rule that this patch removes meant that such rewirings were invalid on
GetByOffset/PutByOffset. FixupPhase did such a rewiring sometimes.

  • dfg/DFGValidate.cpp:
  • tests/stress/get-by-offset-double.js: Added.
1:50 PM Changeset in webkit [203033] by keith_miller@apple.com
  • 3 edits
    4 adds in trunk

appendMemcpy might fail in concatAppendOne
​https://bugs.webkit.org/show_bug.cgi?id=159601
Source/JavaScriptCore:

<rdar://problem/27211300>

Reviewed by Mark Lam.

There are multiple reasons why we might fail appendMemcpy. One
reason, which I suspect was the source of the crashes, is that one
of the Array prototypes has an indexed property. This patch
consolidates the two old cases by just creating an array then
attempting to memcpy append. If that fails, we fall back to
moveElements.

  • runtime/ArrayPrototype.cpp:

(JSC::concatAppendOne):

  • tests/stress/concat-with-holesMustForwardToPrototype.js: Added.

(arrayEq):

LayoutTests:

Reviewed by Mark Lam.

Add new microbenchmark testing the performance of concat
when appending one new element. This patch appears to be
about a 13% progression on this test.

  • js/regress/concat-append-one-expected.txt: Added.
  • js/regress/concat-append-one.html: Added.
  • js/regress/script-tests/concat-append-one.js: Added.

(test):

9:23 AM Changeset in webkit [203032] by mitz@apple.com
  • 2 edits in trunk/Tools

Give git-add-reviewer an option to say “Rubber-stamped by” in non-interactive mode
​https://bugs.webkit.org/show_bug.cgi?id=159600

Reviewed by Daniel Bates.

  • Scripts/git-add-reviewer:
Added the -srubber-stamp option.

(nonInteractive): Set the rubberstamp key in the item passed to addReviewer() based on the

new option.

8:47 AM Changeset in webkit [203031] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

REGRESSION (r202931): breaks release builds with ASSERT_WITH_SECURITY_IMPLICATION for fuzzing
​https://bugs.webkit.org/show_bug.cgi?id=159599
rdar://problem/27248835

Reviewed by Chris Dumez.

Make RenderStyle::deletionHasBegun() available with ENABLE(SECURITY_ASSERTIONS)

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::~RenderStyle):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::deletionHasBegun):

8:39 AM Changeset in webkit [203030] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

REGRESSION: manifest.json generation takes multiple seconds on perf dashboard
​https://bugs.webkit.org/show_bug.cgi?id=159596

Reviewed by Chris Dumez.

The most of CPU time was spent looking for a duplicate entry in an array of metrics by array_search.
This patch moves to postgres by using aggregate functions in the query. Also moved the code to convert
datetime to UNIX epoch timestamp from PHP to within postgres query.

These improvements reduce total runtime of Manifest::generate from ~4s to ~350ms on my machine.

  • public/include/manifest.php:

(Manifest::generate): No longer fetches test_configurations table as this is done in Manifest::platforms now.
Also moved calls to each method in the class to separate lines for easier instrumentation.
(Manifest::platforms): Group test configurations (current, baseline, target) by platform and metric.
Use the max of the last modified dates in UNIX epoch timestamps (ms to be compatible with JS's representation).
A given platform, metric pair is considered to be in the v1 dashboard if any test configuration is in.

5:57 AM Changeset in webkit [203029] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

Make use of PrivateIdentifier to simplify Fetch Headers built-in checks
​https://bugs.webkit.org/show_bug.cgi?id=159554

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

Source/WebCore:

Test: fetch/header-constructor-overriden.html
Patch does not change visible behavior.

  • Modules/fetch/FetchHeaders.idl: Adding PrivateIdentifier to the Headers constructor.
  • Modules/fetch/FetchHeaders.js:

(initializeFetchHeaders): Checking directly with @Headers for improved clarity.

  • Modules/fetch/FetchResponse.js: Using @Headers to check whether creating a Headers object or not before

passsing it to C++ FetchResponse initialize method.
(initializeFetchResponse):

  • bindings/js/WebCoreBuiltinNames.h: Adding Headers private name.

LayoutTests:

  • fetch/header-constructor-overriden-expected.txt: Added.
  • fetch/header-constructor-overriden.html: Added.
12:33 AM Changeset in webkit [203028] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Fix the Template Raw Value of \ (escape) + LineTerminatorSequence
​https://bugs.webkit.org/show_bug.cgi?id=159595

Patch by Benjamin Poulain <​bpoulain@apple.com> on 2016-07-09
Reviewed by Yusuke Suzuki.

The spec (​https://tc39.github.io/ecma262/#sec-static-semantics-tv-and-trv)
says:
"The TRV of LineContinuation::\LineTerminatorSequence is the sequence

consisting of the code unit value 0x005C followed by the code units
of TRV of LineTerminatorSequence."

We were not normalizing the LineTerminatorSequence in that case, but it should
be as it is the TRV of LineTerminatorSequence.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::parseTemplateLiteral):

  • tests/stress/tagged-templates-raw-strings.js:
12:03 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)

Jul 8, 2016:

11:37 PM Changeset in webkit [203027] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 8

Added a tag for Safari Technology Preview release 8.

11:37 PM Changeset in webkit [203026] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 7

Added a tag for Safari Technology Preview release 7.

11:37 PM Changeset in webkit [203025] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 6

Added a tag for Safari Technology Preview release 6.

11:37 PM Changeset in webkit [203024] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 5

Added a tag for Safari Technology Preview release 5.

11:37 PM Changeset in webkit [203023] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 4

Added a tag for Safari Technology Preview release 4.

11:37 PM Changeset in webkit [203022] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 3

Added a tag for Safari Technology Preview release 3.

11:37 PM Changeset in webkit [203021] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 2

Added a tag for Safari Technology Preview release 2.

11:35 PM Changeset in webkit [203020] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/Safari Technology Preview 1

Added a tag for Safari Technology Preview release 1.

8:32 PM Changeset in webkit [203019] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

bundle-v3-scripts.py should compress HTML/CSS templates
​https://bugs.webkit.org/show_bug.cgi?id=159582

Reviewed by Joseph Pecoraro.

Strip leading and trailing whitespaces from HTML and CSS templates. This is a 8% progression on the file size.

  • Install.md: Updated the list of MIME types to apply deflate for newer versions of Apache.
  • tools/bundle-v3-scripts.py:

(main):
(compress_template): Added.

7:24 PM Changeset in webkit [203018] by Chris Dumez
  • 4 edits
    4 adds in trunk

adoptNode() changes css class to lowercase for document loaded with XHR responseType = "document"
​https://bugs.webkit.org/show_bug.cgi?id=159555
<rdar://problem/27252541>

Reviewed by Ryosuke Niwa.

Source/WebCore:

When adopting an Element from another document which has a different quirks mode,
case-sensitivity for id and class attributes differs and we need to correctly
update members such as ElementData::m_classNames or ElementData::m_idForStyleResolution.

To address the issue, have Element override didMoveToNewDocument() and call
attributeChanged() for id and class attributes.

Test: fast/dom/Document/adoptNode-quirks-mismatch.html

  • dom/Element.cpp:

(WebCore::Element::didMoveToNewDocument):

  • dom/Element.h:

LayoutTests:

Add test coverage for id and class attributes.

  • fast/dom/Document/adoptNode-quirks-mismatch-expected.txt: Added.
  • fast/dom/Document/adoptNode-quirks-mismatch.html: Added.
  • fast/dom/Document/resources/document-quirks-class.html: Added.
  • fast/dom/Document/resources/document-quirks-id.html: Added.
7:24 PM Changeset in webkit [203017] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Command-Shift-S in the Styles sidebar should always show the save dialog
​https://bugs.webkit.org/show_bug.cgi?id=156858
<rdar://problem/25859098>

Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection):

7:14 PM Changeset in webkit [203016] by dbates@webkit.org
  • 3 edits in trunk/Source/WebCore

Cleanup: Remove use of PassRefPtr from class HTMLTableElement
​https://bugs.webkit.org/show_bug.cgi?id=159587

Reviewed by Chris Dumez.

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::setCaption): Take a rvalue reference to a RefPtr instead of a PassRefPtr.
(WebCore::HTMLTableElement::setTHead): Take a rvalue reference to a RefPtr instead of a PassRefPtr. Also
fix a style nit; add curly braces around the for-loop body since its body is more than a single line.
(WebCore::HTMLTableElement::createTHead): Use Ref::copyRef() instead of Ref::ptr() to pass the instantiated
table section to better convey that we are passing a copy of the table section.
(WebCore::HTMLTableElement::createCaption): Ditto.

  • html/HTMLTableElement.h:
6:29 PM Changeset in webkit [203015] by sbarati@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

We may add a ReadOnly property without setting the corresponding bit on Structure
​https://bugs.webkit.org/show_bug.cgi?id=159542
<rdar://problem/27084591>

Reviewed by Benjamin Poulain.

The reason this usually is OK is due to happenstance. Often, instances that putDirectWithoutTransition
also happen to have a static property table. Having a static property table causes the
HasReadOnlyOrGetterSetterPropertiesExcludingProto on the structure to be set. However,
there are times where an object calls putDirectWithoutTransition, and it doesn't have a
static property hash table. The fix is simple, putDirectWithTransition needs to set the
HasReadOnlyOrGetterSetterPropertiesExcludingProto if it puts a ReadOnly property.

  • runtime/JSObject.h:

(JSC::JSObject::putDirectWithoutTransition):

  • tests/stress/proper-property-store-with-prototype-property-that-is-not-writable.js: Added.

(assert):

5:43 PM Changeset in webkit [203014] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

When WKWebView prepares the session state blob, we should be able to filter it.
​https://bugs.webkit.org/show_bug.cgi?id=159410

Add a SPI to WKWebView so that a client can decide how to filter backforward items
when WKWebView perparing session state.

Patch by Yongjun Zhang <​yongjun_zhang@apple.com> on 2016-07-08
Reviewed by Brady Eidson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _sessionStateWithFilter:]): When preparing session state, check each
backforward item against the filter block.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h: Add the SPI _sessionStateWithFilter:
5:28 PM Changeset in webkit [203013] by dbates@webkit.org
  • 4 edits in trunk/Source/WebCore

Move shouldInheritSecurityOriginFromOwner() from URL to Document
​https://bugs.webkit.org/show_bug.cgi?id=158987

Reviewed by Alex Christensen.

The URL class should not have knowledge of the concept of an origin or the semantics of origin
inheritance as these are higher level concepts. We should make URL::shouldInheritSecurityOriginFromOwner()
a static non-member, non-friend function of Document because its implements the origin semantics
for a Document object as described in section Origin of the HTML5 spec., <​https://html.spec.whatwg.org/multipage/browsers.html#origin> (8 July 2016).
These semantics only apply to Documents.

No functionality changed. So, no new tests.

  • dom/Document.cpp:

(WebCore::shouldInheritSecurityOriginFromOwner): Added.
(WebCore::Document::initSecurityContext): Modified to call WebCore::shouldInheritSecurityOriginFromOwner().
(WebCore::Document::initContentSecurityPolicy): Ditto.

  • platform/URL.cpp:

(WebCore::URL::shouldInheritSecurityOriginFromOwner): Deleted.

  • platform/URL.h:
5:24 PM Changeset in webkit [203012] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

ASSERTION FAILED: Heap::isMarked(cell) in SlotVisitor::appendToMarkStack(JSC::JSCell *)
​https://bugs.webkit.org/show_bug.cgi?id=159588

Reviewed by Geoffrey Garen.

We were jettisoning a CodeBlock during GC that won't survive and its owning script
won't survive either. We can't install any code on the owning script as that involves
a write barrier that will "pull" the script back into the remembered set. Badness would
ensue. Added an early return in CodeBlock::jettison() when we are garbage collecting
and the owning script isn't marked.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::jettison):

5:19 PM Changeset in webkit [203011] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Setting table.tFoot or calling table.createTFoot() should append HTML tfont element to the end of the table
​https://bugs.webkit.org/show_bug.cgi?id=159583
<rdar://problem/27255292>

In HTMLTableElement::createTFoot() I inadvertently made use of WTFMove() to move the instantiated
HTMLTableSectionElement into the argument passed to setTFoot(). We should use Ref::copyRef() instead
because we want this function to return the instantiated table section.

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::createTFoot):

5:15 PM Changeset in webkit [203010] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Mail messages don't start loading until scrolling completes
​https://bugs.webkit.org/show_bug.cgi?id=159585
<rdar://problem/27088405>

Reviewed by Andy Estes.

  • UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm:

(-[WKCustomProtocolLoader initWithCustomProtocolManagerProxy:customProtocolID:request:connection:]):
When scrolling, NSDefaultRunLoopMode isn't run, but NSRunLoopCommonModes are.
CFNetwork uses NSDefaultRunLoopMode if we tell NSURLConnection to "start immediately",
but we can instead schedule our NSURLConnection into NSRunLoopCommonModes
and start it ourselves, ensuring that it will be able to do work while scrolling is happening.

5:04 PM Changeset in webkit [203009] by dbates@webkit.org
  • 11 edits in trunk

Setting table.tFoot or calling table.createTFoot() should append HTML tfont element to the end of the table
​https://bugs.webkit.org/show_bug.cgi?id=159583
<rdar://problem/27255292>

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update expected result now that we append the HTML tfoot element to the end of the table.

  • web-platform-tests/html/semantics/tabular-data/the-table-element/tFoot-expected.txt:

Source/WebCore:

he HTML standard has long since been revised to describe that assignment to property table.tFoot
or invoking table.createTFoot() will append the HTML tfoot element to the end of the table. This
behavior is defined in <​https://html.spec.whatwg.org/multipage/tables.html#dom-table-tfoot> (8 July 2016)
and <​https://html.spec.whatwg.org/multipage/tables.html#dom-table-createtfoot> for the property
table.tFoot and table.createTFoot(), respectively. This change makes our behavior match the
behavior in Mozilla Firefox, Microsoft Edge, Microsoft Internet Explorer 8 and later.

  • html/HTMLTableElement.cpp:

(WebCore::HTMLTableElement::setTFoot): Append <tfoot> to the end of the table. Use RefPtr<>&& instead of PassRefPtr.
(WebCore::HTMLTableElement::createTFoot): Use RefPtr<>&& instead of PassRefPtr.

  • html/HTMLTableElement.h:

LayoutTests:

Update expected results now that we append the HTML tfoot element to the end of the table.

  • platform/efl/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug30418-expected.txt:
  • platform/win/tables/mozilla/bugs/bug30418-expected.txt:
4:49 PM Changeset in webkit [203008] by jer.noble@apple.com
  • 3 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.

Protect against _dataTasks being mutated and accessed on multiple simultaneous threads with a Lock.

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession dealloc]):
(-[WebCoreNSURLSession taskCompleted:]):
(-[WebCoreNSURLSession finishTasksAndInvalidate]):
(-[WebCoreNSURLSession invalidateAndCancel]):
(-[WebCoreNSURLSession getTasksWithCompletionHandler:]):
(-[WebCoreNSURLSession getAllTasksWithCompletionHandler:]):
(-[WebCoreNSURLSession dataTaskWithRequest:]):
(-[WebCoreNSURLSession dataTaskWithURL:]):

4:38 PM Changeset in webkit [203007] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.7.7

New tag.

3:58 PM Changeset in webkit [203006] by mark.lam@apple.com
  • 59 edits in trunk/Source/JavaScriptCore

Move CallFrame header info from JSStack.h to CallFrame.h
​https://bugs.webkit.org/show_bug.cgi?id=159549

Reviewed by Geoffrey Garen.

CallFrame.h is a much better location for CallFrame header info.

Replaced CallFrame::init() with ExecState::initGlobalExec() because normal
CallFrames are setup by a different mechanism now. Only the globalExec is still
using it. So, might as well change it to be specifically for the globalExec.

Removed the use of JSStack::containsAddress() in ExecState::initGlobalExec()
because it is not relevant to the globalExec.

Also removed some unused code: JSStack::gatherConservativeRoots() and
JSStack::sanitizeStack() is never called for JIT builds.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/VirtualRegister.h:

(JSC::VirtualRegister::isValid):
(JSC::VirtualRegister::isLocal):
(JSC::VirtualRegister::isArgument):
(JSC::VirtualRegister::isHeader):
(JSC::VirtualRegister::isConstant):
(JSC::VirtualRegister::toLocal):
(JSC::VirtualRegister::toArgument):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitCall):
(JSC::BytecodeGenerator::emitConstruct):

  • bytecompiler/BytecodeGenerator.h:

(JSC::CallArguments::thisRegister):
(JSC::CallArguments::argumentRegister):
(JSC::CallArguments::stackOffset):
(JSC::CallArguments::argumentCountIncludingThis):
(JSC::CallArguments::argumentsNode):
(JSC::BytecodeGenerator::registerFor):

  • bytecompiler/NodesCodegen.cpp:

(JSC::emitHomeObjectForCallee):
(JSC::emitGetSuperFunctionForConstruct):
(JSC::CallArguments::CallArguments):

  • dfg/DFGArgumentsEliminationPhase.cpp:
  • dfg/DFGArgumentsUtilities.cpp:

(JSC::DFG::argumentsInvolveStackSlot):
(JSC::DFG::emitCodeToGetArgumentsArrayLength):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::get):
(JSC::DFG::ByteCodeParser::findArgumentPositionForLocal):
(JSC::DFG::ByteCodeParser::flush):
(JSC::DFG::ByteCodeParser::addCallWithoutSettingResult):
(JSC::DFG::ByteCodeParser::getArgumentCount):
(JSC::DFG::ByteCodeParser::inlineCall):
(JSC::DFG::ByteCodeParser::handleInlining):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::handlePutById):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::isLiveInBytecode):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::forAllLocalsLiveInBytecode):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::compileEntry):
(JSC::DFG::JITCompiler::compileSetupRegistersForEntry):
(JSC::DFG::JITCompiler::compileFunction):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::emitStoreCallSiteIndex):

  • dfg/DFGOSRAvailabilityAnalysisPhase.cpp:

(JSC::DFG::LocalOSRAvailabilityCalculator::executeNode):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSRExitCompiler.cpp:

(JSC::DFG::OSRExitCompiler::emitRestoreArguments):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGOSRExitCompilerCommon.h:

(JSC::DFG::adjustFrameAndStackInOSRExitCompilerThunk):

  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::readTop):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::emitGetLength):
(JSC::DFG::SpeculativeJIT::emitGetCallee):
(JSC::DFG::SpeculativeJIT::emitGetArgumentStart):
(JSC::DFG::SpeculativeJIT::compileCreateDirectArguments):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStackLayoutPhase.cpp:

(JSC::DFG::StackLayoutPhase::run):

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrEntryThunkGenerator):

  • ftl/FTLLink.cpp:

(JSC::FTL::link):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::lower):
(JSC::FTL::DFG::LowerDFGToB3::compileGetMyArgumentByVal):
(JSC::FTL::DFG::LowerDFGToB3::compileGetCallee):
(JSC::FTL::DFG::LowerDFGToB3::compileGetArgumentCountIncludingThis):
(JSC::FTL::DFG::LowerDFGToB3::compileGetScope):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToB3::compileTailCall):
(JSC::FTL::DFG::LowerDFGToB3::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToB3::compileLogShadowChickenPrologue):
(JSC::FTL::DFG::LowerDFGToB3::getArgumentsLength):
(JSC::FTL::DFG::LowerDFGToB3::getCurrentCallee):
(JSC::FTL::DFG::LowerDFGToB3::getArgumentsStart):
(JSC::FTL::DFG::LowerDFGToB3::callPreflight):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

  • ftl/FTLSlowPathCall.h:

(JSC::FTL::callOperation):

  • interpreter/CallFrame.cpp:

(JSC::ExecState::initGlobalExec):
(JSC::CallFrame::callSiteBitsAreBytecodeOffset):
(JSC::CallFrame::callSiteAsRawBits):
(JSC::CallFrame::unsafeCallSiteAsRawBits):
(JSC::CallFrame::callSiteIndex):
(JSC::CallFrame::setCurrentVPC):
(JSC::CallFrame::callSiteBitsAsBytecodeOffset):

  • interpreter/CallFrame.h:

(JSC::CallSiteIndex::CallSiteIndex):
(JSC::ExecState::calleeAsValue):
(JSC::ExecState::callee):
(JSC::ExecState::unsafeCallee):
(JSC::ExecState::codeBlock):
(JSC::ExecState::unsafeCodeBlock):
(JSC::ExecState::scope):
(JSC::ExecState::setCallerFrame):
(JSC::ExecState::setScope):
(JSC::ExecState::argumentCount):
(JSC::ExecState::argumentCountIncludingThis):
(JSC::ExecState::argumentOffset):
(JSC::ExecState::argumentOffsetIncludingThis):
(JSC::ExecState::offsetFor):
(JSC::ExecState::noCaller):
(JSC::ExecState::setArgumentCountIncludingThis):
(JSC::ExecState::setCallee):
(JSC::ExecState::setCodeBlock):
(JSC::ExecState::setReturnPC):
(JSC::ExecState::argIndexForRegister):
(JSC::ExecState::callerFrameAndPC):
(JSC::ExecState::unsafeCallerFrameAndPC):
(JSC::ExecState::init): Deleted.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::dumpRegisters):

  • interpreter/Interpreter.h:

(JSC::calleeFrameForVarargs):

  • interpreter/JSStack.h:

(JSC::JSStack::containsAddress):
(JSC::JSStack::gatherConservativeRoots): Deleted.
(JSC::JSStack::sanitizeStack): Deleted.

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::jitAssertArgumentCountSane):
(JSC::AssemblyHelpers::emitRandomThunk):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::restoreReturnAddressBeforeReturn):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeaderPtr):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeader32):
(JSC::AssemblyHelpers::emitGetFromCallFrameHeader64):
(JSC::AssemblyHelpers::emitPutToCallFrameHeader):
(JSC::AssemblyHelpers::emitPutToCallFrameHeaderBeforePrologue):
(JSC::AssemblyHelpers::emitPutPayloadToCallFrameHeaderBeforePrologue):
(JSC::AssemblyHelpers::emitPutTagToCallFrameHeaderBeforePrologue):
(JSC::AssemblyHelpers::calleeFrameSlot):

  • jit/CCallHelpers.cpp:

(JSC::CCallHelpers::logShadowChickenProloguePacket):

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::prepareForTailCallSlow):

  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::CallFrameShuffler):
(JSC::CallFrameShuffler::dump):
(JSC::CallFrameShuffler::extendFrameIfNeeded):
(JSC::CallFrameShuffler::prepareForSlowPath):
(JSC::CallFrameShuffler::prepareForTailCall):
(JSC::CallFrameShuffler::prepareAny):

  • jit/CallFrameShuffler.h:

(JSC::CallFrameShuffler::snapshot):
(JSC::CallFrameShuffler::setCalleeJSValueRegs):
(JSC::CallFrameShuffler::assumeCalleeIsCell):
(JSC::CallFrameShuffler::numLocals):
(JSC::CallFrameShuffler::getOld):
(JSC::CallFrameShuffler::setOld):
(JSC::CallFrameShuffler::firstOld):
(JSC::CallFrameShuffler::lastOld):
(JSC::CallFrameShuffler::isValidOld):
(JSC::CallFrameShuffler::argCount):
(JSC::CallFrameShuffler::getNew):

  • jit/JIT.cpp:

(JSC::JIT::compileWithoutLinking):

  • jit/JIT.h:
  • jit/JITCall.cpp:

(JSC::JIT::compileSetupVarargsFrame):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileSetupVarargsFrame):
(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):

  • jit/JITInlines.h:

(JSC::JIT::getConstantOperand):
(JSC::JIT::emitPutIntToCallFrameHeader):
(JSC::JIT::updateTopCallFrame):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_get_scope):
(JSC::JIT::emit_op_argument_count):
(JSC::JIT::emit_op_get_rest_length):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileCTINativeCall):
(JSC::JIT::emit_op_get_scope):

  • jit/JSInterfaceJIT.h:

(JSC::JSInterfaceJIT::emitJumpIfNotType):
(JSC::JSInterfaceJIT::emitGetFromCallFrameHeaderPtr):
(JSC::JSInterfaceJIT::emitPutToCallFrameHeader):
(JSC::JSInterfaceJIT::emitPutCellToCallFrameHeader):

  • jit/SetupVarargsFrame.cpp:

(JSC::emitSetVarargsFrame):
(JSC::emitSetupVarargsFrameFastCase):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::SpecializedThunkJIT):

  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):
(JSC::arityFixupGenerator):
(JSC::boundThisNoArgsFunctionCallGenerator):

  • llint/LLIntData.cpp:

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::genericCall):
(JSC::LLInt::varargsSetup):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::arityCheckFor):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:
  • runtime/StackAlignment.h:

(JSC::roundArgumentCountToAlignFrame):
(JSC::roundLocalRegisterCountForFramePointerOffset):
(JSC::logStackAlignmentRegisters):

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::startFunction):
(JSC::WASMFunctionCompiler::endFunction):
(JSC::WASMFunctionCompiler::boxArgumentsAndAdjustStackPointer):
(JSC::WASMFunctionCompiler::callAndUnboxResult):

  • wasm/WASMFunctionSyntaxChecker.h:

(JSC::WASMFunctionSyntaxChecker::updateTempStackHeightForCall):

2:06 PM Changeset in webkit [203005] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Prevent fullscreen video dimension state from being reset after configuring.
​https://bugs.webkit.org/show_bug.cgi?id=159578

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

This change moves setVideoElement() to after setMediaElement(), since setMediaElement() resets the
mediaState, undoing the configuration done by setVideoElement().

This change is fragile, but minimal. The proper, more comprehinsive fix will come later from
​https://bugs.webkit.org/show_bug.cgi?id=159580.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::setUpFullscreen):

1:52 PM Changeset in webkit [203004] by Chris Dumez
  • 3 edits
    6 adds in trunk

Object.defineProperty() should maintain existing getter / setter if not overridden in the new descriptor
​https://bugs.webkit.org/show_bug.cgi?id=159576
<rdar://problem/27242197>

Reviewed by Mark Lam.

Source/JavaScriptCore:

Object.defineProperty() should maintain existing getter / setter if not
overridden in the new descriptor. Previously, if the property is a had
a custom getter / setter, and if the new descriptor only had a setter
(or only a getter), JSC would clear the existing getter (or setter).
This behavior did not match the EcmaScript specification or Firefox /
Chrome. This patch fixes the issue.

This fixes searching and search suggestions on www.iciba.com.

  • runtime/JSObject.cpp:

(JSC::validateAndApplyPropertyDescriptor):

LayoutTests:

Add test coverage.

  • js/dom/customAccessor-defineProperty-expected.txt: Added.
  • js/dom/customAccessor-defineProperty.html: Added.
  • js/dom/customAccessor-defineProperty_getterOnly-expected.txt: Added.
  • js/dom/customAccessor-defineProperty_getterOnly.html: Added.
  • js/dom/customAccessor-defineProperty_setterOnly-expected.txt: Added.
  • js/dom/customAccessor-defineProperty_setterOnly.html: Added.
1:14 PM Changeset in webkit [203003] 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::continueAfterWillSendRequest): Protected m_documentLoader,
since it might otherwise be deallocated inside ContentFilter::didDecide() if the load is blocked.
(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::continueAfterResponseReceived): Protected m_documentLoader,
since it might otherwise be deallocated inside ContentFilter::didDecide() if the load is blocked.
(WebCore::ContentFilter::continueAfterDataReceived): Ditto.
(WebCore::ContentFilter::continueAfterNotifyFinished): Ditto.
(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.

12:40 PM Changeset in webkit [203002] by mmaxfield@apple.com
  • 5 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:

  • TestExpectations:
  • fast/text/font-face-set-ready-fire-expected.txt: Added.
  • fast/text/font-face-set-ready-fire.html: Added.
12:01 PM Changeset in webkit [203001] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix 32-bit build.

  • PluginProcess/mac/PluginProcessShim.mm:
11:56 AM Changeset in webkit [203000] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Dumping the object graph doesn't work with verbose GC logging
​https://bugs.webkit.org/show_bug.cgi?id=159569

Reviewed by Mark Lam.

The current object graph logging code tries to revisits the graph. This doesn't work
correctly and asking around it isn't used. The only way to dump the true object graph
is to log while we GC and that has obvious performance implications.
Therefore I eliminated GCLogging::dumpObjectGraph() and related code.

  • heap/GCLogging.cpp:

(JSC::GCLogging::levelAsString):
(JSC::LoggingFunctor::LoggingFunctor): Deleted.
(JSC::LoggingFunctor::~LoggingFunctor): Deleted.
(JSC::LoggingFunctor::operator()): Deleted.
(JSC::LoggingFunctor::log): Deleted.
(JSC::LoggingFunctor::reviveCells): Deleted.
(JSC::LoggingFunctor::returnValue): Deleted.
(JSC::GCLogging::dumpObjectGraph): Deleted.

  • heap/Heap.cpp:

(JSC::Heap::didFinishCollection):

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

Rebaseline fast/shadow-dom/trusted-event-scoped-flags.html for ios-simulator after r202953.

Unreviewed test gardening.

  • platform/ios-simulator/fast/shadow-dom/trusted-event-scoped-flags-expected.txt:
11:52 AM Changeset in webkit [202998] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

REGRESSION (r196321): Adobe Reader DC + Safari : Zoom level pulldown is not displayed at the correct position
​https://bugs.webkit.org/show_bug.cgi?id=159531
rdar://problem/26382579

Reviewed by Tim Horton.

There's code in the Adobe Acrobat framework that checks if the main bundle identifier is "com.apple.WebKit.PluginProcess"
and assumes that it's running inside the Adobe Reader app if it's something else. Since we're now using the XPC service
for all plug-ins, the bundle identifier is "com.apple.WebKit.Plugin.64", so the Acrobat framework assumes it's running in the app
and doesn't use any special tricks to show the popup menu.

Work around this by shimming CFStringCompare, and looking for the exact conditions when this can happen and return kCFCompareEqualTo
when all conditions are true.

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::isAdobeAcrobatAddress):
(WebKit::stringCompare):
(WebKit::initializeShim):
(WebKit::PluginProcess::platformInitializeProcess):

  • PluginProcess/mac/PluginProcessShim.h:
  • PluginProcess/mac/PluginProcessShim.mm:

(WebKit::shimCFStringCompare):

11:48 AM Changeset in webkit [202997] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

speculateTypedArrayIsNotNeutered has an inverted speculation
​https://bugs.webkit.org/show_bug.cgi?id=159571

Reviewed by Mark Lam.

For some confusing reason FTLLowerDFGToB3 takes the condition the
speculation wants to be false. This issue caused
typedarray-access-monomorphic-neutered.js to fail on the bots.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::speculateTypedArrayIsNotNeutered):

11:34 AM Changeset in webkit [202996] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed: Fix case-sensitive filesystem build.

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:
11:22 AM Changeset in webkit [202995] by commit-queue@webkit.org
  • 35 edits
    18 adds
    20 deletes in trunk

Unreviewed, rolling out r202944.
​https://bugs.webkit.org/show_bug.cgi?id=159570

caused some tests to crash under GuardMalloc (Requested by
estes on #webkit).

Reverted changeset:

"[Content Filtering] Load blocked pages more like other error
pages are loaded"
​https://bugs.webkit.org/show_bug.cgi?id=159485
​http://trac.webkit.org/changeset/202944

11:01 AM Changeset in webkit [202994] by jdiggs@igalia.com
  • 4 edits in trunk/LayoutTests

AX: Eliminate test noise from roles-computedRoleString.html
​https://bugs.webkit.org/show_bug.cgi?id=159563

Reviewed by Chris Fleizach.

Ensure we hide all the content, as the test intends to do.

  • accessibility/roles-computedRoleString-expected.txt: Updated.
  • accessibility/roles-computedRoleString.html: Updated.
  • platform/gtk/accessibility/roles-computedRoleString-expected.txt: Updated.
10:54 AM Changeset in webkit [202993] by Keith Rollin
  • 4 edits in trunk/Source/WebKit2

Add always-on logging for downloads
​https://bugs.webkit.org/show_bug.cgi?id=159521
<rdar://problem/26630645>

Reviewed by Alex Christensen.

Add logging statements that track when a download starts, when it
first receives data, and when the download is done (due to completion,
cancelation, or failure).

  • NetworkProcess/Downloads/Download.cpp:

(WebKit::Download::Download):
(WebKit::Download::didReceiveResponse):
(WebKit::Download::didReceiveData):
(WebKit::Download::didFinish):
(WebKit::Download::didFail):
(WebKit::Download::didCancel):
(WebKit::Download::isAlwaysOnLoggingAllowed):

  • NetworkProcess/Downloads/Download.h:

(WebKit::Download::Download):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):

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

Rename jsCPUStackLimit to osStackLimitWithReserve and jsEmulatedStackLimit to cloopStackLimit.
​https://bugs.webkit.org/show_bug.cgi?id=159544

Reviewed by Geoffrey Garen.

This patch does the following refactoring:

  1. Rename jsCPUStackLimit to osStackLimitWithReserve.
  2. Rename jsEmulatedStackLimit to cloopStackLimit.
  3. Remove llintStackLimit (which previously is either an alias for jsCPUStackLimit or jsEmulatedStackLimit depending on whether we have a JIT or C Loop build). Instead, we'll change the LLINT to conditionally use the osStackLimitWithReserve or cloopStackLimit.

There are no semantic changes.

  • 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::setCLoopStackLimit):
(JSC::JSStack::setJSEmulatedStackLimit): 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::updateStackLimit):

  • runtime/VM.h:

(JSC::VM::reservedZoneSize):
(JSC::VM::osStackLimitWithReserve):
(JSC::VM::addressOfOSStackLimitWithReserve):
(JSC::VM::cloopStackLimit):
(JSC::VM::setCLoopStackLimit):
(JSC::VM::isSafeToRecurse):
(JSC::VM::jsCPUStackLimit): Deleted.
(JSC::VM::addressOfJSCPUStackLimit): Deleted.
(JSC::VM::jsEmulatedStackLimit): Deleted.
(JSC::VM::setJSEmulatedStackLimit): Deleted.

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::startFunction):

10:52 AM Changeset in webkit [202991] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Remove mrobinson from the MathML watchlist
​https://bugs.webkit.org/show_bug.cgi?id=159559

Patch by Martin Robinson <​mrobinson@igalia.com> on 2016-07-08
Reviewed by Philippe Normand.

  • Scripts/webkitpy/common/config/watchlist: Remove my email from the watchlist.
10:48 AM Changeset in webkit [202990] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.40.3

New tag.

10:45 AM Changeset in webkit [202989] by bshafiei@apple.com
  • 7 edits in branches/safari-602.1.40-branch/Source

Merged r202987. rdar://problem/27244394

10:42 AM Changeset in webkit [202988] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking some mathml tests as timeouts after r202983.

Unreviewed test gardening.

10:17 AM Changeset in webkit [202987] by commit-queue@webkit.org
  • 7 edits in trunk/Source

Unreviewed, rolling out r202799.
​https://bugs.webkit.org/show_bug.cgi?id=159568

Caused build failure (Requested by perarne on #webkit).

Reverted changeset:

"[Win] DLLs are missing version information."
​https://bugs.webkit.org/show_bug.cgi?id=159349
​http://trac.webkit.org/changeset/202799

10:15 AM Changeset in webkit [202986] by commit-queue@webkit.org
  • 15 edits in trunk/Source/JavaScriptCore

Built-in generator should generate files with a default copyright
​https://bugs.webkit.org/show_bug.cgi?id=159561

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

  • Scripts/builtins/builtins_model.py:

(BuiltinsCollection._parse_copyright_lines): Adding default copyright to the parsed copyrights.

  • Scripts/builtins/builtins_templates.py:

(BuiltinsGeneratorTemplates): Adding a default copyright.

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result: Rebasing with added default copyright.
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result: Ditto.
10:11 AM Changeset in webkit [202985] by Antti Koivisto
  • 3 edits
    3 adds in trunk

Regression(r201805): Crash with <use> resource that has Vary header
​https://bugs.webkit.org/show_bug.cgi?id=159560
<rdar://problem/27034208>

Reviewed by Chris Dumez.

Source/WebCore:

In some situations (SVG <use> element for example) we may try to load resources from frameless documents.
Such loads always fail. The new vary header verification code path tried to access the frame earlier without
null check.

Test: http/tests/cache/vary-frameless-document.html

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::failBeforeStarting):
(WebCore::addAdditionalRequestHeadersToRequest):

Null check frame.
Also move the resource type check here so all callers get the same behavior.

(WebCore::CachedResource::addAdditionalRequestHeaders):
(WebCore::CachedResource::load):
(WebCore::CachedResource::varyHeaderValuesMatch):

LayoutTests:

  • http/tests/cache/resources/svg-defs-vary.php: Added.
  • http/tests/cache/vary-frameless-document-expected.txt: Added.
  • http/tests/cache/vary-frameless-document.html: Added.
10:03 AM Changeset in webkit [202984] by beidson@apple.com
  • 7 edits
    2 adds in trunk

Clearing LocalStorage doesn't also delete -wal and -shm files.
<rdar://problem/27206772> and ​https://bugs.webkit.org/show_bug.cgi?id=159566

Reviewed by Brent Fulgham.
Also helpfully picked over by Andy "Never Forgets" Estes.

Source/WebCore:

Covered by new API test.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/sql/SQLiteFileSystem.h:

Source/WebKit2:

  • UIProcess/Storage/LocalStorageDatabaseTracker.cpp:

(WebKit::LocalStorageDatabaseTracker::removeDatabaseWithOriginIdentifier):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.html: Added.
  • TestWebKitAPI/Tests/WebKit2Cocoa/LocalStorageClear.mm: Added.
9:42 AM Changeset in webkit [202983] by Ryan Haddad
  • 4 edits
    2 deletes in trunk

Unreviewed, rolling out r202945.
​https://bugs.webkit.org/show_bug.cgi?id=159565

The test for this change is failing on all platforms.
(Requested by ryanhaddad on #webkit).

Reverted changeset:

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

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

9:27 AM Changeset in webkit [202982] by keith_miller@apple.com
  • 16 edits
    3 adds in trunk

TypedArrays need more isNeutered checks.
​https://bugs.webkit.org/show_bug.cgi?id=159231

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

According to the ES6 spec if a user tries to get, set, or define a
property on a neutered TypedArray we should throw an
exception. Currently, if a user tries to get an out of bounds
access on a TypedArray we will always OSR. This makes handling
the exception easy as all we need to do is make out of bounds gets
in PolymorphicAccess go to the slow path, which will then throw
the appropriate exception. For the case of set, we need ensure we
don't OSR on each out of bounds put since, for some confusing
reason, people do this. Thus, for GetByVal in the DFG/FTL if the
user accesses out of bounds we then need to check if the view has
been neutered. If it is neutered then we will OSR.

Additionally, this patch adds a bunch of isNeutered checks to
various prototype functions for TypedArray, which are needed for
correctness.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::jumpForTypedArrayIsNeuteredIfOutOfBounds):
(JSC::DFG::SpeculativeJIT::compilePutByValForIntTypedArray):
(JSC::DFG::SpeculativeJIT::compilePutByValForFloatTypedArray):

  • dfg/DFGSpeculativeJIT.h:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToB3::speculateTypedArrayIsNotNeutered):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

  • runtime/JSArrayBufferView.h:
  • runtime/JSCJSValue.h:

(JSC::encodedJSUndefined):
(JSC::encodedJSValue):

  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::throwNeuteredTypedArrayTypeError):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlot):
(JSC::JSGenericTypedArrayView<Adaptor>::put):
(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::getOwnPropertySlotByIndex):
(JSC::JSGenericTypedArrayView<Adaptor>::putByIndex):
(JSC::JSGenericTypedArrayView<Adaptor>::deletePropertyByIndex):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::genericTypedArrayViewProtoFuncCopyWithin):
(JSC::genericTypedArrayViewProtoFuncFill):
(JSC::genericTypedArrayViewProtoFuncIndexOf):
(JSC::genericTypedArrayViewProtoFuncJoin):
(JSC::genericTypedArrayViewProtoFuncLastIndexOf):
(JSC::genericTypedArrayViewProtoFuncSlice):
(JSC::genericTypedArrayViewProtoFuncSubarray):

  • tests/stress/fold-typed-array-properties.js:
  • tests/stress/typedarray-access-monomorphic-neutered.js: Added.

(check):
(test):
(testFTL):

  • tests/stress/typedarray-access-neutered.js: Added.

(check):
(test):

  • tests/stress/typedarray-functions-with-neutered.js:

(defaultForArg):
(callWithArgs):
(checkArgumentsForType):
(checkArguments):

  • tests/stress/typedarray-view-string-properties-neutered.js: Added.

(call):
(test):

LayoutTests:

Update tests that assert that we can access indexed properties on
a neutered TypedArray.

  • fast/canvas/webgl/script-tests/arraybuffer-transfer-of-control.js:

(assertViewClosed):

  • js/dom/dfg-typed-array-neuter-expected.txt:
  • js/dom/script-tests/dfg-typed-array-neuter.js:
8:52 AM Changeset in webkit [202981] by nael.ouedraogo@crf.canon.fr
  • 15 edits in trunk/Source/WebCore

ExecState should be passed by reference in JS bindings generator for custom constructors
​https://bugs.webkit.org/show_bug.cgi?id=159357

Reviewed by Youenn Fablet.

Pass ExecState as a reference instead of pointer in JS bindings
code for custom constructors.

  • bindings/js/JSAudioContextCustom.cpp:

(WebCore::constructJSAudioContext):

  • bindings/js/JSBlobCustom.cpp:

(WebCore::constructJSBlob):

  • bindings/js/JSDOMFormDataCustom.cpp:

(WebCore::constructJSDOMFormData):
(WebCore::JSDOMFormData::append):

  • bindings/js/JSDataCueCustom.cpp:

(WebCore::constructJSDataCue):

  • bindings/js/JSFileCustom.cpp:

(WebCore::constructJSFile):

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::constructJSHTMLElement):

  • bindings/js/JSMediaSessionCustom.cpp:

(WebCore::constructJSMediaSession):

  • bindings/js/JSMutationObserverCustom.cpp:

(WebCore::constructJSMutationObserver):

  • bindings/js/JSReadableStreamPrivateConstructors.cpp:

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

  • bindings/js/JSWebKitPointCustom.cpp:

(WebCore::constructJSWebKitPoint):

  • bindings/js/JSWorkerCustom.cpp:

(WebCore::constructJSWorker):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateConstructorDefinition):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:

(WebCore::JSTestCustomConstructorWithNoInterfaceObjectConstructor::construct):

  • bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.h:
8:48 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
8:48 AM Changeset in webkit [202980] by Chris Dumez
  • 7 edits in trunk

Expose crossOrigin attribute as a static property in HTMLMediaElement
​https://bugs.webkit.org/show_bug.cgi?id=159459

Patch by Olivier Blin <Olivier Blin> on 2016-07-08
Reviewed by Chris Dumez.

The crossOrigin attribute is already used for MediaResourceLoader
(r119742 and r175050), but it was not exposed as a static property.

This fixes VR360 support in Dailymotion, since it uses the "in"
operator to detect if crossOrigin is supported by the
HTMLVideoElement, in order to enable VR360.

No new tests, rebaselined existing tests, 150 WPT tests are fixed.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setCrossOrigin):
(WebCore::HTMLMediaElement::crossOrigin):

  • html/HTMLMediaElement.h:
  • html/HTMLMediaElement.idl:
8:30 AM Changeset in webkit [202979] by fred.wang@free.fr
  • 14 edits
    13 adds in trunk

Use Fraction* parameters from the OpenType MATH table
​https://bugs.webkit.org/show_bug.cgi?id=155639

Source/WebCore:

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

We improve the RenderMathMLFraction so minimal vertical shifts and gaps
from the MATH table (or arbitrary fallback) are used for fractions.
We also change the interpretation of "thick" and "thin" linethickness values
to match Gecko's behavior and the one suggested in the MathML in HTML5 implementation note.

Test: imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-1.html

  • rendering/mathml/MathMLStyle.cpp:

(WebCore::MathMLStyle::updateStyleIfNeeded): set NeedsLayout after displaystyle change
so that dynamic MathML tests still work.

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::RenderMathMLFraction): Init LayoutUnit members to zero.
(WebCore::RenderMathMLFraction::updateFromElement):
Set new members for fraction gaps and shifts using Fraction* constants or some fallback
values. Change the interpretation of "thick" and "thin".
(WebCore::RenderMathMLFraction::layoutBlock): Use new constants affecting vertical
positions of numerator and denominator.
(WebCore::RenderMathMLFraction::paint): Use m_ascent to set the vertical position
of the fraction bar.
(WebCore::RenderMathMLFraction::firstLineBaseline): We just return m_ascent.

  • rendering/mathml/RenderMathMLFraction.h: Make updateFromElement public so that

it can be used in MathMLStyle. Add LayoutUnit members for the ascent of the fraction
and for minimal shifts/gaps values.

LayoutTests:

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

We import a test from the MathML in HTML5 test suite to verify Fraction* parameters.
We also do some small test adjustments.

  • TestExpectations: We disable fractions-positions.html for now until it is replaced with a more reliable test.
  • imported/mathml-in-html5/fonts/math/fraction-axisheight7000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-denominatordisplaystylegapmin5000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-denominatordisplaystyleshiftdown6000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-denominatorgapmin4000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-denominatorshiftdown3000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-numeratordisplaystylegapmin8000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-numeratordisplaystyleshiftup2000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-numeratorgapmin9000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-numeratorshiftup11000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/math/fraction-rulethickness10000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/fractions/frac-parameters-1.html: Added.
  • mathml/presentation/fractions-linethickness-expected.html: Adjust the test to interpret

"thick" and "thin" as suggested the MathML in HTML5 implementation note.

  • mathml/presentation/stretchy-depth-height-symmetric.html: Increase error tolerance.
  • platform/gtk/mathml/presentation/roots-expected.png: Handle small rendering changes.
  • platform/gtk/mathml/presentation/roots-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
  • platform/mac/mathml/presentation/roots-expected.txt: Ditto.
8:03 AM Changeset in webkit [202978] by Konstantin Tokarev
  • 3 edits in trunk/Tools

Removed Qt leftovers from Tools.
​https://bugs.webkit.org/show_bug.cgi?id=159557

Reviewed by Csaba Osztrogonác.

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/config.js:

Removed 'qt' platform config.

  • Scripts/webkitpy/common/net/bugzilla/bug.py:

Deleted non-functional e-mail address.

6:16 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
6:05 AM Changeset in webkit [202977] by fred.wang@free.fr
  • 12 edits
    10 adds in trunk

Use Radical* constants from the OpenType MATH table.
​https://bugs.webkit.org/show_bug.cgi?id=155638

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

Source/WebCore:

Test: mathml/mathml-in-html5/root-parameters-1.html

We make the radical vertical gap depends on displaystyle.
This is the only remaining step to use all the Radical* constants from the MATH table.
We also introduce a ruleThicknessFallback function for future use.

  • rendering/mathml/RenderMathMLBlock.h:

(WebCore::RenderMathMLBlock::ruleThicknessFallback): Add this helper function since that
calculation is used in several places.

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::updateStyle): Reorganize the way we set constant parameters,
add more comments and take into account the displaystyle for the vertical gap.

LayoutTests:

Import a test from the MathML in HTML5 test suite to verify all the Radical* parameters.
For test RadicalDegreeBottomRaisePercent, WebKit's drawing of one of the radical sign
is weird. This causes unexpected height of the radical and a fortiori wrong vertical
position of the index. For now, we tweak that height to make the test pass.

  • imported/mathml-in-html5/fonts/radical-degreebottomraisepercent25-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-displaystyleverticalgap7000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-extraascender3000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-kernafterdegreeminus5000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-kernbeforedegree4000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-rulethickness8000.woff: Added.
  • imported/mathml-in-html5/fonts/radical-verticalgap6000-rulethickness1000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/radicals/root-parameters-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/radicals/root-parameters-1.html: Added.
  • platform/gtk/mathml/radical-fallback-expected.png: Updated to take into account new rendering.
  • platform/gtk/mathml/radical-fallback-expected.txt: Ditto.
  • platform/mac/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/mac/mathml/presentation/roots-expected.txt: Ditto.
  • platform/mac/mathml/radical-fallback-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/mo-stretch-expected.txt: Ditto.
  • platform/ios-simulator/mathml/presentation/roots-expected.txt: Ditto.
  • platform/ios-simulator/mathml/radical-fallback-expected.txt: Ditto.
5:22 AM Changeset in webkit [202976] by commit-queue@webkit.org
  • 4 edits in trunk

Unreviewed, rolling out r202967.
​https://bugs.webkit.org/show_bug.cgi?id=159556

This patch caused crashes in https tests on Windows (Requested
by perarne on #webkit).

Reverted changeset:

"[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
​http://trac.webkit.org/changeset/202967

3:42 AM Changeset in webkit [202975] by commit-queue@webkit.org
  • 20 edits
    4 adds
    4 deletes in trunk

Generate WebCore builtin wrapper files
​https://bugs.webkit.org/show_bug.cgi?id=159461

Patch by Youenn Fablet <​youenn@apple.com> on 2016-07-08
Reviewed by Brian Burg.

Source/JavaScriptCore:

Updating builtin generator to generate wrapper files used in WebCore (See WebCore change log).
Rebasing builtins generator test results according generator changes by activating wrapper file generation for
WebCore builtins tests.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/builtins/builtins.py: Adding new generators.
  • Scripts/builtins/builtins_generate_internals_wrapper_header.py: Added to generate WebCoreJSBuiltinInternals.h.
  • Scripts/builtins/builtins_generate_internals_wrapper_implementation.py: Added to generate WebCoreJSBuiltinInternals.cpp.
  • Scripts/builtins/builtins_generate_wrapper_header.py: Added to generate WebCoreJSBuiltins.h.
  • Scripts/builtins/builtins_generate_wrapper_implementation.py: Added to generate WebCoreJSBuiltins.cpp.
  • Scripts/generate-js-builtins.py: Adding new option to activate generation of the wrapper files.

(generate_bindings_for_builtins_files):

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

Source/WebCore:

No change of behavior.

Updating build system to handle new built-in generators without modifying WebCoreJSBuiltins* files.
The generator is now passed all built-ins at once so that wrapper files can be generated.
Removing WebCoreJSBuiltins* checked-in wrapper files.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::addBuiltinGlobals):

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/WebCoreJSBuiltinInternals.cpp: Removed.
  • bindings/js/WebCoreJSBuiltinInternals.h: Removed.
  • bindings/js/WebCoreJSBuiltins.cpp: Removed.
  • bindings/js/WebCoreJSBuiltins.h: Removed.

Tools:

  • Scripts/webkitpy/codegen/main.py:

(BuiltinsGeneratorTests.generate_from_js_builtins): Adding generate_wrapper option.
(BuiltinsGeneratorTests.run_tests): Using this option in WebCore test cases.

3:11 AM Changeset in webkit [202974] by Manuel Rego Casasnovas
  • 14 edits
    2 adds in trunk

[css-grid] Inline size is never indefinite during layout
​https://bugs.webkit.org/show_bug.cgi?id=159253

Reviewed by Sergio Villar Senin.

Source/WebCore:

The issue is that the inline size of the grid container
is only indefinite while we're computing the intrinsic sizes.
During layout we should be able to resolve the percentage tracks
against that size. This makes Grid Layout compatible with regular blocks
regarding how inline percentages are resolved.

The patch passes the SizingOperation enum to RenderGrid::gridTrackSize().
That way we can know if we're computing the intrinsic sizes or not.

Test: fast/css-grid-layout/grid-container-percentage-columns.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeTrackSizesForDirection):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::gridTrackSize):
(WebCore::RenderGrid::minSizeForChild):
(WebCore::RenderGrid::spanningItemCrossesFlexibleSizedTracks):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
(WebCore::RenderGrid::rawGridTrackSize): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

Created a new test verifying the expected behavior. Updated the results
in a few tests too.

  • fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
  • fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
  • fast/css-grid-layout/grid-columns-rows-get-set-multiple.html:
  • fast/css-grid-layout/grid-columns-rows-get-set.html:
  • fast/css-grid-layout/grid-container-percentage-columns-expected.txt: Added.
  • fast/css-grid-layout/grid-container-percentage-columns.html: Added.
  • fast/css-grid-layout/named-grid-line-get-set-expected.txt:
  • fast/css-grid-layout/named-grid-line-get-set.html:
  • fast/css-grid-layout/percent-track-breadths-regarding-container-size-expected.txt:
  • fast/css-grid-layout/percent-track-breadths-regarding-container-size.html:

The results of this test now show some FAIL messages becase of a bug in
RenderBox::hasDefiniteLogicalHeight() (​http://webkit.org/b/159251).

  • fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
  • fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
2:37 AM Changeset in webkit [202973] by fred.wang@free.fr
  • 8 edits
    7 adds in trunk

Use OpenType MATH constant AxisHeight.
​https://bugs.webkit.org/show_bug.cgi?id=133567

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

Source/WebCore:

We make RenderMathMLOperator and RenderMathMLTable use the OpenType MATH constant AxisHeight.
These are the only remaining cases to handle since RenderMathMLFraction already uses that constant.

Tests: imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1.html

imported/mathml-in-html5/mathml/presentation-markup/tables/table-axis-height.html

  • rendering/mathml/RenderMathMLBlock.cpp: Make RenderMathMLTable use the math axis

for its vertical alignment and update a bit the comments.
(WebCore::axisHeight): Move the code in a static function that can be called by
RenderMathMLBlock and RenderMathMLTable.
(WebCore::RenderMathMLBlock::mathAxisHeight): Use axisHeight.
(WebCore::RenderMathMLTable::firstLineBaseline): Ditto.

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::stretchTo):

LayoutTests:

Import tests from the MathML in HTML5 test suite to verify the AxisHeight parameter.

  • imported/mathml-in-html5/fonts/math/axisheight5000-verticalarrow14000.woff: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1-expected.txt: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-1.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/tables/table-axis-height.html: Added.
  • imported/mathml-in-html5/mathml/presentation-markup/operators/mo-axis-height-expected.txt: Added.
1:57 AM Changeset in webkit [202972] by Manuel Rego Casasnovas
  • 6 edits in trunk

[css-grid] Disallow repeat() in grid-template shorthand
​https://bugs.webkit.org/show_bug.cgi?id=159200

Reviewed by Sergio Villar Senin.

Source/WebCore:

As discussed on www-style, "repeat()" notation shouldn't be allowed
in the ASCII branch of the grid-template shorthand.
​https://lists.w3.org/Archives/Public/www-style/2016May/0193.html

The patch uses an enum to invalidate "repeat()" when parsing
the grid-template shorthand.

Test: fast/css-grid-layout/grid-template-shorthand-get-set.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridTemplateColumns): Add enum.
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns): Pass "DisallowRepeat"
when calling parseGridTemplateColumns().
(WebCore::CSSParser::parseGridTrackList): Use enum to allow/disallow repeat.

  • css/CSSParser.h: Define the new enum and modify method signatures to use it,

setting it to "AllowRepeat" by default.

LayoutTests:

Modified test to follow the new behavior including new cases.

  • fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-shorthand-get-set.html:
12:35 AM MathML/Early_2016_Refactoring edited by fred.wang@free.fr
(diff)
12:17 AM Changeset in webkit [202971] by jiewen_tan@apple.com
  • 4 edits in trunk/Source

Define DYLD_MACOSX_VERSION_10_12
​https://bugs.webkit.org/show_bug.cgi?id=159525
<rdar://problem/26250296>

Reviewed by Brent Fulgham.

Source/WebKit/mac:

  • WebView/WebView.mm:

(shouldConvertInvalidURLsToBlank):
Replace 0x000A0C00 with DYLD_MACOSX_VERSION_10_12.

Source/WTF:

  • wtf/spi/darwin/dyldSPI.h:
12:15 AM Changeset in webkit [202970] by fred.wang@free.fr
  • 10 edits
    14 adds in trunk

Add support for movablelimits.
​https://bugs.webkit.org/show_bug.cgi?id=155542

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

Source/WebCore:

Tests: mathml/presentation/displaystyle-1.html

mathml/presentation/displaystyle-2.html
mathml/presentation/displaystyle-3.html
mathml/presentation/mo-movablelimits-default.html
mathml/presentation/mo-movablelimits-dynamic.html
mathml/presentation/mo-movablelimits.html

  • mathml/MathMLTextElement.cpp:

(WebCore::MathMLTextElement::parseAttribute): Take into account change of movablelimits.

  • rendering/mathml/MathMLOperatorDictionary.h: Remove FIXME comment.
  • rendering/mathml/MathMLStyle.cpp:

(WebCore::MathMLStyle::updateStyleIfNeeded): Force relayout and width computation when a
displaystyle value change.

  • rendering/mathml/RenderMathMLOperator.h:

(WebCore::RenderMathMLOperator::shouldMoveLimits): Helper function to test if the operator
should have his limits moved when used as a base of munder/mover/munderover.

  • rendering/mathml/RenderMathMLScripts.cpp: Allow munderover/munder/mover elements to use

this class and take the same behavior as the corresponding msubsup/msub/sup except for
the *scriptshift attributes.
(WebCore::RenderMathMLScripts::RenderMathMLScripts):
(WebCore::RenderMathMLScripts::getBaseAndScripts):
(WebCore::RenderMathMLScripts::computePreferredLogicalWidths):
(WebCore::RenderMathMLScripts::getScriptMetricsAndLayoutIfNeeded):
(WebCore::RenderMathMLScripts::layoutBlock):

  • rendering/mathml/RenderMathMLScripts.h: Allow some members to be accessible/overridden

by RenderMathMLUnderOver and add munderover/munder/mover in the kind.

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver): We use the code from
RenderMathMLScripts to initialize m_kind.
(WebCore::RenderMathMLUnderOver::shouldMoveLimits): New function to determine if the base
should move its limits.
(WebCore::RenderMathMLUnderOver::computePreferredLogicalWidths): We use the code from
RenderMathMLScripts when the base should move its limits.
(WebCore::RenderMathMLUnderOver::layoutBlock): We use the code from RenderMathMLScripts when
the base should move its limits. Also improve the early return for invalid markup.
(WebCore::RenderMathMLUnderOver::unembellishedOperator): Deleted. We use the code from RenderMathMLScripts.
(WebCore::RenderMathMLUnderOver::firstLineBaseline): Deleted. We use the code from RenderMathMLScripts.

  • rendering/mathml/RenderMathMLUnderOver.h: We now inherit from RenderMathMLScripts and can

just remove members that exist in the parent. We define shouldMoveLimits() to determine
when the layout should be done the same as RenderMathMLScripts. For now, we try and be
safe with the rest of the code by continuing to claim that we are not a RenderMathMLScripts.

LayoutTests:

We import some reftests from Mozilla and write more tests in order to verify the effect of
movablelimits. We also adjust one existing test due to change in how munderover handles
invalid markup.

  • mathml/presentation/displaystyle-1.html: Added. Imported from Mozilla. This verifies the

inheritance of displaystyle via its effect on movablelimits.

  • mathml/presentation/displaystyle-1-expected.html: Added.
  • mathml/presentation/displaystyle-2.html: Added. Imported from Mozilla. Test the effect of

displaystyle on munder, mover and munderover with a movablelimits base.

  • mathml/presentation/displaystyle-2-expected.html: Added.
  • mathml/presentation/displaystyle-3.html: Added. Imported from Mozilla. Test dynamic change

of displaystyle via its effect on movablelimits.

  • mathml/presentation/displaystyle-3-expected.html: Added.
  • mathml/presentation/mo-movablelimits-default.html: Added. Test that the default

movablelimits value from the operator dictionary is correctly read.

  • mathml/presentation/mo-movablelimits-default-expected.html: Added.
  • mathml/presentation/mo-movablelimits-dynamic.html: Added. Imported from Mozilla.

Test dynamic change of movablelimits.

  • mathml/presentation/mo-movablelimits-dynamic-expected.html: Added.
  • mathml/presentation/mo-movablelimits.html: Added. Basic test to check the effect of

movablelimits on munder.

  • mathml/presentation/mo-movablelimits-expected.html: Added.
  • mathml/presentation/underover-scriptshifts.html: Added. This verifies that script shifts

do not have any effect on munderover/mover/munder elements when their limits are rendered
as postscripts.

  • mathml/presentation/underover-scriptshifts-expected.html: Added.
12:05 AM Changeset in webkit [202969] by Hunseop Jeong
  • 2 edits
    1 delete in trunk/Tools

[EFL] Fix build when media-stream is enabled.
​https://bugs.webkit.org/show_bug.cgi?id=159206

Bump up the openwebrtc to find the correct package.

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
  • efl/patches/openwebrtc-clang-warning-fix.patch: Removed.

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:
Note: See TracTimeline for information about the timeline view.