Timeline



Sep 28, 2018:

11:55 PM Changeset in webkit [236639] by mmaxfield@apple.com
  • 3 edits in trunk/Tools

[WHLSL] Fix build after r236635
https://bugs.webkit.org/show_bug.cgi?id=189210

Unreviewed.

  • WebGPUShadingLanguageRI/Intrinsics.js:

(Intrinsics.):

  • WebGPUShadingLanguageRI/Test.js:

(tests.atomicsNull):
(tests.numThreads):
(tests.textureDimensionsNull):

11:29 PM Changeset in webkit [236638] by bshafiei@apple.com
  • 14 edits in branches/safari-606-branch

Cherry-pick r236615. rdar://problem/44883290

[Apple Pay] Remove the "in-store" button type
https://bugs.webkit.org/show_bug.cgi?id=190079

Reviewed by Tim Horton.

Source/WebCore:

According to <https://developer.apple.com/design/human-interface-guidelines/apple-pay/buttons-and-marks/buttons/>,
this button is meant only for certain kinds of native apps. It shouldn't be available on the web.

Updated http/tests/ssl/applepay/ApplePayButton.html.

  • css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator ApplePayButtonType const):
  • css/CSSValueKeywords.in:
  • css/parser/CSSParserFastPaths.cpp: (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
  • rendering/RenderThemeCocoa.mm: (WebCore::toPKPaymentButtonType):
  • rendering/style/RenderStyleConstants.h:

Source/WebInspectorUI:

  • UserInterface/Models/CSSKeywordCompletions.js:

LayoutTests:

  • http/tests/ssl/applepay/ApplePayButton.html:
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png:
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt:

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

9:55 PM Changeset in webkit [236637] by Caio Lima
  • 31 edits
    6 adds in trunk

[ESNext][BigInt] Implement support for "&"
https://bugs.webkit.org/show_bug.cgi?id=186228

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/big-int-bitwise-and-general.js: Added.

(assert):
(assert.sameValue):

  • stress/big-int-bitwise-and-jit.js: Added.

(let.assert.sameValue):
(bigIntBitAnd):

  • stress/big-int-bitwise-and-memory-stress.js: Added.

(assert):

  • stress/big-int-bitwise-and-to-primitive-precedence.js: Added.

(assert.sameValue):
(let.o.Symbol.toPrimitive):
(catch):

  • stress/big-int-bitwise-and-type-error.js: Added.

(assert):
(assertThrowTypeError):
(let.o.valueOf):
(o.valueOf):
(o.toString):
(o.Symbol.toPrimitive):

  • stress/big-int-bitwise-and-wrapped-value.js: Added.

(assert.sameValue):
(testBitAnd):
(let.o.Symbol.toPrimitive):
(o.valueOf):
(o.toString):

Source/JavaScriptCore:

This patch introduces support of BigInt into bitwise "&" operation.
We are also introducing the ValueBitAnd DFG node, that is responsible
to take care of JIT for non-Int32 operands. With the introduction of this
new node, we renamed the BitAnd node to ArithBitAnd. The ArithBitAnd
follows the behavior of ArithAdd and other arithmetic nodes, where
the Arith<op> version always results in Number (in the case of
ArithBitAnd, its is always an Int32).

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitBinaryOp):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGBackwardsPropagationPhase.cpp:

(JSC::DFG::BackwardsPropagationPhase::isWithinPowerOfTwo):
(JSC::DFG::BackwardsPropagationPhase::propagate):

  • 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/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueBitwiseOp):
(JSC::DFG::SpeculativeJIT::compileBitwiseOp):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::bitOp):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileValueBitAnd):
(JSC::FTL::DFG::LowerDFGToB3::compileArithBitAnd):
(JSC::FTL::DFG::LowerDFGToB3::compileBitAnd): Deleted.

  • jit/JIT.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::emitBitBinaryOpFastPath):
(JSC::JIT::emit_op_bitand):

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

(JSC::SLOW_PATH_DECL):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::JSBigInt):
(JSC::JSBigInt::initialize):
(JSC::JSBigInt::createZero):
(JSC::JSBigInt::createFrom):
(JSC::JSBigInt::bitwiseAnd):
(JSC::JSBigInt::absoluteBitwiseOp):
(JSC::JSBigInt::absoluteAnd):
(JSC::JSBigInt::absoluteOr):
(JSC::JSBigInt::absoluteAndNot):
(JSC::JSBigInt::absoluteAddOne):
(JSC::JSBigInt::absoluteSubOne):

  • runtime/JSBigInt.h:
  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toBigIntOrInt32 const):

8:29 PM Changeset in webkit [236636] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Angled gradient backgrounds in body render vertically when body height is 0
https://bugs.webkit.org/show_bug.cgi?id=177232
<rdar://problem/34548230>.

Patch by Zamiul Haque <zhaque@apple.com> on 2018-09-28
Reviewed by Tim Horton.

Source/WebCore:

Specifically, gradients displayed at an angle (ie. 45 degrees) are rendered
as if they are vertical when the body tag containing the gradient
has a height of 0. Other browsers do not render under these circumstances,
so WebKit was modified to follow in suit. The problem was due to layout sizes for
fill tiles being calculated with a minimum height of 1px. A simple change of the
minimum height and width to 0px was enough to bring about the desired behavior.

Tests: angled-background-repeating-gradient-rendering-vertical.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::calculateFillTileSize const):

LayoutTests:

Added tests to make sure that angled background gradients inside of a
body tag of height 0 render as empty white screens.

  • angled-background-repeating-gradient-rendering-vertical.html: Added.
  • angled-background-repeating-gradient-rendering-vertical-expected.html: Added.
7:27 PM Changeset in webkit [236635] by mmaxfield@apple.com
  • 5 edits in trunk/Tools

[WHLSL] Allow uniform buffers to be used in the interpreter
https://bugs.webkit.org/show_bug.cgi?id=189210

Reviewed by Filip Pizlo.

Every lvalue is associated with an address space, and the propagation of these address spaces
matches the propagation of lvalues. Luckily, there was already the infrastructure to do most
of this, so this patch just goes the last few yards. It also updates the standard library to
allow for writing into all writable address spaces for out-params.

  • WebGPUShadingLanguageRI/Checker.js:

(Checker.prototype.visitAssignment):
(Checker.prototype._finishVisitingPropertyAccess):

  • WebGPUShadingLanguageRI/Intrinsics.js:

(Intrinsics.):
(Intrinsics.checkFalse):
(Intrinsics):

  • WebGPUShadingLanguageRI/StandardLibrary.js:

(let.standardLibrary):

  • WebGPUShadingLanguageRI/Test.js:

(tests.threadArrayRefLoad):
(tests.threadArrayRefLoadIntLiteral):
(tests.deviceArrayRefLoad):
(tests.threadArrayRefStore):
(tests.deviceArrayRefStore):
(tests.deviceArrayRefStoreIntLiteral):
(tests.threadPointerLoad):
(tests.threadPointerStore):
(tests.devicePointerLoad):
(tests.devicePointerStore):
(tests.arrayLoad):
(tests.constantAddressSpace):
(tests.standardLibraryDevicePointers):
(tests.threadArrayLoad): Deleted.
(tests.threadArrayLoadIntLiteral): Deleted.
(tests.deviceArrayLoad): Deleted.
(tests.threadArrayStore): Deleted.
(tests.deviceArrayStore): Deleted.
(tests.deviceArrayStoreIntLiteral): Deleted.

7:12 PM Changeset in webkit [236634] by Wenson Hsieh
  • 27 edits in trunk

No DOM API to instantiate an attachment for an img element
https://bugs.webkit.org/show_bug.cgi?id=189934
<rdar://problem/44743222>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Adds support for HTMLAttachmentElement.getAttachmentIdentifier, a function that internal WebKit clients can use
to ensure that an image element is backed by a unique _WKAttachment. See below for more details.

Tests: WKAttachmentTests.AddAttachmentToConnectedImageElement

WKAttachmentTests.ChangeFileWrapperForPastedImage
WKAttachmentTests.ConnectImageWithAttachmentToDocument

  • dom/Document.cpp:

(WebCore::Document::registerAttachmentIdentifier):

Add a new hook to register an empty _WKAttachment in the UI process with a given identifier. Used when creating
a new empty attachment to back an image element.

  • dom/Document.h:
  • editing/Editor.cpp:

(WebCore::Editor::registerAttachmentIdentifier):
(WebCore::Editor::notifyClientOfAttachmentUpdates):

  • editing/Editor.h:
  • html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::getAttachmentIdentifier):

Creates an attachment element to back the image element, if an attachment does not already exist, and returns
the unique identifier. This also causes an empty corresponding _WKAttachment to be created in the client, whose
file wrapper determines the contents of the image.

(WebCore::HTMLAttachmentElement::ensureUniqueIdentifier):
(WebCore::HTMLAttachmentElement::hasEnclosingImage const):
(WebCore::HTMLAttachmentElement::updateEnclosingImageWithData):

Add a helper that updates the source of the enclosing image element given a content type and image data, by
creating a new blob and blob URL.

  • html/HTMLAttachmentElement.h:
  • html/HTMLAttachmentElement.idl:
  • html/HTMLImageElement.idl:

Rename webkitAttachmentIdentifier to just attachmentIdentifier.

  • page/EditorClient.h:

(WebCore::EditorClient::registerAttachmentIdentifier):
(WebCore::EditorClient::didInsertAttachmentWithIdentifier):

Source/WebKit:

Makes some adjustments to support using _WKAttachment's file wrapper to change the contents of any image element
hosting the attachment in its shadow root. To do this, we add some plumbing to allow the UI process to update an
attachment element's enclosing image with data from its file wrapper.

  • UIProcess/API/APIAttachment.cpp:

(API::Attachment::isEmpty const):
(API::Attachment::enclosingImageData const):

Helper method that creates a SharedBuffer representing image data for the attachment. Only returns a non-null
value for attachment elements that are enclosed within an image.

  • UIProcess/API/APIAttachment.h:
  • UIProcess/API/Cocoa/APIAttachmentCocoa.mm:

(API::Attachment::enclosingImageData const):
(API::Attachment::isEmpty const):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _attachmentForIdentifier:]):

Add new SPI to request a _WKAttachment for a given unique identifier. Currently, this is only used for testing.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::platformRegisterAttachment):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateAttachmentAttributes):
(WebKit::WebPageProxy::registerAttachmentIdentifier):
(WebKit::WebPageProxy::didInsertAttachmentWithIdentifier):

Plumb whether or not the attachment is enclosed by an image from the web process to the UI process.

(WebKit::WebPageProxy::didRemoveAttachmentWithIdentifier):
(WebKit::WebPageProxy::didInsertAttachment): Deleted.
(WebKit::WebPageProxy::didRemoveAttachment):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::registerAttachmentIdentifier):
(WebKit::WebEditorClient::didInsertAttachmentWithIdentifier):

Update attachment attributes after inserting an attachment. This ensures that an attachment that was created and
later inserted via script into the document will be synced with state in the UI process, if the client has
changed the contents of the attachment.

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateAttachmentAttributes):

Plumb attachment data from the UI process to the web process.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Tools:

Adds 3 new API tests in WKAttachmentTests:

AddAttachmentToConnectedImageElement verifies that an image element that's already in the document can gain an
attachment element via HTMLAttachmentElement.getAttachmentIdentifier.

ChangeFileWrapperForPastedImage verifies that an image that has been pasted produces a _WKAttachment in the UI
process, and changing the file wrapper of that _WKAttachment changes the pasted image.

ConnectImageWithAttachmentToDocument verifies that script can create an image element, ensure that it has an
attachment, and set a file wrapper for the generated _WKAttachment. Connecting the image to the document should
then result in an image element with the contents of the _WKAttachment's file wrapper.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(-[TestWKWebView imageElementSize]):
(-[TestWKWebView waitForImageElementSizeToBecome:]):
(TestWebKitAPI::TEST):
(-[TestWKWebView waitForAttachmentElementSizeToBecome:]): Deleted.

7:03 PM Changeset in webkit [236633] by Chris Dumez
  • 6 edits in trunk

The return value of an OnBeforeUnloadEventHandler should always be coerced into a DOMString
https://bugs.webkit.org/show_bug.cgi?id=190090

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline WPT test now that one more check is passing.

  • web-platform-tests/html/browsers/browsing-the-web/unloading-documents/beforeunload-canceling-expected.txt:

Source/WebCore:

The return value of an OnBeforeUnloadEventHandler should always be coerced into a DOMString:

In particular, this means that returning false in an OnBeforeUnloadEventHandler should NOT
cancel the event when the event is a CustomEvent (and not a BeforeUnloadEvent). This is
because the return value cannot be false at:

No new tests, rebaselined existing test.

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

LayoutTests:

Update test that was returning a value in a beforeunload event listener instead of using an
event handler. The test needs to use an event handler (window.onbeforeunload) as an event
listener does not have a return value. I have verified that our behavior is consistent with
Chrome and Firefox on this test, both with an event listener and an event handler.

  • fast/loader/form-submission-after-beforeunload-cancel.html:
6:53 PM Changeset in webkit [236632] by Simon Fraser
  • 8 edits in trunk

RenderLayer::removeOnlyThisLayer() should not call updateLayerPositions()
https://bugs.webkit.org/show_bug.cgi?id=190093

Reviewed by Dean Jackson and Zalan Bujtas.

Source/WebCore:

It's wrong for RenderLayer::removeOnlyThisLayer() to call updateLayerPositions(),
because this is called at style update time, and layout will be stale.

It was added (see webkit.org/b/25252) so that opacity changes, which can destroy layers, correctly update
descendants. However, RenderStyle::changeRequiresLayout() checks for opacity <=> no opacity
changes and triggers layout accordingly, which will result in a full post-layout
updateLayerPositions().

This also revealed that changes to the "isolate" property fail to trigger any kind of style recalc or layout;
we need it to trigger layout (for now) because it affects z-order.

Covered by existing tests.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::removeOnlyThisLayer):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayout const):

LayoutTests:

The ordering of the repaints changes.

blend-mode-turn-off-isolation-no-effect.html now issues a repaint, which is expected now.
Isolation is so rare that this is not a problem.

  • css3/blending/repaint/blend-mode-isolate-stacking-context-expected.txt:
  • css3/blending/repaint/blend-mode-turn-off-isolation-expected.txt:
  • css3/blending/repaint/blend-mode-turn-off-isolation-no-effect-expected.txt:
  • fast/repaint/absolute-position-change-containing-block-expected.txt:
6:38 PM Changeset in webkit [236631] by Chris Dumez
  • 10 edits in trunk

Regression(r236512): http/tests/navigation/keyboard-events-during-provisional-navigation.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=190052

Reviewed by Ryosuke Niwa.

Source/WebKit:

Introduce a new IPC::SendOption indicating that the IPC should always be sent asynchronously,
even if the connection is in fully synchronous mode. This is used by WebKitTestRunner for
all text outputting (e.g. console.log) is asynchronous, and thus in order.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendMessage):

  • Platform/IPC/Connection.h:
  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePagePostMessageIgnoringFullySynchronousMode):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::postMessageIgnoringFullySynchronousMode):

  • WebProcess/WebPage/WebPage.h:

Tools:

The test relies on EventSender to send events to the page synchronously to the page and then uses console.log
to log those events. It also uses console.log() before sending those events to indicate what the test is about
to do. Note that console.log() normally causes the WebKitTestRunner to send an asynchronous IPC to the UIProcess
so that it can log the message.
The issue is that EventSender uses IPC::SendOption::UseFullySynchronousModeForTesting when sending the
sync IPC to the UIProcess. This option causes follow-up *asynchronous* IPC sent from the synchronous IPC reply
handler to be transformed into synchronous IPC.
As a result, some of the console.log IPC ended up being asynchronous and some other ended up being synchronous.
Because synchronous and asynchronous IPC is not necessarily processed in-order by the UIProcess, the logged
messages may end up being out of order, leading to flakiness.

To address the issue, we now make sure that InjectedBundle::outputText() uses a new IPC::SendOption indicating
that the IPC should always be sent asynchronously, even if the connection is in fully synchronous mode. As a
result, all text outputing IPC to the UIProcess will be asynchronous, and thus in order.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::outputText):

6:36 PM Changeset in webkit [236630] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit

Skip debug assertion in ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain()
https://bugs.webkit.org/show_bug.cgi?id=190097
<rdar://problem/44877080>

Reviewed by Chris Dumez.

The change in https://bugs.webkit.org/show_bug.cgi?id=190055 causes a
re-classification that may trigger a debug assertion in
ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain().
We should skip the assertion for statistics model version 14 to avoid
this.

  • UIProcess/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::recursivelyGetAllDomainsThatHaveRedirectedToThisDomain const):

6:00 PM Changeset in webkit [236629] by commit-queue@webkit.org
  • 2 edits in trunk

cmake cannot run if python 2 isn't available
https://bugs.webkit.org/show_bug.cgi?id=190075

Patch by Mike Gorse <mgorse@alum.wpi.edu> on 2018-09-28
Reviewed by Michael Catanzaro.

  • Source/cmake/WebKitCommon.cmake: Set Python_ADDITIONAL_VERSIONS

to 3, so that a python3 binary will be found.

5:48 PM Changeset in webkit [236628] by mmaxfield@apple.com
  • 14 edits
    1 move
    1 delete in trunk/Tools

[WHLSL] Pointers should have automatically-generated equality checks
https://bugs.webkit.org/show_bug.cgi?id=189986

Reviewed by Filip Pizlo.

C allows for pointer equality, and we need it so people can do null checks.
This is generated the same way all our other NativeFuncs are generated - by Checker
creating NativeFuncs inside CallExpression.resolve().

This patch also does some general cleanup.

  • WebGPUShadingLanguageRI/All.js: Everything the late checker does is no longer necessary.

The last thing it was doing was making sure that only primitive types are in resources, but
it's totally reasonable to put structs and arrays in resources, so I removed this pass. We
still have to add a check to make sure resources can't live within resources, but I expect
that will be done in the same place that semantics are checked.

  • WebGPUShadingLanguageRI/AllocateAtEntryPoints.js:

(allocateAtEntryPoints.updateFunction.UpdateFunctions.prototype._addVariableDeclaration):
Name the global struct for debugging purposes.

  • WebGPUShadingLanguageRI/CallExpression.js:

(CallExpression.prototype._resolveByInstantiation): Cleanup
(CallExpression.prototype._resolveWithOperatorAnderIndexer): Ditto
(CallExpression.prototype._resolveWithOperatorLength): Ditto
(CallExpression.prototype._resolveWithReferenceComparator): Add support to automatically
generate pointer equality NativeFuncs.

  • WebGPUShadingLanguageRI/EPtr.js: Implement pointer equality in the interpreter.
  • WebGPUShadingLanguageRI/LateChecker.js: Removed.
  • WebGPUShadingLanguageRI/LayoutBuffers.js: Renamed from Tools/WebGPUShadingLanguageRI/LateCheckAndLayoutBuffers.js.

(layoutBuffers):

  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL Tests.xcodeproj/project.pbxproj:
  • WebGPUShadingLanguageRI/NativeFunc.js:
  • WebGPUShadingLanguageRI/OperatorArrayRefLength.js:

(OperatorArrayRefLength.prototype.instantiateImplementation):
(OperatorArrayRefLength):

  • WebGPUShadingLanguageRI/Prepare.js:

(let.prepare):

  • WebGPUShadingLanguageRI/SPIRV.html:
  • WebGPUShadingLanguageRI/Test.html:
  • WebGPUShadingLanguageRI/Test.js:

(tests.ternaryExpression):
(tests.break): Speed up testing time
(tests.doWhile): Ditto
(tests.forLoop): Ditto
(tests.atomics): Ditto
(tests.atomicsNull): Ditto
(tests.pointerEquality): Test pointer equality
(tests.standardLibraryDevicePointers):
(tests.devicePtrPtr): Deleted.
(tests.threadgroupPtrPtr): Deleted.
(tests.constantPtrPtr): Deleted.

  • WebGPUShadingLanguageRI/index.html:
5:22 PM Changeset in webkit [236627] by Devin Rousso
  • 6 edits
    3 adds in trunk

Web Inspector: crash in InspectorNetworkAgent::didReceiveResponse when loading denied x-frame resources
https://bugs.webkit.org/show_bug.cgi?id=190046

Reviewed by Joseph Pecoraro.

Source/WebKit:

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
Send the sanitized ResourceResponse with the message so WebInspector is able to access it.

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.cpp:
  • WebProcess/Network/WebResourceLoader.messages.in:

(WebKit::WebResourceLoader::stopLoadingAfterXFrameOptionsOrContentSecurityPolicyDenied):

LayoutTests:

  • http/tests/inspector/network/resources/x-frame-options.php: Added.
  • http/tests/inspector/network/x-frame-options-expected.txt: Added.
  • http/tests/inspector/network/x-frame-options.html: Added.
5:15 PM Changeset in webkit [236626] by realdawei@apple.com
  • 2 edits
    2 deletes in trunk/Source/ThirdParty/libwebrtc

Unreviewed, rolling out r236620.

broke internal Mac and iOS builds

Reverted changeset:

"Add yasm as third party tool for libwebrtc compilation"
https://bugs.webkit.org/show_bug.cgi?id=190025
https://trac.webkit.org/changeset/236620

5:02 PM Changeset in webkit [236625] by jiewen_tan@apple.com
  • 31 edits
    3 copies
    5 adds
    8 deletes in trunk

[WebAuthN] Polish WebAuthN auto-test environment
https://bugs.webkit.org/show_bug.cgi?id=189283
<rdar://problem/44117828>

Reviewed by Chris Dumez.

Source/WebCore:

This patch removes the old mocking mechanism.

Tests: http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https.html

http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https.html
http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https.html

  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • testing/Internals.cpp:

(WebCore::Internals::Internals):
(WebCore::Internals::mockAuthenticatorCoordinator const): Deleted.

  • testing/Internals.h:
  • testing/Internals.idl:
  • testing/MockAuthenticatorCoordinator.cpp: Removed.
  • testing/MockAuthenticatorCoordinator.h: Removed.
  • testing/MockAuthenticatorCoordinator.idl: Removed.

Source/WebKit:

This patch changes MockWebAuthenticationConfiguration.local to optional such that tests can express
absence of local authenticators.

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetWebAuthenticationMockConfiguration):

  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm:

(WebKit::MockLocalConnection::getUserConsent const):
(WebKit::MockLocalConnection::getAttestation const):

  • UIProcess/WebAuthentication/Mock/MockLocalService.cpp:

(WebKit::MockLocalService::platformStartDiscovery const):

  • UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h:

Tools:

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebAuthenticationMockConfiguration):

LayoutTests:

This patch does the following few things:

  1. Update tests that employ old mocking mechnism to the new one.
  2. Move tests from http/tests/webauthn to http/wpt/webauthn. As a result, we have one unified place for

all WebAuthN tests: http/wpt/webauthn.

  1. Add a helper function to check DOMException message as well.
  • TestExpectations:
  • http/tests/webauthn/public-key-credential-create-with-invalid-parameters.https-expected.txt: Removed.
  • http/tests/webauthn/public-key-credential-get-with-invalid-parameters.https-expected.txt: Removed.
  • http/tests/webauthn/public-key-credential-same-origin-with-ancestors-2.https-expected.txt: Removed.
  • http/tests/webauthn/public-key-credential-same-origin-with-ancestors-2.https.html: Removed.
  • http/tests/webauthn/public-key-credential-same-origin-with-ancestors.https-expected.txt: Removed.
  • http/tests/webauthn/public-key-credential-same-origin-with-ancestors.https.html: Removed.
  • http/tests/webauthn/resources/last-layer-frame.https.html: Removed.
  • http/tests/webauthn/resources/util.js: Removed.
  • http/wpt/credential-management/credentialscontainer-store-basics.https.html:
  • http/wpt/webauthn/idl.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure.https.html:
  • http/wpt/webauthn/public-key-credential-create-success.https-expected.txt: Removed.
  • http/wpt/webauthn/public-key-credential-create-success.https.html: Removed.
  • http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-create-with-invalid-parameters.https.html: Renamed from LayoutTests/http/tests/webauthn/public-key-credential-create-with-invalid-parameters.https.html.
  • http/wpt/webauthn/public-key-credential-get-failure-local.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure.https.html:
  • http/wpt/webauthn/public-key-credential-get-success.https-expected.txt: Removed.
  • http/wpt/webauthn/public-key-credential-get-success.https.html: Removed.
  • http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-get-with-invalid-parameters.https.html: Renamed from LayoutTests/http/tests/webauthn/public-key-credential-get-with-invalid-parameters.https.html.
  • http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-same-origin-with-ancestors.https.html: Added.
  • http/wpt/webauthn/resources/last-layer-frame.https.html: Added.
  • http/wpt/webauthn/resources/second-layer-frame.https.html: Renamed from LayoutTests/http/tests/webauthn/resources/second-layer-frame.https.html.
  • http/wpt/webauthn/resources/util.js:
  • platform/gtk/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wpe/TestExpectations:
4:31 PM Changeset in webkit [236624] by jer.noble@apple.com
  • 39 edits
    1 copy in trunk

Refactoring: eliminate raw pointer usage in Fullscreen code
https://bugs.webkit.org/show_bug.cgi?id=188747
<rdar://problem/43541164>

Reviewed by Alex Christensen.

Source/WebCore:

Two sources of raw pointers in the Fullscreen code:

  • Model classes (PlaybackSessionModel and VideoFullscreenModel) aren't ref-able, so they are passed around as raw references.
  • Observer classes (PlaybackSessionModelClient and VideoFullscreenModelClient, and VideoFullscreenChangeObserver) are also passed around as raw pointers, but shouldn't be ref-able.

Make Model classes ref-able by adding ref() and deref() which call virtual refModel and
derefModel methods, overridden by implementing subclasses. Make every concrete observer
inherit from CanMakeWeakPtr, and every registration method take WeakPtr wrappers around
the client interface.

Since every Interface class now holds a strong reference to its Model classes, and each
Model class holds a weak reference to all its clients, no explicit invalidate() method
is necessary.

Notes:

  • Since the weak pointer methods need to be able to downcast to the abstract base class, observers need to inherit publically (rather than privately) from those base classes.
  • Media element Models should compose EventListener rather than inheriting from it, since EventListener has its own RefCount.
  • WeakPtrs can't be held in HashSets (because they change value, and therefore hash, when their underlying object is destroyed), so clients should be stored in a Vector instead.
  • Interfaces should be given all required Refs at creation time, so that they can store those parameters as Refs instead of RefPtrs.
  • platform/cocoa/PlaybackSessionInterface.h:

(WebCore::PlaybackSessionInterface::~PlaybackSessionInterface): Deleted.

  • platform/cocoa/PlaybackSessionModel.h:

(WebCore::PlaybackSessionModel::ref):
(WebCore::PlaybackSessionModel::deref):
(WebCore::PlaybackSessionModel::~PlaybackSessionModel): Deleted.

  • platform/cocoa/PlaybackSessionModelMediaElement.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::PlaybackSessionModelMediaElement):
(WebCore::PlaybackSessionModelMediaElement::~PlaybackSessionModelMediaElement):
(WebCore::PlaybackSessionModelMediaElement::setMediaElement):
(WebCore::PlaybackSessionModelMediaElement::updateForEventName):
(WebCore::PlaybackSessionModelMediaElement::addClient):
(WebCore::PlaybackSessionModelMediaElement::removeClient):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionOptions):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionIndices):
(WebCore::PlaybackSessionModelMediaElement::handleEvent): Deleted.

  • platform/cocoa/VideoFullscreenChangeObserver.h:

(WebCore::VideoFullscreenChangeObserver::~VideoFullscreenChangeObserver): Deleted.

  • platform/cocoa/VideoFullscreenModel.h:

(WebCore::VideoFullscreenModel::ref):
(WebCore::VideoFullscreenModel::deref):
(WebCore::VideoFullscreenModel::~VideoFullscreenModel): Deleted.

  • platform/cocoa/VideoFullscreenModelVideoElement.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement):
(VideoFullscreenModelVideoElement::setVideoElement):
(VideoFullscreenModelVideoElement::addClient):
(VideoFullscreenModelVideoElement::removeClient):
(VideoFullscreenModelVideoElement::setHasVideo):
(VideoFullscreenModelVideoElement::setVideoDimensions):
(VideoFullscreenModelVideoElement::willEnterPictureInPicture):
(VideoFullscreenModelVideoElement::didEnterPictureInPicture):
(VideoFullscreenModelVideoElement::failedToEnterPictureInPicture):
(VideoFullscreenModelVideoElement::willExitPictureInPicture):
(VideoFullscreenModelVideoElement::didExitPictureInPicture):
(VideoFullscreenModelVideoElement::handleEvent): Deleted.

  • platform/ios/PlaybackSessionInterfaceAVKit.h:

(WebCore::PlaybackSessionInterfaceAVKit::create):
(WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const):
(): Deleted.

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::~PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::invalidate): Deleted.

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):
(-[WebAVPlayerLayer setVideoGravity:]):
(VideoFullscreenInterfaceAVKit::create):
(VideoFullscreenInterfaceAVKit::VideoFullscreenInterfaceAVKit):
(VideoFullscreenInterfaceAVKit::~VideoFullscreenInterfaceAVKit):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenChangeObserver):
(VideoFullscreenInterfaceAVKit::applicationDidBecomeActive):
(VideoFullscreenInterfaceAVKit::setupFullscreen):
(VideoFullscreenInterfaceAVKit::presentingViewController):
(VideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(VideoFullscreenInterfaceAVKit::preparedToExitFullscreen):
(VideoFullscreenInterfaceAVKit::willStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::failedToStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::willStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
(VideoFullscreenInterfaceAVKit::doSetup):
(VideoFullscreenInterfaceAVKit::setMode):
(VideoFullscreenInterfaceAVKit::clearMode):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenModel): Deleted.
(VideoFullscreenInterfaceAVKit::invalidate): Deleted.

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController delegate]):
(-[WebAVPlayerController playbackSessionInterface]):
(-[WebAVPlayerController setPlaybackSessionInterface:]):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::didCleanupFullscreen):
(VideoFullscreenControllerContext::addClient):
(VideoFullscreenControllerContext::removeClient):
(VideoFullscreenControllerContext::willEnterPictureInPicture):
(VideoFullscreenControllerContext::didEnterPictureInPicture):
(VideoFullscreenControllerContext::failedToEnterPictureInPicture):
(VideoFullscreenControllerContext::willExitPictureInPicture):
(VideoFullscreenControllerContext::didExitPictureInPicture):
(VideoFullscreenControllerContext::setUpFullscreen):

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

(WebCore::PlaybackSessionInterfaceMac::create):
(WebCore::PlaybackSessionInterfaceMac::PlaybackSessionInterfaceMac):
(WebCore::PlaybackSessionInterfaceMac::playbackSessionModel const):
(WebCore::PlaybackSessionInterfaceMac::rateChanged):
(WebCore::PlaybackSessionInterfaceMac::beginScrubbing):
(WebCore::PlaybackSessionInterfaceMac::endScrubbing):
(WebCore::PlaybackSessionInterfaceMac::setPlayBackControlsManager):
(WebCore::PlaybackSessionInterfaceMac::updatePlaybackControlsManagerTiming):
(WebCore::PlaybackSessionInterfaceMac::~PlaybackSessionInterfaceMac): Deleted.
(WebCore::PlaybackSessionInterfaceMac::invalidate): Deleted.

  • platform/mac/VideoFullscreenInterfaceMac.h:

(WebCore::VideoFullscreenInterfaceMac::create):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenModel const):
(WebCore::VideoFullscreenInterfaceMac::playbackSessionModel const):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenChangeObserver const):

  • platform/mac/VideoFullscreenInterfaceMac.mm:

(-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]):
(-[WebVideoFullscreenInterfaceMacObjC boundsDidChangeForVideoViewContainer:]):
(-[WebVideoFullscreenInterfaceMacObjC pipDidClose:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionPlay:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionPause:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionStop:]):
(WebCore::VideoFullscreenInterfaceMac::VideoFullscreenInterfaceMac):
(WebCore::VideoFullscreenInterfaceMac::~VideoFullscreenInterfaceMac):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenChangeObserver):
(WebCore::VideoFullscreenInterfaceMac::setMode):
(WebCore::VideoFullscreenInterfaceMac::clearMode):
(WebCore::VideoFullscreenInterfaceMac::invalidate):
(WebCore::VideoFullscreenInterfaceMac::requestHideAndExitPiP):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenModel): Deleted.

  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebPlaybackControlsManager setCurrentAudioTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager setCurrentLegibleTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager togglePlayback]):
(-[WebPlaybackControlsManager setPlaying:]):
(-[WebPlaybackControlsManager isPlaying]):
(-[WebPlaybackControlsManager togglePictureInPicture]):

Source/WebKit:

Adopt those Ref and WeakPtr changes made in WebCore.

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

(WebKit::PlaybackSessionModelContext::addClient):
(WebKit::PlaybackSessionModelContext::removeClient):
(WebKit::PlaybackSessionModelContext::durationChanged):
(WebKit::PlaybackSessionModelContext::currentTimeChanged):
(WebKit::PlaybackSessionModelContext::bufferedTimeChanged):
(WebKit::PlaybackSessionModelContext::rateChanged):
(WebKit::PlaybackSessionModelContext::seekableRangesChanged):
(WebKit::PlaybackSessionModelContext::canPlayFastReverseChanged):
(WebKit::PlaybackSessionModelContext::audioMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionModelContext::legibleMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionModelContext::audioMediaSelectionIndexChanged):
(WebKit::PlaybackSessionModelContext::legibleMediaSelectionIndexChanged):
(WebKit::PlaybackSessionModelContext::externalPlaybackChanged):
(WebKit::PlaybackSessionModelContext::wirelessVideoPlaybackDisabledChanged):
(WebKit::PlaybackSessionModelContext::mutedChanged):
(WebKit::PlaybackSessionModelContext::volumeChanged):
(WebKit::PlaybackSessionModelContext::pictureInPictureActiveChanged):
(WebKit::PlaybackSessionManagerProxy::invalidate):
(WebKit::PlaybackSessionManagerProxy::createModelAndInterface):
(WebKit::PlaybackSessionManagerProxy::removeClientForContext):

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

(WebKit::VideoFullscreenModelContext::create):
(WebKit::VideoFullscreenModelContext::VideoFullscreenModelContext):
(WebKit::VideoFullscreenModelContext::addClient):
(WebKit::VideoFullscreenModelContext::removeClient):
(WebKit::VideoFullscreenModelContext::willEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::didEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::failedToEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::willExitPictureInPicture):
(WebKit::VideoFullscreenModelContext::didExitPictureInPicture):
(WebKit::VideoFullscreenManagerProxy::invalidate):
(WebKit::VideoFullscreenManagerProxy::createModelAndInterface):
(WebKit::VideoFullscreenManagerProxy::removeClientForContext):
(WebKit::VideoFullscreenModelContext::~VideoFullscreenModelContext): Deleted.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(WKFullScreenViewControllerPlaybackSessionModelClient::setInterface):
(WKFullScreenViewControllerVideoFullscreenModelClient::setInterface):
(-[WKFullScreenViewController videoControlsManagerDidChange]):
(-[WKFullScreenViewController _togglePiPAction:]):

  • UIProcess/mac/WKFullScreenWindowController.mm:

(WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface):

  • WebProcess/cocoa/PlaybackSessionManager.h:
  • WebProcess/cocoa/PlaybackSessionManager.mm:

(WebKit::PlaybackSessionInterfaceContext::PlaybackSessionInterfaceContext):
(WebKit::PlaybackSessionManager::~PlaybackSessionManager):
(WebKit::PlaybackSessionManager::createModelAndInterface):
(WebKit::PlaybackSessionManager::removeContext):
(WebKit::PlaybackSessionInterfaceContext::~PlaybackSessionInterfaceContext): Deleted.

  • WebProcess/cocoa/VideoFullscreenManager.h:

(WebKit::VideoFullscreenInterfaceContext::create):
(WebKit::VideoFullscreenInterfaceContext::createWeakPtr):

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenInterfaceContext::VideoFullscreenInterfaceContext):
(WebKit::VideoFullscreenManager::~VideoFullscreenManager):
(WebKit::VideoFullscreenManager::createModelAndInterface):
(WebKit::VideoFullscreenManager::removeContext):

Source/WebKitLegacy/mac:

PlaybackSessionInterface no longer has an invalidate() method.

  • WebView/WebView.mm:

(-[WebView _clearPlaybackControlsManager]):

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/WeakPtrContainer.h: Added.

LayoutTests:

Test was causing false pass results due to the webkitPresentationMode being correctly set
to "inline" during the close() operation; modify the test to only perform the close()
operation when the presetation mode is changed to "picture-in-picture".

  • media/controls/ipad/close-page-with-picture-in-picture-video-assertion-failure.html:
  • media/controls/ipad/resources/picture-in-picture.html:
4:18 PM Changeset in webkit [236623] by Chris Dumez
  • 35 edits
    1 delete in trunk

Drop support for cross-origin-window-policy header
https://bugs.webkit.org/show_bug.cgi?id=190081

Reviewed by Ryosuke Niwa.

Source/WebCore:

Drop support for cross-origin-window-policy header as this was never enabled and its design has
some issues we have not resolved. An alternative is being worked on but will be substantially
different so there is not much value in keeping this code around.

  • bindings/js/JSDOMBindingSecurity.cpp:
  • bindings/js/JSDOMBindingSecurity.h:
  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowGetOwnPropertySlotRestrictedAccess):
(WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
(WebCore::addCrossOriginWindowPropertyNames):
(WebCore::addScopedChildrenIndexes):
(WebCore::addCrossOriginWindowOwnPropertyNames):
(WebCore::JSDOMWindow::getOwnPropertyNames):

  • bindings/js/JSDOMWindowCustom.h:
  • bindings/js/JSRemoteDOMWindowCustom.cpp:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateAttributeGetterBodyDefinition):
(GenerateAttributeSetterBodyDefinition):
(GenerateOperationBodyDefinition):

  • bindings/scripts/IDLAttributes.json:
  • dom/Document.cpp:

(WebCore::Document::canNavigate):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::didBeginDocument):

  • page/AbstractDOMWindow.cpp:

(WebCore::AbstractDOMWindow::AbstractDOMWindow):

  • page/AbstractDOMWindow.h:
  • page/DOMWindow.idl:
  • page/Settings.yaml:
  • platform/network/HTTPParsers.cpp:
  • platform/network/HTTPParsers.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:
  • UIProcess/API/C/WKPreferencesRef.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::frameBecameRemote):

Source/WebKitLegacy/mac:

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

(+[WebPreferences initialize]):

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

(-[WebView _preferencesChanged:]):

Source/WebKitLegacy/win:

  • WebPreferenceKeysPrivate.h:
  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::crossOriginWindowPolicySupportEnabled):
(WebPreferences::setCrossOriginWindowPolicySupportEnabled):

  • WebView.cpp:

(WebView::notifyPreferencesChanged):

Tools:

190081_DropCrossOriginWindowPolicy

  • DumpRenderTree/mac/DumpRenderTree.mm:

(enableExperimentalFeatures):

  • DumpRenderTree/win/DumpRenderTree.cpp:

(enableExperimentalFeatures):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

LayoutTests:

  • http/wpt/cross-origin-window-policy/allow-postmessage-expected.txt: Removed.
  • http/wpt/cross-origin-window-policy/allow-postmessage-from-deny-expected.txt: Removed.
  • http/wpt/cross-origin-window-policy/allow-postmessage-from-deny.html: Removed.
  • http/wpt/cross-origin-window-policy/allow-postmessage-from-deny.html.headers: Removed.
  • http/wpt/cross-origin-window-policy/allow-postmessage.html: Removed.
  • http/wpt/cross-origin-window-policy/cross-origin-window-policy-header-expected.txt: Removed.
  • http/wpt/cross-origin-window-policy/cross-origin-window-policy-header.html: Removed.
  • http/wpt/cross-origin-window-policy/navigation-from-opener-via-open-target-expected.txt: Removed.
  • http/wpt/cross-origin-window-policy/navigation-from-opener-via-open-target.html: Removed.
  • http/wpt/cross-origin-window-policy/navigation-from-subframe-via-anchor-target-expected.txt: Removed.
  • http/wpt/cross-origin-window-policy/navigation-from-subframe-via-anchor-target.html: Removed.
  • http/wpt/cross-origin-window-policy/resources/cross-origin-window-policy-allow-postmessage-pong.html: Removed.
  • http/wpt/cross-origin-window-policy/resources/cross-origin-window-policy-allow-postmessage-pong.html.headers: Removed.
  • http/wpt/cross-origin-window-policy/resources/destination.html: Removed.
  • http/wpt/cross-origin-window-policy/resources/navigate-parent-via-anchor.html: Removed.
  • http/wpt/cross-origin-window-policy/resources/navigation-from-subframe-frame.py: Removed.
  • http/wpt/cross-origin-window-policy/resources/serve-cross-origin-window-policy-header.py: Removed.
  • http/wpt/cross-origin-window-policy/resources/utils.js: Removed.
4:13 PM Changeset in webkit [236622] by aestes@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r236091): CSSKeywordCompletions.js has "checkout" instead of "check-out" as a value for -apple-pay-button-type
https://bugs.webkit.org/show_bug.cgi?id=190096

Reviewed by Ryosuke Niwa.

I changed "checkout" to "check-out" in r235754, but it somehow got flipped back to "checkout" in r236091.

  • UserInterface/Models/CSSKeywordCompletions.js:
4:09 PM Changeset in webkit [236621] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Do not do automatic process prewarming while under memory pressure
https://bugs.webkit.org/show_bug.cgi?id=190082
<rdar://problem/39771424>

Reviewed by Geoffrey Garen.

Do not do automatic process prewarming while under memory pressure and
also terminate any prewarmed process when receiving a memory warning.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::prewarmProcess):
(WebKit::WebProcessPool::didReachGoodTimeToPrewarm):
(WebKit::WebProcessPool::handleMemoryPressureWarning):

  • UIProcess/WebProcessPool.h:
  • UIProcess/ios/WebMemoryPressureHandlerIOS.mm:

(WebKit::installMemoryPressureHandler):

4:05 PM Changeset in webkit [236620] by youenn@apple.com
  • 2 edits
    1252 adds in trunk/Source/ThirdParty/libwebrtc

Add yasm as third party tool for libwebrtc compilation
https://bugs.webkit.org/show_bug.cgi?id=190025

Reviewed by Eric Carlson.

Add yasm source code and build the yasm executable as it is needed for libvpx compilation.

  • Source/third_party/yasm-1.3.0: Added.
  • libwebrtc.xcodeproj/project.pbxproj:
4:02 PM Changeset in webkit [236619] by dbates@webkit.org
  • 9 edits in trunk/Source

[iOS] Allow programmatic focus when hardware keyboard is attached
https://bugs.webkit.org/show_bug.cgi?id=190017
<rdar://problem/42270463>

Reviewed by Wenson Hsieh.

Source/WebCore:

Add support for checking if the embedding client is WebKitTestRunner and export isDumpRenderTree()
so that we can make use of it from WebKit. We will make use of these functions to keep the current
behavior of disallowing programmatic focus when running tests in these apps. This is needed to
keep testing deterministic. Otherwise, test results would be dependent on whether a hardware
keyboard is attached. When running tests in Simulator.app the hardware keyboard may also not be
connected (i.e. Hardware > Keyboard > Connect Hardware Keyboard is disabled).

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isWebKitTestRunner): Added.

Source/WebKit:

Make the experience of using iOS with a hardware keyboard more desktop-like by allowing
programmatic focusing of editable elements.

  • Platform/spi/ios/UIKitSPI.h: Forward declare SPI.
  • Shared/NativeWebKeyboardEvent.h:
  • Shared/ios/NativeWebKeyboardEventIOS.mm:

(WebKit::isInHardwareKeyboardMode): Returns whether we are in hardware keyboard mode. In DumpRenderTree
and WebKitTestRunner this function always returns false to keep test results deterministic.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
Allow starting an input session if we are in hardware keyboard mode.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState const): Send the full editor state if we are in hardware
keyboard mode regardless of whether layout has been performed so that UIProcess can update UI,
including the position of the caret, immediately.

3:32 PM Changeset in webkit [236618] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r236609): API tests for mso list preservation are failing
https://bugs.webkit.org/show_bug.cgi?id=190095

Reviewed by Wenson Hsieh.

The regression was caused by appendNodeToPreserveMSOList called after an early return for not having renderer.
Clearly, comment & style elements coming from a MS word document wouldn't have a renderer.

Fixed the bug by changing the order.

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):

3:32 PM Changeset in webkit [236617] by yusukesuzuki@slowstart.org
  • 10 edits
    1 move in trunk

[WTF] Make isMainThread more reliable
https://bugs.webkit.org/show_bug.cgi?id=189880

Reviewed by Mark Lam.

.:

  • Source/cmake/OptionsCommon.cmake:

Source/WTF:

isMainThread() relied on Thread::current(). This API becomes broken in Windows
when the Thread is about to be destroyed since TLS is already cleared. This causes
a bug since isMainThread() is called in Thread::didExit in Windows.

This patch makes this isMainThread more reliable in all the platforms. In Windows,
we use Thread::currentID() instead of Thread::current() since Thread::currentID
uses Win32 GetCurrentThreadId directly. In the other system, we use pthread_main_np
or pthread_self instead.

We also move holdLock code inside if (shouldRemoveThreadFromThreadGroup()). If
the other thread takes a mutex and destroyed, this holdLock waits forever. This problem
only happens in Windows since Windows calls TLS destructor for the main thread.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/MainThread.cpp:

(WTF::initializeMainThread):
(): Deleted.
(WTF::isMainThread): Deleted.
(WTF::isMainThreadIfInitialized): Deleted.

  • wtf/Platform.h:
  • wtf/PlatformMac.cmake:
  • wtf/Threading.cpp:

(WTF::Thread::didExit):

  • wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
  • wtf/generic/MainThreadGeneric.cpp:

(WTF::initializeMainThreadPlatform):
(WTF::isMainThread):
(WTF::isMainThreadIfInitialized):

  • wtf/win/MainThreadWin.cpp:

(WTF::initializeMainThreadPlatform):
(WTF::isMainThread):
(WTF::isMainThreadIfInitialized):

3:12 PM Changeset in webkit [236616] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Build fix after r236612.

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeSelection):

3:08 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
3:06 PM Changeset in webkit [236615] by aestes@apple.com
  • 14 edits in trunk

[Apple Pay] Remove the "in-store" button type
https://bugs.webkit.org/show_bug.cgi?id=190079

Reviewed by Tim Horton.

Source/WebCore:

According to <https://developer.apple.com/design/human-interface-guidelines/apple-pay/buttons-and-marks/buttons/>,
this button is meant only for certain kinds of native apps. It shouldn't be available on the web.

Updated http/tests/ssl/applepay/ApplePayButton.html.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ApplePayButtonType const):

  • css/CSSValueKeywords.in:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • rendering/RenderThemeCocoa.mm:

(WebCore::toPKPaymentButtonType):

  • rendering/style/RenderStyleConstants.h:

Source/WebInspectorUI:

  • UserInterface/Models/CSSKeywordCompletions.js:

LayoutTests:

  • http/tests/ssl/applepay/ApplePayButton.html:
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.png:
  • platform/mac/http/tests/ssl/applepay/ApplePayButton-expected.txt:
3:01 PM Changeset in webkit [236614] by realdawei@apple.com
  • 2 edits in trunk/LayoutTests

WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
https://bugs.webkit.org/show_bug.cgi?id=189641

Unreviewed, skip tests that are timing out.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-28

2:56 PM Changeset in webkit [236613] by Chris Dumez
  • 9 edits in trunk

document.open() should throw errors for cross-origin calls
https://bugs.webkit.org/show_bug.cgi?id=189371
<rdar://problem/44282700>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline existing WPT tests now that more checks are passing.

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window-expected.txt:
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-same-origin-domain.sub.window-expected.txt:

Source/WebCore:

document.open() / document.write() should throw errors for cross-origin calls as per:

No new tests, rebaselined existing tests.

  • dom/Document.cpp:

(WebCore::Document::open):
(WebCore::Document::write):
(WebCore::Document::writeln):

  • dom/Document.h:

LayoutTests:

Tweak a couple of existing tests to reflect behavior change.

  • fast/dom/HTMLDocument/document-open-return-value.html:
  • fast/parser/tokenizer-close-during-document-write.html:
2:08 PM Changeset in webkit [236612] by rniwa@webkit.org
  • 15 edits in trunk/Source

Rename createMarkup to serializePreservingVisualAppearance
https://bugs.webkit.org/show_bug.cgi?id=190086

Reviewed by Wenson Hsieh.

Source/WebCore:

Renamed the function to clarify what it does. Also removed the unused Range::toHTML.

  • dom/Range.cpp:

(WebCore::Range::toHTML const): Deleted.

  • dom/Range.h:
  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::selectionInHTMLFormat):

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::writeSelectionToPasteboard):

  • editing/markup.cpp:

(WebCore::serializePreservingVisualAppearance):
(WebCore::createMarkup): Deleted.

  • editing/markup.h:
  • editing/wpe/EditorWPE.cpp:

(WebCore::Editor::writeSelectionToPasteboard):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create):
(WebCore::LegacyWebArchive::createFromSelection):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeRangeToDataObject):

Source/WebKit:

  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::updateGlobalSelection):

Source/WebKitLegacy/mac:

  • DOM/WebDOMOperations.mm:

(-[DOMRange markupString]):

2:03 PM Changeset in webkit [236611] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Remove some unused RenderLayer code
https://bugs.webkit.org/show_bug.cgi?id=190078

Reviewed by Zalan Bujtas.

The 'outOfFlowDescendantContainingBlocks' code was related to the accelerated overflow scrolling code that
I removed recently.

updateDescendantsLayerListsIfNeeded() is never called.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateDescendantDependentFlags):
(WebCore::RenderLayer::calculateClipRects const):

  • rendering/RenderLayer.h:
1:38 PM Changeset in webkit [236610] by commit-queue@webkit.org
  • 39 edits
    1 delete in trunk

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

caused three API test timeouts (Requested by jernoble on
#webkit).

Reverted changeset:

"Refactoring: eliminate raw pointer usage in Fullscreen code"
https://bugs.webkit.org/show_bug.cgi?id=188747
https://trac.webkit.org/changeset/236605

1:03 PM Changeset in webkit [236609] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Simplify StyledMarkupAccumulator::traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=190073

Reviewed by Antti Koivisto.

Simplified the range traversal algorithm in traverseNodesForSerialization as it was too complicated
to support shadow DOM for copy and paste.

Instead of using NodeTraversal::next to traverse past ancestors and then figuring out which ancestor
must be closed or to wrap the existing markup with, new code collects the list of ancestors as we
traverse out of them.

Also extracted lambdas for generating markup and deciding whether to skip a node as well as keeping
track of the depth of the current markup. This further reduces the code complexity of the actual
node traversal algorithm. Keeping track of the depth allows us to now generate ancestor elements'
closing tags without keeping a stack of ancestor nodes we opened at all times.

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):

1:02 PM Changeset in webkit [236608] by BJ Burg
  • 2 edits in trunk/Source/WTF

Replace recently added line comments in Compiler.h
https://bugs.webkit.org/show_bug.cgi?id=190062
<rdar://problem/44838618>

Reviewed by Joseph Pecoraro.

This breaks some Apple-internal tooling. For now, work around it by
changing the comment style. On the other side, the issue will be fixed
more permanently by adopting the approach from r230213.

  • wtf/Compiler.h: Use multiline comments.
12:47 PM Changeset in webkit [236607] by rniwa@webkit.org
  • 13 edits in trunk/Source/WebCore

Replace every use of Node::offsetInCharacters() by Node::isCharacterDataNode()
https://bugs.webkit.org/show_bug.cgi?id=190069

Reviewed by Zalan Bujtas.

Removed Node::offsetInCharacters() and replaced every use of it by isCharacterDataNode()
because their implementations are identical.

Note that offsetInCharacters() sounds like a function which returns some kind of an offset
but it doesn't. It returns true when called on a CharacterData and false elsewhere.

  • accessibility/AXObjectCache.cpp:

(WebCore::characterOffsetsInOrder):
(WebCore::AXObjectCache::startOrEndCharacterOffsetForRange):
(WebCore::AXObjectCache::characterOffsetFromVisiblePosition):

  • dom/CharacterData.cpp:

(WebCore::CharacterData::offsetInCharacters const): Deleted.

  • dom/CharacterData.h:
  • dom/Node.cpp:

(WebCore::Node::offsetInCharacters const): Deleted.

  • dom/Node.h:
  • dom/Position.cpp:

(WebCore::Position::parentAnchoredEquivalent const):

  • dom/Position.h:

(WebCore::lastOffsetInNode):
(WebCore::minOffsetForNode):
(WebCore::offsetIsBeforeLastNodeOffset):

  • dom/Range.cpp:

(WebCore::Range::firstNode const):
(WebCore::Range::pastLastNode const):

  • dom/RangeBoundaryPoint.h:

(WebCore::RangeBoundaryPoint::setOffset):
(WebCore::RangeBoundaryPoint::setToEndOfNode):

  • editing/Editing.cpp:

(WebCore::lastOffsetForEditing):

  • editing/TextIterator.cpp:

(WebCore::nextInPreOrderCrossingShadowBoundaries):
(WebCore::TextIterator::node const):
(WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::extend):

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

Gardening: speculative build fix.
<rdar://problem/44869924>

Not reviewed.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

11:39 AM Changeset in webkit [236605] by jer.noble@apple.com
  • 39 edits
    1 copy in trunk

Refactoring: eliminate raw pointer usage in Fullscreen code
https://bugs.webkit.org/show_bug.cgi?id=188747
<rdar://problem/43541164>

Reviewed by Alex Christensen.

Source/WebCore:

Two sources of raw pointers in the Fullscreen code:

  • Model classes (PlaybackSessionModel and VideoFullscreenModel) aren't ref-able, so they are passed around as raw references.
  • Observer classes (PlaybackSessionModelClient and VideoFullscreenModelClient, and VideoFullscreenChangeObserver) are also passed around as raw pointers, but shouldn't be ref-able.

Make Model classes ref-able by adding ref() and deref() which call virtual refModel and
derefModel methods, overridden by implementing subclasses. Make every concrete observer
inherit from CanMakeWeakPtr, and every registration method take WeakPtr wrappers around
the client interface.

Since every Interface class now holds a strong reference to its Model classes, and each
Model class holds a weak reference to all its clients, no explicit invalidate() method
is necessary.

Notes:

  • Since the weak pointer methods need to be able to downcast to the abstract base class, observers need to inherit publically (rather than privately) from those base classes.
  • Media element Models should compose EventListener rather than inheriting from it, since EventListener has its own RefCount.
  • WeakPtrs can't be held in HashSets (because they change value, and therefore hash, when their underlying object is destroyed), so clients should be stored in a Vector instead.
  • Interfaces should be given all required Refs at creation time, so that they can store those parameters as Refs instead of RefPtrs.
  • platform/cocoa/PlaybackSessionInterface.h:

(WebCore::PlaybackSessionInterface::~PlaybackSessionInterface): Deleted.

  • platform/cocoa/PlaybackSessionModel.h:

(WebCore::PlaybackSessionModel::ref):
(WebCore::PlaybackSessionModel::deref):
(WebCore::PlaybackSessionModel::~PlaybackSessionModel): Deleted.

  • platform/cocoa/PlaybackSessionModelMediaElement.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm:

(WebCore::PlaybackSessionModelMediaElement::PlaybackSessionModelMediaElement):
(WebCore::PlaybackSessionModelMediaElement::~PlaybackSessionModelMediaElement):
(WebCore::PlaybackSessionModelMediaElement::setMediaElement):
(WebCore::PlaybackSessionModelMediaElement::updateForEventName):
(WebCore::PlaybackSessionModelMediaElement::addClient):
(WebCore::PlaybackSessionModelMediaElement::removeClient):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionOptions):
(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionIndices):
(WebCore::PlaybackSessionModelMediaElement::handleEvent): Deleted.

  • platform/cocoa/VideoFullscreenChangeObserver.h:

(WebCore::VideoFullscreenChangeObserver::~VideoFullscreenChangeObserver): Deleted.

  • platform/cocoa/VideoFullscreenModel.h:

(WebCore::VideoFullscreenModel::ref):
(WebCore::VideoFullscreenModel::deref):
(WebCore::VideoFullscreenModel::~VideoFullscreenModel): Deleted.

  • platform/cocoa/VideoFullscreenModelVideoElement.h:
  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement):
(VideoFullscreenModelVideoElement::setVideoElement):
(VideoFullscreenModelVideoElement::addClient):
(VideoFullscreenModelVideoElement::removeClient):
(VideoFullscreenModelVideoElement::setHasVideo):
(VideoFullscreenModelVideoElement::setVideoDimensions):
(VideoFullscreenModelVideoElement::willEnterPictureInPicture):
(VideoFullscreenModelVideoElement::didEnterPictureInPicture):
(VideoFullscreenModelVideoElement::failedToEnterPictureInPicture):
(VideoFullscreenModelVideoElement::willExitPictureInPicture):
(VideoFullscreenModelVideoElement::didExitPictureInPicture):
(VideoFullscreenModelVideoElement::handleEvent): Deleted.

  • platform/ios/PlaybackSessionInterfaceAVKit.h:

(WebCore::PlaybackSessionInterfaceAVKit::create):
(WebCore::PlaybackSessionInterfaceAVKit::playbackSessionModel const):
(): Deleted.

  • platform/ios/PlaybackSessionInterfaceAVKit.mm:

(WebCore::PlaybackSessionInterfaceAVKit::PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::~PlaybackSessionInterfaceAVKit):
(WebCore::PlaybackSessionInterfaceAVKit::invalidate): Deleted.

  • platform/ios/VideoFullscreenInterfaceAVKit.h:
  • platform/ios/VideoFullscreenInterfaceAVKit.mm:

(-[WebAVPlayerLayer layoutSublayers]):
(-[WebAVPlayerLayer resolveBounds]):
(-[WebAVPlayerLayer setVideoGravity:]):
(VideoFullscreenInterfaceAVKit::create):
(VideoFullscreenInterfaceAVKit::VideoFullscreenInterfaceAVKit):
(VideoFullscreenInterfaceAVKit::~VideoFullscreenInterfaceAVKit):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenChangeObserver):
(VideoFullscreenInterfaceAVKit::applicationDidBecomeActive):
(VideoFullscreenInterfaceAVKit::setupFullscreen):
(VideoFullscreenInterfaceAVKit::presentingViewController):
(VideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
(VideoFullscreenInterfaceAVKit::preparedToExitFullscreen):
(VideoFullscreenInterfaceAVKit::willStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::failedToStartPictureInPicture):
(VideoFullscreenInterfaceAVKit::willStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason):
(VideoFullscreenInterfaceAVKit::doSetup):
(VideoFullscreenInterfaceAVKit::setMode):
(VideoFullscreenInterfaceAVKit::clearMode):
(VideoFullscreenInterfaceAVKit::setVideoFullscreenModel): Deleted.
(VideoFullscreenInterfaceAVKit::invalidate): Deleted.

  • platform/ios/WebAVPlayerController.h:
  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController delegate]):
(-[WebAVPlayerController playbackSessionInterface]):
(-[WebAVPlayerController setPlaybackSessionInterface:]):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(VideoFullscreenControllerContext::didCleanupFullscreen):
(VideoFullscreenControllerContext::addClient):
(VideoFullscreenControllerContext::removeClient):
(VideoFullscreenControllerContext::willEnterPictureInPicture):
(VideoFullscreenControllerContext::didEnterPictureInPicture):
(VideoFullscreenControllerContext::failedToEnterPictureInPicture):
(VideoFullscreenControllerContext::willExitPictureInPicture):
(VideoFullscreenControllerContext::didExitPictureInPicture):
(VideoFullscreenControllerContext::setUpFullscreen):

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

(WebCore::PlaybackSessionInterfaceMac::create):
(WebCore::PlaybackSessionInterfaceMac::PlaybackSessionInterfaceMac):
(WebCore::PlaybackSessionInterfaceMac::playbackSessionModel const):
(WebCore::PlaybackSessionInterfaceMac::rateChanged):
(WebCore::PlaybackSessionInterfaceMac::beginScrubbing):
(WebCore::PlaybackSessionInterfaceMac::endScrubbing):
(WebCore::PlaybackSessionInterfaceMac::setPlayBackControlsManager):
(WebCore::PlaybackSessionInterfaceMac::updatePlaybackControlsManagerTiming):
(WebCore::PlaybackSessionInterfaceMac::~PlaybackSessionInterfaceMac): Deleted.
(WebCore::PlaybackSessionInterfaceMac::invalidate): Deleted.

  • platform/mac/VideoFullscreenInterfaceMac.h:

(WebCore::VideoFullscreenInterfaceMac::create):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenModel const):
(WebCore::VideoFullscreenInterfaceMac::playbackSessionModel const):
(WebCore::VideoFullscreenInterfaceMac::videoFullscreenChangeObserver const):

  • platform/mac/VideoFullscreenInterfaceMac.mm:

(-[WebVideoFullscreenInterfaceMacObjC setUpPIPForVideoView:withFrame:inWindow:]):
(-[WebVideoFullscreenInterfaceMacObjC boundsDidChangeForVideoViewContainer:]):
(-[WebVideoFullscreenInterfaceMacObjC pipDidClose:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionPlay:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionPause:]):
(-[WebVideoFullscreenInterfaceMacObjC pipActionStop:]):
(WebCore::VideoFullscreenInterfaceMac::VideoFullscreenInterfaceMac):
(WebCore::VideoFullscreenInterfaceMac::~VideoFullscreenInterfaceMac):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenChangeObserver):
(WebCore::VideoFullscreenInterfaceMac::setMode):
(WebCore::VideoFullscreenInterfaceMac::clearMode):
(WebCore::VideoFullscreenInterfaceMac::invalidate):
(WebCore::VideoFullscreenInterfaceMac::requestHideAndExitPiP):
(WebCore::VideoFullscreenInterfaceMac::setVideoFullscreenModel): Deleted.

  • platform/mac/WebPlaybackControlsManager.mm:

(-[WebPlaybackControlsManager seekToTime:toleranceBefore:toleranceAfter:]):
(-[WebPlaybackControlsManager setCurrentAudioTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager setCurrentLegibleTouchBarMediaSelectionOption:]):
(-[WebPlaybackControlsManager togglePlayback]):
(-[WebPlaybackControlsManager setPlaying:]):
(-[WebPlaybackControlsManager isPlaying]):
(-[WebPlaybackControlsManager togglePictureInPicture]):

Source/WebKit:

Adopt those Ref and WeakPtr changes made in WebCore.

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

(WebKit::PlaybackSessionModelContext::addClient):
(WebKit::PlaybackSessionModelContext::removeClient):
(WebKit::PlaybackSessionModelContext::durationChanged):
(WebKit::PlaybackSessionModelContext::currentTimeChanged):
(WebKit::PlaybackSessionModelContext::bufferedTimeChanged):
(WebKit::PlaybackSessionModelContext::rateChanged):
(WebKit::PlaybackSessionModelContext::seekableRangesChanged):
(WebKit::PlaybackSessionModelContext::canPlayFastReverseChanged):
(WebKit::PlaybackSessionModelContext::audioMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionModelContext::legibleMediaSelectionOptionsChanged):
(WebKit::PlaybackSessionModelContext::audioMediaSelectionIndexChanged):
(WebKit::PlaybackSessionModelContext::legibleMediaSelectionIndexChanged):
(WebKit::PlaybackSessionModelContext::externalPlaybackChanged):
(WebKit::PlaybackSessionModelContext::wirelessVideoPlaybackDisabledChanged):
(WebKit::PlaybackSessionModelContext::mutedChanged):
(WebKit::PlaybackSessionModelContext::volumeChanged):
(WebKit::PlaybackSessionModelContext::pictureInPictureActiveChanged):
(WebKit::PlaybackSessionManagerProxy::invalidate):
(WebKit::PlaybackSessionManagerProxy::createModelAndInterface):
(WebKit::PlaybackSessionManagerProxy::removeClientForContext):

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

(WebKit::VideoFullscreenModelContext::create):
(WebKit::VideoFullscreenModelContext::VideoFullscreenModelContext):
(WebKit::VideoFullscreenModelContext::addClient):
(WebKit::VideoFullscreenModelContext::removeClient):
(WebKit::VideoFullscreenModelContext::willEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::didEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::failedToEnterPictureInPicture):
(WebKit::VideoFullscreenModelContext::willExitPictureInPicture):
(WebKit::VideoFullscreenModelContext::didExitPictureInPicture):
(WebKit::VideoFullscreenManagerProxy::invalidate):
(WebKit::VideoFullscreenManagerProxy::createModelAndInterface):
(WebKit::VideoFullscreenManagerProxy::removeClientForContext):
(WebKit::VideoFullscreenModelContext::~VideoFullscreenModelContext): Deleted.

  • UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(WKFullScreenViewControllerPlaybackSessionModelClient::setInterface):
(WKFullScreenViewControllerVideoFullscreenModelClient::setInterface):
(-[WKFullScreenViewController videoControlsManagerDidChange]):
(-[WKFullScreenViewController _togglePiPAction:]):

  • UIProcess/mac/WKFullScreenWindowController.mm:

(WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface):

  • WebProcess/cocoa/PlaybackSessionManager.h:
  • WebProcess/cocoa/PlaybackSessionManager.mm:

(WebKit::PlaybackSessionInterfaceContext::PlaybackSessionInterfaceContext):
(WebKit::PlaybackSessionManager::~PlaybackSessionManager):
(WebKit::PlaybackSessionManager::createModelAndInterface):
(WebKit::PlaybackSessionManager::removeContext):
(WebKit::PlaybackSessionInterfaceContext::~PlaybackSessionInterfaceContext): Deleted.

  • WebProcess/cocoa/VideoFullscreenManager.h:

(WebKit::VideoFullscreenInterfaceContext::create):
(WebKit::VideoFullscreenInterfaceContext::createWeakPtr):

  • WebProcess/cocoa/VideoFullscreenManager.mm:

(WebKit::VideoFullscreenInterfaceContext::VideoFullscreenInterfaceContext):
(WebKit::VideoFullscreenManager::~VideoFullscreenManager):
(WebKit::VideoFullscreenManager::createModelAndInterface):
(WebKit::VideoFullscreenManager::removeContext):

Source/WebKitLegacy/mac:

PlaybackSessionInterface no longer has an invalidate() method.

  • WebView/WebView.mm:

(-[WebView _clearPlaybackControlsManager]):

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/WeakPtrContainer.h: Added.

LayoutTests:

Test was causing false pass results due to the webkitPresentationMode being correctly set
to "inline" during the close() operation; modify the test to only perform the close()
operation when the presetation mode is changed to "picture-in-picture".

  • media/controls/ipad/close-page-with-picture-in-picture-video-assertion-failure.html:
  • media/controls/ipad/resources/picture-in-picture.html:
11:18 AM Changeset in webkit [236604] by guijemont@igalia.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] [Armv7] Add a copy function argument to MacroAssemblerARMv7::link() and pass it down to the assembler's linking functions.
https://bugs.webkit.org/show_bug.cgi?id=190080

Reviewed by Mark Lam.

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::link):
(JSC::ARMv7Assembler::linkJumpT1):
(JSC::ARMv7Assembler::linkJumpT2):
(JSC::ARMv7Assembler::linkJumpT3):
(JSC::ARMv7Assembler::linkJumpT4):
(JSC::ARMv7Assembler::linkConditionalJumpT4):
(JSC::ARMv7Assembler::linkBX):
(JSC::ARMv7Assembler::linkConditionalBX):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::link):

10:35 AM Changeset in webkit [236603] by bshafiei@apple.com
  • 2 edits in branches/safari-606-branch/Source/WebKit

Cherry-pick r236571. rdar://problem/44852809

[iOS] Allow access to VoiceServices features needed for accessibility
https://bugs.webkit.org/show_bug.cgi?id=190019
<rdar://problem/43621111>

Reviewed by Chris Fleizach.

Revise the sandbox to allow access to relevant WebSpeech features.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

10:24 AM Changeset in webkit [236602] by bshafiei@apple.com
  • 7 edits in tags/Safari-607.1.8.1/Source

Versioning.

10:21 AM Changeset in webkit [236601] by bshafiei@apple.com
  • 1 copy in tags/Safari-607.1.8.1

Tag Safari-607.1.8.1.

10:04 AM Changeset in webkit [236600] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Drop iOS specific quirk in SettingsBase::scriptEnabledChanged()
https://bugs.webkit.org/show_bug.cgi?id=190077
<rdar://problem/44812613>

Reviewed by Zalan Bujtas.

Drop iOS specific quirk in SettingsBase::scriptEnabledChanged() that would dirty style after the
"JavaScriptEnabled" setting's state is toggled. I do not see a good reason to do this given that
scripts would not get executed until a reload.

If we find out after dropping this that this is actually useful for some reason, then we can
always bring it back and consider making this non-iOS specific, as well as documenting why this
it is needed.

  • page/Settings.yaml:
  • page/SettingsBase.cpp:

(WebCore::SettingsBase::scriptEnabledChanged): Deleted.

  • page/SettingsBase.h:
8:56 AM Changeset in webkit [236599] by commit-queue@webkit.org
  • 7 edits
    2 adds in trunk

[WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
https://bugs.webkit.org/show_bug.cgi?id=189991

Patch by Koby Boyango <koby.b@mce.systems> on 2018-09-28
Reviewed by Yusuke Suzuki.

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/text/ExternalStringImpl.cpp: Added.
  • wtf/text/ExternalStringImpl.h: Added.
  • wtf/text/StringImpl.cpp:
  • wtf/text/StringImpl.h:

Tools:

  • TestWebKitAPI/Tests/WTF/StringImpl.cpp:
8:43 AM Changeset in webkit [236598] by Chris Dumez
  • 2 edits
    1 add in trunk/LayoutTests

REGRESSION (r236573): [iOS] Layout test editing/pasteboard/emacs-ctrl-a-k-y.html is failing
https://bugs.webkit.org/show_bug.cgi?id=190067

Unreviewed, re-land ios-specific expected result for this test as they were inadvertently
dropped in r236573.

  • platform/ios-wk2/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Added.
  • platform/ios/TestExpectations:
8:31 AM Changeset in webkit [236597] by Ross Kirsling
  • 2 edits in trunk/JSTests

JSC test stress/jsc-read.js doesn't support CRLF
https://bugs.webkit.org/show_bug.cgi?id=190063

Reviewed by Yusuke Suzuki.

In order to run this test via Windows command prompt, we can't assume that the final newline will be LF.

  • stress/jsc-read.js:

(test):

1:04 AM Changeset in webkit [236596] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: image resources without content are still shown when the Images folder is selected
https://bugs.webkit.org/show_bug.cgi?id=190072

Reviewed by Matt Baker.

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype.showGenericNoContentMessage):
Treat paths that result in a "Resource has no content" message as a "content error".

12:06 AM Changeset in webkit [236595] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

[WinCairo] error C2027: use of undefined type 'WTF::EnumTraits<E>' while compiling AuthenticationChallengeProxy.cpp
https://bugs.webkit.org/show_bug.cgi?id=190071

Unreviewed build fix for WinCairo port.

AuthenticationChallengeDisposition was not defined in this file.

  • UIProcess/Authentication/AuthenticationChallengeProxy.cpp: Include "AuthenticationChallengeDisposition.h".
12:01 AM Changeset in webkit [236594] by mark.lam@apple.com
  • 3 edits in branches/safari-606-branch

Cherry-pick r236554. rdar://problem/44855120

2018-09-27 Mark Lam <mark.lam@apple.com>

JITMathIC should not use integer offsets into machine code.
https://bugs.webkit.org/show_bug.cgi?id=190030
<rdar://problem/44803307>

Reviewed by Saam Barati.

We'll replace them with CodeLocation smart pointers instead.

  • jit/JITMathIC.h: (JSC::isProfileEmpty):

Sep 27, 2018:

11:55 PM Changeset in webkit [236593] by Basuke Suzuki
  • 3 edits
    3 adds in trunk

[Curl] Fix priority issue with multiple cookies with different level of path.
https://bugs.webkit.org/show_bug.cgi?id=189920

Reviewed by Fujii Hironori.

Source/WebCore:

When multiple cookies are stored in the database for same site, the priority of
multiple cookies which matches path criteria was not defined. The backend
implementation sqlite then returns the first matching result, which is the one
stored earlier.

Test: http/tests/cookies/cookie-with-multiple-level-path.html

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::searchCookies):

LayoutTests:

  • http/tests/cookies/cookie-with-multiple-level-path-expected.txt: Added.
  • http/tests/cookies/cookie-with-multiple-level-path.html: Added.
  • http/tests/cookies/resources/cookie-with-multiple-level-path.php: Added.
11:40 PM Changeset in webkit [236592] by mark.lam@apple.com
  • 7 edits in branches/safari-606-branch

Cherry-pick r236587. rdar://problem/44855118

2018-09-27 Mark Lam <mark.lam@apple.com>

ByValInfo should not use integer offsets.
https://bugs.webkit.org/show_bug.cgi?id=190070
<rdar://problem/44803430>

Reviewed by Saam Barati.

Also moved some fields around to allow the ByValInfo struct to be more densely packed.

  • bytecode/ByValInfo.h: (JSC::ByValInfo::ByValInfo):
  • jit/JIT.cpp: (JSC::JIT::link):
  • jit/JITOpcodes.cpp: (JSC::JIT::privateCompileHasIndexedProperty):
  • jit/JITOpcodes32_64.cpp: (JSC::JIT::privateCompileHasIndexedProperty):
  • jit/JITPropertyAccess.cpp: (JSC::JIT::privateCompileGetByVal): (JSC::JIT::privateCompileGetByValWithCachedId): (JSC::JIT::privateCompilePutByVal): (JSC::JIT::privateCompilePutByValWithCachedId):
11:08 PM Changeset in webkit [236591] by mark.lam@apple.com
  • 7 edits in branches/safari-606-branch

Cherry-pick r236576. rdar://problem/44855116

2018-09-27 Mark Lam <mark.lam@apple.com>

DFG::OSREntry::m_machineCodeOffset should be a CodeLocation.
https://bugs.webkit.org/show_bug.cgi?id=190054
<rdar://problem/44803543>

Reviewed by Saam Barati.

  • dfg/DFGJITCode.h: (JSC::DFG::JITCode::appendOSREntryData):
  • dfg/DFGJITCompiler.cpp: (JSC::DFG::JITCompiler::noticeOSREntry):
  • dfg/DFGOSREntry.cpp: (JSC::DFG::OSREntryData::dumpInContext const): (JSC::DFG::prepareOSREntry):
  • dfg/DFGOSREntry.h:
  • runtime/JSCPtrTag.h:
10:47 PM Changeset in webkit [236590] by Ryan Haddad
  • 2 edits in trunk/Tools

Update flakiness dashboard configuration for Mojave queues
https://bugs.webkit.org/show_bug.cgi?id=190068

Reviewed by Alexey Proskuryakov.

  • TestResultServer/static-dashboards/builders.jsonp:
10:34 PM Changeset in webkit [236589] by sbarati@apple.com
  • 15 edits in trunk

Verify the contents of AssemblerBuffer on arm64e
https://bugs.webkit.org/show_bug.cgi?id=190057
<rdar://problem/38916630>

Reviewed by Mark Lam.

JSTests:

  • stress/regress-189132.js:

Source/JavaScriptCore:

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::ARM64Assembler):
(JSC::ARM64Assembler::fillNops):
(JSC::ARM64Assembler::link):
(JSC::ARM64Assembler::linkJumpOrCall):
(JSC::ARM64Assembler::linkCompareAndBranch):
(JSC::ARM64Assembler::linkConditionalBranch):
(JSC::ARM64Assembler::linkTestAndBranch):
(JSC::ARM64Assembler::unlinkedCode): Deleted.

  • assembler/ARMAssembler.h:

(JSC::ARMAssembler::fillNops):

  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::unlinkedCode): Deleted.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::emitNops):
(JSC::AbstractMacroAssembler::AbstractMacroAssembler):

  • assembler/AssemblerBuffer.h:

(JSC::ARM64EHash::ARM64EHash):
(JSC::ARM64EHash::update):
(JSC::ARM64EHash::hash const):
(JSC::ARM64EHash::randomSeed const):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::putShort):
(JSC::AssemblerBuffer::putIntUnchecked):
(JSC::AssemblerBuffer::putInt):
(JSC::AssemblerBuffer::hash const):
(JSC::AssemblerBuffer::data const):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::AssemblerBuffer::append): Deleted.

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):

  • assembler/MIPSAssembler.h:

(JSC::MIPSAssembler::fillNops):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::jumpsToLink):
(JSC::MacroAssemblerARM64::link):
(JSC::MacroAssemblerARM64::unlinkedCode): Deleted.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::jumpsToLink):
(JSC::MacroAssemblerARMv7::unlinkedCode): Deleted.

  • assembler/X86Assembler.h:

(JSC::X86Assembler::fillNops):

Source/WTF:

  • wtf/PtrTag.h:

(WTF::tagInt):

10:07 PM Changeset in webkit [236588] by sbarati@apple.com
  • 5 edits in branches/safari-606-branch/Source/JavaScriptCore

Cherry-pick r236585. rdar://problem/44848947

DFG::OSRExit::m_patchableCodeOffset should not be an int
https://bugs.webkit.org/show_bug.cgi?id=190066
<rdar://problem/39498244>


Reviewed by Mark Lam.


dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::link):


dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::codeLocationForRepatch const):
(JSC::DFG::OSRExit::compileOSRExit):
(JSC::DFG::OSRExit::setPatchableCodeOffset): Deleted.
(JSC::DFG::OSRExit::getPatchableCodeOffsetAsJump const): Deleted.
(JSC::DFG::OSRExit::correctJump): Deleted.


dfg/DFGOSRExit.h:
dfg/DFGOSRExitCompilationInfo.h:

10:07 PM Changeset in webkit [236587] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

ByValInfo should not use integer offsets.
https://bugs.webkit.org/show_bug.cgi?id=190070
<rdar://problem/44803430>

Reviewed by Saam Barati.

Also moved some fields around to allow the ByValInfo struct to be more densely packed.

  • bytecode/ByValInfo.h:

(JSC::ByValInfo::ByValInfo):

  • jit/JIT.cpp:

(JSC::JIT::link):

  • jit/JITOpcodes.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileHasIndexedProperty):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::privateCompileGetByVal):
(JSC::JIT::privateCompileGetByValWithCachedId):
(JSC::JIT::privateCompilePutByVal):
(JSC::JIT::privateCompilePutByValWithCachedId):

9:58 PM Changeset in webkit [236586] by sbarati@apple.com
  • 4 edits in branches/safari-606-branch/Source/JavaScriptCore

Cherry-pick r236584. rdar://problem/44848936

Don't use int offsets in StructureStubInfo
https://bugs.webkit.org/show_bug.cgi?id=190064
<rdar://problem/44784719>


Reviewed by Mark Lam.


bytecode/InlineAccess.cpp:
(JSC::linkCodeInline):


bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::slowPathCallLocation):
(JSC::StructureStubInfo::doneLocation):
(JSC::StructureStubInfo::slowPathStartLocation):


jit/JITInlineCacheGenerator.cpp:
(JSC::JITInlineCacheGenerator::finalize):

9:46 PM Changeset in webkit [236585] by sbarati@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

DFG::OSRExit::m_patchableCodeOffset should not be an int
https://bugs.webkit.org/show_bug.cgi?id=190066
<rdar://problem/39498244>

Reviewed by Mark Lam.

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::linkOSRExits):
(JSC::DFG::JITCompiler::link):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::codeLocationForRepatch const):
(JSC::DFG::OSRExit::compileOSRExit):
(JSC::DFG::OSRExit::setPatchableCodeOffset): Deleted.
(JSC::DFG::OSRExit::getPatchableCodeOffsetAsJump const): Deleted.
(JSC::DFG::OSRExit::correctJump): Deleted.

  • dfg/DFGOSRExit.h:
  • dfg/DFGOSRExitCompilationInfo.h:
9:27 PM Changeset in webkit [236584] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Don't use int offsets in StructureStubInfo
https://bugs.webkit.org/show_bug.cgi?id=190064
<rdar://problem/44784719>

Reviewed by Mark Lam.

  • bytecode/InlineAccess.cpp:

(JSC::linkCodeInline):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::slowPathCallLocation):
(JSC::StructureStubInfo::doneLocation):
(JSC::StructureStubInfo::slowPathStartLocation):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITInlineCacheGenerator::finalize):

9:22 PM Changeset in webkit [236583] by rniwa@webkit.org
  • 29 edits in trunk/Source

Use enum class in createMarkup arguments
https://bugs.webkit.org/show_bug.cgi?id=190028

Reviewed by Wenson Hsieh.

Source/WebCore:

Replaced enums used by createMarkup with equivalent enum classes: EChildrenOnly with SerializedNodes,
EAbsoluteURLs with ResolveURLs, and EFragmentSerialization with SerializationSyntax.

Also replaced the boolean convertBlocksToInlines with an enum class of the same name.

Finally, renamed the createMarkup variant which doesn't serialize style and used for innerHTML and XMLSerializer
to serializeFragment.

  • dom/Element.cpp:

(WebCore::Element::innerHTML const):
(WebCore::Element::outerHTML const):

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::innerHTML const):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphs):

  • editing/HTMLInterchange.h:

(WebCore::AnnotateForInterchange): Renamed from EAnnotateForInterchange.

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::MarkupAccumulator):
(WebCore::MarkupAccumulator::serializeNodes):
(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
(WebCore::MarkupAccumulator::resolveURLIfNeeded const):

  • editing/MarkupAccumulator.h:

(WebCore::MarkupAccumulator::inXMLFragmentSerialization const):

  • editing/ReplaceRangeWithTextCommand.cpp:

(WebCore::ReplaceRangeWithTextCommand::inputEventDataTransfer const):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::willApplyCommand):

  • editing/SpellingCorrectionCommand.cpp:

(WebCore::SpellingCorrectionCommand::inputEventDataTransfer const):

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::selectionInHTMLFormat):

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::WebContentMarkupReader::readRTFD):
(WebCore::WebContentMarkupReader::readRTF):

  • editing/gtk/EditorGtk.cpp:

(WebCore::Editor::writeImageToPasteboard):
(WebCore::Editor::writeSelectionToPasteboard):

  • editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
(WebCore::StyledMarkupAccumulator::serializeNodes):
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
(WebCore::highestAncestorToWrapMarkup):
(WebCore::createMarkupInternal):
(WebCore::createMarkup):
(WebCore::sanitizedMarkupForFragmentInDocument):
(WebCore::serializeFragment): Renamed from createMarkup. This is used for innerHTML and XMLSerializer,
which faithfully serializes the fragment without any computed style as inline styles.
(WebCore::documentTypeString):
(WebCore::createFullMarkup): Deleted two varinats used in WebKitLegacy.

  • editing/markup.h:

(WebCore::ResolveURLs): Renamed from EAbsoluteURLs.
(WebCore::ConvertBlocksToInlines): Added.
(WebCore::SerializedNodes): Renamed from EChildrenOnly.
(WebCore::SerializationSyntax): Renamed from EFragmentSerialization.

  • editing/wpe/EditorWPE.cpp:

(WebCore::Editor::writeSelectionToPasteboard):

  • inspector/DOMEditor.cpp:
  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::getOuterHTML):

  • loader/archive/cf/LegacyWebArchive.cpp:

(WebCore::LegacyWebArchive::create):
(WebCore::LegacyWebArchive::createFromSelection):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::SerializerMarkupAccumulator::SerializerMarkupAccumulator):
(WebCore::PageSerializer::serializeFrame):

  • page/win/DragControllerWin.cpp:

(WebCore::DragController::declareAndWriteDragImage):

  • Source/WebCore/platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::writeRangeToDataObject):
(WebCore::Pasteboard::writeSelection):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::send):

  • xml/XMLSerializer.cpp:

(WebCore::XMLSerializer::serializeToString):

  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::xsltStylesheetPointer):
(WebCore::xmlDocPtrFromNode):

Source/WebKit:

  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::updateGlobalSelection):

Source/WebKitLegacy/mac:

  • DOM/WebDOMOperations.mm:

(-[DOMNode markupString]): Moved the code from WebCore/editing/markup.cpp
(-[DOMRange markupString]): Ditto.

8:22 PM Changeset in webkit [236582] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[iOS] Layout test editing/pasteboard/emacs-ctrl-a-k-y.html is failing
https://bugs.webkit.org/show_bug.cgi?id=190067

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as failing.
6:34 PM Changeset in webkit [236581] by Ryan Haddad
  • 2 edits in trunk/Tools

Bring up queues for Mojave
https://bugs.webkit.org/show_bug.cgi?id=189935

Unreviewed infrastructure fix.

  • BuildSlaveSupport/build.webkit.org-config/config.json: Remove trigger, update bot assignment.
6:25 PM Changeset in webkit [236580] by Ryan Haddad
  • 4 edits in trunk/Tools

Bring up queues for Mojave
https://bugs.webkit.org/show_bug.cgi?id=189935

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
5:50 PM Changeset in webkit [236579] by Ryan Haddad
  • 2 edits in trunk/Tools

Increase the timeout for iOS Simulator data migration
https://bugs.webkit.org/show_bug.cgi?id=190059

Reviewed by Aakash Jain.

3 minutes isn't always enough time for the data migrator to complete
when booting up multiple iOS Simulators. Change the timeout to 10 minutes.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager): Create a constant for the default timeout.
(SimulatedDeviceManager.initialize_devices): Use new constant.
(SimulatedDeviceManager.swap): Ditto.
(SimulatedDeviceManager.wait_until_data_migration_is_done): Ditto.

5:23 PM Changeset in webkit [236578] by wilander@apple.com
  • 5 edits
    2 adds in trunk

Resource Load Statistics: Non-redirected top frame navigation should not get captured in statistics
https://bugs.webkit.org/show_bug.cgi?id=190055
<rdar://problem/44843460>

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html

  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::decode):

Corrects legacy statistics for frames and triggers a re-classification.

Source/WebKit:

  • UIProcess/ResourceLoadStatisticsMemoryStore.cpp:

Bumped the statisticsModelVersion to 14 to be able to
correct legacy statistics.

(WebKit::ResourceLoadStatisticsMemoryStore::logFrameNavigation):

Now skips capture if it's the main frame.

LayoutTests:

  • http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations-expected.txt: Added.
  • http/tests/resourceLoadStatistics/do-not-capture-statistics-for-simple-top-navigations.html: Added.
3:37 PM Changeset in webkit [236577] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed watchOS build fix; Fix declaration for ports which USE(ENCRYPTED_MEDIA) but don't
HAVE(AVCONTENTKEYSESSION).

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
3:33 PM Changeset in webkit [236576] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

DFG::OSREntry::m_machineCodeOffset should be a CodeLocation.
https://bugs.webkit.org/show_bug.cgi?id=190054
<rdar://problem/44803543>

Reviewed by Saam Barati.

  • dfg/DFGJITCode.h:

(JSC::DFG::JITCode::appendOSREntryData):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::noticeOSREntry):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::OSREntryData::dumpInContext const):
(JSC::DFG::prepareOSREntry):

  • dfg/DFGOSREntry.h:
  • runtime/JSCPtrTag.h:
3:29 PM Changeset in webkit [236575] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove duplicate CSS Properties and Values feature on status page
https://bugs.webkit.org/show_bug.cgi?id=189909

Patch by Justin Michaud <Justin Michaud> on 2018-09-27
Reviewed by Simon Fraser.

Update CSS properties and values api feature in features.json

  • features.json:
3:15 PM Changeset in webkit [236574] by Kocsen Chung
  • 1 copy in tags/Safari-606.2.103

Tag Safari-606.2.103.

2:57 PM Changeset in webkit [236573] by Chris Dumez
  • 2 edits
    1 add
    10 deletes in trunk/LayoutTests

Regression(r236512): fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html and editing/pasteboard/emacs-ctrl-a-k-y.html are flaky
https://bugs.webkit.org/show_bug.cgi?id=190048

Reviewed by Ryosuke Niwa.

Update editing/pasteboard/emacs-ctrl-a-k-y.html to address flakiness:

  • Stop dumping editing callbacks as some of them may get logged in a slightly different order due to IPC ordering, and those are not needed to determine that the test passes.
  • Dump the test as text to avoid needing platform-specific results.
  • editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Added.
  • editing/pasteboard/emacs-ctrl-a-k-y.html:
  • platform/gtk/editing/pasteboard/emacs-ctrl-a-k-y-expected.png: Removed.
  • platform/gtk/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
  • platform/ios-wk1/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
  • platform/ios-wk2/editing/pasteboard/emacs-ctrl-a-k-y-expected.png: Removed.
  • platform/ios-wk2/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
  • platform/mac/editing/pasteboard/emacs-ctrl-a-k-y-expected.png: Removed.
  • platform/mac/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
  • platform/win/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
  • platform/wincairo/editing/pasteboard/emacs-ctrl-a-k-y-expected.txt: Removed.
  • platform/wincairo/editing/pasteboard/emacs-ctrl-k-y-001-expected.txt: Removed.
2:41 PM Changeset in webkit [236572] by jer.noble@apple.com
  • 18 edits in trunk/Source

MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
https://bugs.webkit.org/show_bug.cgi?id=189951

Reviewed by Eric Carlson.

Source/WebCore:

In order to implement the "Resume Playback" section of EME, part 4, we need to be able
to query whether the MediaPlayer is still waiting for a key after attemptToDecrypt()
has been called. Currently this involves no behavioral changes, as all modern EME ports
will still just notify the media element that they no longer need keys after one has
been added, but future ports may be able to wait for multiple keys before reporting
that it is no longer waiting for keys.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerWaitingForKeyChanged):
(WebCore::HTMLMediaElement::attemptToResumePlaybackIfNecessary):
(WebCore::HTMLMediaElement::mediaPlayerWaitingForKey): Deleted.

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::waitingForKeyChanged):
(WebCore::MediaPlayer::waitingForKey const):
(WebCore::MediaPlayer::waitingForKey): Deleted.

  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerWaitingForKeyChanged):
(WebCore::MediaPlayerClient::mediaPlayerWaitingForKey): Deleted.

  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::waitingForKey const):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
(WebCore::MediaPlayerPrivateAVFoundationObjC::attemptToDecryptWithInstance):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::attemptToDecryptWithInstance):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitingForKey const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitingForKeyChanged):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::initializationDataEncountered):

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::attemptToDecrypt):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::reportWaitingForKey):
(WebCore::MediaPlayerPrivateGStreamerBase::setWaitingForKey):
(WebCore::MediaPlayerPrivateGStreamerBase::waitingForKey const):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(webkitMediaCommonEncryptionDecryptSinkEventHandler):

Source/WTF:

Templated functions should take r-value references, as they have perfect type deduction for
all parameter types; references, l-value references, and r-value references in template function
parameters have special type deduction semantics.
See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>

Previously, const reference parameters would be copied when passed into anyOf(), and containers
of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
with r-value reference types in template parameters, a const reference is mapped to a const reference,
a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
an r-value reference.

  • wtf/Algorithms.h:

(WTF::forEach):
(WTF::anyOf):
(WTF::allOf):

2:27 PM Changeset in webkit [236571] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Allow access to VoiceServices features needed for accessibility
https://bugs.webkit.org/show_bug.cgi?id=190019
<rdar://problem/43621111>

Reviewed by Chris Fleizach.

Revise the sandbox to allow access to relevant WebSpeech features.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
2:04 PM Changeset in webkit [236570] by aestes@apple.com
  • 17 edits
    2 moves
    1 add in trunk/LayoutTests

[Payment Request] Update web platform tests
https://bugs.webkit.org/show_bug.cgi?id=190049

Reviewed by Youenn Fablet.

Updated web-platform-tests/payment-request/ to tip-of-tree from web-platform-tests.

LayoutTests/imported/w3c:

  • web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https-expected.txt: Added.
  • web-platform-tests/payment-request/MerchantValidationEvent/complete-method.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/payment-request/MerchantValidationEvent/complete-method-manual.https.html.
  • web-platform-tests/payment-request/MerchantValidationEvent/constructor.https-expected.txt:
  • web-platform-tests/payment-request/MerchantValidationEvent/constructor.https.html:
  • web-platform-tests/payment-request/MerchantValidationEvent/w3c-import.log:
  • web-platform-tests/payment-request/PaymentAddress/attributes-and-toJSON-method-manual.https.html:
  • web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https-expected.txt:
  • web-platform-tests/payment-request/PaymentMethodChangeEvent/methodDetails-attribute.https.html:
  • web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https-expected.txt:
  • web-platform-tests/payment-request/PaymentMethodChangeEvent/methodName-attribute.https.html:
  • web-platform-tests/payment-request/PaymentValidationErrors/retry-shows-shippingAddress-member-manual.https.html:
  • web-platform-tests/payment-request/historical.https-expected.txt:
  • web-platform-tests/payment-request/historical.https.html:
  • web-platform-tests/payment-request/idlharness.https.window.js:
  • web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute-manual.https.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/payment-request/payment-response/onpayerdetailchange-attribute.manual.https.html.
  • web-platform-tests/payment-request/payment-response/w3c-import.log:

LayoutTests:

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
2:04 PM Changeset in webkit [236569] by commit-queue@webkit.org
  • 2 edits in trunk/JSTests

Disable test without LLInt on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=190037

Patch by Dominik Infuehr <dinfuehr@igalia.com> on 2018-09-27
Reviewed by Mark Lam.

Test runs out of executable memory on ARMv7, do not run
this test without LLInt enabled.

  • stress/regress-169445.js:
2:01 PM Changeset in webkit [236568] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Fix IOSMAC build
https://bugs.webkit.org/show_bug.cgi?id=190021

Reviewed by Alex Christensen.

  • NetworkProcess/mac/NetworkProcessMac.mm:

(WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const):

1:14 PM Changeset in webkit [236567] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.8/Source/WebKit

Revert r236281. rdar://problem/44840699

1:10 PM Changeset in webkit [236566] by aboya@igalia.com
  • 3 edits
    2 adds in trunk

[MSE] Fix unwanted sample erase from the decode queue
https://bugs.webkit.org/show_bug.cgi?id=180643

Reviewed by Jer Noble.

Source/WebCore:

Test: media/media-source/media-source-append-acb-no-frame-lost.html

This bug reproduced when unordered appends were made. For instance, if
the application appended [0, 10) and then [20, 30), the frame at 20
would be wrongly discarded from the decode queue.

Later the application could append [10, 20) and the gap at [20, 21)
would persist in the decode queue, even if the frame remained in the
track buffer table.

Thanks to Daniel Zhang for reporting the issue.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::provideMediaData):

LayoutTests:

Added a test case for the fixed bug.

  • media/media-source/media-source-append-acb-no-frame-lost.html: Added.
1:05 PM Changeset in webkit [236565] by achristensen@apple.com
  • 16 edits in trunk

URLParser should use TextEncoding through an abstract class
https://bugs.webkit.org/show_bug.cgi?id=190027

Reviewed by Andy Estes.

Source/WebCore:

URLParser uses TextEncoding for one call to encode, which is only used for encoding the query of URLs in documents with non-UTF encodings.
There are 3 call sites that specify the TextEncoding to use from the Document, and even those call sites use a UTF encoding most of the time.
All other URL parsing is done using a well-optimized path which assumes UTF-8 encoding and uses macros from ICU headers, not a TextEncoding.
Moving the logic in this way breaks URL and URLParser's dependency on TextEncoding, which makes it possible to use in a lower-level project
without also moving TextEncoding, TextCodec, TextCodecICU, ThreadGlobalData, and the rest of WebCore and JavaScriptCore.

There is no observable change in behavior. There is now one virtual function call in a code path in URLParser that is not performance-sensitive,
and TextEncodings now have a vtable, which uses a few more bytes of memory total for WebKit.

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContext::completeURL const):

  • css/parser/CSSParserIdioms.cpp:

(WebCore::completeURL):

  • dom/Document.cpp:

(WebCore::Document::completeURL const):

  • html/HTMLBaseElement.cpp:

(WebCore::HTMLBaseElement::href const):
Move the call to encodingForFormSubmission from the URL constructor to the 3 call sites that specify the encoding from the Document.

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):

  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::encodingForURLParsing):

  • loader/TextResourceDecoder.h:
  • platform/URL.cpp:

(WebCore::URL::URL):

  • platform/URL.h:

(WebCore::URLTextEncoding::~URLTextEncoding):

  • platform/URLParser.cpp:

(WebCore::URLParser::encodeNonUTF8Query):
(WebCore::URLParser::copyURLPartsUntil):
(WebCore::URLParser::URLParser):
(WebCore::URLParser::parse):
(WebCore::URLParser::encodeQuery): Deleted.
A pointer replaces the boolean isUTF8Encoding and the TextEncoding& which had a default value of UTF8Encoding.
Now the pointer being null means that we use UTF8, and the pointer being non-null means we use that encoding.

  • platform/URLParser.h:

(WebCore::URLParser::URLParser):

  • platform/text/TextEncoding.cpp:

(WebCore::UTF7Encoding):
(WebCore::TextEncoding::encodingForFormSubmissionOrURLParsing const):
(WebCore::ASCIIEncoding):
(WebCore::Latin1Encoding):
(WebCore::UTF16BigEndianEncoding):
(WebCore::UTF16LittleEndianEncoding):
(WebCore::UTF8Encoding):
(WebCore::WindowsLatin1Encoding):
(WebCore::TextEncoding::encodingForFormSubmission const): Deleted.
Use NeverDestroyed because TextEncoding now has a virtual destructor.

  • platform/text/TextEncoding.h:

Rename encodingForFormSubmission to encodingForFormSubmissionOrURLParsing to make it more clear that we are intentionally using it for both.

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::checkURL):
(TestWebKitAPI::TEST_F):

12:44 PM Changeset in webkit [236564] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, make fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html more deterministic to address flakiness.

  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt:
  • fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html:
12:40 PM Changeset in webkit [236563] by wilander@apple.com
  • 15 edits
    2 moves in trunk

Resource Load Statistics: Remove temporary compatibility fix for auto-dismiss popups
https://bugs.webkit.org/show_bug.cgi?id=189980
<rdar://problem/44780645>

Reviewed by Alex Christensen.

Source/WebCore:

Test: http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html

The change in https://bugs.webkit.org/show_bug.cgi?id=183620 was a temporary
compatibility fix as explained in:
https://webkit.org/blog/8311/intelligent-tracking-prevention-2-0/. We should
remove it.

Most of these changes remove the parameter isTriggeredByUserGesture since it's no longer needed.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::setRequestStorageAccessUnderOpenerCallback):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::ResourceLoadObserver::requestStorageAccessUnderOpener):
(WebCore::ResourceLoadObserver::logWindowCreation): Deleted.

  • loader/ResourceLoadObserver.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

Now no longer logs anything to ResourceLoadObserver.

Source/WebKit:

The change in https://bugs.webkit.org/show_bug.cgi?id=183620 was a temporary
compatibility fix as explained in:
https://webkit.org/blog/8311/intelligent-tracking-prevention-2-0/. We should
remove it.

These changes remove the parameter isTriggeredByUserGesture since it's no longer needed.

  • UIProcess/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::requestStorageAccessUnderOpener):

  • UIProcess/ResourceLoadStatisticsMemoryStore.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::requestStorageAccessUnderOpener):

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • UIProcess/WebResourceLoadStatisticsStore.messages.in:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):

LayoutTests:

This test was for the temporary compatibility fix in:
https://bugs.webkit.org/show_bug.cgi?id=183620. This change makes it into a
test that the compatibility fix is no longer there.

  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener-expected.txt.
  • http/tests/storageAccess/deny-storage-access-under-opener-if-auto-dismiss.html: Renamed from LayoutTests/http/tests/storageAccess/grant-storage-access-under-opener.html.
  • platform/ios-wk2/TestExpectations:

Removed comment and entry since https://bugs.webkit.org/show_bug.cgi?id=183714 was fixed long ago.

  • platform/ios/TestExpectations:

Changed test name.

  • platform/mac-wk2/TestExpectations:

Changed test name.

12:00 PM Changeset in webkit [236562] by Ryan Haddad
  • 2 edits in trunk/Tools

iOS Simulator bots should pass '--dedicated-simulators' to run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=190042

Reviewed by Aakash Jain.

To make iOS Simulator bots resilient to issues that can arise from reusing
existing simulators, ensure that dedicated simulators are created for each test run.

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

(IOSSimulatorWK2Port.run_webkit_tests_command):

11:29 AM Changeset in webkit [236561] by Ryan Haddad
  • 26 edits
    2 adds
    53 deletes in trunk

Unreviewed, rolling out r236557.

Really roll out r236557 this time because it breaks internal
builds.

Reverted changeset:

"Add VP8 support to WebRTC"
https://bugs.webkit.org/show_bug.cgi?id=189976
https://trac.webkit.org/changeset/236557

11:15 AM Changeset in webkit [236560] by Chris Dumez
  • 4 edits in trunk

Fragment should be stripped from document URL during document.open() URL propagation
https://bugs.webkit.org/show_bug.cgi?id=189374
<rdar://problem/44282736>

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-fragment.window-expected.txt:

Source/WebCore:

Strip the Document URL fragment during document.open() URL propagation if the entry document
is not the current document, as per:

No new tests, rebaselined existing test.

  • dom/Document.cpp:

(WebCore::Document::open):

10:50 AM Changeset in webkit [236559] by Ryan Haddad
  • 1 edit
    14 adds in trunk/Source/ThirdParty/libwebrtc

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

236557 Broke internal builds (Requested by ryanhaddad on

#webkit).

Reverted changeset:

"Unreviewed build fix, remove *.o files that were committed in
r236557."
https://trac.webkit.org/changeset/236558

Patch by Commit Queue <commit-queue@webkit.org> on 2018-09-27

10:42 AM Changeset in webkit [236558] by Ryan Haddad
  • 1 edit
    14 deletes in trunk/Source/ThirdParty/libwebrtc

Unreviewed build fix, remove *.o files that were committed in r236557.

  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/copy_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/copy_sse3.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/dequantize_mmx.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/idctllm_mmx.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/idctllm_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/iwalsh_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/loopfilter_block_sse2_x86_64.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/loopfilter_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/mfqe_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/recon_mmx.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/recon_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_mmx.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_sse2.asm.o: Removed.
  • Source/third_party/libvpx/source/libvpx/vp8/common/x86/subpixel_ssse3.asm.o: Removed.
10:16 AM Changeset in webkit [236557] by youenn@apple.com
  • 26 edits
    53 adds
    2 deletes in trunk

Add VP8 support to WebRTC
https://bugs.webkit.org/show_bug.cgi?id=189976

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt:

Source/ThirdParty/libwebrtc:

Add support for conditional VP8 support for both encoding and decoding.
This boolean is used by WebCore based on the new VP8 runtime flag.

Compilation is done without using SSE4/AVX2 optimizations.

  • Configurations/libvpx.xcconfig: Added.
  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Configurations/libwebrtc.xcconfig:
  • Configurations/libwebrtcpcrtc.xcconfig:
  • Source/third_party/libvpx/run_yasm_webkit.py: Added.
  • Source/third_party/libvpx/source/config/mac/x64/vpx_config.asm:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_config.h:
  • Source/third_party/libvpx/source/config/mac/x64/vpx_dsp_rtcd.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

(webrtc::createWebKitEncoderFactory):
(webrtc::createWebKitDecoderFactory):

  • Source/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCVideoCodecFactory.h:
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

Add a runtime flag to control activation of VP8 codec.
Bind this runtime flag to the video codec factories.
Test: webrtc/video-mute-vp8.html

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::createLibWebRTCPeerConnectionBackend):

  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::webRTCVP8CodecEnabled const):
(WebCore::RuntimeEnabledFeatures::setWebRTCVP8CodecEnabled):

  • platform/mediastream/libwebrtc/LibWebRTCProvider.h:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):

  • testing/Internals.cpp:

(WebCore::Internals::resetToConsistentState):
Enable VP8 codec for tests.

Source/WebKit:

  • Shared/WebPreferences.yaml:

LayoutTests:

  • webrtc/audio-peer-connection-g722.html:
  • webrtc/routines.js:
  • webrtc/video-mute-vp8-expected.txt: Added.
  • webrtc/video-mute-vp8.html: Added.
10:06 AM Changeset in webkit [236556] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Crash under WebCore::deleteCookiesForHostnames()
https://bugs.webkit.org/show_bug.cgi?id=190040
<rdar://problem/38020368>

Reviewed by Alex Christensen.

Update NetworkStorageSession::deleteCookiesForHostnames() to properly deal with the fact
that NSHTTPCookie.domain can return nil.

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::deleteCookiesForHostnames):

10:03 AM Changeset in webkit [236555] by youenn@apple.com
  • 4 edits in trunk/LayoutTests

LayoutTest webrtc/video-unmute.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=172879
<rdar://problem/32548738>

Reviewed by Eric Carlson.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • webrtc/video-unmute.html:

Resort on routines.js black frame routine.
Reenable test in mac and ios.

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

JITMathIC should not use integer offsets into machine code.
https://bugs.webkit.org/show_bug.cgi?id=190030
<rdar://problem/44803307>

Reviewed by Saam Barati.

We'll replace them with CodeLocation smart pointers instead.

  • jit/JITMathIC.h:

(JSC::isProfileEmpty):

9:45 AM Changeset in webkit [236553] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Use kCVPixelFormatType_420YpCbCr8Planar for capturing frames
https://bugs.webkit.org/show_bug.cgi?id=190014

Reviewed by Eric Carlson.

On Mac, rely on the monoplanar format which can be displayed without any issue.
Once rendering is fixed, we should change it back to biplanar as it is closer to what libwebrtc consumes.
Covered by manual testing.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::avVideoCapturePixelBufferFormat):
(WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset):
(WebCore::AVVideoCaptureSource::setupCaptureSession):
(WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):

9:44 AM Changeset in webkit [236552] by aestes@apple.com
  • 17 edits
    6 copies
    4 adds in trunk

[Apple Pay] Support granular errors in PaymentDetailsUpdate
https://bugs.webkit.org/show_bug.cgi?id=189938

Reviewed by Youenn Fablet.

Source/WebCore:

Implemented the shippingAddressErrors, payerErrors, and paymentMethodErrors properties on
PaymentDetailsUpdate, as specified in the Payment Request API W3C Editor's Draft of
26 September 2018.

When these errors are specified in a PaymentDetailsUpdate, map them to PaymentErrors. For
shippingAddressErrors and payerErrors, we use the "shippingContactInvalid" code and a
contact field that matches the shippingAddressError or payerError property specified.

For paymentMethodErrors, we interpret this as a sequence of ApplePayErrors, which are
converted to PaymentErrors as in Apple Pay JS.

Tests: http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https.html

http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https.html

  • DerivedSources.make: Removed some tabs and added new .idl files.
  • Modules/applepay/ApplePayError.idl: Moved ApplePayErrorCode and ApplePayErrorContactField

into their own .idl files so they can be used in MockPaymentError.

  • Modules/applepay/ApplePayErrorCode.h: Added.
  • Modules/applepay/ApplePayErrorCode.idl: Added.
  • Modules/applepay/ApplePayErrorContactField.h: Added.
  • Modules/applepay/ApplePayErrorContactField.idl: Added.
  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::appendShippingContactInvalidError): Appended a "shippingContactInvalid"
PaymentError to errors if the message is non-null.
(WebCore::ApplePayPaymentHandler::computeErrors const):
(WebCore::ApplePayPaymentHandler::detailsUpdated):
(WebCore::ApplePayPaymentHandler::shippingAddressUpdated): Computed a vector of PaymentErrors
based on shippingAddressErrors, payerErrors, and paymentMethodErrors.

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
  • Modules/paymentrequest/PaymentDetailsUpdate.h:
  • Modules/paymentrequest/PaymentDetailsUpdate.idl: Defined shippingAddressErrors,

payerErrors, and paymentMethodErrors.

  • Modules/paymentrequest/PaymentHandler.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::paymentMethodChanged):
(WebCore::PaymentRequest::settleDetailsPromise): Passed shippingAddressErrors, payerErrors,
and paymentMethodErrors to the payment handler.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::completeShippingContactSelection): Stored errors in m_errors.

  • testing/MockPaymentCoordinator.h:
  • testing/MockPaymentCoordinator.idl: Added an errors attribute.
  • testing/MockPaymentError.h: Added.
  • testing/MockPaymentError.idl: Added.

LayoutTests:

  • http/tests/resources/payment-request.js:

(validPaymentDetails):
(updateDetailsOnShippingAddressChange):

  • http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https-expected.txt: Added.
  • http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrors.https.html: Added.
  • http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https-expected.txt: Added.
  • http/tests/ssl/applepay/ApplePayShippingAddressChangeEventErrorsV3.https.html: Added.
  • platform/mac-wk2/TestExpectations:
9:34 AM Changeset in webkit [236551] by achristensen@apple.com
  • 4 edits in trunk

URLWithUserTypedString should return nil for URLs deemed to be invalid by WebCore::URL
https://bugs.webkit.org/show_bug.cgi?id=189979

Reviewed by Youenn Fablet.

Source/WebCore:

  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::URLWithUserTypedString):
(WebCore::dataForURLComponentType):
(WebCore::URLByRemovingComponentAndSubsequentCharacter):
(WebCore::URLByCanonicalizingURL):
(WebCore::originalURLData):
(WebCore::userVisibleString):

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:

(TestWebKitAPI::originalDataAsString):
(TestWebKitAPI::TEST):

9:31 AM Changeset in webkit [236550] by Chris Dumez
  • 8 edits in trunk

document.open() should not propagate URLs to non-fully active documents
https://bugs.webkit.org/show_bug.cgi?id=189375
<rdar://problem/44282755>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test now that more checks are passing.

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window-expected.txt:

Source/WebCore:

Update our document.open() to not propagate URLs to non-fully active documents, as per:

A "fully active" document is defined by at:

No new tests, rebaselined existing test.

  • dom/Document.cpp:

(WebCore::Document::open):
(WebCore::Document::isFullyActive const):

  • dom/Document.h:
  • dom/Document.idl:

LayoutTests:

Update existing test to reflect behavior change. I have verified that this test was
failing in Firefox and is now passing in Firefox.

  • fast/dom/resource-locations-in-created-html-document.html:
9:27 AM Changeset in webkit [236549] by Basuke Suzuki
  • 8 edits in trunk/Tools

[Win][WebKit] Implement authentication dialog on MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=189846

Reviewed by Fujii Hironori.

It was implemented for WebKitLegacy, but not for WebKit.
Also added text field to display Realm information.

  • MiniBrowser/win/Common.cpp:

(authDialogProc):
(askCredential):
(displayAuthDialog): Deleted.

  • MiniBrowser/win/Common.h:
  • MiniBrowser/win/MiniBrowserLib.rc:
  • MiniBrowser/win/MiniBrowserLibResource.h:
  • MiniBrowser/win/ResourceLoadDelegate.cpp:

(ResourceLoadDelegate::didReceiveAuthenticationChallenge):

  • MiniBrowser/win/WebKitBrowserWindow.cpp:

(createString):
(createUTF8String):
(createWKString):
(createWKURL):
(WebKitBrowserWindow::WebKitBrowserWindow):
(WebKitBrowserWindow::didReceiveAuthenticationChallenge):
(toNullTerminatedUTF8): Deleted.

  • MiniBrowser/win/WebKitBrowserWindow.h:
9:08 AM Changeset in webkit [236548] by youenn@apple.com
  • 3 edits in trunk/Tools

Enable getUserMedia in mini browser
https://bugs.webkit.org/show_bug.cgi?id=190012

Reviewed by Eric Carlson.

Enable MediaDevices and mock capture devices.
Grant mock devices access to any getUserMedia call.
Covered by manual testing.

  • MiniBrowser/mac/AppDelegate.m:

(defaultConfiguration):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController _webView:requestUserMediaAuthorizationForDevices:url:mainFrameURL:decisionHandler:]):
(-[WK2BrowserWindowController _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]):

9:03 AM Changeset in webkit [236547] by aboya@igalia.com
  • 3 edits in trunk/Source/WebCore

[MSE][GStreamer] Use sentinel buffer to detect end of append
https://bugs.webkit.org/show_bug.cgi?id=189924

Reviewed by Philippe Normand.

This patch introduces a new mechanism to detect when an append has
been consumed completely by the demuxer. It takes advantage of the
fact that buffer pushing is synchronous: both the appsrc and the
demuxer live in the same streaming thread. When appsrc pushes a
buffer, it's actually making a qtdemux function call (it calls its
"chain" function). The demuxer will return from that call when it has
finished processing that buffer; only then the control returns to
appsrc, that can push the next buffer.

By pushing an additional buffer and capturing it in a probe we can
detect reliably when the previous buffer has been processed.
Because the pipeline only has one thread, at this point no more frames
can arrive to the appsink.

This replaces the old method of detecting end of append which relied
on the need-data event, which is more difficult to handle correctly
because it fires whenever the appsrc is empty (or below a given
level), which also happens when a buffer has not been pushed yet or
in response to a flush.

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::EndOfAppendMeta::init):
(WebCore::EndOfAppendMeta::transform):
(WebCore::EndOfAppendMeta::free):
(WebCore::AppendPipeline::staticInitialization):
(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::appsrcEndOfAppendCheckerProbe):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::handleEndOfAppend):
(WebCore::AppendPipeline::consumeAppsinkAvailableSamples):
(WebCore::AppendPipeline::resetPipeline):
(WebCore::AppendPipeline::pushNewBuffer):
(WebCore::AppendPipeline::handleAppsrcNeedDataReceived): Deleted.:
(WebCore::AppendPipeline::handleAppsrcAtLeastABufferLeft): Deleted.
(WebCore::AppendPipeline::checkEndOfAppend): Deleted.
(WebCore::AppendPipeline::setAppsrcDataLeavingProbe): Deleted.
(WebCore::AppendPipeline::removeAppsrcDataLeavingProbe): Deleted.
(WebCore::AppendPipeline::reportAppsrcAtLeastABufferLeft): Deleted.
(WebCore::AppendPipeline::reportAppsrcNeedDataReceived): Deleted.
(WebCore::appendPipelineAppsrcDataLeaving): Deleted.
(WebCore::appendPipelineAppsrcNeedData): Deleted.

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
8:57 AM Changeset in webkit [236546] by Chris Dumez
  • 28 edits
    2 deletes in trunk

The WebContent process should not process incoming IPC while waiting for a sync IPC reply
https://bugs.webkit.org/show_bug.cgi?id=184183
<rdar://problem/36800576>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Drop test infrastructure for the DoNotProcessIncomingMessagesWhenWaitingForSyncReply IPC::SendOption
given that this SendOption was removed from this patch.

  • page/ChromeClient.h:
  • testing/Internals.cpp:
  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

In recent years, we have experienced re-entrancy bugs/crashes in WebCore due to the WebContent process
processing unrelated incoming synchronous IPC when waiting for a reply to one of its synchronous IPC
to another process. In order to deal with this, we introduced a DoNotProcessIncomingMessagesWhenWaitingForSyncReply
IPC::SendOption which we used on sendSync() calls where we knew re-entering would be unsafe. However,
it turns out to be needed for a lot of the WebProcess's sync IPC and it is error-prone. In order to
address the issue, we've decided to update the WebContent process behavior so that it processes all its
IPC in order (not matter if synchronous or not) and thus so that we never dispatch unrelated synchronous
IPC while waiting for a synchronous IPC reply, expect in cases where it would cause a deadlock.

As a result, this patch also drops support for the DoNotProcessIncomingMessagesWhenWaitingForSyncReply
IPC::SendOption which is no longer needed and has some code complexity.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::sendSyncMessage):
(IPC::Connection::waitForSyncReply):

  • Platform/IPC/Connection.h:

(IPC::Connection::sendSync):

  • PluginProcess/WebProcessConnection.cpp:

(WebKit::WebProcessConnection::WebProcessConnection):

  • StorageProcess/StorageToWebProcessConnection.cpp:

(WebKit::StorageToWebProcessConnection::StorageToWebProcessConnection):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::connectionWillOpen):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::postSynchronousMessage):

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResourceSynchronously):
(WebKit::WebLoaderStrategy::responseFromResourceLoadIdentifier):
(WebKit::WebLoaderStrategy::intermediateLoadInformationFromResourceLoadIdentifier):
(WebKit::WebLoaderStrategy::networkMetricsFromResourceLoadIdentifier):

  • WebProcess/Plugins/PluginProxy.cpp:

(WebKit::PluginProxy::destroy):
(WebKit::PluginProxy::supportsSnapshotting const):

  • WebProcess/Plugins/WebPluginInfoProvider.cpp:

(WebKit::WebPluginInfoProvider::populatePluginCache):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::WebSWClientConnection):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::savePlatformDataToCachedFrame):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::cookieRequestHeaderFieldValue):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::rootViewToScreen):

  • WebProcess/WebProcess.cpp:

(WebKit::getNetworkProcessConnection):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:

LayoutTests:

Drop test for the DoNotProcessIncomingMessagesWhenWaitingForSyncReply IPC::SendOption as it was
removed in this patch. This SendOption is no longer useful because it is now the default behavior
for the WebContent process.

  • fast/misc/testIncomingSyncIPCMessageWhileWaitingForSyncReply-expected.txt: Removed.
  • fast/misc/testIncomingSyncIPCMessageWhileWaitingForSyncReply.html: Removed.
6:30 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
5:51 AM Changeset in webkit [236545] by Philippe Normand
  • 2 edits in trunk/Source/WebCore

Unreviewed, GTK Ubuntu LTS build fix attempt after r236396.

  • platform/graphics/gstreamer/GStreamerCommon.h:
5:46 AM Changeset in webkit [236544] by Philippe Normand
  • 6 edits in trunk/LayoutTests

Unreviewed GTK WebAudio rebaseline.

This time from the 64-bit Release bot...

  • platform/gtk/webaudio/oscillator-custom-expected.wav:
  • platform/gtk/webaudio/oscillator-sawtooth-expected.wav:
  • platform/gtk/webaudio/oscillator-sine-expected.wav:
  • platform/gtk/webaudio/oscillator-square-expected.wav:
  • platform/gtk/webaudio/oscillator-triangle-expected.wav:
5:14 AM Changeset in webkit [236543] by Philippe Normand
  • 3 edits in trunk/LayoutTests

Unreviewed GTK WebAudio rebaselines

  • platform/gtk/TestExpectations: webaudio/audioprocessingevent.html doesn't fail.
  • platform/gtk/webaudio/codec-tests/wav/24bit-22khz-resample-expected.wav: Rebaselined.
5:12 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:51 AM Changeset in webkit [236542] by Philippe Normand
  • 7 edits
    1 delete in trunk/LayoutTests

[GTK] Several tests are failing since r217598
https://bugs.webkit.org/show_bug.cgi?id=172809

Unreviewed, GTK platform test expectations rebaseline.

  • platform/gtk/TestExpectations:
  • platform/gtk/http/tests/xmlhttprequest/cache-override-expected.txt: Removed.
  • platform/gtk/webaudio/oscillator-custom-expected.wav:
  • platform/gtk/webaudio/oscillator-sawtooth-expected.wav:
  • platform/gtk/webaudio/oscillator-sine-expected.wav:
  • platform/gtk/webaudio/oscillator-square-expected.wav:
  • platform/gtk/webaudio/oscillator-triangle-expected.wav:
2:49 AM Changeset in webkit [236541] by graouts@webkit.org
  • 206 edits
    8 deletes in trunk

[Web Animations] Turn Web Animations with CSS integration on
https://bugs.webkit.org/show_bug.cgi?id=184819
<rdar://problem/39597337>

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

  • css-animations/test_animation-cancel.html:
  • css-animations/test_animation-computed-timing.html:
  • css-animations/test_animation-currenttime.html:
  • css-animations/test_animation-finish.html:
  • css-animations/test_animation-finished.html:
  • css-animations/test_animation-id.html:
  • css-animations/test_animation-pausing.html:
  • css-animations/test_animation-playstate.html:
  • css-animations/test_animation-ready.html:
  • css-animations/test_animation-reverse.html:
  • css-animations/test_animation-starttime.html:
  • css-animations/test_animations-dynamic-changes.html:
  • css-animations/test_cssanimation-animationname.html:
  • css-animations/test_document-get-animations.html:
  • css-animations/test_effect-target.html:
  • css-animations/test_element-get-animations.html:
  • css-animations/test_event-dispatch.html:
  • css-animations/test_event-order.html:
  • css-animations/test_keyframeeffect-getkeyframes.html:
  • css-animations/test_pseudoElement-get-animations.html:
  • css-animations/test_setting-effect.html:
  • css-transitions/test_animation-cancel.html:
  • css-transitions/test_animation-computed-timing.html:
  • css-transitions/test_animation-currenttime.html:
  • css-transitions/test_animation-finished.html:
  • css-transitions/test_animation-pausing.html:
  • css-transitions/test_animation-ready.html:
  • css-transitions/test_animation-starttime.html:
  • css-transitions/test_csstransition-transitionproperty.html:
  • css-transitions/test_document-get-animations.html:
  • css-transitions/test_effect-target.html:
  • css-transitions/test_element-get-animations.html:
  • css-transitions/test_event-dispatch.html:
  • css-transitions/test_keyframeeffect-getkeyframes.html:
  • css-transitions/test_pseudoElement-get-animations.html:
  • css-transitions/test_setting-effect.html:

LayoutTests/imported/w3c:

  • web-platform-tests/css-timing-1/frames-timing-functions-output.html:
  • web-platform-tests/css/css-logical/animation-003.tentative.html:
  • web-platform-tests/css/css-scoping/keyframes-001.html:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context.html:
  • web-platform-tests/web-animations/interfaces/Animatable/animate.html:
  • web-platform-tests/web-animations/timing-model/animations/current-time.html:

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

Source/WebKitLegacy/win:

  • WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):

Tools:

  • DumpRenderTree/TestOptions.h:

LayoutTests:

  • TestExpectations:
  • animations/3d/matrix-transform-type-animation.html:
  • animations/3d/replace-filling-transform.html:
  • animations/3d/transform-origin-vs-functions.html:
  • animations/3d/transform-perspective.html:
  • animations/additive-transform-animations.html:
  • animations/animation-border-overflow.html:
  • animations/animation-callback-timestamp.html:
  • animations/animation-controller-drt-api.html:
  • animations/animation-direction-alternate-reverse-expected.txt:
  • animations/animation-direction-alternate-reverse.html:
  • animations/animation-direction-reverse-fill-mode-hardware.html:
  • animations/animation-direction-reverse-hardware-opacity.html:
  • animations/animation-direction-reverse-hardware.html:
  • animations/animation-direction-reverse-non-hardware.html:
  • animations/animation-direction-reverse-timing-functions-hardware.html:
  • animations/animation-direction-reverse-timing-functions.html:
  • animations/animation-direction.html:
  • animations/animation-followed-by-transition.html:
  • animations/animation-hit-test-transform.html:
  • animations/animation-hit-test.html:
  • animations/animation-internals-api-expected.txt: Removed.
  • animations/animation-internals-api-multiple-keyframes-expected.txt: Removed.
  • animations/animation-internals-api-multiple-keyframes.html: Removed.
  • animations/animation-internals-api.html: Removed.
  • animations/animation-offscreen-to-onscreen.html:
  • animations/animation-playstate-paused-style-resolution.html:
  • animations/big-rotation-expected.txt:
  • animations/big-rotation.html:
  • animations/change-completed-animation-transform.html:
  • animations/change-keyframes.html:
  • animations/combo-transform-rotate+scale.html:
  • animations/cross-fade-background-image.html:
  • animations/cross-fade-border-image-source.html:
  • animations/cross-fade-list-style-image.html:
  • animations/cross-fade-webkit-mask-box-image.html:
  • animations/duplicate-keys-expected.html:
  • animations/duplicate-keys.html:
  • animations/duplicated-keyframes-name.html:
  • animations/fill-forwards-end-state.html:
  • animations/fill-mode-forwards-zero-duration-expected.txt:
  • animations/fill-mode-forwards-zero-duration.html:
  • animations/fill-mode-removed.html:
  • animations/font-variations/font-stretch.html:
  • animations/font-variations/font-style.html:
  • animations/font-variations/font-variation-settings-order.html:
  • animations/font-variations/font-variation-settings-unlike.html:
  • animations/font-variations/font-variation-settings.html:
  • animations/font-variations/font-weight.html:
  • animations/generic-from-to.html:
  • animations/import.html:
  • animations/keyframe-multiple-timing-functions-transform.html:
  • animations/keyframe-timing-functions-transform.html:
  • animations/keyframe-timing-functions.html:
  • animations/keyframe-timing-functions2.html:
  • animations/keyframes-comma-separated.html:
  • animations/keyframes-dynamic.html:
  • animations/keyframes-infinite-iterations.html:
  • animations/keyframes-invalid-keys.html:
  • animations/keyframes-out-of-order.html:
  • animations/keyframes.html:
  • animations/leak-document-with-css-animation.html:
  • animations/lineheight-animation.html:
  • animations/longhand-timing-function.html:
  • animations/matrix-anim.html:
  • animations/missing-from-to-transforms.html:
  • animations/missing-from-to.html:
  • animations/missing-keyframe-properties-repeating.html:
  • animations/missing-keyframe-properties-timing-function.html:
  • animations/missing-keyframe-properties.html:
  • animations/missing-values-first-keyframe.html:
  • animations/missing-values-last-keyframe.html:
  • animations/multiple-animations-timing-function.html:
  • animations/multiple-animations.html:
  • animations/multiple-keyframes.html:
  • animations/negative-delay.html:
  • animations/pause-crash.html:
  • animations/play-state-start-paused.html:
  • animations/resources/animation-leak-iframe.html:
  • animations/simultaneous-start-left.html:
  • animations/simultaneous-start-transform.html:
  • animations/spring-function.html:
  • animations/stacking-context-unchanged-while-running.html:
  • animations/stop-animation-on-suspend.html:
  • animations/suspend-resume-animation-events.html:
  • animations/timing-functions.html:
  • animations/transition-and-animation-1.html:
  • animations/transition-and-animation-2.html:
  • animations/transition-and-animation-3.html:
  • animations/trigger-container-scroll-boundaries.html:
  • animations/trigger-container-scroll-empty.html:
  • animations/trigger-container-scroll-simple.html:
  • animations/unanimated-style.html:
  • animations/unprefixed-keyframes.html:
  • animations/width-using-ems.html:
  • compositing/animation/animated-composited-inside-hidden.html:
  • compositing/animation/computed-style-during-delay.html:
  • compositing/animation/layer-for-filling-animation.html:
  • compositing/backing/backface-visibility-flip.html:
  • compositing/backing/transform-transition-from-outside-view.html:
  • compositing/contents-scale/animating.html:
  • compositing/layer-creation/animation-overlap-with-children.html:
  • compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
  • compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html:
  • compositing/layer-creation/mismatched-transform-transition-overlap.html:
  • compositing/layer-creation/multiple-keyframes-animation-overlap.html:
  • compositing/layer-creation/overlap-animation-clipping.html:
  • compositing/layer-creation/overlap-animation-container.html:
  • compositing/layer-creation/overlap-animation.html:
  • compositing/layer-creation/scale-rotation-animation-overlap.html:
  • compositing/layer-creation/scale-rotation-transition-overlap.html:
  • compositing/layer-creation/translate-animation-overlap.html:
  • compositing/layer-creation/translate-scale-animation-overlap.html:
  • compositing/layer-creation/translate-scale-transition-overlap.html:
  • compositing/layer-creation/translate-transition-overlap.html:
  • compositing/overflow/overflow-positioning.html:
  • compositing/reflections/animation-inside-reflection.html:
  • compositing/reflections/nested-reflection-animated.html:
  • compositing/reflections/nested-reflection-transition.html:
  • compositing/scrolling/touch-scroll-to-clip.html:
  • compositing/transitions/scale-transition-no-start.html:
  • compositing/transitions/singular-scale-transition.html:
  • compositing/visible-rect/animated-from-none.html:
  • compositing/visible-rect/animated.html:
  • css3/calc/transitions-dependent.html:
  • css3/calc/transitions.html:
  • css3/filters/backdrop/animation.html:
  • css3/filters/composited-during-animation.html:
  • css3/filters/filter-animation-from-none-hw.html:
  • css3/filters/filter-animation-from-none-multi-hw.html:
  • css3/filters/filter-animation-from-none-multi.html:
  • css3/filters/filter-animation-from-none.html:
  • css3/filters/filter-animation-hw.html:
  • css3/filters/filter-animation-multi-hw.html:
  • css3/filters/filter-animation-multi.html:
  • css3/filters/filter-animation.html:
  • css3/masking/clip-path-animation.html:
  • fast/animation/css-animation-resuming-when-visible-with-style-change.html:
  • fast/animation/css-animation-resuming-when-visible-with-style-change2.html:
  • fast/animation/css-animation-resuming-when-visible.html:
  • fast/animation/css-animation-throttling-lowPowerMode.html:
  • fast/animation/height-auto-transition-computed-value.html:
  • fast/css-generated-content/pseudo-animation.html:
  • fast/css-generated-content/pseudo-transition.html:
  • fast/filter-image/filter-image-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-shape-image-threshold-animation.html:
  • fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html:
  • http/wpt/css/css-animations/start-animation-001.html:
  • imported/blink/transitions/transition-not-interpolable.html:
  • imported/blink/transitions/unprefixed-transform.html:
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
  • transitions/remove-transition-style.html:
  • transitions/transition-drt-api-delay-expected.txt: Removed.
  • transitions/transition-drt-api-delay.html: Removed.
  • transitions/transition-drt-api-expected.txt: Removed.
  • transitions/transition-drt-api.html: Removed.
  • transitions/zero-duration-with-non-zero-delay-end.html:

Sep 26, 2018:

11:24 PM Changeset in webkit [236540] by Devin Rousso
  • 24 edits
    2 copies
    3 deletes in trunk

Web Inspector: Hide DOM and XHR breakpoint sections when they are empty
https://bugs.webkit.org/show_bug.cgi?id=182406
<rdar://problem/37131512>

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

Combine all breakpoint sections (e.g. DOM, XHR, and Event) into the main "Breakpoints"
section, including all the various "+" buttons for creating different types of breakpoints.

Global breakpoints (except "All Exceptions" and "Uncaught Exceptions") are now deletable,
and can be re-added via the "+" button of the "Breakpoints" section. Deletable global
breakpoints (e.g. "Assertion Failures" and "All Requests") are able to remain visible while
disabled, and will only be hidden when the user specifically deletes them.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Main.html:
  • UserInterface/Controllers/DOMBreakpointTreeController.js: Removed.
  • UserInterface/Controllers/EventBreakpointTreeController.js: Removed.
  • UserInterface/Controllers/XHRBreakpointTreeController.js: Removed.
  • UserInterface/Controllers/DebuggerManager.js:

(WI.DebuggerManager.prototype.get uncaughtExceptionsBreakpoint): Added.
(WI.DebuggerManager.prototype.get assertionFailuresBreakpoint): Added.
(WI.DebuggerManager.prototype.isBreakpointRemovable):
(WI.DebuggerManager.prototype.isBreakpointSpecial): Added.
(WI.DebuggerManager.prototype.isBreakpointEditable):
(WI.DebuggerManager.prototype.addBreakpoint):
(WI.DebuggerManager.prototype.removeBreakpoint):
(WI.DebuggerManager.prototype.initializeTarget):
(WI.DebuggerManager.prototype._breakpointDisabledStateDidChange):
(WI.DebuggerManager.prototype._updateBreakOnExceptionsState):
(WI.DebuggerManager.prototype.get allUncaughtExceptionsBreakpoint): Deleted.
(WI.DebuggerManager.prototype.get assertionsBreakpoint): Deleted.

  • UserInterface/Controllers/DOMDebuggerManager.js:

(WI.DOMDebuggerManager.prototype.isBreakpointSpecial): Added.
(WI.DOMDebuggerManager.prototype.addDOMBreakpoint):
(WI.DOMDebuggerManager.prototype.removeDOMBreakpoint):
(WI.DOMDebuggerManager.prototype.addEventBreakpoint):
(WI.DOMDebuggerManager.prototype.removeEventBreakpoint):
(WI.DOMDebuggerManager.prototype.addXHRBreakpoint):
(WI.DOMDebuggerManager.prototype.removeXHRBreakpoint):
(WI.DOMDebuggerManager.prototype.isBreakpointRemovable): Deleted.
Always fire add/remove events, including for special breakpoints, so that any listeners will
be able to adjust accordingly. Even though special breakpoints don't get stored in the lists
held by each manager, we are still able to enable/disable them, and that should be reported.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WI.DebuggerSidebarPanel):
(WI.DebuggerSidebarPanel.prototype.closed):
(WI.DebuggerSidebarPanel.prototype.saveStateToCookie):
(WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie.revealAndSelect):
(WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
(WI.DebuggerSidebarPanel.prototype.willDismissPopover):
(WI.DebuggerSidebarPanel.prototype._addBreakpoint):
(WI.DebuggerSidebarPanel.prototype._removeBreakpoint): Added.
(WI.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToTreeOutline):
(WI.DebuggerSidebarPanel.prototype._mainResourceDidChange):
(WI.DebuggerSidebarPanel.prototype._breakpointRemoved):
(WI.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement):
(WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
(WI.DebuggerSidebarPanel.prototype._addTreeElement.comparator): Added.
(WI.DebuggerSidebarPanel.prototype._addTreeElement): Added.
(WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
(WI.DebuggerSidebarPanel.prototype._domBreakpointResolvedStateDidChange): Added.
(WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): Added.
(WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked): Added.
(WI.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements.isSpecialBreakpoint): Deleted.
(WI.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements): Deleted.
(WI.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved): Deleted.
(WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Deleted.
(WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Deleted.
(WI.DebuggerSidebarPanel.prototype._addXHRBreakpointButtonClicked): Deleted.

  • UserInterface/Views/DebuggerSidebarPanel.css:

(.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .titles): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .icon): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node:not(:hover, .selected) .status .go-to-arrow): Deleted.
(.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.
Unify the logic for adding/removing breakpoints of all types.

  • UserInterface/Views/BreakpointTreeElement.js:

(WI.BreakpointTreeElement):
(WI.BreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/DOMBreakpointTreeElement.js:

(WI.DOMBreakpointTreeElement):
(WI.DOMBreakpointTreeElement.prototype.ondelete):

  • UserInterface/Views/DOMNodeTreeElement.js:

(WI.DOMNodeTreeElement):
(WI.DOMNodeTreeElement.prototype.ondelete):
(WI.DOMNodeTreeElement.prototype.populateContextMenu):

  • UserInterface/Views/EventBreakpointTreeElement.js:

(WI.EventBreakpointTreeElement):
(WI.EventBreakpointTreeElement.prototype.ondelete):
(WI.EventBreakpointTreeElement.prototype.populateContextMenu):

  • UserInterface/Views/XHRBreakpointTreeElement.js:

(WI.XHRBreakpointTreeElement):
(WI.XHRBreakpointTreeElement.prototype.ondelete):
(WI.XHRBreakpointTreeElement.prototype.populateContextMenu):

  • UserInterface/Views/XHRBreakpointTreeElement.css: Added.

(.breakpoint.xhr .subtitle):
Add/remove checks for whether the associated breakpoint can be deleted.

  • UserInterface/Views/DOMNodeTreeElement.css: Added.

(.tree-outline .item.dom-node .titles):
(.tree-outline .item.dom-node .icon):
(.tree-outline .item.dom-node:not(:hover, .selected) .status .go-to-arrow):

  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForDOMNode):
(WI.appendContextMenuItemsForDOMNodeBreakpoints): Added.

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement.prototype._statusImageContextmenu):

  • UserInterface/Views/XHRBreakpointPopover.js:

(WI.XHRBreakpointPopover):
(WI.XHRBreakpointPopover.prototype.get breakpoint): Added.
(WI.XHRBreakpointPopover.prototype.show):
(WI.XHRBreakpointPopover.prototype.dismiss): Added.
(WI.XHRBreakpointPopover.prototype._createEditor):
(WI.XHRBreakpointPopover.prototype._updateEditor):
(WI.XHRBreakpointPopover.prototype.get result): Deleted.
(WI.XHRBreakpointPopover.prototype.get type): Deleted.
(WI.XHRBreakpointPopover.prototype.get value): Deleted.
Drive-by: remove the erroneous usage of WI.InputPopover.Result.

LayoutTests:

  • inspector/debugger/break-on-uncaught-exception-throw-in-promise.html:
  • inspector/debugger/break-on-uncaught-exception.html:
  • inspector/debugger/breakpoints-disabled-expected.txt:
  • inspector/debugger/breakpoints-disabled.html:
  • inspector/debugger/pause-reason.html:
  • inspector/debugger/setPauseOnAssertions.html:
  • inspector/worker/debugger-pause.html:
11:09 PM Changeset in webkit [236539] by Devin Rousso
  • 12 edits in trunk

Web Inspector: determine hasVisibleEffect for each RecordingAction as it's processed
https://bugs.webkit.org/show_bug.cgi?id=189860

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Base/Utilities.js:
  • UserInterface/Models/RecordingAction.js:

(WI.RecordingAction.prototype.process.getContent):
(WI.RecordingAction.prototype.process):

  • UserInterface/Views/RecordingActionTreeElement.js:

(WI.RecordingActionTreeElement.prototype.onattach):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/RecordingContentView.js:

(WI.RecordingContentView.prototype._updateImageGrid):
Drive-by: don't attempt to show the image grid if we haven't called initialized yet.

  • UserInterface/Views/CanvasSidebarPanel.js:

(WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
Drive-by: ensure that the WI.RecordingContentView is showing before applying the action.

LayoutTests:

  • inspector/unit-tests/array-utilities-expected.txt:
  • inspector/unit-tests/array-utilities.html:
9:36 PM Changeset in webkit [236538] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Options::useSeparatedWXHeap() should always be false when ENABLE(FAST_JIT_PERMISSIONS) && CPU(ARM64E).
https://bugs.webkit.org/show_bug.cgi?id=190022
<rdar://problem/44800928>

Reviewed by Saam Barati.

  • jit/ExecutableAllocator.cpp:

(JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator):
(JSC::FixedVMPoolExecutableAllocator::initializeSeparatedWXHeaps):

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

7:00 PM Changeset in webkit [236537] by Justin Fan
  • 9 edits in trunk/LayoutTests

WebGL 2: updated passing test expectations for deqp/primitiverestart
https://bugs.webkit.org/show_bug.cgi?id=189981

Reviewed by Jon Lee.

Test-expectation updates for trac.webkit.org/changeset/236490; these are still to be skipped on ews.

  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/00-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/01-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/02-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/03-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/04-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/05-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/06-expected.txt:
  • webgl/2.0.0/deqp/functional/gles3/primitiverestart/07-expected.txt:
6:42 PM Changeset in webkit [236536] by commit-queue@webkit.org
  • 6 edits in trunk

Video track clone cannot preserve original property
https://bugs.webkit.org/show_bug.cgi?id=189872
<rdar://problem/44706579>

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-09-26
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint-expected.txt:

Source/WebCore:

Fix the issue that the cloned track created by canvas.captureStream().getVideoTracks() cannot keep some attributes, such as enabled.
Updated a testcase expected result:
LayoutTests/imported/w3c/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:

(WebCore::CanvasCaptureMediaStreamTrack::CanvasCaptureMediaStreamTrack):
(WebCore::CanvasCaptureMediaStreamTrack::create):
(WebCore::CanvasCaptureMediaStreamTrack::clone):

  • Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.h:
6:24 PM Changeset in webkit [236535] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.8

Tag Safari-607.1.8.

5:14 PM Changeset in webkit [236534] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Assert that performJITMemcpy() is always called with instruction size aligned addresses on ARM64.
https://bugs.webkit.org/show_bug.cgi?id=190016
<rdar://problem/44802875>

Reviewed by Saam Barati.

Also assert in performJITMemcpy() that the entire buffer to be copied will fit in
JIT memory.

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::fillNops):
(JSC::ARM64Assembler::replaceWithVMHalt):
(JSC::ARM64Assembler::replaceWithJump):
(JSC::ARM64Assembler::replaceWithLoad):
(JSC::ARM64Assembler::replaceWithAddressComputation):
(JSC::ARM64Assembler::setPointer):
(JSC::ARM64Assembler::repatchInt32):
(JSC::ARM64Assembler::repatchCompact):
(JSC::ARM64Assembler::linkJumpOrCall):
(JSC::ARM64Assembler::linkCompareAndBranch):
(JSC::ARM64Assembler::linkConditionalBranch):
(JSC::ARM64Assembler::linkTestAndBranch):

  • assembler/LinkBuffer.cpp:

(JSC::LinkBuffer::copyCompactAndLinkCode):
(JSC::LinkBuffer::linkCode):

  • jit/ExecutableAllocator.h:

(JSC::performJITMemcpy):

4:35 PM Changeset in webkit [236533] by achristensen@apple.com
  • 8 edits in trunk

Unreviewed, rolling out r236524.

Broke API tests

Reverted changeset:

"URLWithUserTypedString should return nil for URLs deemed to
be invalid by WebCore::URL"
https://bugs.webkit.org/show_bug.cgi?id=189979
https://trac.webkit.org/changeset/236524

4:23 PM Changeset in webkit [236532] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Dark Mode: new watch expression popover has light background
https://bugs.webkit.org/show_bug.cgi?id=190013
<rdar://problem/44810000>

Reviewed by Matt Baker.

Make the background dark to match the CodeMirror editor background.

  • UserInterface/Views/ScopeChainDetailsSidebarPanel.css:

(@media (prefers-dark-interface)):
(.watch-expression-editor):

4:10 PM Changeset in webkit [236531] by pvollan@apple.com
  • 24 edits
    3 adds in trunk

WebVTT cue alignment broken
https://bugs.webkit.org/show_bug.cgi?id=190004

Reviewed by Eric Carlson.

Source/WebCore:

If the position of the queue is unspecified, the default value of 50 was used, which is incorrect.
This patch also updates the API according to https://w3c.github.io/webvtt/#the-vttcue-interface.
The position attribute should not be a double, but either a double or the "auto" keyword. Parts
of this patch is inspired by the associated code in the Chromium project.

Test: media/track/track-cue-left-align.html

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
(WebCore::TextTrackCueGeneric::setPosition):

  • html/track/TextTrackCueGeneric.h:
  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties):
(WebCore::VTTCue::initialize):
(WebCore::VTTCue::position const):
(WebCore::VTTCue::setPosition):
(WebCore::VTTCue::textPositionIsAuto const):
(WebCore::VTTCue::calculateComputedTextPosition const):
(WebCore::VTTCue::calculateDisplayParameters):
(WebCore::VTTCue::toJSON const):

  • html/track/VTTCue.h:

(WebCore::VTTCue::position const): Deleted.

  • html/track/VTTCue.idl:

LayoutTests:

  • media/track/captions-webvtt/left-align.vtt: Added.
  • media/track/track-add-remove-cue-expected.txt:
  • media/track/track-add-remove-cue.html:
  • media/track/track-cue-left-align-expected-mismatch.html: Added.
  • media/track/track-cue-left-align.html: Added.
  • media/track/track-cue-mutable-expected.txt:
  • media/track/track-cue-mutable.html:
  • media/track/track-vttcue-expected.txt:
  • media/track/track-vttcue.html:
  • media/track/track-webvtt-tc013-settings-expected.txt:
  • media/track/track-webvtt-tc013-settings.html:
  • media/track/track-webvtt-tc015-positioning-expected.txt:
  • media/track/track-webvtt-tc015-positioning.html:
  • media/track/track-webvtt-tc016-align-positioning-expected.txt:
  • media/track/track-webvtt-tc016-align-positioning.html:
  • media/track/track-webvtt-tc018-align-text-line-position-expected.txt:
  • media/track/track-webvtt-tc018-align-text-line-position.html:
  • media/track/track-webvtt-tc021-valign-expected.txt:
  • media/track/track-webvtt-tc021-valign.html:
  • media/video-test.js:

(testCues):

3:31 PM Changeset in webkit [236530] by commit-queue@webkit.org
  • 16 edits
    4 adds in trunk

Allow override of viewport configuration.
https://bugs.webkit.org/show_bug.cgi?id=188772.
<rdar://problem/43538892>.

Patch by James Savage <James Savage> on 2018-09-26
Reviewed by Simon Fraser.

Source/WebCore:

  • page/Settings.yaml:
  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::nativeWebpageParameters): Provide a viewport configuration
similar to width=device-width, with initial scale set to 1.

  • page/ViewportConfiguration.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setShouldIgnoreMetaViewport:]):
(-[WKPreferences _shouldIgnoreMetaViewport]):

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

(WebKit::WebPage::viewportPropertiesDidChange): If we are ignoring the
<meta> viewport, short circuit calling setViewportArguments() and do not
do any updates.
(WebKit::WebPage::didCommitLoad): Ditto.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::resetViewportDefaultConfiguration): Select the default
configuration based on UIProcess setting.

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::updateTestOptionsFromTestHeader): Parse new test option key from comments.

  • WebKitTestRunner/TestOptions.h:
  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformConfigureViewForTest): Handle new test option by
modifying the web view's preferences accordingly.

LayoutTests:

Add test proving that a document without a meta viewport specifying
width=device-width still gets a layout when this setting is enabled. I also
added a baseline case to prove that without this setting we do not layout
at device width.

  • fast/viewport/ios/ipad/empty-viewport-expected.txt: Added.
  • fast/viewport/ios/ipad/empty-viewport.html: Added.
  • fast/viewport/ios/ipad/meta-viewport-disabled-expected.txt: Added.
  • fast/viewport/ios/ipad/meta-viewport-disabled.html: Added.
3:18 PM Changeset in webkit [236529] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(r236512): WKWebViewCandidateTests.SoftSpaceReplacementAfterCandidateInsertionWithoutReplacement API test is failing
https://bugs.webkit.org/show_bug.cgi?id=190007

Reviewed by Alex Christensen.

Drop DispatchMessageEvenWhenWaitingForSyncReply SendOption from EditorStateChanged IPC calls to restore
pre-r236512 behavior. Before r236512, this option had no effect on IPC from the WebContent to the UIProcess
because the m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage flag was set
on that IPC::Connection. However, after r236512, m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage
is no longer set on the connection, and the DispatchMessageEvenWhenWaitingForSyncReply SendOption was
causing this message to get processed out of order with regards to other async IPC, thus causing the
API test failure.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::sendEditorStateUpdate):
(WebKit::WebPage::sendPartialEditorStateAndSchedulePostLayoutUpdate):

2:58 PM Changeset in webkit [236528] by achristensen@apple.com
  • 4 edits in trunk

URLs with mismatched surrogate pairs in the host should fail to parse
https://bugs.webkit.org/show_bug.cgi?id=190005

Reviewed by Chris Dumez.

Source/WebCore:

Elsewhere in the URLParser, when we encounter mismatched surrogate pairs we use the replacement character,
but that just fails later on in domainToASCII, so we may as well just fail.
This behavior matches Chrome, but is unclear in the spec. There are no valid uses of hosts containing mismatched surrogate pairs.
Covered by new API tests.

  • platform/URLParser.cpp:

(WebCore::URLParser::parseHostAndPort):

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):

2:56 PM Changeset in webkit [236527] by achristensen@apple.com
  • 5 edits in trunk

uidna_nameToASCII only needs a buffer capacity of 64
https://bugs.webkit.org/show_bug.cgi?id=190006

Reviewed by Chris Dumez.

Source/WebCore:

This is specified in https://www.unicode.org/reports/tr46/#ToASCII
This is how Chrome and Firefox also behave with long unicode hosts.

  • platform/URLParser.cpp:

(WebCore::URLParser::domainToASCII):

LayoutTests:

  • fast/dom/DOMURL/parsing.html:
2:53 PM Changeset in webkit [236526] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.7.3/Source/WebCore/PAL

Cherry-pick r236366. rdar://problem/44808777

Unreviewed Sierra Build Fix; ensure AVVideoPerformanceMetrics are defined on Sierra.

  • pal/spi/mac/AVFoundationSPI.h:

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

2:53 PM Changeset in webkit [236525] by Kocsen Chung
  • 4 edits in tags/Safari-607.1.7.3/Source/WebCore

Cherry-pick r236350. rdar://problem/44808777

Move AVVideoPerformanceMetrics into AVFoundationSPI.h
https://bugs.webkit.org/show_bug.cgi?id=189842

Reviewed by Jon Lee.

Source/WebCore:

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

Source/WebCore/PAL:

  • pal/spi/mac/AVFoundationSPI.h:

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

2:52 PM Changeset in webkit [236524] by achristensen@apple.com
  • 4 edits in trunk

URLWithUserTypedString should return nil for URLs deemed to be invalid by WebCore::URL
https://bugs.webkit.org/show_bug.cgi?id=189979
<rdar://problem/44119696>

Reviewed by Chris Dumez.

Source/WebCore:

Covered by an API test.

  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::URLWithData):

Tools:

  • TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm:

(TestWebKitAPI::TEST):

2:48 PM Changeset in webkit [236523] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Fix UAF after r236463
https://bugs.webkit.org/show_bug.cgi?id=190011

Reviewed by Chris Dumez.

I had removed an early return in NetworkResourceLoader::continueDidReceiveResponse.
Reading the (probably) null m_responseCompletionHandler was reading after the object had been destroyed.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::continueDidReceiveResponse):

1:33 PM Changeset in webkit [236522] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Selection should work across shadow boundary when initiated by a mouse drag
https://bugs.webkit.org/show_bug.cgi?id=151380
<rdar://problem/24363872>

Revert the change that I said I would from r236519.

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):

1:31 PM Changeset in webkit [236521] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebCore

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

It is breaking some WebRTC tests (Requested by youenn on
#webkit).

Reverted changeset:

"[MediaStream] Clean up RealtimeMediaSource settings change
handling"
https://bugs.webkit.org/show_bug.cgi?id=189998
https://trac.webkit.org/changeset/236511

1:04 PM Changeset in webkit [236520] by keith_miller@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Move Symbol API to SPI
https://bugs.webkit.org/show_bug.cgi?id=189946

Reviewed by Michael Saboff.

Some of the property access methods on JSValue needed to be moved
to a category so that SPI overloads don't result in a compiler
error for internal users.

Additionally, this patch does not move the new enum entry for
Symbols in the JSType enumeration.

  • API/JSObjectRef.h:
  • API/JSObjectRefPrivate.h:
  • API/JSValue.h:
  • API/JSValuePrivate.h:
  • API/JSValueRef.h:
1:02 PM Changeset in webkit [236519] by rniwa@webkit.org
  • 16 edits
    18 adds in trunk

Selection should work across shadow boundary when initiated by a mouse drag
https://bugs.webkit.org/show_bug.cgi?id=151380
<rdar://problem/24363872>

Source/WebCore:

Reviewed by Antti Koivisto and Wenson Hsieh.

This patch adds the basic support for selecting content across shadow DOM boundaries to VisibleSelection,
which is enough to allow users to select content across shadow DOM boundaries via a mouse drag.

This is the first step in allowing users to select, copy and paste content across shadow DOM boundaries,
which is a serious user experience regression right now. The new behavior is disabled by default under
an interal debug feature flag: selectionAcrossShadowBoundariesEnabled.

Like Chrome, we are not going to support selecting editable content across shadow DOM boundaries since
we'd have to generalize every editing commands to make that work, and there aren't any HTML editors that
use shadow DOM boundaries within an editable region yet. For simplicity, we also don't support extending
a selection out of a shadow root which resides inside an editing region.

The keyboard based navigation & manipulation of selection as well as allowing copy & paste of content
across shadow DOM boundaries will be implemented by separate patches. DOMSelection will not expose this new
behavior either. This is tracked in the spec as https://github.com/w3c/webcomponents/issues/79

Tests: editing/selection/selection-across-shadow-boundaries-mixed-editability-1.html

editing/selection/selection-across-shadow-boundaries-mixed-editability-2.html
editing/selection/selection-across-shadow-boundaries-mixed-editability-3.html
editing/selection/selection-across-shadow-boundaries-mixed-editability-4.html
editing/selection/selection-across-shadow-boundaries-mixed-editability-5.html
editing/selection/selection-across-shadow-boundaries-readonly-1.html
editing/selection/selection-across-shadow-boundaries-readonly-2.html
editing/selection/selection-across-shadow-boundaries-readonly-3.html
editing/selection/selection-across-shadow-boundaries-user-select-all-1.html

  • editing/VisibleSelection.cpp:

(WebCore::isInUserAgentShadowRootOrHasEditableShadowAncestor): Added.
(WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries): When the feature is enabled,
allow crossing shadow DOM boundaries except when either end is inside an user agent shadow root, or one of
its shadow includign ancestor is inside an editable region. The latter check is needed to disallow
an extension of a selection starting in a shadow tree inside a non-editable region inside an editable region
to outside the editable region. The rest of the editing code is not ready to deal with selection like that.

  • page/Settings.yaml: Added an internal debug feature to enable this new behavior.

Source/WebKit:

Reviewed by Antti Koivisto.

Added SelectionAcrossShadowBoundariesEnabled as an internal debug feature,
and moved CSSCustomPropertiesAndValuesEnabled to where other experimental features are located.

  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

Reviewed by Wenson Hsieh.

Added selectionAcrossShadowBoundariesEnabled as a preference to be used in DumpRenderTree.

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

(+[WebPreferences initialize]):
(-[WebPreferences selectionAcrossShadowBoundariesEnabled]):
(-[WebPreferences setSelectionAcrossShadowBoundariesEnabled:]):

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

(-[WebView _preferencesChanged:]):

Tools:

Reviewed by Wenson Hsieh.

Added the support for internal:selectionAcrossShadowBoundariesEnabled test option.

  • DumpRenderTree/TestOptions.cpp:

(TestOptions::TestOptions):

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):
(setWebPreferencesForTestOptions):

LayoutTests:

Reviewed by Antti Koivisto and Wenson Hsieh.

Added regression tests using ref tests since getSelection() doesn't expose any node inside a shadow tree.

  • editing/selection/selection-across-shadow-boundaries-mixed-editability-1-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-1.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-2-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-2.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-3-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-3.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-4-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-4.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-5-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-mixed-editability-5.html: Added.
  • editing/selection/selection-across-shadow-boundaries-readonly-1-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-readonly-1.html: Added.
  • editing/selection/selection-across-shadow-boundaries-readonly-2-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-readonly-2.html: Added.
  • editing/selection/selection-across-shadow-boundaries-readonly-3-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-readonly-3.html: Added.
  • editing/selection/selection-across-shadow-boundaries-user-select-all-1-expected.html: Added.
  • editing/selection/selection-across-shadow-boundaries-user-select-all-1.html: Added.
12:47 PM Changeset in webkit [236518] by rniwa@webkit.org
  • 2 edits in trunk/Tools

MiniBrowser doesn't respect default enabled-ness of experimental and internal debug features
https://bugs.webkit.org/show_bug.cgi?id=189989

Reviewed by Simon Fraser.

When the preference isn't found in user defaults, use the default value of each feature's enabledness.

  • MiniBrowser/mac/AppDelegate.m:

(defaultConfiguration):

12:29 PM Changeset in webkit [236517] by Chris Dumez
  • 4 edits in trunk

Ignore-opens-during-unload counter of a parent should apply to its children during beforeunload event
https://bugs.webkit.org/show_bug.cgi?id=189376
<rdar://problem/44282754>

Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline existing test now that one more check is passing.

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window-expected.txt:

Source/WebCore:

Make sure the Ignore-opens-during-unload counter of a parent stays incremented while we are firing the
beforeunload event for its descendants, as per:

No new tests, rebaselined existing tests.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::shouldClose):
(WebCore::FrameLoader::dispatchBeforeUnloadEvent):

12:16 PM Changeset in webkit [236516] by Justin Fan
  • 2 edits in trunk/Source/WebCore

WebGL 2: Adding logging to in-progress features
https://bugs.webkit.org/show_bug.cgi?id=189978

Reviewed by Jon Lee.

Logging will allow us to better identify the most in-demand WebGL 2 features and prioritize our efforts.

No tests as no change in WebGL functionality.

  • html/canvas/WebGL2RenderingContext.cpp: Added logging statement to every function not yet implemented.

(WebCore::WebGL2RenderingContext::blitFramebuffer):
(WebCore::WebGL2RenderingContext::framebufferTextureLayer):
(WebCore::WebGL2RenderingContext::invalidateFramebuffer):
(WebCore::WebGL2RenderingContext::invalidateSubFramebuffer):
(WebCore::WebGL2RenderingContext::readBuffer):
(WebCore::WebGL2RenderingContext::texStorage3D):
(WebCore::WebGL2RenderingContext::texImage2D):
(WebCore::WebGL2RenderingContext::texImage3D):
(WebCore::WebGL2RenderingContext::texSubImage2D):
(WebCore::WebGL2RenderingContext::texSubImage3D):
(WebCore::WebGL2RenderingContext::copyTexSubImage3D):
(WebCore::WebGL2RenderingContext::compressedTexImage2D):
(WebCore::WebGL2RenderingContext::compressedTexImage3D):
(WebCore::WebGL2RenderingContext::compressedTexSubImage3D):
(WebCore::WebGL2RenderingContext::getFragDataLocation):
(WebCore::WebGL2RenderingContext::uniform1ui):
(WebCore::WebGL2RenderingContext::uniform2ui):
(WebCore::WebGL2RenderingContext::uniform3ui):
(WebCore::WebGL2RenderingContext::uniform4ui):
(WebCore::WebGL2RenderingContext::uniform1uiv):
(WebCore::WebGL2RenderingContext::uniform2uiv):
(WebCore::WebGL2RenderingContext::uniform3uiv):
(WebCore::WebGL2RenderingContext::uniform4uiv):
(WebCore::WebGL2RenderingContext::uniformMatrix2x3fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3x2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix2x4fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4x2fv):
(WebCore::WebGL2RenderingContext::uniformMatrix3x4fv):
(WebCore::WebGL2RenderingContext::uniformMatrix4x3fv):
(WebCore::WebGL2RenderingContext::vertexAttribI4i):
(WebCore::WebGL2RenderingContext::vertexAttribI4iv):
(WebCore::WebGL2RenderingContext::vertexAttribI4ui):
(WebCore::WebGL2RenderingContext::vertexAttribI4uiv):
(WebCore::WebGL2RenderingContext::vertexAttribIPointer):
(WebCore::WebGL2RenderingContext::drawRangeElements):
(WebCore::WebGL2RenderingContext::createQuery):
(WebCore::WebGL2RenderingContext::deleteQuery):
(WebCore::WebGL2RenderingContext::isQuery):
(WebCore::WebGL2RenderingContext::beginQuery):
(WebCore::WebGL2RenderingContext::endQuery):
(WebCore::WebGL2RenderingContext::getQuery):
(WebCore::WebGL2RenderingContext::getQueryParameter):
(WebCore::WebGL2RenderingContext::createSampler):
(WebCore::WebGL2RenderingContext::deleteSampler):
(WebCore::WebGL2RenderingContext::isSampler):
(WebCore::WebGL2RenderingContext::bindSampler):
(WebCore::WebGL2RenderingContext::samplerParameteri):
(WebCore::WebGL2RenderingContext::samplerParameterf):
(WebCore::WebGL2RenderingContext::getSamplerParameter):
(WebCore::WebGL2RenderingContext::fenceSync):
(WebCore::WebGL2RenderingContext::isSync):
(WebCore::WebGL2RenderingContext::deleteSync):
(WebCore::WebGL2RenderingContext::clientWaitSync):
(WebCore::WebGL2RenderingContext::waitSync):
(WebCore::WebGL2RenderingContext::getSyncParameter):
(WebCore::WebGL2RenderingContext::createTransformFeedback):
(WebCore::WebGL2RenderingContext::deleteTransformFeedback):
(WebCore::WebGL2RenderingContext::isTransformFeedback):
(WebCore::WebGL2RenderingContext::bindTransformFeedback):
(WebCore::WebGL2RenderingContext::beginTransformFeedback):
(WebCore::WebGL2RenderingContext::endTransformFeedback):
(WebCore::WebGL2RenderingContext::transformFeedbackVaryings):
(WebCore::WebGL2RenderingContext::getTransformFeedbackVarying):
(WebCore::WebGL2RenderingContext::pauseTransformFeedback):
(WebCore::WebGL2RenderingContext::resumeTransformFeedback):
(WebCore::WebGL2RenderingContext::bindBufferBase):
(WebCore::WebGL2RenderingContext::bindBufferRange):
(WebCore::WebGL2RenderingContext::getUniformIndices):
(WebCore::WebGL2RenderingContext::getUniformBlockIndex):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockParameter):
(WebCore::WebGL2RenderingContext::getActiveUniformBlockName):
(WebCore::WebGL2RenderingContext::uniformBlockBinding):

12:13 PM Changeset in webkit [236515] by aboya@igalia.com
  • 3 edits
    5 adds in trunk/LayoutTests

[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=190002

11:57 AM Changeset in webkit [236514] by keith_miller@apple.com
  • 3 edits
    1 add in trunk

We should zero unused property storage when rebalancing array storage.
https://bugs.webkit.org/show_bug.cgi?id=188151

Reviewed by Michael Saboff.

JSTests:

  • stress/splice-should-zero-property-storage-when-rebalancing.js: Added.

Source/JavaScriptCore:

In unshiftCountSlowCase we sometimes will move property storage to the right even when net adding elements.
This can happen because we "balance" the pre/post-capacity in that code so we need to zero the unused
property storage.

  • runtime/JSArray.cpp:

(JSC::JSArray::unshiftCountSlowCase):

11:45 AM Changeset in webkit [236513] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, apply post-landing review comments after r236512.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didCreateSubframe):

11:38 AM Changeset in webkit [236512] by Chris Dumez
  • 7 edits in trunk/Source/WebKit

UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it
https://bugs.webkit.org/show_bug.cgi?id=189927

Reviewed by Geoffrey Garen.

UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it
in order to avoid deadlocks. This is not an issue currently because the WebProcess does process
incoming sync IPC when waiting for a sync IPC reply. However, we plan to change this in the future
in order to avoid bugs caused by re-entering WebCore at unsafe times.

The reason the UIProcess previously did not do out of order sync IPC process was to avoid processing
a synchronous policy decision IPC for a frameID it did not know about yet, due to the DidCreateMainFrame /
DidCreateSubframe IPC messages being asynchronous. To address this issue, the decidePolicyForNavigationActionSync
IPC handler now calls didCreateMainFrame() / didCreateSubframe() as needed if it does not know about
the frame yet. Note that synchronous policy decisions are rare and are currently only needed by initial
about:blank and fragment navigations.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didCreateSubframe):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::createWithCoreMainFrame):
(WebKit::WebFrame::createSubframe):
Drop DispatchMessageEvenWhenWaitingForSyncReply SendOption when sending the
DidCreateMainFrame / DidCreateSubframe IPC. Previously, this SendOption has
no effect because the IPC::Connection would have the
m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage
flag set to true. However, now that we stop setting this flag on the IPC
connection from the WebProcess to the UIProcess, it would lead to those
IPC messages getting processed out of order with regards to the
DecidePolicyForNavigationAsync asynchronous IPC. DidCreateMainFrame would
sometimes get processed *after* the DecidePolicyForNavigationAsync IPC
and we would not know about the frameID yet.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

11:21 AM Changeset in webkit [236511] by eric.carlson@apple.com
  • 8 edits in trunk/Source/WebCore

[MediaStream] Clean up RealtimeMediaSource settings change handling
https://bugs.webkit.org/show_bug.cgi?id=189998
<rdar://problem/44797884>

Reviewed by Youenn Fablet.

No new tests, no change in functionality.

  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::RealtimeMediaSource::notifySettingsDidChangeObservers):
(WebCore::RealtimeMediaSource::setSize):
(WebCore::RealtimeMediaSource::setFrameRate):
(WebCore::RealtimeMediaSource::setAspectRatio):
(WebCore::RealtimeMediaSource::setFacingMode):
(WebCore::RealtimeMediaSource::setVolume):
(WebCore::RealtimeMediaSource::setSampleRate):
(WebCore::RealtimeMediaSource::setSampleSize):
(WebCore::RealtimeMediaSource::setEchoCancellation):
(WebCore::RealtimeMediaSource::settingsDidChange): Deleted.

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

(WebCore::AVVideoCaptureSource::settingsDidChange):

  • platform/mediastream/mac/CoreAudioCaptureSource.cpp:

(WebCore::CoreAudioCaptureSource::settingsDidChange):

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::settingsDidChange):

  • platform/mock/MockRealtimeAudioSource.cpp:

(WebCore::MockRealtimeAudioSource::settingsDidChange):

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::settingsDidChange):

11:20 AM Changeset in webkit [236510] by bshafiei@apple.com
  • 3 edits
    2 adds in tags/Safari-607.1.7.3

Cherry-pick r236288. rdar://problem/43659749

Release assert under RenderView::pageOrViewLogicalHeight
https://bugs.webkit.org/show_bug.cgi?id=189798
<rdar://problem/43659749>

Reviewed by Simon Fraser.

Source/WebCore:

Only the mainframe's render view is sized to the page while printing.
Use the matching check (see RenderView::layout) when accessing m_pageLogicalSize.

Test: printing/crash-while-formatting-subframe-for-printing.html

  • rendering/RenderView.cpp: (WebCore::RenderView::pageOrViewLogicalHeight const):

LayoutTests:

  • printing/crash-while-formatting-subframe-for-printing-expected.txt: Added.
  • printing/crash-while-formatting-subframe-for-printing.html: Added.

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

11:20 AM Changeset in webkit [236509] by bshafiei@apple.com
  • 2 edits in tags/Safari-607.1.7.3/Source/WebCore

Cherry-pick r236254. rdar://problem/44182860

Fix crash under FontCache::purgeInactiveFontData() when a memory warning fires
https://bugs.webkit.org/show_bug.cgi?id=189722
rdar://problem/44182860

Reviewed by Myles C. Maxfield.

Hashing of FontPlatformData for cachedFonts() is somewhat broken because CFEqual() on CTFont
can return false when the fonts are actually the same, and have the same CFHash(). This
can result in multiple entries in cachedFonts() with the same Font.

Then in FontCache::purgeInactiveFontData(), the loop that appends fonts to fontsToDelete
gets the value by reference, and WTFMoves it into fontsToDelete. This nulls out all
the entries sharing the same value, leaving null entries in the hash table.
We later crash at font->hasOneRef() when using one of those null entries.

Fix by making a copy of the RefPtr<Font> in the loop, so the WTFMove doesn't nuke
the hash table entries. The entries will get removed at cachedFonts().remove() lower down.

  • platform/graphics/FontCache.cpp: (WebCore::FontCache::purgeInactiveFontData):

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

11:16 AM Changeset in webkit [236508] by bshafiei@apple.com
  • 7 edits in tags/Safari-607.1.7.3/Source

Versioning.

11:14 AM Changeset in webkit [236507] by bshafiei@apple.com
  • 1 copy in tags/Safari-607.1.7.3

Tag Safari-607.1.7.3.

10:44 AM Changeset in webkit [236506] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari Technology Preview 66

Added a tag for Safari Technology Preview release 66.

9:12 AM Changeset in webkit [236505] by yusukesuzuki@slowstart.org
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add scope verification handling
https://bugs.webkit.org/show_bug.cgi?id=189780

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncIndexOf):
(JSC::arrayProtoFuncLastIndexOf):

9:12 AM Changeset in webkit [236504] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Marking two more media-fragments/ tests as flakey after the iOS12 update
https://bugs.webkit.org/show_bug.cgi?id=187557

Unreviewed Test Gardening

  • platform/ios/TestExpectations:
8:59 AM Changeset in webkit [236503] by Philippe Normand
  • 2 edits in trunk/Tools

[Flatpak] Bump to apr 1.6.5

Version 1.6.3 is no longer available on Apache's website.

Rubber-stamped by Michael Catanzaro.

  • flatpak/org.webkit.WebKit.yaml:
8:48 AM Changeset in webkit [236502] by Ryan Haddad
  • 1 edit
    2 deletes in trunk/Source/ThirdParty/libwebrtc

Unreviewed, rolling out r236498.

This wasn't intentionally committed

Reverted changeset:

"Import libvpx source code"
https://bugs.webkit.org/show_bug.cgi?id=189954
https://trac.webkit.org/changeset/236498

7:34 AM Changeset in webkit [236501] by graouts@webkit.org
  • 8 edits in trunk/Source/WebCore

[Web Animations] Ensure renderers with accelerated animations have layers
https://bugs.webkit.org/show_bug.cgi?id=189990
<rdar://problem/44791222>

Reviewed by Zalan Bujtas.

We have done some work already in webkit.org/b/189784 to prevent never-ending calls to DocumentTimeline::updateAnimations(). This was due to
the change made for webkit.org/b/186930 where we queued calls to updateAnimations() in KeyframeEffectReadOnly::applyPendingAcceleratedActions()
while we were waiting for a renderer with a layer backing for a given animation target. Instead of doing this, we now ensure renderers always
have a layer when they have an accelerated animation applied.

No new tests, this is already covered by webanimations/accelerated-animation-with-delay.html and webanimations/opacity-animation-yields-compositing-span.html
which respectively check that we can apply an accelerated animation to a non-positioned block and an inline element.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::runningAnimationsForElementAreAllAccelerated const): This method should have been marked const all along and it is
now required so it can be called through RenderBox::requiresLayer() and RenderInline::requiresLayer().
(WebCore::DocumentTimeline::runningAnimationsForElementAreAllAccelerated): Deleted.

  • animation/DocumentTimeline.h:
  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::applyPendingAcceleratedActions): Stop enqueuing the accelerated actions in case we're lacking a composited renderer
since this situation should no longer arise.

  • rendering/RenderBox.h: Make requiresLayer() return true if this renderer's element is the target of accelerated animations.
  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::hasRunningAcceleratedAnimations const): Query the document timeline, if it exists, to check that this renderer's element
has accelerated animations applied.

  • rendering/RenderBoxModelObject.h:
  • rendering/RenderInline.h: Make requiresLayer() return true if this renderer's element is the target of accelerated animations.
5:06 AM Changeset in webkit [236500] by Antti Koivisto
  • 14 edits in trunk/Source/WebKit

REGRESSION (PSON): White or Black flash occurs when process swapping on navigation on iOS
https://bugs.webkit.org/show_bug.cgi?id=189695
<rdar://problem/44551146>

Reviewed by Simon Fraser.

Freeze the layers on UI process side during process swap.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _processWillChange]):

Shared work of _processWillSwap and _processDidExit.

(-[WKWebView _processWillSwap]):
(-[WKWebView _processDidExit]):

Split into two functions. Don't reset scroll position and similar when doing navigation swap.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
(WebKit::RemoteLayerTreeDrawingAreaProxy::detachRemoteLayerTreeHost):

Add to way to detach RemoteLayerTreeHost from the drawing area. Inert RemoteLayerTreeHost will host
the frozen layers.

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
(WebKit::RemoteLayerTreeDrawingAreaProxy::updateDebugIndicator):
(WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilPendingUpdate):
(WebKit::RemoteLayerTreeDrawingAreaProxy::hideContentUntilAnyUpdate):
(WebKit::RemoteLayerTreeDrawingAreaProxy::prepareForAppSuspension):
(WebKit::RemoteLayerTreeDrawingAreaProxy::hasVisibleContent const):
(WebKit::RemoteLayerTreeDrawingAreaProxy::layerWithIDForTesting const):

  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::RemoteLayerTreeHost):
(WebKit::RemoteLayerTreeHost::updateLayerTree):
(WebKit::RemoteLayerTreeHost::animationDidStart):
(WebKit::RemoteLayerTreeHost::animationDidEnd):
(WebKit::RemoteLayerTreeHost::detachFromDrawingArea):

Clear the DrawingArea backpointer.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::resetState):

Detach and save the current RemoteLayerTreeHost on navigation swap.

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::processWillSwap):

Avoid reseting the scroll position.

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):

Drop the frozen layers after setting the new root layer.

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::setAcceleratedCompositingRootLayer):

For completeness do this also on Mac (where remote layers are currently not used).

3:45 AM Changeset in webkit [236499] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] offlineasm parser should handle CRLF in asm files
https://bugs.webkit.org/show_bug.cgi?id=189949

Patch by Koby Boyango <koby.b@mce.systems> on 2018-09-26
Reviewed by Mark Lam.

  • offlineasm/parser.rb:

Sep 25, 2018:

11:10 PM Changeset in webkit [236498] by youenn@apple.com
  • 1 edit
    66 adds in trunk/Source/ThirdParty/libwebrtc

Import libvpx source code
https://bugs.webkit.org/show_bug.cgi?id=189954

Reviewed by Eric Carlson.

  • Source/third_party/libvpx: Added.
  • .gitignore: Added.
10:26 PM Changeset in webkit [236497] by rniwa@webkit.org
  • 6 edits in trunk/Source/WebKit

Make frame flattening an internal debug feature
https://bugs.webkit.org/show_bug.cgi?id=189984

Reviewed by Simon Fraser.

Made frame flattening a runtime switchable from internal debug menu.

To avoid having to enumerate three distinct values in the settings, made it a boolean flag in WKPreference.
That's what's exposd as an API anyway.

  • Shared/WebPreferences.yaml:
  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetFrameFlatteningEnabled):
(WKPreferencesGetFrameFlatteningEnabled):

  • UIProcess/API/glib/WebKitSettings.cpp:

(webkit_settings_get_enable_frame_flattening):
(webkit_settings_set_enable_frame_flattening):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

10:16 PM Changeset in webkit [236496] by yusukesuzuki@slowstart.org
  • 3 edits
    9 adds in trunk

[JSC] Optimize Array#lastIndexOf
https://bugs.webkit.org/show_bug.cgi?id=189780

Reviewed by Saam Barati.

JSTests:

  • stress/array-lastindexof-array-prototype-trap.js: Added.

(shouldBe):
(AncestorArray.prototype.get 2):
(AncestorArray):

  • stress/array-lastindexof-have-a-bad-time-c-runtime.js: Added.

(shouldBe):

  • stress/array-lastindexof-hole-nan.js: Added.

(shouldBe):
(throw.new.Error):

  • stress/array-lastindexof-infinity.js: Added.

(shouldBe):
(throw.new.Error):

  • stress/array-lastindexof-negative-zero.js: Added.

(shouldBe):
(throw.new.Error):

  • stress/array-lastindexof-own-getter.js: Added.

(shouldBe):
(throw.new.Error.get array):
(get array):

  • stress/array-lastindexof-prototype-trap.js: Added.

(shouldBe):
(DerivedArray.prototype.get 2):
(DerivedArray):

Source/JavaScriptCore:

Optimize Array#lastIndexOf as the same to Array#indexOf. We add a fast path
for JSArray with contiguous storage.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncLastIndexOf):

8:14 PM Changeset in webkit [236495] by sbarati@apple.com
  • 4 edits
    1 add in trunk

Calls to baselineCodeBlockForOriginAndBaselineCodeBlock in operationMaterializeObjectInOSR should actually pass in the baseline CodeBlock
https://bugs.webkit.org/show_bug.cgi?id=189940
<rdar://problem/43640987>

Reviewed by Mark Lam.

JSTests:

  • stress/use-baseline-codeblock-materialize-osr-exit.js: Added.

Source/JavaScriptCore:

We were calling baselineCodeBlockForOriginAndBaselineCodeBlock with the FTL
CodeBlock. There is nothing semantically wrong with doing that (except for
poor naming), however, the poor naming here led us to make a real semantic
mistake. We wanted the baseline CodeBlock's constant pool, but we were
accessing the FTL CodeBlock's constant pool accidentally. We need to
access the baseline CodeBlock's constant pool when we update the NewArrayBuffer
constant value.

  • bytecode/InlineCallFrame.h:

(JSC::baselineCodeBlockForOriginAndBaselineCodeBlock):

  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

7:33 PM Changeset in webkit [236494] by eric.carlson@apple.com
  • 14 edits
    2 adds in trunk/Source

[MediaStream] Add Mac window capture source
https://bugs.webkit.org/show_bug.cgi?id=189958
<rdar://problem/44767616>

Reviewed by Youenn Fablet.

Source/WebCore:

  • SourcesCocoa.txt: Add WindowDisplayCaptureSourceMac.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:

(WebCore::DisplayCaptureManagerCocoa::captureDevices): Include window "devices".
(WebCore::DisplayCaptureManagerCocoa::updateWindowCaptureDevices): New.
(WebCore::DisplayCaptureManagerCocoa::windowCaptureDeviceWithPersistentID): New.
(WebCore::DisplayCaptureManagerCocoa::captureDeviceWithPersistentID): Include window devices.

  • platform/mediastream/mac/DisplayCaptureManagerCocoa.h:
  • platform/mediastream/mac/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa):
(WebCore::DisplayCaptureSourceCocoa::settings): Use frameSize, report surface type and
logical surface.
(WebCore::DisplayCaptureSourceCocoa::settingsDidChange): Clear m_lastSampleBuffer when size changes.
(WebCore::DisplayCaptureSourceCocoa::frameSize const): New, return size() or intrinsic size.
(WebCore::DisplayCaptureSourceCocoa::setIntrinsicSize): New.
(WebCore::DisplayCaptureSourceCocoa::emitFrame): generateFrame now returns a CVPixelBuffer
so derived classes don't have to deal with resizing/transforming.

  • platform/mediastream/mac/DisplayCaptureSourceCocoa.h:
  • platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.h:
  • platform/mediastream/mac/ScreenDisplayCaptureSourceMac.mm:

(WebCore::ScreenDisplayCaptureSourceMac::ScreenDisplayCaptureSourceMac): Add fixme.
(WebCore::ScreenDisplayCaptureSourceMac::createDisplayStream): Update intrinsic size when
width/height changes.
(WebCore::ScreenDisplayCaptureSourceMac::generateFrame): Return a CVPixelBuffer.

  • platform/mediastream/mac/WindowDisplayCaptureSourceMac.h: Added.
  • platform/mediastream/mac/WindowDisplayCaptureSourceMac.mm: Added.

(WebCore::anyOfCGWindow):
(WebCore::windowDescription):
(WebCore::WindowDisplayCaptureSourceMac::create):
(WebCore::WindowDisplayCaptureSourceMac::WindowDisplayCaptureSourceMac):
(WebCore::WindowDisplayCaptureSourceMac::windowImage):
(WebCore::WindowDisplayCaptureSourceMac::generateFrame):
(WebCore::WindowDisplayCaptureSourceMac::pixelBufferFromCGImage):
(WebCore::WindowDisplayCaptureSourceMac::windowCaptureDeviceWithPersistentID):
(WebCore::WindowDisplayCaptureSourceMac::windowCaptureDevices):

Source/WebKit:

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::beginMonitoringCaptureDevices): Sync with webcore prefs before listening
to device changes so we listen on the correct devices.

7:03 PM Changeset in webkit [236493] by Ryan Haddad
  • 1 edit
    1 delete in trunk/Source/ThirdParty/libwebrtc

Import libvpx source code
https://bugs.webkit.org/show_bug.cgi?id=189954

Another unreviewed build fix attempt.

  • Source/third_party/libvpx/source/libvpx/VPX.framework: Remove unneeded folder.
6:27 PM Changeset in webkit [236492] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Unreviewed, rolling out r236471 and r236480.

Seems to be causing some flaky crashes

Reverted changesets:

"UIProcess should process incoming sync IPC from WebProcess
when waiting for a sync IPC reply from it"
https://bugs.webkit.org/show_bug.cgi?id=189927
https://trac.webkit.org/changeset/236471

"Revert some of the changes in r236471"
https://bugs.webkit.org/show_bug.cgi?id=189973
https://trac.webkit.org/changeset/236480

6:18 PM Changeset in webkit [236491] by Conrad Shultz
  • 3 edits in trunk/Source/WebKit

Enable customization of the file upload panel
https://bugs.webkit.org/show_bug.cgi?id=189970

Reviewed by Wenson Hsieh.

With this change, platform implementations can override, or implement in a category,
+[WKContentView _fileUploadPanelClass] as needed.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _showRunOpenPanel:resultListener:]):

5:24 PM Changeset in webkit [236490] by Justin Fan
  • 9 edits
    2 adds in trunk

WebGL 2 Conformance: primitive restart and draw_primitive_restart WebGL2 sample
https://bugs.webkit.org/show_bug.cgi?id=189625
<rdar://problem/42882620>

Reviewed by Dean Jackson.

Source/WebCore:

Ref test: webgl/webgl2-primitive-restart.html.

Implement support for Primitive Restart Fixed Index as expected
by the WebGL 2 specifications.

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::validateIndexArrayConservative):

  • html/canvas/WebGLRenderingContextBase.h:

(WebCore::WebGLRenderingContextBase::getLastIndex): Template that must be defined in header.

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::validateIndexArrayPrecise):

  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::GraphicsContext3D::GraphicsContext3D):

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::primitiveRestartIndex):

LayoutTests:

Implement support for Primitive Restart Fixed Index as expected
by the WebGL 2 specifications.

  • TestExpectations: Skip some flaky tests between different Mac machines under 2.0.0.
  • webgl/webgl2-primitive-restart.html: Canary ref test to be run as part of LayoutTests suite.
  • webgl/webgl2-primitive-restart-expected.html:
5:13 PM Changeset in webkit [236489] by Kocsen Chung
  • 7 edits in branches/safari-606-branch/Source

Versioning.

4:33 PM Changeset in webkit [236488] by youenn@apple.com
  • 1 edit
    1 delete in trunk/Source/ThirdParty/libwebrtc

Unreviewed, internal build fix after r236479.

  • Source/third_party/libvpx/source/libvpx/_iosbuild: Removed.

Folder is unneeded.

4:29 PM Changeset in webkit [236487] by Chris Dumez
  • 4 edits
    2 deletes in trunk

Unreviewed, rolling out r236420 and r236458.

This change is not fully correct

Reverted changesets:

"Do not do early processing of incoming sync IPC unless we're
waiting for a sync IPC reply"
https://bugs.webkit.org/show_bug.cgi?id=186941
https://trac.webkit.org/changeset/236420

"Unreviewed, update bug number of http/tests/misc/blob-
size.html crash on Windows"
https://trac.webkit.org/changeset/236458

4:21 PM Changeset in webkit [236486] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed, a quick fix after r236481.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setMockWebAuthenticationConfiguration):
Add an early return, so we don't end up with setting MockWebAuthenticationConfiguration twice.

3:49 PM Changeset in webkit [236485] by wilander@apple.com
  • 45 edits in trunk/Source

Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)
https://bugs.webkit.org/show_bug.cgi?id=189959
<rdar://problem/44767642>

Reviewed by Chris Dumez.

Source/WebCore:

No new tests because of no code change.

We no longer make use of CFNetwork's cookie partitioning so we should
change the compile-time flag to something that makes sense. This should
also make it easier/cleaner for other ports.

  • dom/Document.cpp:

(WebCore::Document::hasStorageAccess):
(WebCore::Document::requestStorageAccess):
(WebCore::Document::setHasRequestedPageSpecificStorageAccessWithUserInteraction):

  • dom/Document.h:
  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:
  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::ResourceLoadObserver::logWindowCreation):

  • loader/ResourceLoadObserver.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

  • platform/network/NetworkStorageSession.h:
  • platform/network/cf/NetworkStorageSessionCFNet.cpp:
  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::cookiesForURL):
(WebCore::NetworkStorageSession::setCookiesFromDOM const):

Source/WebKit:

We no longer make use of CFNetwork's cookie partitioning so we should
change the compile-time flag to something that makes sense. This should
also make it easier/cleaner for other ports.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::cookiesForDOM):
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM):
(WebKit::NetworkConnectionToWebProcess::removeStorageAccessForFrame):
(WebKit::NetworkConnectionToWebProcess::removeStorageAccessForAllFramesOnPage):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::didFinishLoading):
(WebKit::NetworkResourceLoader::sendResultForCacheEntry):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::retrieve):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):

  • UIProcess/Network/NetworkProcessProxy.cpp:
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::callHasStorageAccessForFrameHandler):
(WebKit::WebResourceLoadStatisticsStore::callGrantStorageAccessHandler):
(WebKit::WebResourceLoadStatisticsStore::removeAllStorageAccess):
(WebKit::WebResourceLoadStatisticsStore::setCacheMaxAgeCap):
(WebKit::WebResourceLoadStatisticsStore::callUpdatePrevalentDomainsToBlockCookiesForHandler):
(WebKit::WebResourceLoadStatisticsStore::callRemoveDomainsHandler):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::resetCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::networkProcessDidCrash):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::detachedFromParent2):
(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

Source/WTF:

  • wtf/Platform.h:

Enables RESOURCE_LOAD_STATISTICS for Cocoa platforms.

3:49 PM Changeset in webkit [236484] by Justin Fan
  • 741 edits
    17 deletes in trunk/LayoutTests

WebGL 2 conformance: expected test results for the deqp suite (mac-mojave-wk2)
https://bugs.webkit.org/show_bug.cgi?id=189942

Reviewed by Jon Lee.

Add expected results for the deqp suite with the new detailed format, for this spade for macOS Mojave.

  • webgl/2.0.0/deqp/.../*-expected.txt: Added expected results.
3:40 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
3:39 PM Changeset in webkit [236483] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r236482 - [WPE] Export jsc_ symbols
https://bugs.webkit.org/show_bug.cgi?id=189964

Patch by Philippe Normand <pnormand@igalia.com> on 2018-09-25
Reviewed by Michael Catanzaro.

  • webkitglib-symbols.map: Keep jsc_* symbols as visible so they

can be used by applications depending on WPE.

3:33 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
3:28 PM Changeset in webkit [236482] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE] Export jsc_ symbols
https://bugs.webkit.org/show_bug.cgi?id=189964

Patch by Philippe Normand <pnormand@igalia.com> on 2018-09-25
Reviewed by Michael Catanzaro.

  • webkitglib-symbols.map: Keep jsc_* symbols as visible so they

can be used by applications depending on WPE.

3:22 PM Changeset in webkit [236481] by jiewen_tan@apple.com
  • 50 edits
    17 copies
    2 moves
    17 adds
    5 deletes in trunk

[WebAuthN] Make AuthenticatorManager
https://bugs.webkit.org/show_bug.cgi?id=189279
<rdar://problem/44116792>

Reviewed by Chris Dumez.

Source/WebCore:

This patch does the following things in WebCore in order to support AuthenticatorManager:
1) It separates AuthenticatorTransport from PublicKeyCredentialDescriptor such that the enum
can be queried from WebKit directly.
2) It adds AuthenticatorAttachment to PublicKeyCredentialCreationOptions such that relying parties
could express their interests in cross platform authenticators.
3) It enhances IPC encoder/decoder of a few such that Vectors and empty objects can be correctly coded.
4) It moves the LocalAuthenticator implementation to WebKit to better integrate with AuthenticatorManager.
5) It moves linking to LocalAuthentication.framework to WebKit as well.
6) It temporarily bans old mock test mechanism in Internals so we could enable the new mock test mechanism in
WebKitTestRunner which we will have a better coverage of codes in UI Process. Those tests will be either
removed or ported to the new mechanism in Bug 189283.
7) It also removes "using namespace WebCore" from the top namespace in some .mm files as they are reordered
to where they could introduce name confusions.

Tests: http/wpt/webauthn/public-key-credential-create-failure-local.https.html

http/wpt/webauthn/public-key-credential-create-success-local.https.html
http/wpt/webauthn/public-key-credential-get-failure-local.https.html
http/wpt/webauthn/public-key-credential-get-success-local.https.html
http/wpt/webauthn/public-key-credential-is-user-verifying-platform-authenticator-available.html

  • CMakeLists.txt:
  • Configurations/WebCore.xcconfig:
  • DerivedSources.make:
  • Modules/webauthn/AuthenticatorTransport.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
  • Modules/webauthn/AuthenticatorTransport.idl: Copied from Source/WebCore/Modules/webauthn/PublicKeyCredentialDescriptor.idl.
  • Modules/webauthn/PublicKeyCredentialCreationOptions.h:

(WebCore::PublicKeyCredentialCreationOptions::encode const):
(WebCore::PublicKeyCredentialCreationOptions::decode):

  • Modules/webauthn/PublicKeyCredentialCreationOptions.idl:
  • Modules/webauthn/PublicKeyCredentialData.h:

(WebCore::PublicKeyCredentialData::encode const):
(WebCore::PublicKeyCredentialData::decode):

  • Modules/webauthn/PublicKeyCredentialDescriptor.h:

(WebCore::PublicKeyCredentialDescriptor::encode const):

  • Modules/webauthn/PublicKeyCredentialDescriptor.idl:
  • Modules/webauthn/cocoa/LocalAuthenticator.mm: Removed.
  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/ExceptionData.h:
  • platform/cocoa/LocalAuthenticationSoftLink.mm: Removed.
  • platform/cocoa/SharedBufferCocoa.mm:

(-[WebCoreSharedBufferData initWithSharedBufferDataSegment:]):

  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement): Deleted.
(VideoFullscreenModelVideoElement::~VideoFullscreenModelVideoElement): Deleted.
(VideoFullscreenModelVideoElement::setVideoElement): Deleted.
(VideoFullscreenModelVideoElement::handleEvent): Deleted.
(VideoFullscreenModelVideoElement::updateForEventName): Deleted.
(VideoFullscreenModelVideoElement::willExitFullscreen): Deleted.
(VideoFullscreenModelVideoElement::setVideoFullscreenLayer): Deleted.
(VideoFullscreenModelVideoElement::waitForPreparedForInlineThen): Deleted.
(VideoFullscreenModelVideoElement::requestFullscreenMode): Deleted.
(VideoFullscreenModelVideoElement::setVideoLayerFrame): Deleted.
(VideoFullscreenModelVideoElement::setVideoLayerGravity): Deleted.
(VideoFullscreenModelVideoElement::observedEventNames): Deleted.
(VideoFullscreenModelVideoElement::eventNameAll): Deleted.
(VideoFullscreenModelVideoElement::fullscreenModeChanged): Deleted.
(VideoFullscreenModelVideoElement::addClient): Deleted.
(VideoFullscreenModelVideoElement::removeClient): Deleted.
(VideoFullscreenModelVideoElement::isVisible const): Deleted.
(VideoFullscreenModelVideoElement::setHasVideo): Deleted.
(VideoFullscreenModelVideoElement::setVideoDimensions): Deleted.
(VideoFullscreenModelVideoElement::willEnterPictureInPicture): Deleted.
(VideoFullscreenModelVideoElement::didEnterPictureInPicture): Deleted.
(VideoFullscreenModelVideoElement::failedToEnterPictureInPicture): Deleted.
(VideoFullscreenModelVideoElement::willExitPictureInPicture): Deleted.
(VideoFullscreenModelVideoElement::didExitPictureInPicture): Deleted.

  • platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:

(WebCore::hasExplicitBeginTime):
(WebCore::setHasExplicitBeginTime):
(WebCore::toCAFillModeType):
(WebCore::toCAValueFunctionType):
(WebCore::toCAMediaTimingFunction):
(WebCore::PlatformCAAnimationCocoa::setFromValue):
(WebCore::PlatformCAAnimationCocoa::setToValue):
(WebCore::PlatformCAAnimationCocoa::setValues):
(fromCAFillModeType): Deleted.
(fromCAValueFunctionType): Deleted.
(PlatformCAAnimationCocoa::create): Deleted.
(PlatformCAAnimationCocoa::PlatformCAAnimationCocoa): Deleted.
(PlatformCAAnimationCocoa::~PlatformCAAnimationCocoa): Deleted.
(PlatformCAAnimationCocoa::copy const): Deleted.
(PlatformCAAnimationCocoa::platformAnimation const): Deleted.
(PlatformCAAnimationCocoa::keyPath const): Deleted.
(PlatformCAAnimationCocoa::beginTime const): Deleted.
(PlatformCAAnimationCocoa::setBeginTime): Deleted.
(PlatformCAAnimationCocoa::duration const): Deleted.
(PlatformCAAnimationCocoa::setDuration): Deleted.
(PlatformCAAnimationCocoa::speed const): Deleted.
(PlatformCAAnimationCocoa::setSpeed): Deleted.
(PlatformCAAnimationCocoa::timeOffset const): Deleted.
(PlatformCAAnimationCocoa::setTimeOffset): Deleted.
(PlatformCAAnimationCocoa::repeatCount const): Deleted.
(PlatformCAAnimationCocoa::setRepeatCount): Deleted.
(PlatformCAAnimationCocoa::autoreverses const): Deleted.
(PlatformCAAnimationCocoa::setAutoreverses): Deleted.
(PlatformCAAnimationCocoa::fillMode const): Deleted.
(PlatformCAAnimationCocoa::setFillMode): Deleted.
(PlatformCAAnimationCocoa::setTimingFunction): Deleted.
(PlatformCAAnimationCocoa::copyTimingFunctionFrom): Deleted.
(PlatformCAAnimationCocoa::isRemovedOnCompletion const): Deleted.
(PlatformCAAnimationCocoa::setRemovedOnCompletion): Deleted.
(PlatformCAAnimationCocoa::isAdditive const): Deleted.
(PlatformCAAnimationCocoa::setAdditive): Deleted.
(PlatformCAAnimationCocoa::valueFunction const): Deleted.
(PlatformCAAnimationCocoa::setValueFunction): Deleted.
(PlatformCAAnimationCocoa::setFromValue): Deleted.
(PlatformCAAnimationCocoa::copyFromValueFrom): Deleted.
(PlatformCAAnimationCocoa::setToValue): Deleted.
(PlatformCAAnimationCocoa::copyToValueFrom): Deleted.
(PlatformCAAnimationCocoa::setValues): Deleted.
(PlatformCAAnimationCocoa::copyValuesFrom): Deleted.
(PlatformCAAnimationCocoa::setKeyTimes): Deleted.
(PlatformCAAnimationCocoa::copyKeyTimesFrom): Deleted.
(PlatformCAAnimationCocoa::setTimingFunctions): Deleted.
(PlatformCAAnimationCocoa::copyTimingFunctionsFrom): Deleted.

  • platform/graphics/ca/cocoa/PlatformCAFiltersCocoa.mm:

(PlatformCAFilters::filterValueForOperation): Deleted.
(PlatformCAFilters::colorMatrixValueForFilter): Deleted.
(PlatformCAFilters::setBlendingFiltersOnLayer): Deleted.
(PlatformCAFilters::numAnimatedFilterProperties): Deleted.
(PlatformCAFilters::animatedFilterPropertyName): Deleted.

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(-[WebAnimationDelegate animationDidStart:]):
(-[WebAnimationDelegate animationDidStop:finished:]):
(-[WebAnimationDelegate setOwner:]):
(PlatformCALayerCocoa::create): Deleted.
(PlatformCALayer::platformCALayer): Deleted.
(mediaTimeToCurrentTime): Deleted.
(PlatformCALayerCocoa::setOwner): Deleted.
(toCAFilterType): Deleted.
(PlatformCALayerCocoa::layerTypeForPlatformLayer): Deleted.
(PlatformCALayerCocoa::PlatformCALayerCocoa): Deleted.
(PlatformCALayerCocoa::commonInit): Deleted.
(PlatformCALayerCocoa::clone const): Deleted.
(PlatformCALayerCocoa::~PlatformCALayerCocoa): Deleted.
(PlatformCALayerCocoa::animationStarted): Deleted.
(PlatformCALayerCocoa::animationEnded): Deleted.
(PlatformCALayerCocoa::setNeedsDisplay): Deleted.
(PlatformCALayerCocoa::setNeedsDisplayInRect): Deleted.
(PlatformCALayerCocoa::copyContentsFromLayer): Deleted.
(PlatformCALayerCocoa::superlayer const): Deleted.
(PlatformCALayerCocoa::removeFromSuperlayer): Deleted.
(PlatformCALayerCocoa::setSublayers): Deleted.
(PlatformCALayerCocoa::removeAllSublayers): Deleted.
(PlatformCALayerCocoa::appendSublayer): Deleted.
(PlatformCALayerCocoa::insertSublayer): Deleted.
(PlatformCALayerCocoa::replaceSublayer): Deleted.
(PlatformCALayerCocoa::adoptSublayers): Deleted.
(PlatformCALayerCocoa::addAnimationForKey): Deleted.
(PlatformCALayerCocoa::removeAnimationForKey): Deleted.
(PlatformCALayerCocoa::animationForKey): Deleted.
(PlatformCALayerCocoa::setMask): Deleted.
(PlatformCALayerCocoa::isOpaque const): Deleted.
(PlatformCALayerCocoa::setOpaque): Deleted.
(PlatformCALayerCocoa::bounds const): Deleted.
(PlatformCALayerCocoa::setBounds): Deleted.
(PlatformCALayerCocoa::position const): Deleted.
(PlatformCALayerCocoa::setPosition): Deleted.
(PlatformCALayerCocoa::anchorPoint const): Deleted.
(PlatformCALayerCocoa::setAnchorPoint): Deleted.
(PlatformCALayerCocoa::transform const): Deleted.
(PlatformCALayerCocoa::setTransform): Deleted.
(PlatformCALayerCocoa::sublayerTransform const): Deleted.
(PlatformCALayerCocoa::setSublayerTransform): Deleted.
(PlatformCALayerCocoa::isHidden const): Deleted.
(PlatformCALayerCocoa::setHidden): Deleted.
(PlatformCALayerCocoa::contentsHidden const): Deleted.
(PlatformCALayerCocoa::setContentsHidden): Deleted.
(PlatformCALayerCocoa::userInteractionEnabled const): Deleted.
(PlatformCALayerCocoa::setUserInteractionEnabled): Deleted.
(PlatformCALayerCocoa::setBackingStoreAttached): Deleted.
(PlatformCALayerCocoa::backingStoreAttached const): Deleted.
(PlatformCALayerCocoa::geometryFlipped const): Deleted.
(PlatformCALayerCocoa::setGeometryFlipped): Deleted.
(PlatformCALayerCocoa::isDoubleSided const): Deleted.
(PlatformCALayerCocoa::setDoubleSided): Deleted.
(PlatformCALayerCocoa::masksToBounds const): Deleted.
(PlatformCALayerCocoa::setMasksToBounds): Deleted.
(PlatformCALayerCocoa::acceleratesDrawing const): Deleted.
(PlatformCALayerCocoa::setAcceleratesDrawing): Deleted.
(PlatformCALayerCocoa::wantsDeepColorBackingStore const): Deleted.
(PlatformCALayerCocoa::setWantsDeepColorBackingStore): Deleted.
(PlatformCALayerCocoa::supportsSubpixelAntialiasedText const): Deleted.
(PlatformCALayerCocoa::setSupportsSubpixelAntialiasedText): Deleted.
(PlatformCALayerCocoa::hasContents const): Deleted.
(PlatformCALayerCocoa::contents const): Deleted.
(PlatformCALayerCocoa::setContents): Deleted.
(PlatformCALayerCocoa::setContentsRect): Deleted.
(PlatformCALayerCocoa::setMinificationFilter): Deleted.
(PlatformCALayerCocoa::setMagnificationFilter): Deleted.
(PlatformCALayerCocoa::backgroundColor const): Deleted.
(PlatformCALayerCocoa::setBackgroundColor): Deleted.
(PlatformCALayerCocoa::setBorderWidth): Deleted.
(PlatformCALayerCocoa::setBorderColor): Deleted.
(PlatformCALayerCocoa::opacity const): Deleted.
(PlatformCALayerCocoa::setOpacity): Deleted.
(PlatformCALayerCocoa::setFilters): Deleted.
(PlatformCALayerCocoa::copyFiltersFrom): Deleted.
(PlatformCALayerCocoa::filtersCanBeComposited): Deleted.
(PlatformCALayerCocoa::setBlendMode): Deleted.
(PlatformCALayerCocoa::setName): Deleted.
(PlatformCALayerCocoa::setSpeed): Deleted.
(PlatformCALayerCocoa::setTimeOffset): Deleted.
(PlatformCALayerCocoa::contentsScale const): Deleted.
(PlatformCALayerCocoa::setContentsScale): Deleted.
(PlatformCALayerCocoa::cornerRadius const): Deleted.
(PlatformCALayerCocoa::setCornerRadius): Deleted.
(PlatformCALayerCocoa::setEdgeAntialiasingMask): Deleted.
(PlatformCALayerCocoa::shapeRoundedRect const): Deleted.
(PlatformCALayerCocoa::setShapeRoundedRect): Deleted.
(PlatformCALayerCocoa::shapeWindRule const): Deleted.
(PlatformCALayerCocoa::setShapeWindRule): Deleted.
(PlatformCALayerCocoa::shapePath const): Deleted.
(PlatformCALayerCocoa::setShapePath): Deleted.
(PlatformCALayerCocoa::requiresCustomAppearanceUpdateOnBoundsChange const): Deleted.
(PlatformCALayerCocoa::updateCustomAppearance): Deleted.
(layerContentsFormat): Deleted.
(PlatformCALayerCocoa::updateContentsFormat): Deleted.
(PlatformCALayerCocoa::tiledBacking): Deleted.
(PlatformCALayer::isWebLayer): Deleted.
(PlatformCALayer::setBoundsOnMainThread): Deleted.
(PlatformCALayer::setPositionOnMainThread): Deleted.
(PlatformCALayer::setAnchorPointOnMainThread): Deleted.
(PlatformCALayer::collectRectsToPaint): Deleted.
(PlatformCALayer::drawLayerContents): Deleted.
(PlatformCALayer::frameForLayer): Deleted.
(PlatformCALayerCocoa::createCompatibleLayer const): Deleted.
(PlatformCALayerCocoa::enumerateRectsBeingDrawn): Deleted.
(PlatformCALayerCocoa::backingStoreBytesPerPixel const): Deleted.
(PlatformCALayerCocoa::avPlayerLayer const): Deleted.

  • platform/graphics/ca/cocoa/WebSystemBackdropLayer.mm:

(-[WebLightSystemBackdropLayer init]):
(-[WebDarkSystemBackdropLayer init]):

  • platform/graphics/ca/cocoa/WebTiledBackingLayer.mm:

(-[WebTiledBackingLayer createTileController:]):
(-[WebTiledBackingLayer setNeedsDisplayInRect:]):
(-[WebTiledBackingLayer setBorderColor:]):

  • testing/Internals.cpp:

(WebCore::Internals::Internals):

Source/WebCore/PAL:

It moves linking to DeviceIdentity.framework to WebKit.

  • PAL.xcodeproj/project.pbxproj:

Source/WebKit:

This patch introduces AuthenticatorManager which is the central of WebAuthentication that 1) handles
web requests, 2) discovers authenticators, 3) manages authetnicators and 4) in the future interacts with UI.
The lifetime of the AuthenticatorManager is managed by WebsiteDataStore such that it is almost a singleton
per UI Process.

1) Requests come from WebAuthenticatorCoordinatorProxy and then cached in AuthenticatorManager which will
then distribute requests whenever a new authenticator is discovered.

2) An ABC AuthenticatorTransportService is provided as an interface for AuthenticatorManager to invoke
startDiscovery. Actual work will be done in corresponding derived classes, say, LocalService. LocalService
is the one that discover attached platform authenticators, for example, TouchID or FaceID.

Eache service is unique per AuthetnicatorManager, which means we will have at most 4 services, Local, USB,
NFC, and BLE. The latter three will be implemented soon. Also, AuthenticatorManager serves as an observer to
*Service, so the latter can inform the former whenever an authenticator is added or removed.

When a new authenticator is discovered, the corresponding service will create an Authetnicator object that
binds to the physical authenticator device through a *Connection object. There is no ABC for connection for
now as I forsee every *Connection will be quite different. The *Connection object is the one that send/receive
messages from the physicla device. So far, a LocalConnection is provided even though normally local authenticators
are attached. This class is provided solely for separating UI and network traffic from LocalAuthenticator's
request handling process. So we can override them in a mock test environment. I will talk about this in the
next section.

3) An ABC Authenticator is provided as an interface for AuthenticatorManager to distribute requests on. Requests
will then be handled by the derived classes, say, LocalAuthenticator. Each authenticator object is a FSM that
works asynchronously.

For LocalAuthenticator, it has 4 states for MakeCredential: Init => RequestReceived => UserConsented => Attested => End,
and 3 states for GetAssertion: Init => RequestReceived => UserConsented => End. In the transit from RequestReceived to
UserConsented, it will invoke LocalConnection to talk to LocalAuthentication.framework that prompt users for TouchID
or FaceID. And then the transit from UserConsented => Attested, it will invoke LocalConnection to talk to
DeviceIdentity.framework that does Apple attestation. Most of the work are from the original LocalAuthenticator
implementation, and this patch converts it to a FSM and simplify the callback and threading model.

When a respond is ready, each authenticator will notify their observer which is the AuthenticatorManager.
AuthenticatorManager will only reply to Web Process whenever there is a valid respond or a terminating error. Otherwise,
the request will time out. I will explore the time out mechanism in a more detailed manner in Bug 189642.

The above is a briefing of the AuthetnicatorManager architecture in functional. The asynchronous model is explained here:
1) Since most discovery and request handling processes are asynchronous, I enforced them to be executed asyncrhonous in
the interface of the ABC.
2) There is no dedicated secondary threads here. However, underlying framework might decide to perform works on a dedicated
thread and then execute the provided callback. Whenever such situation happens, the policy here is to wrap the actual callback
into a callback that will post the actual callback back to the main thread and pass the wrapping callback to the APIs. Hence,
weak pointers in the actual callback are guaranteed to work.
3) Callbacks are used only if it is one way, and they are CompletionHandlers.
4) Potential multi ways asynchronous operations are encapsulated in regarding Observer interfaces.

Finally, let me explain how the mock test works:
1) Mock testing is done in WebKitTestRunner instead of Internals because a considerable large portion of work is in UIProcess
instead of WebProcess, says, the AuthenticatorManager.
2) The basic idea is to override functionality of *Connection classes and then make them thin such that we can get the best
possible coverage in auto tests.
3) In order to enable layout tests to configure the Mock*Connection classes, a MockWebAuthenticationConfiguration struct is
provided. A corresponding JS dictionary will be created by each test and passed from the TestRunner to the connection object.
4) To bridge the above tunnel, a MockAuthenticatorManager is constructed. It is instrumented to return every error.
5) Also, Mock*Service classes are made to mock the discovery process as well.
6) Noted, every mock overrided methods are made thin.

  • CMakeLists.txt:
  • Configurations/WebKit.xcconfig:
  • Platform/spi/Cocoa/DeviceIdentitySPI.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h.
  • SourcesCocoa.txt:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetWebAuthenticationMockConfiguration):

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/WebAuthentication/Authenticator.cpp: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.

(WebKit::Authenticator::handleRequest):
(WebKit::Authenticator::receiveRespond const):

  • UIProcess/WebAuthentication/Authenticator.h: Renamed from Source/WebCore/Modules/webauthn/cocoa/LocalAuthenticator.h.

(WebKit::Authenticator::setObserver):
(WebKit::Authenticator::observer const):
(WebKit::Authenticator::requestData const):

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp: Added.

(WebKit::AuthenticatorManagerInternal::collectTransports):
(WebKit::AuthenticatorManager::makeCredential):
(WebKit::AuthenticatorManager::getAssertion):
(WebKit::AuthenticatorManager::clearState):
(WebKit::AuthenticatorManager::authenticatorAdded):
(WebKit::AuthenticatorManager::respondReceived):
(WebKit::AuthenticatorManager::createService const):
(WebKit::AuthenticatorManager::respondReceivedInternal):
(WebKit::AuthenticatorManager::startDiscovery):

  • UIProcess/WebAuthentication/AuthenticatorManager.h: Added.

(WebKit::AuthenticatorManager::pendingCompletionHandler):

  • UIProcess/WebAuthentication/AuthenticatorTransportService.cpp: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h.

(WebKit::AuthenticatorTransportService::create):
(WebKit::AuthenticatorTransportService::createMock):
(WebKit::AuthenticatorTransportService::AuthenticatorTransportService):
(WebKit::AuthenticatorTransportService::startDiscovery const):

  • UIProcess/WebAuthentication/AuthenticatorTransportService.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h.

(WebKit::AuthenticatorTransportService::observer const):

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticationSoftLink.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h.
  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: Added.

(WebKit::LocalAuthenticatorInternal::buildAuthData):
(WebKit::LocalAuthenticatorInternal::transportsContain):
(WebKit::LocalAuthenticatorInternal::produceHashSet):
(WebKit::LocalAuthenticatorInternal::toVector):
(WebKit::LocalAuthenticator::LocalAuthenticator):
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterUserConsented):
(WebKit::LocalAuthenticator::continueMakeCredentialAfterAttested):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::continueGetAssertionAfterUserConsented):

  • UIProcess/WebAuthentication/Cocoa/LocalConnection.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h.
  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm: Added.

(WebKit::LocalConnection::getUserConsent const):
(WebKit::LocalConnection::getAttestation const):

  • UIProcess/WebAuthentication/Cocoa/LocalService.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
  • UIProcess/WebAuthentication/Cocoa/LocalService.mm: Renamed from Source/WebCore/PAL/pal/spi/cocoa/DeviceIdentitySPI.h.

(WebKit::LocalService::LocalService):
(WebKit::LocalService::isAvailable):
(WebKit::LocalService::startDiscoveryInternal const):
(WebKit::LocalService::platformStartDiscovery const):
(WebKit::LocalService::createLocalConnection const):

  • UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.cpp: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.

(WebKit::MockAuthenticatorManager::MockAuthenticatorManager):
(WebKit::MockAuthenticatorManager::createService const):
(WebKit::MockAuthenticatorManager::respondReceivedInternal):

  • UIProcess/WebAuthentication/Mock/MockAuthenticatorManager.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
  • UIProcess/WebAuthentication/Mock/MockLocalConnection.mm: Added.

(WebKit::MockLocalConnection::MockLocalConnection):
(WebKit::MockLocalConnection::getUserConsent const):
(WebKit::MockLocalConnection::getAttestation const):

  • UIProcess/WebAuthentication/Mock/MockLocalService.cpp: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.

(WebKit::MockLocalService::MockLocalService):
(WebKit::MockLocalService::platformStartDiscovery const):
(WebKit::MockLocalService::createLocalConnection const):

  • UIProcess/WebAuthentication/Mock/MockLocalService.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
  • UIProcess/WebAuthentication/Mock/MockWebAuthenticationConfiguration.h: Copied from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
  • UIProcess/WebAuthentication/WebAuthenticationRequestData.h: Renamed from Source/WebCore/platform/cocoa/LocalAuthenticationSoftLink.h.
  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:

(WebKit::WebAuthenticatorCoordinatorProxy::WebAuthenticatorCoordinatorProxy):
(WebKit::WebAuthenticatorCoordinatorProxy::makeCredential):
(WebKit::WebAuthenticatorCoordinatorProxy::getAssertion):
(WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailable):
(WebKit::WebAuthenticatorCoordinatorProxy::isUserVerifyingPlatformAuthenticatorAvailableReply): Deleted.

  • UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::setMockWebAuthenticationConfiguration):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::authenticatorManager):

  • WebKit.xcodeproj/project.pbxproj:

Tools:

Besides the functionality to set the WebAuthenticationMockConfiguration. Three operations are
added to manipulate Keychain: addTestKeyToKeychain, cleanUpKeychain and keyExistedInKeychain.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/ios/LocalAuthenticator.mm: Removed.
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::setWebAuthenticationMockConfiguration):
(WTR::TestRunner::addTestKeyToKeychain):
(WTR::TestRunner::cleanUpKeychain):
(WTR::TestRunner::isKeyExisted):

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

(WTR::TestController::addTestKeyToKeychain):
(WTR::TestController::cleanUpKeychain):
(WTR::TestController::isKeyExisted):
(WTR::TestController::setWebAuthenticationMockConfiguration):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::addTestKeyToKeychain):
(WTR::TestController::cleanUpKeychain):
(WTR::TestController::keyExistedInKeychain):

LayoutTests:

Most of the new tests are rewritten from the LocalAuthenticator API tests. Old mock tests are temporarily skipped
for the new mock tests.

  • TestExpectations:
  • http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-create-failure-local.https.html: Added.
  • http/wpt/webauthn/public-key-credential-create-success-local.https-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-create-success-local.https.html: Added.
  • http/wpt/webauthn/public-key-credential-create-success.https.html:
  • http/wpt/webauthn/public-key-credential-get-failure-local.https-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-get-failure-local.https.html: Added.
  • http/wpt/webauthn/public-key-credential-get-success-local.https-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-get-success-local.https.html: Added.
  • http/wpt/webauthn/public-key-credential-get-success.https.html:
  • http/wpt/webauthn/public-key-credential-is-user-verifying-platform-authenticator-available-expected.txt: Added.
  • http/wpt/webauthn/public-key-credential-is-user-verifying-platform-authenticator-available.html: Added.
  • http/wpt/webauthn/public-key-is-user-verifying-platform-authenticator-available-expected.txt: Removed.
  • http/wpt/webauthn/public-key-is-user-verifying-platform-authenticator-available.html: Removed.
  • http/wpt/webauthn/resources/util.js:
  • platform/mac-wk2/TestExpectations:
3:17 PM Changeset in webkit [236480] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

Revert some of the changes in r236471
https://bugs.webkit.org/show_bug.cgi?id=189973

Reviewed by Alex Christensen.

Revert some of the changes in r236471 as they should not be needed. In particular,
it should not be possible for the DecidePolicyForNavigationActionSync IPC to get
processed *before* the DidCreateMainFrame / DidCreateSubframe ones because those
use IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply. They are thus
processed early when necessary, the same way as synchronous IPC messages.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didCreateSubframe):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::createWithCoreMainFrame):
(WebKit::WebFrame::createSubframe):

3:09 PM Changeset in webkit [236479] by youenn@apple.com
  • 1 edit
    1328 adds in trunk/Source/ThirdParty/libwebrtc

Import libvpx source code
https://bugs.webkit.org/show_bug.cgi?id=189954

Reviewed by Eric Carlson.

  • Source/third_party/libvpx: Added.
  • .gitignore: Added.
2:59 PM Changeset in webkit [236478] by commit-queue@webkit.org
  • 8 edits in trunk

Implement MediaStreamTrack Content Hints
https://bugs.webkit.org/show_bug.cgi?id=189262
<rdar://problem/44101773>

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-09-25
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint-expected.txt:

Source/WebCore:

contentHint is a new attribute which is stored in MediaStreamTrackPrivate.
https://w3c.github.io/mst-content-hint/

Covered by tests:
LayoutTests/imported/w3c/web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html
LayoutTests/imported/w3c/web-platform-tests/mst-content-hint/idlharness.window.html

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::contentHint const):
(WebCore::MediaStreamTrack::setContentHint):

  • Modules/mediastream/MediaStreamTrack.h:
  • Modules/mediastream/MediaStreamTrack.idl:
  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::setContentHint):
(WebCore::MediaStreamTrackPrivate::clone):

  • platform/mediastream/MediaStreamTrackPrivate.h:

(WebCore::MediaStreamTrackPrivate::contentHint):

2:57 PM Changeset in webkit [236477] by sihui_liu@apple.com
  • 51 edits
    8 copies
    1 add
    1 delete in trunk

Move Service Worker Management from Storage Process to Network Process
https://bugs.webkit.org/show_bug.cgi?id=189422

Reviewed by Youenn Fablet.

Source/WebKit:

After r236035, this is another piece to move functionality of storage process to network process. When
we enable Service Workers, network process instead of storage process will be launched.
This patch will not change the behavior of Service Worker.

  • CMakeLists.txt:
  • DerivedSources.make:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::~NetworkConnectionToWebProcess):
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::unregisterSWConnections):
(WebKit::NetworkConnectionToWebProcess::establishSWServerConnection):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didReceiveMessage):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::destroySession):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::connectionToContextProcessFromIPCConnection):
(WebKit::NetworkProcess::connectionToContextProcessWasClosed):
(WebKit::NetworkProcess::needsServerToContextConnectionForOrigin const):
(WebKit::NetworkProcess::swServerForSession):
(WebKit::NetworkProcess::swOriginStoreForSession):
(WebKit::NetworkProcess::existingSWOriginStoreForSession const):
(WebKit::NetworkProcess::serverToContextConnectionForOrigin):
(WebKit::NetworkProcess::createServerToContextConnection):
(WebKit::NetworkProcess::didFailFetch):
(WebKit::NetworkProcess::didNotHandleFetch):
(WebKit::NetworkProcess::didReceiveFetchResponse):
(WebKit::NetworkProcess::didReceiveFetchData):
(WebKit::NetworkProcess::didReceiveFetchFormData):
(WebKit::NetworkProcess::didFinishFetch):
(WebKit::NetworkProcess::postMessageToServiceWorkerClient):
(WebKit::NetworkProcess::postMessageToServiceWorker):
(WebKit::NetworkProcess::registerSWServerConnection):
(WebKit::NetworkProcess::unregisterSWServerConnection):
(WebKit::NetworkProcess::swContextConnectionMayNoLongerBeNeeded):
(WebKit::NetworkProcess::disableServiceWorkerProcessTerminationDelay):
(WebKit::NetworkProcess::addServiceWorkerSession):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const):

  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/ServiceWorker/WebSWOriginStore.cpp: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWOriginStore.cpp.

(WebKit::WebSWOriginStore::WebSWOriginStore):
(WebKit::WebSWOriginStore::addToStore):
(WebKit::WebSWOriginStore::removeFromStore):
(WebKit::WebSWOriginStore::clearStore):
(WebKit::WebSWOriginStore::importComplete):
(WebKit::WebSWOriginStore::registerSWServerConnection):
(WebKit::WebSWOriginStore::unregisterSWServerConnection):
(WebKit::WebSWOriginStore::sendStoreHandle):
(WebKit::WebSWOriginStore::didInvalidateSharedMemory):

  • NetworkProcess/ServiceWorker/WebSWOriginStore.h: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWOriginStore.h.
  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.cpp.

(WebKit::WebSWServerConnection::WebSWServerConnection):
(WebKit::WebSWServerConnection::~WebSWServerConnection):
(WebKit::WebSWServerConnection::rejectJobInClient):
(WebKit::WebSWServerConnection::resolveRegistrationJobInClient):
(WebKit::WebSWServerConnection::resolveUnregistrationJobInClient):
(WebKit::WebSWServerConnection::startScriptFetchInClient):
(WebKit::WebSWServerConnection::updateRegistrationStateInClient):
(WebKit::WebSWServerConnection::fireUpdateFoundEvent):
(WebKit::WebSWServerConnection::setRegistrationLastUpdateTime):
(WebKit::WebSWServerConnection::setRegistrationUpdateViaCache):
(WebKit::WebSWServerConnection::notifyClientsOfControllerChange):
(WebKit::WebSWServerConnection::updateWorkerStateInClient):
(WebKit::WebSWServerConnection::cancelFetch):
(WebKit::WebSWServerConnection::startFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorker):
(WebKit::WebSWServerConnection::scheduleJobInServer):
(WebKit::WebSWServerConnection::didReceiveFetchResponse):
(WebKit::WebSWServerConnection::didReceiveFetchData):
(WebKit::WebSWServerConnection::didReceiveFetchFormData):
(WebKit::WebSWServerConnection::didFinishFetch):
(WebKit::WebSWServerConnection::didFailFetch):
(WebKit::WebSWServerConnection::didNotHandleFetch):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerClient):
(WebKit::WebSWServerConnection::matchRegistration):
(WebKit::WebSWServerConnection::registrationReady):
(WebKit::WebSWServerConnection::getRegistrations):
(WebKit::WebSWServerConnection::registerServiceWorkerClient):
(WebKit::WebSWServerConnection::unregisterServiceWorkerClient):
(WebKit::WebSWServerConnection::sendToContextProcess):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.h: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.h.

(WebKit::WebSWServerConnection::ipcConnection const):
(WebKit::WebSWServerConnection::sessionID const):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.messages.in.
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp.

(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):
(WebKit::WebSWServerToContextConnection::messageSenderConnection):
(WebKit::WebSWServerToContextConnection::messageSenderDestinationID):
(WebKit::WebSWServerToContextConnection::connectionClosed):
(WebKit::WebSWServerToContextConnection::installServiceWorkerContext):
(WebKit::WebSWServerToContextConnection::fireInstallEvent):
(WebKit::WebSWServerToContextConnection::fireActivateEvent):
(WebKit::WebSWServerToContextConnection::terminateWorker):
(WebKit::WebSWServerToContextConnection::syncTerminateWorker):
(WebKit::WebSWServerToContextConnection::findClientByIdentifierCompleted):
(WebKit::WebSWServerToContextConnection::matchAllCompleted):
(WebKit::WebSWServerToContextConnection::claimCompleted):
(WebKit::WebSWServerToContextConnection::didFinishSkipWaiting):
(WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded):
(WebKit::WebSWServerToContextConnection::terminate):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerToContextConnection.h.

(WebKit::WebSWServerToContextConnection::create):
(WebKit::WebSWServerToContextConnection::ipcConnection const):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in: Renamed from Source/WebKit/StorageProcess/ServiceWorker/WebSWServerToContextConnection.messages.in.
  • NetworkProcess/ios/NetworkProcessIOS.mm:

(WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const):

  • Shared/Storage/StorageProcessCreationParameters.cpp:

(WebKit::StorageProcessCreationParameters::encode const):
(WebKit::StorageProcessCreationParameters::decode):

  • Shared/Storage/StorageProcessCreationParameters.h:

(): Deleted.

  • Shared/WebsiteDataStoreParameters.cpp:

(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):
(WebKit::WebsiteDataStoreParameters::privateSessionParameters):

  • Shared/WebsiteDataStoreParameters.h:
  • Sources.txt:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::didReceiveMessage):
(WebKit::StorageProcess::initializeWebsiteDataStore):
(WebKit::StorageProcess::createStorageToWebProcessConnection):
(WebKit::StorageProcess::destroySession):
(WebKit::StorageProcess::fetchWebsiteData):
(WebKit::StorageProcess::deleteWebsiteData):
(WebKit::StorageProcess::deleteWebsiteDataForOrigins):
(WebKit::StorageProcess::connectionToContextProcessFromIPCConnection): Deleted.
(WebKit::StorageProcess::connectionToContextProcessWasClosed): Deleted.
(WebKit::StorageProcess::needsServerToContextConnectionForOrigin const): Deleted.
(WebKit::StorageProcess::swServerForSession): Deleted.
(WebKit::StorageProcess::swOriginStoreForSession): Deleted.
(WebKit::StorageProcess::existingSWOriginStoreForSession const): Deleted.
(WebKit::StorageProcess::serverToContextConnectionForOrigin): Deleted.
(WebKit::StorageProcess::createServerToContextConnection): Deleted.
(WebKit::StorageProcess::didFailFetch): Deleted.
(WebKit::StorageProcess::didNotHandleFetch): Deleted.
(WebKit::StorageProcess::didReceiveFetchResponse): Deleted.
(WebKit::StorageProcess::didReceiveFetchData): Deleted.
(WebKit::StorageProcess::didReceiveFetchFormData): Deleted.
(WebKit::StorageProcess::didFinishFetch): Deleted.
(WebKit::StorageProcess::postMessageToServiceWorkerClient): Deleted.
(WebKit::StorageProcess::postMessageToServiceWorker): Deleted.
(WebKit::StorageProcess::registerSWServerConnection): Deleted.
(WebKit::StorageProcess::unregisterSWServerConnection): Deleted.
(WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded): Deleted.
(WebKit::StorageProcess::disableServiceWorkerProcessTerminationDelay): Deleted.

  • StorageProcess/StorageProcess.h:

(WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): Deleted.
(): Deleted.

  • StorageProcess/StorageProcess.messages.in:
  • StorageProcess/StorageToWebProcessConnection.cpp:

(WebKit::StorageToWebProcessConnection::~StorageToWebProcessConnection):
(WebKit::StorageToWebProcessConnection::didReceiveMessage):
(WebKit::StorageToWebProcessConnection::didReceiveSyncMessage):
(WebKit::StorageToWebProcessConnection::didClose):
(WebKit::StorageToWebProcessConnection::unregisterSWConnections): Deleted.
(WebKit::StorageToWebProcessConnection::establishSWServerConnection): Deleted.

  • StorageProcess/StorageToWebProcessConnection.h:
  • StorageProcess/StorageToWebProcessConnection.messages.in:
  • StorageProcess/ios/StorageProcessIOS.mm:

(WebKit::StorageProcess::parentProcessHasServiceWorkerEntitlement const): Deleted.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getNetworkProcessConnection):
(WebKit::NetworkProcessProxy::networkProcessCrashed):
(WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess):
(WebKit::NetworkProcessProxy::didFinishLaunching):
(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcess):
(WebKit::NetworkProcessProxy::establishWorkerContextConnectionToNetworkProcessForExplicitSession):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::start):

  • UIProcess/Storage/StorageProcessProxy.cpp:

(WebKit::StorageProcessProxy::getStorageProcessConnection):
(WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcess): Deleted.
(WebKit::StorageProcessProxy::establishWorkerContextConnectionToStorageProcessForExplicitSession): Deleted.

  • UIProcess/Storage/StorageProcessProxy.h:
  • UIProcess/Storage/StorageProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::networkProcessCrashed):
(WebKit::WebProcessPool::getNetworkProcessConnection):
(WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore):
(WebKit::WebProcessPool::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcessPool::disableServiceWorkerProcessTerminationDelay):
(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):
(WebKit::WebProcessPool::registerURLSchemeServiceWorkersCanHandle):
(WebKit::WebProcessPool::postMessageToServiceWorkerClient):
(WebKit::WebProcessPool::postMessageToServiceWorker):
(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess): Deleted.

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getNetworkProcessConnection):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::computeNetworkProcessAccessTypeForDataFetch):
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::computeNetworkProcessAccessTypeForDataRemoval):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::storageProcessParameters):
(WebKit::WebsiteDataStore::parameters):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didReceiveSyncMessage):
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::serviceWorkerConnectionForSession):

  • WebProcess/Network/NetworkProcessConnection.h:

(WebKit::NetworkProcessConnection::existingServiceWorkerConnectionForSession):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::WebSWClientConnection):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::WebSWContextManagerConnection):
(WebKit::WebSWContextManagerConnection::serviceWorkerStartedWithMessage):
(WebKit::WebSWContextManagerConnection::startFetch):
(WebKit::WebSWContextManagerConnection::didFinishInstall):
(WebKit::WebSWContextManagerConnection::didFinishActivation):
(WebKit::WebSWContextManagerConnection::setServiceWorkerHasPendingEvents):
(WebKit::WebSWContextManagerConnection::skipWaiting):
(WebKit::WebSWContextManagerConnection::setScriptResource):
(WebKit::WebSWContextManagerConnection::workerTerminated):
(WebKit::WebSWContextManagerConnection::findClientByIdentifier):
(WebKit::WebSWContextManagerConnection::matchAll):
(WebKit::WebSWContextManagerConnection::claim):

  • WebProcess/Storage/WebSWContextManagerConnection.h:
  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:

(WebKit::WebServiceWorkerFetchTaskClient::didReceiveResponse):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveData):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveFormDataAndFinish):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveBlobChunk):
(WebKit::WebServiceWorkerFetchTaskClient::didFail):
(WebKit::WebServiceWorkerFetchTaskClient::didFinish):
(WebKit::WebServiceWorkerFetchTaskClient::didNotHandle):

  • WebProcess/Storage/WebServiceWorkerProvider.cpp:

(WebKit::WebServiceWorkerProvider::serviceWorkerConnectionForSession):
(WebKit::WebServiceWorkerProvider::existingServiceWorkerConnectionForSession):
(WebKit::WebServiceWorkerProvider::handleFetch):

  • WebProcess/Storage/WebToStorageProcessConnection.cpp:

(WebKit::WebToStorageProcessConnection::didReceiveMessage):
(WebKit::WebToStorageProcessConnection::didReceiveSyncMessage):
(WebKit::WebToStorageProcessConnection::didClose):
(WebKit::WebToStorageProcessConnection::serviceWorkerConnectionForSession): Deleted.

  • WebProcess/Storage/WebToStorageProcessConnection.h:

(WebKit::WebToStorageProcessConnection::existingServiceWorkerConnectionForSession): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::networkProcessConnectionClosed):
(WebKit::WebProcess::webToStorageProcessConnectionClosed):
(WebKit::WebProcess::establishWorkerContextConnectionToNetworkProcess):
(WebKit::WebProcess::establishWorkerContextConnectionToStorageProcess): Deleted.

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::existingNetworkProcessConnection):
(WebKit::WebProcess::existingWebToStorageProcessConnection): Deleted.

  • WebProcess/WebProcess.messages.in:

Tools:

Change a check in ServiceWorkers.HasServiceWorkerRegistrationBit as storage process is not
launched during service worker operations now.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
2:31 PM Changeset in webkit [236476] by eric.carlson@apple.com
  • 2 edits in trunk/Tools

[MediaStream] Update constraints supported by getDisplayMedia
https://bugs.webkit.org/show_bug.cgi?id=189930
<rdar://problem/44740305>

Unreviewed, fix test broken by r236465.

  • TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:

(TestWebKitAPI::TEST_F):

2:21 PM Changeset in webkit [236475] by mmaxfield@apple.com
  • 25 edits
    2 copies
    3 adds in trunk/Tools

[WHSL] Implement semantics
https://bugs.webkit.org/show_bug.cgi?id=189134

Reviewed by Filip Pizlo.

This patch adds parsing support and adds the checks required to support HLSL-style semantics.

There are 3 places where semantics are allowed:

  1. In a field in a struct. E.g.

struct R {

float4 position : SV_Position;

}
vertex R foo() {

...

}

  1. In a parameter of a function. If the function is not an entry point, the semantic is ignored.

compute void foo(device float[] data : buffer(u0)) {

...

}

  1. On a function. This is so you don't have to create structs for the return types of simple vertex shaders.

vertex float4 foo() : SV_Position {

...

}

The semantics are partitioned into 4 types:

  1. Built-in variables. For example, : SV_Position.
  2. Resources. For example, : register(u0).
  3. Stage-in / stage-out variables. For example, : attribute(0).
  4. Specialization constants. For example, : specialized.

The semantics are validated according to a collection of rules:

  • The same entry point can't list the same semantic twice
  • Each built-in type has an appropriate type that is listed in the spec.
  • Each built-in is appropriate as either an input or an output of a particular shader stage
  • Resource semantics have to have the appropriate type (e.g. can't use register(s0) on a buffer)
  • Resources can't be output from entry points
  • The resource semantic mode must match the address space of the resource
  • Stage-in and stage-out variables have to be POD
  • Specialization constants can't be output from entry points, and have to be numbers
  • WebGPUShadingLanguageRI/All.js:
  • WebGPUShadingLanguageRI/BuiltInSemantic.js: Added.

(BuiltInSemantic):
(BuiltInSemantic.prototype.get name):
(BuiltInSemantic.prototype.get extraArguments):
(BuiltInSemantic.prototype.isAcceptableType):
(BuiltInSemantic.prototype.isAcceptableForShaderType):
(BuiltInSemantic.prototype.toString):

  • WebGPUShadingLanguageRI/CallExpression.js:

(CallExpression.prototype._resolveWithOperatorAnderIndexer):
(CallExpression.prototype._resolveWithOperatorLength):

  • WebGPUShadingLanguageRI/Checker.js:

(Checker):
(Checker.prototype.visitProgram):
(Checker.prototype._checkSemantics.Item):
(Checker.prototype._checkSemantics.Item.prototype.get type):
(Checker.prototype._checkSemantics.Item.prototype.get semantic):
(Checker.prototype._checkSemantics.Gatherer):
(Checker.prototype._checkSemantics.Gatherer.prototype.reset):
(Checker.prototype._checkSemantics.Gatherer.prototype.set currentSemantic):
(Checker.prototype._checkSemantics.Gatherer.prototype.get currentSemantic):
(Checker.prototype._checkSemantics.Gatherer.prototype.get result):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitEnumType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitVectorType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitMatrixType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitNativeType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitStructType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitTypeRef):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitPtrType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitArrayRefType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitArrayType):
(Checker.prototype._checkSemantics.Gatherer.prototype.visitFuncParameter):
(Checker.prototype._checkSemantics.checkDuplicateSemantics):
(Checker.prototype._checkSemantics.checkSemanticTypes):
(Checker.prototype._checkSemantics.checkSemanticForShaderType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitEnumType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitArrayType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitVectorType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitMatrixType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitNativeType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitPtrType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitArrayRefType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitStructType):
(Checker.prototype._checkSemantics.PODChecker.prototype.visitTypeRef):
(Checker.prototype._checkSemantics.PODChecker):
(Checker.prototype._checkSemantics.checkPODData):
(Checker.prototype._checkSemantics):
(Checker.prototype._checkShaderType):
(Checker.prototype._checkOperatorOverload):
(Checker.prototype.visitFuncDef):
(Checker.prototype.visitEnumType):
(Checker.prototype.visitArrayType):
(Checker.prototype.visitMakePtrExpression):
(Checker.prototype.visitMakeArrayRefExpression):
(Checker.prototype._finishVisitingPropertyAccess):
(Checker.prototype.visitIndexExpression):
(Checker.prototype.visitReturn):
(Checker.prototype.visitSwitchStatement):
(Checker.prototype.visitTernaryExpression):
(Checker.prototype.visitCallExpression):

  • WebGPUShadingLanguageRI/Field.js:

(Field):
(Field.prototype.get semantic):
(Field.prototype.toString):

  • WebGPUShadingLanguageRI/Func.js:

(Func):
(Func.prototype.get semantic):
(Func.prototype.toDeclString):

  • WebGPUShadingLanguageRI/FuncDef.js:

(FuncDef):

  • WebGPUShadingLanguageRI/FuncParameter.js:

(FuncParameter):
(FuncParameter.prototype.get semantic):
(FuncParameter.prototype.toString):

  • WebGPUShadingLanguageRI/Intrinsics.js:
  • WebGPUShadingLanguageRI/LateChecker.js:

(LateChecker.prototype.visitReferenceType):
(LateChecker):
(LateChecker.prototype._checkShaderType): Deleted.
(LateChecker.prototype.visitFuncDef): Deleted.

  • WebGPUShadingLanguageRI/NativeFunc.js:

(NativeFunc):

  • WebGPUShadingLanguageRI/Parse.js:

(parseParameter):
(parseFuncDecl):
(parseFuncDef):
(parseStageInOutSemantic):
(parseResourceSemantic):
(parseSpecializationConstantSemantic):
(parseBuiltInSemantic):
(parseField):
(parseNativeFunc):

  • WebGPUShadingLanguageRI/ProgramWithUnnecessaryThingsRemoved.js:

(programWithUnnecessaryThingsRemoved):

  • WebGPUShadingLanguageRI/ResourceSemantic.js: Added.

(ResourceSemantic):
(ResourceSemantic.prototype.get resourceMode):
(ResourceSemantic.prototype.get index):
(ResourceSemantic.prototype.get space):
(ResourceSemantic.prototype.isAcceptableType):
(ResourceSemantic.prototype.isAcceptableForShaderType):
(ResourceSemantic.prototype.toString):

  • WebGPUShadingLanguageRI/Rewriter.js:

(Rewriter.prototype.visitFuncParameter):
(Rewriter.prototype.visitField):
(Rewriter.prototype.visitBuiltInSemantic):
(Rewriter.prototype.visitResourceSemantic):
(Rewriter.prototype.visitStageInOutSemantic):
(Rewriter.prototype.visitSpecializationConstantSemantic):
(Rewriter):

  • WebGPUShadingLanguageRI/SPIRV.html:
  • WebGPUShadingLanguageRI/Semantic.js: Added.

(Semantic):
(Semantic.prototype.get origin):
(Semantic.prototype.equalToOtherSemantic.Comparer.prototype.visitBuiltInSemantic):
(Semantic.prototype.equalToOtherSemantic.Comparer.prototype.visitResourceSemantic):
(Semantic.prototype.equalToOtherSemantic.Comparer.prototype.visitStageInOutSemantic):
(Semantic.prototype.equalToOtherSemantic.Comparer.prototype.visitSpecializationConstantSemantic):
(Semantic.prototype.equalToOtherSemantic.Comparer):
(Semantic.prototype.equalToOtherSemantic):

  • WebGPUShadingLanguageRI/SpecializationConstantSemantic.js: Copied from Tools/WebGPUShadingLanguageRI/Field.js.

(SpecializationConstantSemantic):
(SpecializationConstantSemantic.prototype.isAcceptableType):
(SpecializationConstantSemantic.prototype.isAcceptableForShaderType):
(SpecializationConstantSemantic.prototype.toString):

  • WebGPUShadingLanguageRI/StageInOutSemantic.js: Copied from Tools/WebGPUShadingLanguageRI/FuncDef.js.

(StageInOutSemantic):
(StageInOutSemantic.prototype.get index):
(StageInOutSemantic.prototype.isAcceptableType):
(StageInOutSemantic.prototype.isAcceptableForShaderType):
(StageInOutSemantic.prototype.toString):

  • WebGPUShadingLanguageRI/StatementCloner.js:

(StatementCloner.prototype.visitNativeFunc):

  • WebGPUShadingLanguageRI/SynthesizeArrayOperatorLength.js:

(synthesizeArrayOperatorLength):

  • WebGPUShadingLanguageRI/SynthesizeCopyConstructorOperator.js:

(synthesizeCopyConstructorOperator):

  • WebGPUShadingLanguageRI/SynthesizeDefaultConstructorOperator.js:

(synthesizeDefaultConstructorOperator):

  • WebGPUShadingLanguageRI/SynthesizeEnumFunctions.js:

(synthesizeEnumFunctions):

  • WebGPUShadingLanguageRI/SynthesizeStructAccessors.js:

(setupAnder):
(synthesizeStructAccessorsForStructType):

  • WebGPUShadingLanguageRI/Test.html:
  • WebGPUShadingLanguageRI/Test.js:

(tests.shaderTypes):

  • WebGPUShadingLanguageRI/Visitor.js:

(Visitor.prototype.visitFunc):
(Visitor.prototype.visitFuncParameter):
(Visitor.prototype.visitField):
(Visitor.prototype.visitBuiltInSemantic):
(Visitor.prototype.visitResourceSemantic):
(Visitor.prototype.visitStageInOutSemantic):
(Visitor.prototype.visitSpecializationConstantSemantic):
(Visitor):

  • WebGPUShadingLanguageRI/index.html:
2:06 PM Changeset in webkit [236474] by achristensen@apple.com
  • 4 edits in trunk/Source

Allow for suffixes to com.apple.WebKit.WebContent
https://bugs.webkit.org/show_bug.cgi?id=189972

Reviewed by Chris Dumez.

Source/bmalloc:

  • bmalloc/ProcessCheck.mm:

(bmalloc::gigacageEnabledForProcess):

Source/WebCore:

  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::isInWebProcess):

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

REGRESSION: (r235948) Layout Test compositing/backing/backing-store-attachment-fill-forwards-animation.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189598#c0

Unreviewed test gardening.

  • platform/ios/TestExpectations: Mark test as flaky.
  • platform/mac-wk2/TestExpectations: Ditto.
1:50 PM Changeset in webkit [236472] by commit-queue@webkit.org
  • 2 edits
    47 adds in trunk/Tools

[WHLSL] Test suite for Metal code generation
https://bugs.webkit.org/show_bug.cgi?id=187738

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-25
Reviewed by Myles C. Maxfield.

This patch adds an Xcode project that contains a Cocoa app that can be
used for running WHLSL shaders on the GPU. It also contains an Xcode
test suite that runs all of the tests in Test.js on the GPU.

  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/.gitignore: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/AppDelegate.h: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/AppDelegate.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Assets.xcassets/AppIcon.appiconset/Contents.json: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Assets.xcassets/Contents.json: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Base.lproj/Main.storyboard: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/CompileResult.h: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/CompileResult.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Compiler.h: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Compiler.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/CustomMetalView.h: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/CustomMetalView.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Demo shaders/Default.whlsl: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Demo shaders/Julia.whlsl: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Demo shaders/Mandelbrot.whlsl: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Info.plist: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/OffscreenRenderer.h: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/OffscreenRenderer.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/OnscreenRenderer.h: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/OnscreenRenderer.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/Renderer.h: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/Renderer/Renderer.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestCallArgument.h: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestCallArgument.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestDescription.h: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestDescription.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestFamily.h: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestFamily.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestFamilyRunner.h: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/TestFamilyRunner.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/ViewController.h: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/ViewController.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/WHLSL.entitlements: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/_SharedMetal.txt: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/Core/main.m: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL Tests.xcodeproj/project.pbxproj: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL ToyTests/Info.plist: Added.
  • WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL ToyTests/WHLSL_ToyTests.m: Added.
  • WebGPUShadingLanguageRI/Test.js:

(tests.lotsOfLocalVariables):

12:41 PM Changeset in webkit [236471] by Chris Dumez
  • 6 edits in trunk/Source/WebKit

UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it
https://bugs.webkit.org/show_bug.cgi?id=189927

Reviewed by Alex Christensen.

UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it
in order to avoid deadlocks. This is not an issue currently because the WebProcess does process
incoming sync IPC when waiting for a sync IPC reply. However, we plan to change this in the future
in order to avoid bugs caused by re-entering WebCore at unsafe times.

The reason the UIProcess previously did not do out of order sync IPC process was to avoid processing
a synchronous policy decision IPC for a frameID it did not know about yet, due to the DidCreateMainFrame /
DidCreateSubframe IPC messages being asynchronous. To address this issue, the decidePolicyForNavigationActionSync
IPC handler now calls didCreateMainFrame() / didCreateSubframe() as needed if it does not know about
the frame yet. Note that synchronous policy decisions are rare and are currently only needed by initial
about:blank and fragment navigations.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didCreateMainFrame):
(WebKit::WebPageProxy::didCreateSubframe):
(WebKit::WebPageProxy::decidePolicyForNavigationActionAsync):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNavigationActionSync):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeConnection):

12:34 PM Changeset in webkit [236470] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

Unreviewed build fix after r236455
https://bugs.webkit.org/show_bug.cgi?id=189121

  • WebGPUShadingLanguageRI/Test.js:

(tests.shaderStages):

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

Web Inspector: Stricter block syntax in generated ObjC protocol interfaces
https://bugs.webkit.org/show_bug.cgi?id=189962
<rdar://problem/44648287>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-09-25
Reviewed by Brian Burg.

  • inspector/scripts/codegen/generate_objc_header.py:

(ObjCHeaderGenerator._callback_block_for_command):
If there are no return parameters include "void" in the block signature.

  • inspector/scripts/tests/all/expected/definitions-with-mac-platform.json-result:
  • inspector/scripts/tests/generic/expected/domain-availability.json-result:
  • inspector/scripts/tests/generic/expected/domains-with-varying-command-sizes.json-result:
  • inspector/scripts/tests/generic/expected/generate-domains-with-feature-guards.json-result:
  • inspector/scripts/tests/generic/expected/worker-supported-domains.json-result:
  • inspector/scripts/tests/mac/expected/definitions-with-mac-platform.json-result:

Rebaseline test results.

11:59 AM Changeset in webkit [236468] by Wenson Hsieh
  • 7 edits
    2 copies
    1 add in trunk/Source/WebCore

[iOS] Fix the open source iOS 12 build after r236445
https://bugs.webkit.org/show_bug.cgi?id=189953

Reviewed by Alex Christensen.

Source/WebCore:

Remove soft-linking macros from several sources in WebCore, and instead import UIKitSoftLink from PAL. This
allows different WebCore sources to soft-link UIKit (and its classes and symbols) without reimplementing
WebCore::UIKitLibrary.

  • editing/cocoa/FontAttributesCocoa.mm:
  • editing/cocoa/FontShadowCocoa.mm:

(WebCore::FontShadow::createShadow const):

  • platform/graphics/cocoa/ColorCocoa.mm:

(WebCore::platformColor):

  • platform/ios/PlatformScreenIOS.mm:

(WebCore::screenIsMonochrome):
(WebCore::screenHasInvertedColors):
(WebCore::screenSize):
(WebCore::availableScreenSize):
(WebCore::screenScaleFactor):

Source/WebCore/PAL:

Introduce a single UIKit soft-linking header in PAL.

  • PAL.xcodeproj/project.pbxproj:
  • pal/ios/UIKitSoftLink.h: Copied from Source/WebCore/platform/graphics/cocoa/ColorCocoa.mm.
  • pal/ios/UIKitSoftLink.mm: Copied from Source/WebCore/platform/graphics/cocoa/ColorCocoa.mm.
11:55 AM Changeset in webkit [236467] by commit-queue@webkit.org
  • 1 edit
    1 add in trunk/LayoutTests/imported/w3c

Import WPT content hint tests
https://bugs.webkit.org/show_bug.cgi?id=189854

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-09-25
Reviewed by Youenn Fablet.

  • web-platform-tests/mst-content-hint/idlharness.window-expected.txt: Added.
11:41 AM Changeset in webkit [236466] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[WPE][GTK][WebRTC] Fixup VP8 encoding support
https://bugs.webkit.org/show_bug.cgi?id=189921

Previous leak fixing commit introduced a regression in
the way the encoded buffer were prepared in the default
GStreamerVideoEncoder::Fragmentize implementation (when
encoding with VP8 basically).

+ Fix a build warning in the decoder.
+ Fix some wrong object members namings.
+ Properly move the caps reference when setting restriction caps.
+ Do not raise a GStreamer error when GStreamerVideoEncoder::OnEncodedImage

fails - this might be a network issue and other encoders do not consider that
fatal.

+ Use GstMappedBuffer where appropriate.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-09-25
Reviewed by Philippe Normand.

  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:
  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerVideoEncoder::InitEncode):
(WebCore::GStreamerVideoEncoder::newSampleCallback):
(WebCore::GStreamerVideoEncoder::Fragmentize):
(WebCore::GStreamerVideoEncoder::SetRestrictionCaps):

11:37 AM Changeset in webkit [236465] by eric.carlson@apple.com
  • 9 edits in trunk

[MediaStream] Update constraints supported by getDisplayMedia
https://bugs.webkit.org/show_bug.cgi?id=189930

Reviewed by Youenn Fablet.

Source/WebCore:

No new tests, updated http/tests/media/media-stream/get-display-media-prompt.html.

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::getDisplayMedia const): Ignore audio constraints.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::hasInvalidGetDisplayMediaConstraint): Check for invalid constraints.
(WebCore::UserMediaRequest::start): Check for invalid constraints.
(WebCore::UserMediaRequest::deny): Support new error.

  • Modules/mediastream/UserMediaRequest.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::validateRequestConstraints):

LayoutTests:

  • http/tests/media/media-stream/get-display-media-prompt-expected.txt:
  • http/tests/media/media-stream/get-display-media-prompt.html:
11:31 AM Changeset in webkit [236464] by Chris Dumez
  • 10 edits in trunk/Source/WebKit

Extending the lifetime of a NetworkProcessProxy / StorageProcessProxy may cause it to have a stale WebProcessPool pointer
https://bugs.webkit.org/show_bug.cgi?id=189851
<rdar://problem/44696263>

Reviewed by Alex Christensen.

Extending the lifetime of a NetworkProcessProxy / StorageProcessProxy may cause it to have a stale WebProcessPool pointer:

  • NetworkProcessProxy::m_processPool
  • StorageProcessProxy::m_processPool

Those data members are C++ references because it is expected that the WebProcessPool owns the NetworkProcessProxy and
StorageProcessProxy. However, since NetworkProcessProxy / StorageProcessProxy are refcounted, it has happened that code
extends the lifetime of those past their process pool, leading to stale prrocess pool usage. The fix for these crashes
so far as been to ref the WebProcessPool instead of the NetworkProcessProxy / StorageProcessProxy. However, it is very
tempting for people to simply ref the NetworkProcessProxy / StorageProcessProxy given that they are refcounted.
For this reason, this patch updates NetworkProcessProxy / StorageProcessProxy so that they are no longer RefCounted
and so that the WebProcessPool truly owns them via std::unique_ptr<>.

  • UIProcess/ChildProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::networkProcessCrashed):
(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::create): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:

(WebKit::NetworkProcessProxy::throttler): Deleted.
(WebKit::NetworkProcessProxy::processPool): Deleted.

  • UIProcess/Plugins/PluginProcessProxy.h:

(WebKit::PluginProcessProxy::pluginProcessAttributes const): Deleted.
(WebKit::PluginProcessProxy::pluginProcessToken const): Deleted.
(WebKit::PluginProcessProxy::isValid const): Deleted.

  • UIProcess/Storage/StorageProcessProxy.cpp:

(WebKit::StorageProcessProxy::create): Deleted.

  • UIProcess/Storage/StorageProcessProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore):
(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.h:
10:36 AM Changeset in webkit [236463] by achristensen@apple.com
  • 21 edits in trunk/Source/WebKit

NetworkLoad::didReceiveResponse should pass its completion handler to its client
https://bugs.webkit.org/show_bug.cgi?id=188701

Reviewed by Michael Catanzaro.

Right now we have a confusing enum ShouldContinueDidReceiveResponse and a complicated flow
that involves many objects and implicitly using NetworkLoad's destructor as part of the
loading flow. This makes the responsibilities of the objects clear.

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::didReceiveResponse):

  • NetworkProcess/Downloads/PendingDownload.h:
  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::didReceiveResponse):
(WebKit::NetworkCORSPreflightChecker::didReceiveResponseNetworkSession): Deleted.

  • NetworkProcess/NetworkCORSPreflightChecker.h:
  • NetworkProcess/NetworkDataTask.cpp:

(WebKit::NetworkDataTask::didReceiveResponse):

  • NetworkProcess/NetworkDataTask.h:
  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::~NetworkLoad):
(WebKit::NetworkLoad::convertTaskToDownload):
(WebKit::NetworkLoad::didReceiveResponse):
(WebKit::NetworkLoad::notifyDidReceiveResponse):
(WebKit::NetworkLoad::continueDidReceiveResponse): Deleted.
(WebKit::NetworkLoad::didReceiveResponseNetworkSession): Deleted.

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::~NetworkResourceLoader):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::didFinishWithRedirectResponse):
(WebKit::NetworkResourceLoader::continueDidReceiveResponse):

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::didReceiveResponse):
(WebKit::PingLoad::didReceiveResponseNetworkSession): Deleted.

  • NetworkProcess/PingLoad.h:
  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::didReceiveResponse):

  • NetworkProcess/PreconnectTask.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/capture/NetworkDataTaskReplay.cpp:

(WebKit::NetworkCapture::NetworkDataTaskReplay::didReceiveResponse):

10:19 AM Changeset in webkit [236462] by calvaris@igalia.com
  • 3 edits in trunk/Source/WebCore

[EME] Fix variable name that should have gone in r236317
https://bugs.webkit.org/show_bug.cgi?id=189944

Reviewed by Jer Noble.

m_cdmInstanceClientWeakPtrFactory becomes
m_cdmInstanceSessionClientWeakPtrFactory as its type changes to
CDMInstanceSessionClient.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::MediaKeySession):

  • Modules/encryptedmedia/MediaKeySession.h:
10:14 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
9:57 AM Changeset in webkit [236461] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

[resource-timing] imported/w3c/web-platform-tests/resource-timing/resource_timing.worker.html times out on WK1
https://bugs.webkit.org/show_bug.cgi?id=189908

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations: Mark test as a failure since it is hitting a WPT harness timeout.
  • platform/mac/TestExpectations: Remove expectation in favor of a mac-wk1 specific one.
8:56 AM Changeset in webkit [236460] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Unreviewed, correct a typo in a bug URL.

  • platform/mac/TestExpectations:
8:49 AM Changeset in webkit [236459] by Simon Fraser
  • 5 edits in trunk/Source/WebCore

Clean up code around RenderLayer's "has accelerated scrolling" functions
https://bugs.webkit.org/show_bug.cgi?id=189932

Reviewed by Zalan Bujtas.

RenderLayer had:

bool hasAcceleratedTouchScrolling()
bool hasTouchScrollableOverflow()
bool usesAcceleratedScrolling()
bool usesCompositedScrolling()
bool usesAsyncScrolling()

which are hard to keep in your head. Removed usesAcceleratedScrolling() since it just returns hasTouchScrollableOverflow().
Renamed hasAcceleratedTouchScrolling() to canUseAcceleratedTouchScrolling() to indicate that it just looks at style,
not whether layout has given the layer scrollable overflow yet. Tidy up some #ifdefs.

usesCompositedScrolling() and usesAsyncScrolling() are ScrollableArea overrides, and
look at backing layers, so require that compositing has run already. Note this in comments.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::canUseAcceleratedTouchScrolling const):
(WebCore::RenderLayer::hasTouchScrollableOverflow const):
(WebCore::RenderLayer::handleTouchEvent):
(WebCore::RenderLayer::usesAsyncScrolling const):
(WebCore::RenderLayer::showsOverflowControls const):
(WebCore::RenderLayer::calculateClipRects const):
(WebCore::RenderLayer::hasAcceleratedTouchScrolling const): Deleted.
(WebCore::RenderLayer::usesAcceleratedScrolling const): Deleted.

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
(WebCore::RenderLayerBacking::updateConfiguration):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::useCoordinatedScrollingForLayer const):
(WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling const):

8:45 AM Changeset in webkit [236458] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, update bug number of http/tests/misc/blob-size.html crash on Windows

  • platform/win/TestExpectations:
7:18 AM Changeset in webkit [236457] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235536 - Speculative build fix for WPE after r235531.

  • platform/graphics/filters/PointLightSource.cpp:

Add missing include.

7:18 AM Changeset in webkit [236456] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236391 - [ARM] Building FELightingNEON.cpp fails due to missing lightVector member
https://bugs.webkit.org/show_bug.cgi?id=189890

Reviewed by Darin Adler.

No new tests needed.

  • platform/graphics/cpu/arm/filters/FELightingNEON.h:

(WebCore::FELighting::platformApplyNeon): Adapt to new layout of "struct PaintingData" after r225122.

7:17 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
2:07 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)

Sep 24, 2018:

11:36 PM Changeset in webkit [236455] by mmaxfield@apple.com
  • 14 edits
    1 copy in trunk/Tools

[WHLSL] Not all functions should be able to run in all shader stages
https://bugs.webkit.org/show_bug.cgi?id=189121

Reviewed by Filip Pizlo.

ddx() and ddy() can only run in fragment shaders, and the barrier functions can only run in compute shaders.
ddx_coarse() & friends are currently implemented as just calling ddx(), so we only need to modify those functions
if/when we make them native.

The texture sampling functions that use implicit derivatives can run in any shader stage - they just use a LOD of

  1. Therefore, those functions are unchanged.
  • WebGPUShadingLanguageRI/All.js:
  • WebGPUShadingLanguageRI/Intrinsics.js:
  • WebGPUShadingLanguageRI/LateChecker.js:

(LateChecker.prototype._checkShaderType):

  • WebGPUShadingLanguageRI/NativeFunc.js:

(NativeFunc):
(NativeFunc.prototype.get stage):
(NativeFunc.prototype.toDeclString):

  • WebGPUShadingLanguageRI/Parse.js:

(parseFuncDecl):
(parseNativeFunc):
(parseNative):

  • WebGPUShadingLanguageRI/Prepare.js:

(let.prepare):

  • WebGPUShadingLanguageRI/SPIRV.html:
  • WebGPUShadingLanguageRI/StandardLibrary.js:

(let.standardLibrary):

  • WebGPUShadingLanguageRI/StatementCloner.js:

(StatementCloner.prototype.visitNativeFunc):

  • WebGPUShadingLanguageRI/Test.html:
  • WebGPUShadingLanguageRI/Test.js:

(tests.shaderStages):

  • WebGPUShadingLanguageRI/WSyntaxError.js:

(WSyntaxError.prototype.toString):
(WSyntaxError):

  • WebGPUShadingLanguageRI/index.html:
10:12 PM Changeset in webkit [236454] by Dewei Zhu
  • 8 edits in trunk/Websites/perf.webkit.org

Apache can return a corrupt manifest file while ManifestGenerator::store is running
https://bugs.webkit.org/show_bug.cgi?id=189822

Reviewed by Ryosuke Niwa.

Updating a file on performance dashboard should be transactional between php and apache.
Otherwise, partial content may be served.

  • public/api/measurement-set.php: Adapted invocation of 'generate_json_date_with_elapsed_time_if_needed'.
  • public/api/runs.php: Adapted invocation of 'generate_json_date_with_elapsed_time_if_needed'.
  • public/include/db.php: Make creating file transactionaly by taking advantage of

'move/rename' operation is atomic in OS.
Added logic to avoid overwriting file if all content except specified filed are identical.

  • public/include/json-header.php: Added a helper function that added 'status' but does not

convert content to json.

  • public/include/manifest-generator.php: Adapted invocation of 'generate_json_date_with_elapsed_time_if_needed'.
  • public/shared/statistics.js: Removed unnecessary logging.

(Statistics.new.sampleMeanAndVarianceFromMultipleSamples):

  • server-tests/api-manifest-tests.js: Updated one unit test.
9:21 PM Changeset in webkit [236453] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Mark two tests as flakey.

  • platform/mac/TestExpectations:
9:15 PM Changeset in webkit [236452] by commit-queue@webkit.org
  • 8 edits
    1 add in trunk/Tools

[WHLSL] Implement trap statements in Metal code generation
https://bugs.webkit.org/show_bug.cgi?id=189615

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-24
Reviewed by Myles C. Maxfield.

Each function called by an entry point now receives an additional
boolean pointer parameter, which is set to false if the function traps.
After each function call (to a non-native function) this trap parameter
is checked. The behavior of the interpreter has also been updated so
that a function entry point catches the trap and instead returns zero,
matching the behavior of compiled code.

  • WebGPUShadingLanguageRI/Evaluator.js: Adds a new flag to allow the

test suite to check for traps and also returns zero from entry points
whose invocation trapped.

  • WebGPUShadingLanguageRI/Metal/MSLBackend.js: Pass program to function

declarations.

  • WebGPUShadingLanguageRI/Metal/MSLCodegenAll.js: Update dependencies.
  • WebGPUShadingLanguageRI/Metal/MSLFunctionDeclaration.js: Add program

property.

  • WebGPUShadingLanguageRI/Metal/MSLFunctionDefinition.js: Ditto.
  • WebGPUShadingLanguageRI/Metal/MSLInsertTrapParameter.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLStatementEmitter.js: Conforms to the

new trapping behavior.

  • WebGPUShadingLanguageRI/Test.js: Update tests that trap.
8:33 PM Changeset in webkit [236451] by commit-queue@webkit.org
  • 1 edit
    2 deletes in trunk/Source/JavaScriptCore

Remove AUTHORS and THANKS files which are stale
https://bugs.webkit.org/show_bug.cgi?id=189941

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-09-24
Reviewed by Darin Adler.

Included mentions below so their names are still in ChangeLogs.

  • AUTHORS: Removed.

Harri Porten (porten@kde.org) and Peter Kelly (pmk@post.com).
These authors remain mentioned in copyrights in source files.

  • THANKS: Removed.

Richard Moore <rich@kde.org> - for filling the Math object with some life
Daegeun Lee <realking@mizi.com> - for pointing out some bugs and providing much code for the String and Date object.
Marco Pinelli <pinmc@libero.it> - for his patches
Christian Kirsch <ck@held.mind.de> - for his contribution to the Date object

8:05 PM Changeset in webkit [236450] by Fujii Hironori
  • 36 edits in trunk/Source

Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
https://bugs.webkit.org/show_bug.cgi?id=189733

Reviewed by Michael Catanzaro.

Source/bmalloc:

  • bmalloc/BCompiler.h:

Source/JavaScriptCore:

  • assembler/ARM64Assembler.h:
  • assembler/ARMAssembler.h:

(JSC::ARMAssembler::cacheFlush):

  • assembler/MacroAssemblerARM.cpp:

(JSC::isVFPPresent):

  • assembler/MacroAssemblerARM64.cpp:
  • assembler/MacroAssemblerARMv7.cpp:
  • assembler/MacroAssemblerMIPS.cpp:
  • assembler/MacroAssemblerX86Common.cpp:
  • heap/HeapCell.cpp:
  • heap/HeapCell.h:
  • jit/HostCallReturnValue.h:
  • jit/JIT.h:
  • jit/JITOperations.cpp:
  • jit/ThunkGenerators.cpp:
  • runtime/ArrayConventions.cpp:

(JSC::clearArrayMemset):

  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::digitDiv):

Source/WebCore:

No new tests (No behavior change).

  • platform/graphics/cpu/arm/filters/FELightingNEON.cpp:
  • platform/graphics/cpu/arm/filters/FELightingNEON.h:
  • platform/graphics/filters/FELighting.cpp:

(WebCore::FELighting::platformApply):

  • platform/graphics/filters/FELighting.h:

Source/WTF:

Clang for Windows build enables WTF_COMPILER_CLANG and
WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
least at the moment, it is not feasible to define
WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.

To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
to WTF_COMPILER_GCC_COMPATIBLE.

As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
Clang for Windows builds.

  • wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
  • wtf/Assertions.h: Ditto.
  • wtf/Atomics.h: Ditto.
  • wtf/CheckedArithmetic.h: Ditto.
  • wtf/FastMalloc.h: Ditto.
  • wtf/MathExtras.h: Ditto.
  • wtf/Platform.h: Ditto.
  • wtf/StdLibExtras.h: Ditto.
  • wtf/Vector.h: Ditto.
  • wtf/text/ASCIIFastPath.h: Ditto.
wtf/Compiler.h: Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC)
COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.
6:16 PM Changeset in webkit [236449] by commit-queue@webkit.org
  • 6 edits in trunk/Tools

[WHLSL] It shouldn’t be possible to use ternary expressions as l-values
https://bugs.webkit.org/show_bug.cgi?id=189290

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-24
Reviewed by Myles C. Maxfield.

It is no longer possible for a ternary expression to be treated as an
l-value. This patch adds several test cases to verify that this is the
case.

  • WebGPUShadingLanguageRI/Checker.js:

(Checker.prototype.visitTernaryExpression): No longer check isLValue.

  • WebGPUShadingLanguageRI/NormalUsePropertyResolver:

(NormalUsePropertyResolver.visitTernaryExpression): Deleted.

  • WebGPUShadingLanguageRI/Rewriter.js:

(Rewriter.prototype.visitTernaryExpression): No longer copy isLValue.

  • WebGPUShadingLanguageRI/TernaryExpression.js:

(TernaryExpression):
(TernaryExpression.prototype.get elseExpression):
(TernaryExpression.prototype.get isLValue): Deleted.
(TernaryExpression.prototype.set isLValue): Deleted.

  • WebGPUShadingLanguageRI/Test.js:

(tests.ternaryExpression): Add checks for failure if a failure is used
as an l-value.
(ternaryExpressionIsLValue.node.TernaryExpressionVisitor.prototype.visitTernaryExpression): Deleted.
(ternaryExpressionIsLValue.node.TernaryExpressionVisitor): Deleted.
(tests.ternaryExpressionIsLValue): Deleted.

6:13 PM Changeset in webkit [236448] by wilander@apple.com
  • 10 edits
    2 adds in trunk

Cap lifetime of persistent cookies created client-side through document.cookie
https://bugs.webkit.org/show_bug.cgi?id=189933
<rdar://problem/44741888>

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/cookies/capped-lifetime-for-cookie-set-in-js.html

As pointed out in https://github.com/mikewest/http-state-tokens:

1) Cookies are available to JavaScript by default via document.cookie, which
enables a smooth upgrade from one-time XSS to theft of persistent credentials
and also makes cookies available to Spectre-like attacks on memory.

2) Though the HttpOnly attribute was introduced well over a decade ago, only
~8.31% of Set-Cookie operations use it today (stats from Chrome). We need
developer incentives to put proper protections in place.

3) The median (uncompressed) Cookie request header is 409 bytes, while the 90th
percentile is 1,589 bytes, the 95th 2,549 bytes, the 99th 4,601 bytes, and
~0.1% of Cookie headers are over 10kB (stats from Chrome). This is bad for load
performance.

In addition to this, third-party scripts running in first-party contexts can
read user data through document.cookie and even store cross-site tracking data
in them.

Authentication cookies should be HttpOnly and thus not be affected by
restrictions to document.cookie. Cookies that persist for a long time should
be Secure, HttpOnly, and SameSite to provide good security and privacy.

By capping the lifetime of persistent cookies set through document.cookie we
embark on a journey towards better cookie management on the web.

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::filterCookies):

Now caps the life time of persistent cookies to one week (seven days).

  • testing/Internals.cpp:

(WebCore::Internals::getCookies const):

New test function to get to cookie meta data such as expiry.

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Skipped the new test by default since the behavior change is for
Cocoa platforms only.

  • http/tests/cookies/capped-lifetime-for-cookie-set-in-js-expected.txt: Added.
  • http/tests/cookies/capped-lifetime-for-cookie-set-in-js.html: Added.
  • http/tests/cookies/resources/cookie-utilities.js:
  • platform/ios/TestExpectations:

Marked the new test as [ Pass ].

  • platform/mac-wk2/TestExpectations:

Marked the new test as [ Pass ].

5:40 PM Changeset in webkit [236447] by Simon Fraser
  • 17 edits
    2 adds
    30 deletes in trunk

LayoutTests/imported/w3c:
Remove filterRes parameter from SVG filters
https://bugs.webkit.org/show_bug.cgi?id=129565
<rdar://problem/44714340>

Reviewed by Dean Jackson.

Remove support for the "filterRes" attribute on SVG filters. It's marked as
deprecated in https://drafts.fxtf.org/filter-effects/#element-attrdef-filter-filterres
and no longer supported by Chrome or Firefox.

  • web-platform-tests/html/syntax/parsing/html5lib_tests11-expected.txt: Rebaseline

Source/WebCore:
Remove filterRes parameter from SVG filters
https://bugs.webkit.org/show_bug.cgi?id=129565
<rdar://problem/44714340>

Reviewed by Dean Jackson.

Remove support for the "filterRes" attribute on SVG filters. It's marked as
deprecated in https://drafts.fxtf.org/filter-effects/#element-attrdef-filter-filterres
and no longer supported by Chrome or Firefox.

Removed existing filterRes tests, added new test checking that it has no effect.

Tests: svg/filters/filterRes-is-noop.svg

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::applyResource):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::animatableAttributeForName):

  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::registerAttributes):
(WebCore::SVGFilterElement::parseAttribute):
(WebCore::SVGFilterElement::filterResXIdentifier): Deleted.
(WebCore::SVGFilterElement::filterResYIdentifier): Deleted.
(WebCore::SVGFilterElement::setFilterRes): Deleted.

  • svg/SVGFilterElement.h:
  • svg/SVGFilterElement.idl:
  • svg/svgattrs.in:

LayoutTests:
Remove filterRes parameter from filters
https://bugs.webkit.org/show_bug.cgi?id=129565
<rdar://problem/44714340>

Reviewed by Dean Jackson.

Remove support for the "filterRes" attribute on SVG filters. It's marked as
deprecated in https://drafts.fxtf.org/filter-effects/#element-attrdef-filter-filterres
and no longer supported by Chrome or Firefox.

Removed existing filterRes tests, added new test checking that it has no effect.

  • html5lib/resources/tests11.dat: Edited to remove filterRes. This seems to have been superseded by

imported/w3c/web-platform-tests/html/syntax/parsing/html5lib_tests11.html

  • platform/gtk/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.png: Removed.
  • platform/gtk/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.png: Removed.
  • platform/gtk/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.png: Removed.
  • platform/gtk/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.png: Removed.
  • platform/gtk/svg/filters/filterRes-expected.png: Removed.
  • platform/gtk/svg/filters/filterRes1-expected.png: Removed.
  • platform/gtk/svg/filters/filterRes3-expected.png: Removed.
  • platform/mac/svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.txt: Removed.
  • platform/mac/svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr-expected.png: Removed.
  • platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.png: Removed.
  • platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.png: Removed.
  • platform/mac/svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.png: Removed.
  • platform/mac/svg/filters/filterRes-expected.png: Removed.
  • platform/mac/svg/filters/filterRes1-expected.png: Removed.
  • platform/mac/svg/filters/filterRes2-expected.png: Removed.
  • platform/mac/svg/filters/filterRes3-expected.png: Removed.
  • svg/W3C-SVG-1.1-SE/svgdom-over-01-f-expected.txt:
  • svg/W3C-SVG-1.1-SE/svgdom-over-01-f.svg:
  • svg/dom/SVGAnimatedInteger-expected.txt:
  • svg/dom/SVGAnimatedInteger.html: Change to use feConvolveMatrix orderX.
  • svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call-expected.txt: Removed.
  • svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call.html: Removed.
  • svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop-expected.txt: Removed.
  • svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop.html: Removed.
  • svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop-expected.txt: Removed.
  • svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop.html: Removed.
  • svg/filters/filterRes-is-noop-expected.svg: Added.
  • svg/filters/filterRes-is-noop.svg: Added.
  • svg/filters/filterRes.svg: Removed.
  • svg/filters/filterRes1-expected.txt: Removed.
  • svg/filters/filterRes1.svg: Removed.
  • svg/filters/filterRes2-expected.png: Removed.
  • svg/filters/filterRes2-expected.txt: Removed.
  • svg/filters/filterRes2.svg: Removed.
  • svg/filters/filterRes3-expected.txt: Removed.
  • svg/filters/filterRes3.svg: Removed.
5:28 PM Changeset in webkit [236446] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Don't cause a crash even when some IDL attribute is missing CEReactions
https://bugs.webkit.org/show_bug.cgi?id=189937

Reviewed by Simon Fraser.

Replaced release assertions in ElementQueue::add and ElementQueue::invokeAll by debug assertions
since a missing CEReactions resulting in a crash is a terrible user experience.

Also made the iteration in invokeAll safe when more elements were added to m_elements.

No new tests since we would still hit debug assertions, and this behavior should only come up
when some IDL attribute is erroneously missing CEReactions.

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueue::ElementQueue::add):
(WebCore::CustomElementReactionQueue::ElementQueue::invokeAll):

5:17 PM Changeset in webkit [236445] by Wenson Hsieh
  • 18 edits
    6 adds in trunk/Source

Refactor Editor::fontAttributesForSelectionStart to be platform-agnostic
https://bugs.webkit.org/show_bug.cgi?id=189918
Work towards <rdar://problem/44648705>

Reviewed by Tim Horton.

Source/WebCore:

Refactors the functionality in Editor::fontAttributesForSelectionStart to not be Cocoa-only. Rename this to
fontAttributesAtSelectionStart (to be consistent with EditingStyle::styleAtSelectionStart) and move it from
EditorCocoa.mm to Editor.cpp; instead of creating and populating an NSDictionary with font attribute
information, create and populate a new FontAttributes struct that contains the same information. Cocoa clients
in WebKitLegacy may then create an NSDictionary as needed from the FontAttributes.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/Editor.cpp:

(WebCore::Editor::platformFontAttributesAtSelectionStart const):

Add a hook to allow platforms to supply additional information in FontAttributes. On Cocoa, this adds a UIFont
or NSFont to FontAttributes; otherwise, this is a no-op.

(WebCore::Editor::fontAttributesAtSelectionStart const):

  • editing/Editor.h:
  • editing/FontAttributeChanges.cpp:

(WebCore::cssValueListForShadow):

  • editing/FontAttributeChanges.h:

(): Deleted.
(WebCore::FontShadow::encode const): Deleted.
(WebCore::FontShadow::decode): Deleted.

  • editing/FontAttributes.h: Added.

Introduce a new struct that contains font attribute information. May be converted into an NSDictionary for use
by Cocoa clients in WebKitLegacy and WebKit. In a future patch, this will become serializable over IPC for use
in WebKit2.

  • editing/FontShadow.h: Added.

Move FontShadow out into a separate header file, included in FontAttributeChanges.h and FontAttributes.h.

(WebCore::FontShadow::encode const):
(WebCore::FontShadow::decode):

  • editing/cocoa/EditorCocoa.mm:

Add a helper function to convert a WebCore::Color to either UIColor on iOS or NSColor when AppKit is being
used.

(WebCore::Editor::platformFontAttributesAtSelectionStart const):
(WebCore::Editor::getTextDecorationAttributesRespectingTypingStyle const): Deleted.

Remove a helper function that was only used to compute text decoration attributes in
fontAttributesForSelectionStart.

(WebCore::Editor::fontAttributesForSelectionStart const): Deleted.

  • editing/cocoa/FontAttributesCocoa.mm: Added.

(WebCore::FontAttributes::createDictionary const):

  • editing/cocoa/FontShadowCocoa.mm: Added.

(WebCore::FontShadow::createShadow const):

  • editing/cocoa/HTMLConverter.mm:

(_webKitBundle):
(HTMLConverter::_colorForElement):
(_platformColor): Deleted.

Adopt platformColor().

  • platform/graphics/cocoa/ColorCocoa.h: Added.
  • platform/graphics/cocoa/ColorCocoa.mm: Added.

(WebCore::platformColor):

  • platform/graphics/metal/GPURenderPassDescriptorMetal.mm:

Build fix due to changes in unified sources.

  • platform/mac/WebCoreNSFontManagerExtras.mm:

(WebCore::computedFontAttributeChanges):

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

More build fixes due to changes in unified sources.

Source/WebCore/PAL:

Add +_disambiguated_due_to_CIImage_colorWithCGColor: as a UIColor SPI definition. Also, import
UIColor_Private.h directly when the Apple internal SDK is used.

  • pal/spi/ios/UIKitSPI.h:

Source/WebKitLegacy/mac:

Replace call sites of fontAttributesForSelectionStart() to fontAttributesAtSelectionStart().createDictionary().

  • WebView/WebHTMLView.mm:

(-[WebHTMLView _selectionStartFontAttributesAsRTF]):
(-[WebHTMLView _updateFontPanel]):

  • WebView/WebView.mm:

(-[WebView typingAttributes]):

5:05 PM Changeset in webkit [236444] by commit-queue@webkit.org
  • 4 edits
    39 adds in trunk/LayoutTests

Import WPT tests for css custom properties api
https://bugs.webkit.org/show_bug.cgi?id=189764

Patch by Justin Michaud <Justin Michaud> on 2018-09-24
Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • web-platform-tests/css/css-properties-values-api/META.yml: Added.
  • web-platform-tests/css/css-properties-values-api/idlharness-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/idlharness.html: Added.
  • web-platform-tests/css/css-properties-values-api/property-cascade-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/property-cascade.html: Added.
  • web-platform-tests/css/css-properties-values-api/register-property-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/register-property-syntax-parsing.html: Added.
  • web-platform-tests/css/css-properties-values-api/register-property.html: Added.
  • web-platform-tests/css/css-properties-values-api/registered-properties-inheritance-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/registered-properties-inheritance.html: Added.
  • web-platform-tests/css/css-properties-values-api/registered-property-computation-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/registered-property-computation.html: Added.
  • web-platform-tests/css/css-properties-values-api/registered-property-cssom-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/registered-property-cssom.html: Added.
  • web-platform-tests/css/css-properties-values-api/registered-property-initial-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/registered-property-initial.html: Added.
  • web-platform-tests/css/css-properties-values-api/support/alt/alt.css: Added.

(#target):

  • web-platform-tests/css/css-properties-values-api/support/alt/alt.js: Added.

(reg_url):

  • web-platform-tests/css/css-properties-values-api/support/alt/w3c-import.log: Added.
  • web-platform-tests/css/css-properties-values-api/support/main/main.css: Added.

(#target):

  • web-platform-tests/css/css-properties-values-api/support/main/main.js: Added.

(reg_url):

  • web-platform-tests/css/css-properties-values-api/support/main/main.utf16be.css: Added.
  • web-platform-tests/css/css-properties-values-api/support/main/w3c-import.log: Added.
  • web-platform-tests/css/css-properties-values-api/typedom.tentative-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/typedom.tentative.html: Added.
  • web-platform-tests/css/css-properties-values-api/unit-cycles-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/unit-cycles.html: Added.
  • web-platform-tests/css/css-properties-values-api/url-resolution-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/url-resolution.html: Added.
  • web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-cycles-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-cycles.html: Added.
  • web-platform-tests/css/css-properties-values-api/var-reference-registered-properties-expected.txt: Added.
  • web-platform-tests/css/css-properties-values-api/var-reference-registered-properties.html: Added.
  • web-platform-tests/css/css-properties-values-api/w3c-import.log: Added.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
4:48 PM Changeset in webkit [236443] by jer.noble@apple.com
  • 5 edits in trunk

SharedBuffer should have an equality test
https://bugs.webkit.org/show_bug.cgi?id=189919

Reviewed by Alex Christensen.

Source/WebCore:

Test: TestWebKitAPI SharedBuffer.isEqualTo.

  • platform/SharedBuffer.cpp:
  • platform/SharedBuffer.h:

(WebCore::operator==):
(WebCore::operator!=):

Tools:

  • TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:

(TestWebKitAPI::TEST_F):

4:38 PM Changeset in webkit [236442] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Skipped accessibility/mac/focus-setting-selection-syncronizing-not-clearing.html on High Sierra+.
https://bugs.webkit.org/show_bug.cgi?id=189094

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:11 PM Changeset in webkit [236441] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Build fix.
https://bugs.webkit.org/show_bug.cgi?id=189929

  • WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h:
4:11 PM Changeset in webkit [236440] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

imported/w3c/web-platform-tests/shadow-dom/slotchange.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=167652

Reviewed by Saam Barati.

Source/WebCore:

The bug appears to be caused by the JS wrappers of slot elements getting prematurely collected.
Deployed GCReachableRef introduced in r236376 to fix the bug.

Test: fast/shadow-dom/signal-slot-list-retains-js-wrappers.html

  • dom/MutationObserver.cpp:

(WebCore::signalSlotList):
(WebCore::MutationObserver::enqueueSlotChangeEvent):
(WebCore::MutationObserver::notifyMutationObservers):

LayoutTests:

Added a regression test for signaling a lot of slot elements.

  • fast/shadow-dom/signal-slot-list-retains-js-wrappers-expected.txt: Added.
  • fast/shadow-dom/signal-slot-list-retains-js-wrappers.html: Added.
4:10 PM Changeset in webkit [236439] by rniwa@webkit.org
  • 3 edits
    2 adds in trunk

Release assert when using paper-textarea due to autocorrect IDL attribute missing CEReactions
https://bugs.webkit.org/show_bug.cgi?id=174629
<rdar://problem/33407620>

Reviewed by Simon Fraser.

Source/WebCore:

The bug was caused by autocorrect and autocapitalize IDL attributes missing CEReactions.

Test: fast/custom-elements/autocorrect-autocapitalize-idl-attributes-crash.html

  • html/HTMLElement.idl:

LayoutTests:

Added a regression test for mutating autocorrect and autocapitalize IDL attributes during connected callback.

  • fast/custom-elements/autocorrect-autocapitalize-idl-attributes-crash-expected.txt: Added.
  • fast/custom-elements/autocorrect-autocapitalize-idl-attributes-crash.html: Added.
4:08 PM Changeset in webkit [236438] by achristensen@apple.com
  • 5 edits in trunk

Prepare to replace WKBundleFileHandleCreateWithPath with a version that takes a WKBundlePageRef
https://bugs.webkit.org/show_bug.cgi?id=189929

Reviewed by Andy Estes.

Source/WebKit:

This will be needed for rdar://problem/24576194

  • WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.cpp:

(WKBundleFileHandleCreateWithPathForPage):

  • WebProcess/InjectedBundle/API/c/WKBundleFileHandleRef.h:

Tools:

  • TestWebKitAPI/Tests/WebKit/WKBundleFileHandle_Bundle.cpp:
4:05 PM Changeset in webkit [236437] by sbarati@apple.com
  • 3 edits
    2 adds in trunk

Array.prototype.indexOf fast path needs to ensure the length is still valid after performing effects
https://bugs.webkit.org/show_bug.cgi?id=189922
<rdar://problem/44651275>

Reviewed by Mark Lam.

JSTests:

  • stress/array-indexof-fast-path-effects.js: Added.
  • stress/array-indexof-cached-length.js: Added.

Source/JavaScriptCore:

The implementation was first getting the length to iterate up to,
then getting the starting index. However, getting the starting
index may perform effects. e.g, it could change the length of the
array. This changes it so we verify the length is still valid.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncIndexOf):

4:04 PM Changeset in webkit [236436] by achristensen@apple.com
  • 4 edits
    1 add in trunk/Source/WebKit

Begin deprecating C API
https://bugs.webkit.org/show_bug.cgi?id=189810

Reviewed by Andy Estes.

  • Shared/API/c/WKDeprecated.h: Added.
  • UIProcess/API/C/WKPage.h:
  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(setUpPagePolicyClient):
(-[WKBrowsingContextController setPolicyDelegate:]):

  • WebKit.xcodeproj/project.pbxproj:
4:04 PM Changeset in webkit [236435] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WHLSL] Casting user-created types to themselves should always work
https://bugs.webkit.org/show_bug.cgi?id=189113

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-24
Reviewed by Myles C. Maxfield.

Casting user-defined types to themselves worked already, but we didn't
test it anywhere.

  • WebGPUShadingLanguageRI/Test.js:

(tests.selfCasts):

3:59 PM Changeset in webkit [236434] by Tadeu Zagallo
  • 3 edits in trunk/Source/JavaScriptCore

offlineasm: fix macro scoping
https://bugs.webkit.org/show_bug.cgi?id=189902

Reviewed by Mark Lam.

In the code below, the reference to f in g, which should refer to
the outer macro definition will instead refer to the f argument of the
anonymous macro passed to g. That leads to this code failing to
compile (f expected 0 args but got 1).

`
macro f(x)

move x, t0

end

macro g(fn)

fn(macro () f(42) end)

end

g(macro(f) f() end)
`

  • offlineasm/ast.rb:
  • offlineasm/transform.rb:
3:55 PM Changeset in webkit [236433] by Chris Dumez
  • 4 edits in trunk

No-op document.open() calls should not have any side effects
https://bugs.webkit.org/show_bug.cgi?id=189373
<rdar://problem/44282702>

Reviewed by Geoffrey Garen.

LayoutTests/imported/w3c:

Rebaseline WPT test now that it is passing.

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window-expected.txt:

Source/WebCore:

Update document.open() implementation to match the specification [1] more closely.
In particular, URLs updates should happen much later, at step 11. They were happening
too early and would cause side effects when returning early.

[1] https://html.spec.whatwg.org/multipage/dynamic-markup-insertion.html#document-open-steps

No new tests, rebaselined existing test.

  • dom/Document.cpp:

(WebCore::Document::open):

3:47 PM Changeset in webkit [236432] by dbates@webkit.org
  • 4 edits in trunk/Source/WebCore

Include more headers in IOSurface.mm, PixelBufferResizer.{h, mm}
https://bugs.webkit.org/show_bug.cgi?id=189928

Reviewed by Andy Estes.

Make building IOSurface.mm and PixelBufferResizer.mm deterministic regardless of
which bundle of unified sources they are built in.

  • platform/graphics/cocoa/IOSurface.mm: Include headers HostWindow.h and PlatformScreen.h

since we make use of functionality from these headers.

  • platform/graphics/cv/PixelBufferResizer.h: Include header IntSize.h since

we need the size of an IntSize for m_size.

  • platform/graphics/cv/PixelBufferResizer.mm: Include header Logging.h since

this file makes use of logging facilities. Also substitute #import for #include
while I am here since this file is an Objective-C++ file.

3:40 PM Changeset in webkit [236431] by Basuke Suzuki
  • 2 edits
    11 adds in trunk/LayoutTests

[Curl] Enable http/tests/misc tests.
https://bugs.webkit.org/show_bug.cgi?id=189931

Unreviewed test gardening.

  • platform/wincairo/TestExpectations:
  • platform/wincairo/http/tests/misc/acid2-expected.txt: Added.
  • platform/wincairo/http/tests/misc/acid2-pixel-expected.txt: Added.
  • platform/wincairo/http/tests/misc/error404-expected.txt: Added.
  • platform/wincairo/http/tests/misc/favicon-as-image-expected.txt: Added.
  • platform/wincairo/http/tests/misc/frame-access-during-load-expected.txt: Added.
  • platform/wincairo/http/tests/misc/generated-content-inside-table-expected.txt: Added.
  • platform/wincairo/http/tests/misc/iframe404-expected.txt: Added.
  • platform/wincairo/http/tests/misc/object-embedding-svg-delayed-size-negotiation-2-expected.txt: Added.
  • platform/wincairo/http/tests/misc/object-embedding-svg-delayed-size-negotiation-expected.png: Added.
  • platform/wincairo/http/tests/misc/slow-loading-image-in-pattern-expected.txt: Added.
3:03 PM Changeset in webkit [236430] by Tadeu Zagallo
  • 4 edits in trunk/Source/JavaScriptCore

Add forEach method for iterating CodeBlock's ValueProfiles
https://bugs.webkit.org/show_bug.cgi?id=189897

Reviewed by Mark Lam.

Add method to abstract how we find ValueProfiles in a CodeBlock in
preparation for https://bugs.webkit.org/show_bug.cgi?id=189785, when
ValueProfiles will be stored in the MetadataTable.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::updateAllPredictionsAndCountLiveness):
(JSC::CodeBlock::updateAllValueProfilePredictions):
(JSC::CodeBlock::shouldOptimizeNow):
(JSC::CodeBlock::dumpValueProfiles):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::forEachValueProfile):
(JSC::CodeBlock::numberOfArgumentValueProfiles):
(JSC::CodeBlock::valueProfileForArgument):
(JSC::CodeBlock::numberOfValueProfiles):
(JSC::CodeBlock::valueProfile):
(JSC::CodeBlock::totalNumberOfValueProfiles): Deleted.
(JSC::CodeBlock::getFromAllValueProfiles): Deleted.

  • tools/HeapVerifier.cpp:

(JSC::HeapVerifier::validateJSCell):

2:48 PM Changeset in webkit [236429] by aestes@apple.com
  • 25 edits
    2 deletes in trunk/Source/WebCore

[Payment Request] Events cleanup
https://bugs.webkit.org/show_bug.cgi?id=189925

Reviewed by Simon Fraser.

  1. Constructed MerchantValidationEvents (and ApplePayValidateMerchantEvents) with rvalue

references to validationURLs.

  1. Instead of MerchantValidationEvent and PaymentRequestUpdateEvent having a

RefPtr<PaymentRequest>, downcasted their target to a PaymentRequest. Trusted versions of
these events are always dispatched to a PaymentRequest object.

  1. Defined MerchantValidationEventInit in MerchantValidationEvent.idl instead of having a

separate .idl and .h for this dictionary.

No new tests. No change in behavior.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/applepay/ApplePaySession.cpp:

(WebCore::ApplePaySession::validateMerchant):

  • Modules/applepay/ApplePaySession.h:
  • Modules/applepay/ApplePayValidateMerchantEvent.cpp:

(WebCore::ApplePayValidateMerchantEvent::ApplePayValidateMerchantEvent):

  • Modules/applepay/ApplePayValidateMerchantEvent.h:

(WebCore::ApplePayValidateMerchantEvent::create):

  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::validateMerchant):

  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/PaymentSession.h:
  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::validateMerchant):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
  • Modules/paymentrequest/MerchantValidationEvent.cpp:

(WebCore::MerchantValidationEvent::create):
(WebCore::MerchantValidationEvent::MerchantValidationEvent):
(WebCore::MerchantValidationEvent::complete):

  • Modules/paymentrequest/MerchantValidationEvent.h:
  • Modules/paymentrequest/MerchantValidationEvent.idl:
  • Modules/paymentrequest/MerchantValidationEventInit.h: Removed.
  • Modules/paymentrequest/MerchantValidationEventInit.idl: Removed.
  • Modules/paymentrequest/PaymentMethodChangeEvent.cpp:

(WebCore::PaymentMethodChangeEvent::PaymentMethodChangeEvent):

  • Modules/paymentrequest/PaymentMethodChangeEvent.h:
  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::PaymentRequest::shippingAddressChanged):
(WebCore::PaymentRequest::shippingOptionChanged):
(WebCore::PaymentRequest::paymentMethodChanged):

  • Modules/paymentrequest/PaymentRequest.h:

(isType):

  • Modules/paymentrequest/PaymentRequestUpdateEvent.cpp:

(WebCore::PaymentRequestUpdateEvent::PaymentRequestUpdateEvent):
(WebCore::PaymentRequestUpdateEvent::updateWith):

  • Modules/paymentrequest/PaymentRequestUpdateEvent.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/EventTarget.cpp:

(WebCore::EventTarget::isPaymentRequest const):

  • dom/EventTarget.h:
1:49 PM Changeset in webkit [236428] by Simon Fraser
  • 11 edits
    4 copies
    3 adds in trunk/LayoutTests

Update some test results under compositing/overflow
https://bugs.webkit.org/show_bug.cgi?id=189857

Reviewed by Tim Horton.

Unskip some tests under compositing/overflow, and land new macOS and iOS expectations.

  • compositing/overflow/overflow-auto-with-touch-expected.txt:
  • compositing/overflow/overflow-overlay-with-touch-expected.txt:
  • compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
  • compositing/overflow/scrolling-without-painting-expected.txt:
  • compositing/overflow/textarea-scroll-touch-expected.txt:
  • compositing/overflow/updating-scrolling-content-expected.txt:
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/ios/compositing/overflow/nested-scrolling-expected.txt:
  • platform/ios/compositing/overflow/overflow-auto-with-touch-expected.txt: Copied from LayoutTests/compositing/overflow/overflow-auto-with-touch-expected.txt.
  • platform/ios/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt: Copied from LayoutTests/compositing/overflow/overflow-auto-with-touch-expected.txt.
  • platform/ios/compositing/overflow/overflow-overlay-with-touch-expected.txt: Copied from LayoutTests/compositing/overflow/overflow-overlay-with-touch-expected.txt.
  • platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt: Copied from LayoutTests/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt.
  • platform/ios/compositing/overflow/scrolling-without-painting-expected.txt: Copied from LayoutTests/compositing/overflow/scrolling-without-painting-expected.txt.
  • platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt: Copied from LayoutTests/compositing/overflow/textarea-scroll-touch-expected.txt.
  • platform/ios/compositing/overflow/updating-scrolling-content-expected.txt: Copied from LayoutTests/compositing/overflow/updating-scrolling-content-expected.txt.
  • platform/mac/TestExpectations:
  • platform/mac/compositing/overflow/composited-scrolling-paint-phases-expected.txt:
1:47 PM Changeset in webkit [236427] by dbates@webkit.org
  • 4 edits in trunk/Source/WebCore

Separate Mac and iOS implementation of windowsKeyCodeForCharCode()
https://bugs.webkit.org/show_bug.cgi?id=189898

Reviewed by Tim Horton.

Extract the Mac and iOS implementations into a windowsKeyCodeForCharCode() defined in file
KeyEventMac.mm and file KeyEventIOS, respectively.

Mac and iOS have significant differences in how they represent function keys. It is not worthwhile
to share windowsKeyCodeForCharCode() between them given these differences. On Mac function keys
are represented by a char code in the range 0xF700-0xF8FF. On iOS these keys may not have a unique
char code (e.g. F1 = 0x10 = F10) and must be identified either by special string (e.g. UIKeyInputUpArrow)
or key code.

  • platform/cocoa/KeyEventCocoa.mm:

(WebCore::windowsKeyCodeForCharCode): Deleted.

  • platform/ios/KeyEventIOS.mm:

(WebCore::windowsKeyCodeForCharCode): Added. Remove the handling of NS*FunctionKey char codes
as function keys are not represented using them as of iOS 12.

  • platform/mac/KeyEventMac.mm:

(WebCore::windowsKeyCodeForCharCode): Added.

1:40 PM Changeset in webkit [236426] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Continued test gardening of media-fragment/ tests for ios 12
https://bugs.webkit.org/show_bug.cgi?id=187557

Unreviewed test gardening

  • platform/ios/TestExpectations:
1:31 PM Changeset in webkit [236425] by Chris Dumez
  • 10 edits in trunk/Source/WebKit

Unreviewed, rolling out r236368.

Caused WebKit.NetworkProcessCrashWithPendingConnection API
test to crash (Bug 189926)

Reverted changeset:

"Extending the lifetime of a NetworkProcessProxy /
StorageProcessProxy may cause it to have a stale
WebProcessPool pointer"
https://bugs.webkit.org/show_bug.cgi?id=189851
https://trac.webkit.org/changeset/236368

1:19 PM Changeset in webkit [236424] by Simon Fraser
  • 28 edits
    7 deletes in trunk

Remove the old "AcceleratedCompositingForOverflowScroll" code
https://bugs.webkit.org/show_bug.cgi?id=189870

Reviewed by Zalan Bujtas.

The "AcceleratedCompositingForOverflowScroll" code was added to allow overflow:scroll to use
composited scrolling if an overflow:scroll could be made a stacking context without affecting
z-order. We need overflow:scroll to be accelerated always, so a different approach is needed.
Remove this old code (unused by any platform?) to make working on new code easier.
Source/WebCore:

  • page/Settings.yaml:
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::setHasVisibleContent):
(WebCore::RenderLayer::updateDescendantDependentFlags):
(WebCore::RenderLayer::dirty3DTransformedDescendantStatus):
(WebCore::RenderLayer::stackingContext const):
(WebCore::compositingContainer):
(WebCore::RenderLayer::addChild):
(WebCore::RenderLayer::removeChild):
(WebCore::RenderLayer::hasAcceleratedTouchScrolling const):
(WebCore::RenderLayer::usesAcceleratedScrolling const):
(WebCore::adjustedScrollDelta):
(WebCore::RenderLayer::updateCompositingLayersAfterScroll):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
(WebCore::RenderLayer::enclosingFragmentedFlowAncestor const):
(WebCore::RenderLayer::calculateClipRects const):
(WebCore::RenderLayer::acceleratedCompositingForOverflowScrollEnabled const): Deleted.
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder): Deleted.
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrderRecursive): Deleted.
(WebCore::RenderLayer::positionNewlyCreatedOverflowControls): Deleted.
(WebCore::RenderLayer::canBeStackingContainer const): Deleted.
(WebCore::RenderLayer::stackingContainer const): Deleted.
(WebCore::RenderLayer::needsCompositedScrolling const): Deleted.
(WebCore::RenderLayer::updateNeedsCompositedScrolling): Deleted.

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::clearZOrderLists):
(WebCore::RenderLayer::updateZOrderLists):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateAfterLayout):
(WebCore::RenderLayerBacking::computeParentGraphicsLayerRect const):
(WebCore::RenderLayerBacking::updateGeometry):
(WebCore::RenderLayerBacking::requiresHorizontalScrollbarLayer const):
(WebCore::RenderLayerBacking::requiresVerticalScrollbarLayer const):
(WebCore::RenderLayerBacking::requiresScrollCornerLayer const):
(WebCore::RenderLayerBacking::compositingOpacity const):
(WebCore::traverseVisibleNonCompositedDescendantLayers):
(WebCore::RenderLayerBacking::hasUnpositionedOverflowControlsLayers const): Deleted.

  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollCoordinatedLayersAfterFlush):
(WebCore::RenderLayerCompositor::updateCustomLayersAfterFlush):
(WebCore::styleChangeRequiresLayerRebuild):
(WebCore::RenderLayerCompositor::enclosingNonStackingClippingLayer const):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::requiresCompositingLayer const):
(WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
(WebCore::RenderLayerCompositor::reasonsForCompositing const):
(WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility const):
(WebCore::RenderLayerCompositor::isViewportConstrainedFixedOrStickyLayer const):
(WebCore::RenderLayerCompositor::requiresCompositingForPosition const):
(WebCore::RenderLayerCompositor::requiresCompositingForOverflowScrolling const):
(WebCore::RenderLayerCompositor::requiresCompositingForScrolling const): Deleted.

  • rendering/RenderLayerCompositor.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetAcceleratedCompositingForOverflowScrollEnabled): Deleted.
(WKPreferencesGetAcceleratedCompositingForOverflowScrollEnabled): Deleted.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:

LayoutTests:

Keep some of the tests; they will be useful later.

  • compositing/overflow/automatically-opt-into-composited-scrolling-expected.txt: Removed.
  • compositing/overflow/automatically-opt-into-composited-scrolling.html: Removed.
  • compositing/overflow/clipping-ancestor-with-accelerated-scrolling-ancestor.html:
  • compositing/overflow/composited-scrolling-creates-a-stacking-container.html: Removed.
  • compositing/overflow/composited-scrolling-paint-phases.html:
  • compositing/overflow/do-not-paint-outline-into-composited-scrolling-contents.html:
  • compositing/overflow/dynamic-composited-scrolling-status.html:
  • compositing/overflow/iframe-inside-overflow-clipping.html:
  • compositing/overflow/nested-scrolling.html:
  • compositing/overflow/overflow-clip-with-accelerated-scrolling-ancestor.html:
  • compositing/overflow/paint-neg-z-order-descendants-into-scrolling-contents-layer.html:
  • compositing/overflow/scrolling-content-clip-to-viewport.html:
  • compositing/overflow/scrolling-without-painting.html:
  • compositing/overflow/textarea-scroll-touch.html:
  • compositing/overflow/updating-scrolling-content.html:
  • compositing/rtl/rtl-overflow-scrolling.html:
  • platform/gtk/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: Removed.
  • platform/ios-simulator-wk2/TestExpectations:
  • platform/ios-wk1/TestExpectations:
  • platform/ios/compositing/overflow/automatically-opt-into-composited-scrolling-expected.txt: Removed.
  • platform/ios/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: Removed.
  • platform/mac/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt: Removed.
1:15 PM Changeset in webkit [236423] by youenn@apple.com
  • 11 edits in trunk/Source

Enable conversion of libwebrtc internal frames as CVPixelBuffer
https://bugs.webkit.org/show_bug.cgi?id=189892

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Renamed encoder/decoder factory creation routine.
Make pixelBufferFromFrame take a function to create a CVPixelBuffer
if the frame does not wrap one.
Initialize the CVPixelBuffer with libwebrtc internal frame.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

(webrtc::createWebKitEncoderFactory):
(webrtc::createWebKitDecoderFactory):
(webrtc::CopyVideoFrameToPixelBuffer):
(webrtc::pixelBufferFromFrame):
(webrtc::createVideoToolboxEncoderFactory): Deleted.
(webrtc::createVideoToolboxDecoderFactory): Deleted.

Source/WebCore:

Make sure to handle the case of libwebrtc frames that are not backed by CVPixelBuffer.
No observable change of behavior.

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):
Update according renamed methods.

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

(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame):
In case of libwebrtc frame that are not backed by CVPixelBuffer, we create
a CVPixelBuffer from a pixel buffer pool.
This CVPixelBuffer is then filled as part of webrtc::pixelBufferFromFrame.

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.mm:

(WebCore::RealtimeOutgoingVideoSourceCocoa::convertToYUV):
Make sure to use preferred pixel buffer format.

1:12 PM Changeset in webkit [236422] by eric.carlson@apple.com
  • 8 edits in trunk/Source/WebCore

[MediaStream] Add mock window capture source
https://bugs.webkit.org/show_bug.cgi?id=189843
<rdar://problem/44687445>

Reviewed by Youenn Fablet.

No new tests, the API is disabled and it isn't possible to test yet.

  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::processNewFrame): Remove an extra blank line.

  • platform/mock/MockMediaDevice.h:

(WebCore::MockDisplayProperties::encode const): Get rid of defaultFrameRate, add type.
(WebCore::MockDisplayProperties::decode): Ditto.
(WebCore::MockMediaDevice::type const):

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::defaultDevices): Add mock window devices.
(WebCore::MockRealtimeMediaSourceCenter::audioDevices): Cleanup.
(WebCore::MockRealtimeMediaSourceCenter::videoDevices): Cleanup.
(WebCore::MockRealtimeMediaSourceCenter::displayDevices): New.

  • platform/mock/MockRealtimeVideoSource.cpp:

(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource): Set default size on displays.
(WebCore::MockRealtimeVideoSource::supportsSizeAndFrameRate): Call RealtimeVideoSource for
mock camera, base class for device.
(WebCore::MockRealtimeVideoSource::setSizeAndFrameRate): Ditto.
(WebCore::MockRealtimeVideoSource::generatePresets): ASSERT if called as a camera.
(WebCore::MockRealtimeVideoSource::capabilities): updateCapabilities is only appropriate for cameras.
(WebCore::MockRealtimeVideoSource::settings): Camera and Device are different surface types.
(WebCore::MockRealtimeVideoSource::drawText): Render name, not ID.
(WebCore::MockRealtimeVideoSource::mockDisplayType const):

  • platform/mock/MockRealtimeVideoSource.h:

(WebCore::MockRealtimeVideoSource::mockDisplay const):
(WebCore::MockRealtimeVideoSource::mockScreen const):
(WebCore::MockRealtimeVideoSource::mockWindow const):

1:12 PM Changeset in webkit [236421] by sbarati@apple.com
  • 3 edits
    1 add in trunk

ArgumentsEliminationPhase should snip basic blocks after proven OSR exits
https://bugs.webkit.org/show_bug.cgi?id=189682
<rdar://problem/43557315>

Reviewed by Mark Lam.

JSTests:

  • stress/arguments-elimination-will-generate-edge-without-result.js: Added.

(foo):

Source/JavaScriptCore:

Otherwise, if we have code like this:
`
a: Arguments
b: GetButterfly(@a)
c: ForceExit
d: GetArrayLength(@a, @b)
`
it will get transformed into this invalid DFG IR:
`
a: PhantomArguments
b: Check(@a)
c: ForceExit
d: GetArrayLength(@a, @b)
`

And we will fail DFG validation since @b does not have a result.

The fix is to just remove all nodes after the ForceExit and plant an
Unreachable after it. So the above code program will now turn into this:
`
a: PhantomArguments
b: Check(@a)
c: ForceExit
e: Unreachable
`

  • dfg/DFGArgumentsEliminationPhase.cpp:
12:44 PM Changeset in webkit [236420] by Chris Dumez
  • 4 edits
    2 adds in trunk

Do not do early processing of incoming sync IPC unless we're waiting for a sync IPC reply
https://bugs.webkit.org/show_bug.cgi?id=186941

Reviewed by Alex Christensen.

Source/WebKit:

The comment was claiming we were processing incoming sync messages while waiting for a
sync IPC reply to prevent deadlocks. However, the code was failing to check if we were
waiting for a sync IPC reply. As a result, incoming sync IPC messages would get processed
early no matter what, jumping the line. This was the source of the flakiness in the blob
tests since the IPC to register the blob in the network process was async and the follow-up
IPC to ask the network process for the blob size was sync. The sync message to get the blob
size would jump the line and get processed before the async message to register the blob.
As a result, the network process would not know about the blob yet and return size 0. Of
course, this could happen if the network process was sending sync IPC at the time. However,
the network process never sends any sync IPC and therefore, should never process incoming
IPC messages out of order.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::processIncomingMessage):

LayoutTests:

Add layout test coverage.

  • http/tests/misc/blob-size-expected.txt: Added.
  • http/tests/misc/blob-size.html: Added.
12:42 PM Changeset in webkit [236419] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, skip imported/w3c/web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/contentType.window.html

This newly imported test flakily times out.

12:20 PM Changeset in webkit [236418] by zandobersek@gmail.com
  • 2 edits
    64 adds in trunk/LayoutTests

Unreviewed WPE gardening. Managing failing WebGL tests in the 2.0.0
version of the Khronos conformance suite.

  • platform/wpe/TestExpectations: Skip the GLSL test cases of which one

is DoS-ing AMD GPUs on Linux. This needs more research to isolate the
culprit and properly fix the underlying problem.

  • platform/wpe/webgl/2.0.0/: 44 test baselines added.
12:13 PM Changeset in webkit [236417] by dbates@webkit.org
  • 12 edits in trunk

[iOS] Key code is 0 for many hardware keyboard keys
https://bugs.webkit.org/show_bug.cgi?id=189604

Reviewed by Wenson Hsieh.

Source/WebCore:

Based off a patch by Jeremy Jones.

Add iOS-specific implementation of windowsKeyCodeForKeyCode() to map an iOS virtual key code to
the corresponding Windows virtual key code. Only hardware keyboard-generated events have a
virtual key code. For software-generated keyboard events we do what we do now and compute the
Windows virtual key code from the character string associated with the event.

When a WebEvent is instantiated with a non-zero iOS virtual key code (keyCode) we now always
convert it to its corresponding Windows virtual key code without considering the specified
charactersIgnoringModifiers character string. Currently we prefer computing the key code from
charactersIgnoringModifiers regardless of whether a non-zero iOS virtual key code was given.
However this causes special keys, including function keys (e.g. F10) to be misidentified because
keyboard layouts in iOS (at least iOS 12) map such special keys to ASCII control characters (e.g.
F10 maps to ASCII control character "data link escape" = 0x10) as opposed to special 16-bit
integral constants as we do on Mac (e.g. F10 maps to NSF10FunctionKey = 0xF70D on Mac). I will
look to fix up the computation of a Windows virtual key code from a char code on iOS in a
subsequent commit(s). For now, computing the Windows virtual key code directly from the iOS
virtual key code specified to the WebEvent constructor avoids the misidentification using
an ANSI US keyboard layout.

  • platform/cocoa/KeyEventCocoa.mm:

(WebCore::windowsKeyCodeForKeyCode): Deleted; moved to KeyEventMac.mm as this mapping is specific to Mac.

  • platform/ios/KeyEventIOS.mm:

(WebCore::windowsKeyCodeForKeyCode): Added.

  • platform/ios/WebEvent.mm:

(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:keyCode:isTabKey:characterSet:]): Address the NOTE comment and compute the Windows virtual key code from
the iOS virtual key code when we have one. Also inline the value of an unncessary local variable.
(-[WebEvent initWithKeyEventType:timeStamp:characters:charactersIgnoringModifiers:modifiers:isRepeating:withFlags:withInputManagerHint:keyCode:isTabKey:]): Ditto.

  • platform/mac/KeyEventMac.mm:

(WebCore::windowsKeyCodeForKeyCode): Moved from KeyEventCocoa.mm. Updated code to make use of WTF_ARRAY_LENGTH() instead
of hardcoding the upper bound of the lookup table.

Source/WebKit:

For a hardware keyboard-generated event (an event with a non-nill event._hidEvent) pass
the key code for the event. Otherwise, do what we do now and pass 0 as the event is likely
a software keyboard-generated event.

  • Platform/spi/ios/UIKitSPI.h: Add some more SPI.
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView handleKeyEvent:]):

LayoutTests:

Update existing test and test result and add a new test to ensure we dispatch DOM keydown
and DOM keyup events dispatched for special keys.

  • fast/events/ios/keydown-keyup-in-non-editable-content-expected.txt: Update expected result.
  • fast/events/ios/keydown-keyup-in-non-editable-content.html: Remove logic to test arrow keys

as these are tested in test keydown-keyup-special-keys-in-non-editable-element.html. Also
update manual instructions to use <kbd> to format keyboard keys.

  • fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt:
11:20 AM Changeset in webkit [236416] by Simon Fraser
  • 5 edits
    2 adds in trunk

feMorphology filter in CSS doesn't update when element moves
https://bugs.webkit.org/show_bug.cgi?id=189895

Reviewed by Dean Jackson.

Source/WebCore:

SourceAlpha needs to be invalidated from clearIntermediateResults(),
so get it from the SVGFilterBuilder (which always creates one) and store in
a member variable.

Test: css3/filters/invalidate-sourceAlpha.html

  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::buildReferenceFilter):
(WebCore::CSSFilter::clearIntermediateResults):

  • rendering/CSSFilter.h:
  • svg/graphics/filters/SVGFilterBuilder.h:

LayoutTests:

Test that moves a box inside a filtered div. Masking is necessary to work
around bugs in feMorphology invalidation (webkit.org/b/189896).

  • css3/filters/invalidate-sourceAlpha-expected.html: Added.
  • css3/filters/invalidate-sourceAlpha.html: Added.
11:20 AM Changeset in webkit [236415] by Simon Fraser
  • 4 edits
    2 adds in trunk

CSS reference filter with feDisplacementMap shows buffer corruption on Retina displays
https://bugs.webkit.org/show_bug.cgi?id=188486
<rdar://problem/43189750>

Reviewed by Dean Jackson.
Source/WebCore:

The paintSize needs to be scaled by filterScale on Retina displays.

Test: css3/filters/hidpi-feDisplacementMap.html

  • platform/graphics/filters/FEDisplacementMap.cpp:

(WebCore::FEDisplacementMap::platformApplySoftware):

  • platform/graphics/filters/FEDisplacementMap.h:

LayoutTests:

  • css3/filters/hidpi-feDisplacementMap-expected.html: Added.
  • css3/filters/hidpi-feDisplacementMap.html: Added.
11:19 AM Changeset in webkit [236414] by zandobersek@gmail.com
  • 2 edits in trunk/Tools

Unreviewed build fix for Jhbuild-using ports.

  • gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch:

Adjust the patch so it applies cleanly on the 1.14.3 version of the
gst-plugins-good package.

11:10 AM Changeset in webkit [236413] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

ReferenceFilterOperation doesn't need to store the FilterEffect
https://bugs.webkit.org/show_bug.cgi?id=189904

Reviewed by Dean Jackson.

ReferenceFilterOperation doesn't do anything with m_filterEffect so don't store it.

  • platform/graphics/filters/FilterOperation.cpp:

(WebCore::ReferenceFilterOperation::setFilterEffect): Deleted.

  • platform/graphics/filters/FilterOperation.h:

(WebCore::ReferenceFilterOperation::filterEffect const): Deleted.

  • rendering/CSSFilter.cpp:

(WebCore::CSSFilter::build):

11:00 AM Changeset in webkit [236412] by Simon Fraser
  • 3 edits
    2 adds in trunk

Garbled rendering of image when applied feConvolveMatrix to it, on Retina display
https://bugs.webkit.org/show_bug.cgi?id=189748
<rdar://problem/44621494>

Reviewed by Jon Lee.
Source/WebCore:

feConvolveMatrix needs to scale the paintSize by the filter scale (2x on Retina displays),
otherwise parts of the output buffer are uninitialized and the result is incorrect.

Test: css3/filters/hidpi-feConvolveMatrix.html

  • platform/graphics/filters/FEConvolveMatrix.cpp:

(WebCore::FEConvolveMatrix::platformApplySoftware):

LayoutTests:

  • css3/filters/hidpi-feConvolveMatrix-expected.html: Added.
  • css3/filters/hidpi-feConvolveMatrix.html: Added.
10:37 AM Changeset in webkit [236411] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Web Inspector: topContentInset is not accounted for when inspecting a WKWebView and docked to side
https://bugs.webkit.org/show_bug.cgi?id=189859

Reviewed by Joseph Pecoraro.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::inspectedViewFrameDidChange):
Add special cases for inspecting a WKWebView. We already special-case for WKView.

10:35 AM Changeset in webkit [236410] by dino@apple.com
  • 4 edits
    3 adds in trunk

Ensure PointerEvent is not visible when disabled
https://bugs.webkit.org/show_bug.cgi?id=189889
<rdar://problem/44708253>

Reviewed by Eric Carlson.

Source/WebCore:

Test: pointerevents/disabled.html

  • bindings/js/WebCoreBuiltinNames.h: Now that it is enabled at runtime, it needs

a built-in name.

  • dom/PointerEvent.idl: Add EnabledAtRuntime.

LayoutTests:

A test that explicitly disables PointerEvents and checks
that the interface is not visible.

  • pointerevents/disabled-expected.html: Added.
  • pointerevents/disabled.html: Added.
10:26 AM Changeset in webkit [236409] by aboya@igalia.com
  • 4 edits in trunk/Source/WebCore

[MSE][GStreamer] Pull demuxed samples in batches
https://bugs.webkit.org/show_bug.cgi?id=189871

Reviewed by Xabier Rodriguez-Calvar.

After this patch, only the notifications of "new samples available"
(appsink-new-sample bus messages) travel from the streaming thread to
the main thread through the bus and the main thread is the responsible
of pulling as many samples as it can from appsink. Before, the samples
were pulled from appsink in the non-main thread and traveled to the
main thread through the bus one by one.

This reduces drastically the amount of context switches and waiting
time in the streaming thread, resulting in a noticeable performance
improvement.

This fixes stutter while loading YouTube videos.

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::~AppendPipeline):
(WebCore::AppendPipeline::clearPlayerPrivate):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::AppendPipeline::consumeAppSinkAvailableSamples):
(WebCore::AppendPipeline::resetPipeline):
(WebCore::AppendPipeline::handleNewAppsinkSample):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:
10:19 AM Changeset in webkit [236408] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ iOS ] Layout Tests in media/media-fragments/ are flaky - Remved Debug only as tests are flakey on Release.
https://bugs.webkit.org/show_bug.cgi?id=187557

Unreviewed Test Gardening

  • platform/ios/TestExpectations:
10:16 AM Changeset in webkit [236407] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ iOS ] Layout Tests in media/media-fragments/ are flaky
https://bugs.webkit.org/show_bug.cgi?id=187557

Unreviewed Test Gardening

  • platform/ios/TestExpectations:
10:13 AM Changeset in webkit [236406] by Ryan Haddad
  • 2 edits in trunk/Tools

Update flakiness dashboard configuration for iOS 12 queues
https://bugs.webkit.org/show_bug.cgi?id=189688

Reviewed by Alexey Proskuryakov.

  • TestResultServer/static-dashboards/builders.jsonp:
9:55 AM Changeset in webkit [236405] by Chris Dumez
  • 4 edits
    344 adds in trunk/LayoutTests

Import html/webappapis/dynamic-markup-insertion WPT tests
https://bugs.webkit.org/show_bug.cgi?id=189863

Reviewed by Youenn Fablet.

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/document.close-01-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/document.close-01.xhtml: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/closing-the-input-stream/w3c-import.log: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/001-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/001.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/002-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/002.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/003-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/003.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/004-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/004.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/005-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/005.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/005.js: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/006-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/006.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/006.js: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/007-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/007.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/007.js: Added.

(t.step):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/008-1.js: Added.

(t.step):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/008-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/008.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/008.js: Added.

(t.step):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/009-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/009.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/010-1.js: Added.

(t.step):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/010-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/010.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/010.js: Added.

(t.step):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/011-1.js: Added.

(t.step):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/011-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/011.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/011.js: Added.

(t.step):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/012-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/012.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/012.js: Added.

(t.step):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/013-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/013.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/013.js: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/014-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/014.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/015-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/015.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/016-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/016.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/017-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/017.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/018-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/018.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/019-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/019.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/020-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/020.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/021-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/021.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/022-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/022.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/023-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/023.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/024-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/024.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/025-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/025.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/026-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/026.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/027-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/027.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/028-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/028.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/029-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/029.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/030-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/030.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/031-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/031.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/032-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/032.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/033-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/033.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/034-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/034.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/035-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/035.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/036-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/036.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/037-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/037.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/038-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/038.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/039-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/039.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/040-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/040.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/041-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/041.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/042-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/042.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/043-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/043.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/044-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/044.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/045-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/045.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/046-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/046.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/047-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/047.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/048-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/048.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/049-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/049.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/050-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/050.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/051-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/051.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/contentType.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/contentType.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/contentType.window.js: Added.

(string_appeared_here.forEach.val.async_test.t.frame.onload.t.step_func_done):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/document.write-01-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/document.write-01.xhtml: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/document.write-02-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/document.write-02.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/empty.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_001-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_001.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_002-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_002.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_003-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_003.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_004-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_004.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_005-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_005.js: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_006-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_006.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_007-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_007.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_008-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_008.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_009-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_009.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_010-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/iframe_010.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/nested-document-write-1.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/nested-document-write-2.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/nested-document-write-external.js: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/original-id.json: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_001-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_001.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_002-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_002.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_003-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_003.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_004-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_004.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_005-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_005.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_006-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_006.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_007-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_007.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_008-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_008.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_009-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_009.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_010-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_010.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_011-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_011.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_012-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_012.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_013-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/script_013.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/w3c-import.log: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/write-active-document-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-write/write-active-document.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/document.writeln-01-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/document.writeln-01.xhtml: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/document.writeln-02-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/document.writeln-02.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/document.writeln-03-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/document.writeln-03.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/original-id.json: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/document-writeln/w3c-import.log: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/002-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/002.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/004-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/004.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/006-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/006.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/011-1.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/011-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/011.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/012-1.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/012-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/012.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/013-1.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/013-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/013.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/014-1.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/014-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/014.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/015-1.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/015-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/015.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/016-1.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/016-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/016.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-immediate.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-immediate.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-immediate.window.js: Added.

(async_test.t.frame.onload.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-header.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-header.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-header.window.js: Added.

(async_test.t.frame.onload.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-meta.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-meta.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-refresh-multisecond-meta.window.js: Added.

(async_test.t.frame.onload.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-while-navigating.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-while-navigating.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort-while-navigating.window.js: Added.

(async_test.t.frame.onload.t.step_func):
(async_test.t.t.step_timeout):
(async_test.t.t.step_timeout.t.step_func_done):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort.sub.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort.sub.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/abort.sub.window.js: Added.

(async_test.t.frame.onload.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.js: Added.

(async_test.t.window.handlers.afterOpen.t.step_func_done):
(async_test.t.window.handlers.afterOpenAsync.t.step_func_done):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/active.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/active.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/active.window.js: Added.

(assertOpenIsEffective):
(async_test.t.frame.onload.t.step_func):
(async_test.t.xhr.onload.t.step_func_done):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-origin.sub.window.js: Added.

(setEntryToTopLevel):
(async_test.t.t.add_cleanup):
(async_test.t.iframe.onload.t.step_func_done):
(async_test.t.window.onCustomElementReady.t.step_func):
(async_test.t.self.testSynchronousScript.t.step_func):
(string_appeared_here.async_test.t.t.add_cleanup):
(string_appeared_here.async_test.t.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-xml.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-xml.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-xml.window.js: Added.

(async_test.t.t.add_cleanup):
(async_test.t.self.testSynchronousScript.t.step_func_done):
(string_appeared_here.async_test.t.t.add_cleanup):
(string_appeared_here.async_test.t.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-ignore-opens-during-unload.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-ignore-opens-during-unload.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-ignore-opens-during-unload.window.js: Added.

(string_appeared_here.async_test.t.iframe.onload.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-same-origin-domain.sub.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-same-origin-domain.sub.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-same-origin-domain.sub.window.js: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-synchronous-script.window.js: Added.

(async_test.t.self.testSynchronousScript.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-xml.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-xml.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-side-effects-xml.window.js: Added.

(async_test.t.iframe.onload.t.step_func_done):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/beforeunload.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/beforeunload.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/beforeunload.window.js: Added.

(async_test.t.frame.onload.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/custom-element.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/custom-element.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/custom-element.window.js: Added.

(CustomElement):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-01-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-01.xhtml: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-02-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-02.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-03-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-03-frame.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/document.open-03.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/encoding.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/encoding.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/encoding.window.js: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/event-listeners.window.js: Added.

(async_test.t.frame.onload.t.step_func):
(test.t.const.winListener.t.step_func):
(test.t.t.add_cleanup):
(test.t.const.bodyListener.t.step_func):
(async_test.t.xhr.onload.t.step_func_done):
(test.t.t.step_func):
(test.t.thrower.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/history-state.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/history-state.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/history-state.window.js: Added.

(async_test.t.iframe.onload.t.step_func_done):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/history.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/history.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/history.window.js: Added.

(window.onFrameLoaded.t.step_func):
(window.onDocumentOpen.t.step_func_done):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/ignore-opens-during-unload.window.js: Added.

(async_test.t.iframe.onload.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-events.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-events.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-events.window.js: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/mutation-observer.window.js: Added.

(async_test.t.t.add_cleanup):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/no-new-global.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/no-new-global.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/no-new-global.window.js: Added.

(async_test.t.frame.onload.t.step_func_done):
(testIdentity):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/origin-check-in-document-open-basic-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/origin-check-in-document-open-basic.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/origin-check-in-document-open-same-origin-domain.sub-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/origin-check-in-document-open-same-origin-domain.sub.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/quirks.window.js: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/readiness.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/readiness.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/readiness.window.js: Added.

(async_test.t.t.add_cleanup):
(async_test.t.frame.onload.t.step_func_done):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/reload.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/reload.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/reload.window.js: Added.

(window.name.string_appeared_here.async_test.t.t.add_cleanup):
(window.name.string_appeared_here.async_test.t.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/aborted-parser-async-frame.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/aborted-parser-frame.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/bailout-order-custom-element-with-domain-frame.sub.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/bailout-order-synchronous-script-frame.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/bailout-order-synchronous-script-with-domain-frame.sub.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/bailout-order-xml-with-domain-frame.sub.xhtml: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/bailout-order-xml-with-synchronous-script-frame.xhtml: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/document-open-side-effects.js: Added.

(assertDocumentIsReadyForSideEffectsTest):
(assertOpenHasNoSideEffects):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/dummy.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/encoding-frame.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/global-variables-frame.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/history-frame.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/http-refresh.py: Added.

(main):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/meta-refresh.py: Added.

(main):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/page-with-frame.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/set-document-domain.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/slow-png.py: Added.

(main):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/url-frame.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/resources/w3c-import.log: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/tasks.window.js: Added.

(taskTest):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument-plaintext-subframe.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument-plaintext.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument-plaintext.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument-plaintext.window.js: Added.

(string_appeared_here.forEach.type.async_test.t.frame.onload.t.step_func_done):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/type-argument.window.js: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/unload.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/unload.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/unload.window.js: Added.

(async_test.t.frame.onload.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-fragment.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-fragment.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url-fragment.window.js: Added.

(async_test.t.t.add_cleanup):
(async_test.t.self.onhashchange.t.step_func_done):
(async_test.t.const.frame.document.body.appendChild.document.createElement.string_appeared_here.t.add_cleanup):
(async_test.t.window.testDone.t.step_func_done):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window-expected.txt: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window.html: Added.
  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/url.window.js: Added.

(async_test.t.frame.onload.t.step_func):

  • web-platform-tests/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/w3c-import.log: Added.
9:49 AM Changeset in webkit [236404] by aestes@apple.com
  • 2 edits in trunk/LayoutTests

Try to make payment-response-reference-cycle-leak.https.html not be flaky.

Unreviewed.

  • http/tests/paymentrequest/payment-response-reference-cycle-leak.https.html:

Doubled the number of repetitions (from 40 to 80).

9:39 AM Changeset in webkit [236403] by pvollan@apple.com
  • 15 edits in trunk

[WebVTT] Change name of WebVTT region attribute 'height' to 'lines'.
https://bugs.webkit.org/show_bug.cgi?id=189862

Reviewed by Eric Carlson.

Source/WebCore:

The WebVTT region attribute 'height' has been renamed to 'lines', see https://w3c.github.io/webvtt/#region-settings.

No new tests, covered by existing tests.

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::setLines):
(WebCore::VTTRegion::updateParametersFromRegion):
(WebCore::VTTRegion::scanSettingName):
(WebCore::VTTRegion::parseSettingValue):
(WebCore::VTTRegion::prepareRegionDisplayTree):
(WebCore::VTTRegion::setHeight): Deleted.

  • html/track/VTTRegion.h:
  • html/track/VTTRegion.idl:

LayoutTests:

  • media/track/captions-webvtt/captions-regions.vtt:
  • media/track/captions-webvtt/header-regions.vtt:
  • media/track/regions-webvtt/vtt-region-constructor-expected.txt:
  • media/track/regions-webvtt/vtt-region-constructor.html:
  • media/track/regions-webvtt/vtt-region-display-expected.txt:
  • media/track/regions-webvtt/vtt-region-display.html:
  • media/track/regions-webvtt/vtt-region-list-expected.txt:
  • media/track/regions-webvtt/vtt-region-list.html:
  • media/track/regions-webvtt/vtt-region-parser-expected.txt:
  • media/track/regions-webvtt/vtt-region-parser.html:
8:58 AM Changeset in webkit [236402] by yoav@yoav.ws
  • 21 edits
    2 copies
    62 adds
    2 deletes in trunk/LayoutTests

Import WPT resource-timing tests
https://bugs.webkit.org/show_bug.cgi?id=189903

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/resource-timing/META.yml: Added.
  • web-platform-tests/resource-timing/OWNERS: Removed.
  • web-platform-tests/resource-timing/clear_resource_timing_functionality.html: Added.
  • web-platform-tests/resource-timing/clear_resource_timing_functionality-expected.txt: Added.
  • web-platform-tests/resource-timing/idlharness.any.html: Added.
  • web-platform-tests/resource-timing/idlharness.any-expected.txt: Added.
  • web-platform-tests/resource-timing/idlharness.any.js: Added.

(idl_array.catch):

  • web-platform-tests/resource-timing/idlharness.any.worker.html: Added.
  • web-platform-tests/resource-timing/idlharness.any.worker-expected.txt: Added.
  • web-platform-tests/resource-timing/idlharness.html: Removed.
  • web-platform-tests/resource-timing/resource-timing-tojson.html: Added.
  • web-platform-tests/resource-timing/resource-timing-tojson-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_TAO_cross_origin_redirect_chain.html: Added.
  • web-platform-tests/resource-timing/resource_TAO_cross_origin_redirect_chain-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_TAO_match_origin.htm:
  • web-platform-tests/resource-timing/resource_TAO_match_origin-expected.txt: Changed.
  • web-platform-tests/resource-timing/resource_TAO_match_wildcard.htm:
  • web-platform-tests/resource-timing/resource_TAO_match_wildcard-expected.txt: Changed.
  • web-platform-tests/resource-timing/resource_TAO_multi.htm:
  • web-platform-tests/resource-timing/resource_TAO_multi-expected.txt: Changed.
  • web-platform-tests/resource-timing/resource_TAO_multi_wildcard.html: Copied from LayoutTests/imported/w3c/web-platform-tests/resource-timing/resource_TAO_multi.htm.
  • web-platform-tests/resource-timing/resource_TAO_multi_wildcard-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_TAO_null.htm:
  • web-platform-tests/resource-timing/resource_TAO_null-expected.txt: Changed.
  • web-platform-tests/resource-timing/resource_TAO_origin_uppercase.htm:
  • web-platform-tests/resource-timing/resource_TAO_origin_uppercase-expected.txt: Changed.
  • web-platform-tests/resource-timing/resource_TAO_space.htm:
  • web-platform-tests/resource-timing/resource_TAO_space-expected.txt: Changed.
  • web-platform-tests/resource-timing/resource_TAO_wildcard.htm:
  • web-platform-tests/resource-timing/resource_TAO_wildcard-expected.txt: Changed.
  • web-platform-tests/resource-timing/resource_dedicated_worker.html: Added.
  • web-platform-tests/resource-timing/resource_dedicated_worker-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_ignore_data_url.html: Added.
  • web-platform-tests/resource-timing/resource_ignore_data_url-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_ignore_failures.html: Added.
  • web-platform-tests/resource-timing/resource_ignore_failures-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_initiator_types.html: Added.
  • web-platform-tests/resource-timing/resource_initiator_types-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_memory_cached.sub.html: Added.
  • web-platform-tests/resource-timing/resource_memory_cached.sub-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_redirects.html: Added.
  • web-platform-tests/resource-timing/resource_redirects-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_reparenting.html: Added.
  • web-platform-tests/resource-timing/resource_reparenting-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_script_types.html: Added.
  • web-platform-tests/resource-timing/resource_script_types-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_subframe_self_navigation.html: Added.
  • web-platform-tests/resource-timing/resource_subframe_self_navigation-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_timing.worker.html: Added.
  • web-platform-tests/resource-timing/resource_timing.worker-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_timing.worker.js: Added.

(check):
(async_test.t.then):

  • web-platform-tests/resource-timing/resource_timing_TAO_cross_origin_redirect.html: Added.
  • web-platform-tests/resource-timing/resource_timing_TAO_cross_origin_redirect-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_timing_buffer_full_eventually.html: Added.
  • web-platform-tests/resource-timing/resource_timing_buffer_full_eventually-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_timing_buffer_full_when_populate_entries.html: Added.
  • web-platform-tests/resource-timing/resource_timing_buffer_full_when_populate_entries-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_timing_buffer_full_when_shrink_buffer_size.html: Added.
  • web-platform-tests/resource-timing/resource_timing_buffer_full_when_shrink_buffer_size-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_timing_cross_origin_redirect.html: Added.
  • web-platform-tests/resource-timing/resource_timing_cross_origin_redirect-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_timing_cross_origin_redirect_chain.html: Added.
  • web-platform-tests/resource-timing/resource_timing_cross_origin_redirect_chain-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_timing_same_origin_redirect.html: Added.
  • web-platform-tests/resource-timing/resource_timing_same_origin_redirect-expected.txt: Added.
  • web-platform-tests/resource-timing/resource_timing_store_and_clear_during_callback.html: Added.
  • web-platform-tests/resource-timing/resource_timing_store_and_clear_during_callback-expected.txt: Added.
  • web-platform-tests/resource-timing/resources/TAOResponse.py:

(main):

  • web-platform-tests/resource-timing/resources/all_resource_types.htm: Added.
  • web-platform-tests/resource-timing/resources/blank_page_green.htm: Added.
  • web-platform-tests/resource-timing/resources/empty.js: Added.
  • web-platform-tests/resource-timing/resources/empty.py: Added.

(main):

  • web-platform-tests/resource-timing/resources/empty_script.js: Added.
  • web-platform-tests/resource-timing/resources/eventsource.py: Added.

(main):

  • web-platform-tests/resource-timing/resources/green_frame.htm: Added.
  • web-platform-tests/resource-timing/resources/iframe_TAO_multi_wildcard.html: Added.
  • web-platform-tests/resource-timing/resources/multi_redirect.py: Added.

(main):

  • web-platform-tests/resource-timing/resources/nested.css: Added.

(@import "resource_timing_test0.css?id=n1";):
(ol):

  • web-platform-tests/resource-timing/resources/notify_parent.html: Added.
  • web-platform-tests/resource-timing/resources/self_navigation.html: Added.
  • web-platform-tests/resource-timing/resources/w3c-import.log:
  • web-platform-tests/resource-timing/resources/worker_with_images.js: Added.

(checkDone):
(makeRequest.xhr.onreadystatechange):
(makeRequest):

  • web-platform-tests/resource-timing/w3c-import.log:

LayoutTests:

  • TestExpectations:: Added a few failing tests.
  • platform/mac/TestExpectations:: Added a timeout test.
8:53 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
8:47 AM Changeset in webkit [236401] by magomez@igalia.com
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Compositing indicators are not working
https://bugs.webkit.org/show_bug.cgi?id=189915

Reviewed by Žan Doberšek.

Pass the debugBorder and repaintCount parameters to the TextureMapperLayer when required.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::updateSceneState):

8:39 AM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
8:28 AM Changeset in webkit [236400] by aboya@igalia.com
  • 2 edits in trunk/Tools

[GStreamer] Unreviewed build fix.

A GStreamer patch was not applying cleanly on 1.14.3.

  • gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch:
6:31 AM Changeset in webkit [236399] by aboya@igalia.com
  • 5 edits
    1 add in trunk

[MSE][GStreamer] Use no-more-pads event for noticing initialization segments
https://bugs.webkit.org/show_bug.cgi?id=189868

Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

Fixes the following YTTV 2018 tests:
62.VideoDimensionVP9
63.PlaybackStateVP9

This removes the hack that was making supporting multiple tracks in
the same file in MSE impossible.

For WebM, this GStreamer patch is required:
https://bugzilla.gnome.org/show_bug.cgi?id=797187
"matroskademux: Emit no-more-pads after parsing Tracks"

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::AppendPipeline):
(WebCore::AppendPipeline::handleApplicationMessage):
(WebCore::AppendPipeline::demuxerNoMorePads):
(WebCore::AppendPipeline::appsinkCapsChanged):
(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):
(WebCore::AppendPipeline::appendPipelineDemuxerNoMorePadsFromAnyThread):
(WebCore::appendPipelineDemuxerNoMorePads):

  • platform/graphics/gstreamer/mse/AppendPipeline.h:

Tools:

Added patch from https://bugzilla.gnome.org/show_bug.cgi?id=797187

  • gstreamer/jhbuild.modules:
  • gstreamer/patches/gst-plugins-good-0010-matroskademux-Emit-no-more-pads-after-parsing-Tracks.patch: Added.
5:34 AM Changeset in webkit [236398] by aboya@igalia.com
  • 2 edits
    3 adds in trunk/Tools

[MSE][GStreamer] Add patch to jhbuild: matroskademux: Allow Matroska headers to be read more than once
https://bugs.webkit.org/show_bug.cgi?id=185731

Reviewed by Xabier Rodriguez-Calvar.

Upstream bug in GStreamer: https://bugzilla.gnome.org/show_bug.cgi?id=793333

This fixes YTTV 35. AppendMultipleInitOpusAudio (and any other use
case where two WebM initialization segments are appended on a row).

  • gstreamer/jhbuild.modules:
  • gstreamer/patches/gst-plugins-good-0007-matroskademux-Allow-Matroska-headers-to-be-read-more.patch: Added.
  • gstreamer/patches/gst-plugins-good-0008-matroskademux-Refactor-track-parsing-out-from-adding.patch: Added.
  • gstreamer/patches/gst-plugins-good-0009-matroskademux-Parse-successive-Tracks-elements.patch: Added.
4:16 AM Changeset in webkit [236397] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[WPE][GTK][WebRTC] Fix leaks in the libwebrtc Decoder and Encoder
https://bugs.webkit.org/show_bug.cgi?id=189835

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-09-24
Reviewed by Philippe Normand.

  • Rework memory management to avoid leaking encoded frames (basically use the same strategy as other libwebrtc encoder implementation).
  • Plug a GstCaps leak.
  • platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp:
  • platform/mediastream/libwebrtc/GStreamerVideoDecoderFactory.cpp:
  • platform/mediastream/libwebrtc/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerVideoEncoder::InitEncode):
(WebCore::GStreamerVideoEncoder::newSampleCallback):
(WebCore::GStreamerVideoEncoder::Fragmentize):
(WebCore::GStreamerVideoEncoder::SetRestrictionCaps):

3:20 AM Changeset in webkit [236396] by Philippe Normand
  • 5 edits in trunk/Source/WebCore

[GStreamer] Utilities cleanups
https://bugs.webkit.org/show_bug.cgi?id=189699
<rdar://problem/44634143>

Reviewed by Xabier Rodriguez-Calvar.

The GstMappedBuffer now has a move constructor so that it can be easily
reused in the webaudiosrc element. The now-unused corresponding
buffer-mapping utilities are removed from the code-base.

The HTTP source element used to handle a GstBuffer in its private
structure but this is no longer required since data is now pushed
in chunks, see bug #182829.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcLoop):

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::createGstBuffer): Deleted.
(WebCore::createGstBufferForData): Deleted.
(WebCore::getGstBufferDataPointer): Deleted.
(WebCore::mapGstBuffer): Deleted.
(WebCore::unmapGstBuffer): Deleted.

  • platform/graphics/gstreamer/GStreamerCommon.h:

(WebCore::GstMappedBuffer::create): New method returning a
reference to a newly created GstMappedBuffer instance.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcStop): Remove reference to unused GstBuffer.
(CachedResourceStreamingClient::dataReceived): Ditto.

3:16 AM Changeset in webkit [236395] by eocanha@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE][GStreamer] Don't update duration when it was not previously NaN
https://bugs.webkit.org/show_bug.cgi?id=189869

Reviewed by Xabier Rodriguez-Calvar.

This is what the spec mandates. The spec doesn't say anything about
updating duration when it had been previously set, even if the new
init segment says that the duration is growing.

This fixes MSE YTTV 2018 69.MediaSourceDurationVP9.

  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:

(WebCore::AppendPipeline::connectDemuxerSrcPadToAppsink):

Note: See TracTimeline for information about the timeline view.