Timeline



Feb 21, 2021:

9:20 PM Changeset in webkit [273229] by Lauro Moura
  • 2 edits in trunk/Source/JavaScriptCore

Fix warning after r273225
https://bugs.webkit.org/show_bug.cgi?id=222257

Reviewed by Keith Miller.

The UNLIKELY condition raises a warn with "suggest parentheses around

‘&&’ within ‘
’" for the last pair.
  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseUnaryExpression):

7:13 PM Changeset in webkit [273228] by Lauro Moura
  • 8 edits
    1 delete in trunk/LayoutTests

[GLIB] Gardening and updating baselines

Unreviewed test gardening.

  • platform/glib/TestExpectations:
  • platform/glib/webaudio/audioworklet-addModule-failure-expected.txt: Removed.
  • platform/gtk/TestExpectations:
  • platform/wpe/TestExpectations:
  • platform/wpe/fast/text/international/bidi-LDB-2-CSS-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-HTML-expected.txt:
  • platform/wpe/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
  • platform/wpe/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
6:13 PM Changeset in webkit [273227] by Andres Gonzalez
  • 15 edits
    2 adds in trunk

Add [WebAccessibilityObjectWrapper textMarkerRangeForNSRange] to allow clients to efficiently get a TextMarkerRange from an NSRange.
https://bugs.webkit.org/show_bug.cgi?id=222154

Reviewed by Chris Fleizach and Darin Adler.

Source/WebCore:

Test: accessibility/mac/textmarker-range-for-range.html

Clients like VoiceOver often need the ability to convert a text range
into an accessibility TextMarkerRange.
This patch adds [WebAccessibilityObjectWrapper textMarkerRangeForNSRange]
to allow clients to efficiently perform this conversion.
This is the Mac implementation, iOS implementation is pending.

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::allowsTextRanges const):

  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/mac/AXIsolatedObjectMac.mm:

(WebCore::AXIsolatedObject::textMarkerRangeForNSRange const):

  • accessibility/mac/AccessibilityObjectMac.mm:

(WebCore::AccessibilityObject::textMarkerRangeForNSRange const):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper textMarkerRangeForNSRange:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

  • editing/Editing.cpp:

(WebCore::visiblePositionForIndexUsingCharacterIterator):
Only advance the CharacterIterator if not atEnd yet.

Tools:

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::textMarkerRangeForRange):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::textMarkerRangeForRange):

LayoutTests:

  • accessibility/mac/textmarker-range-for-range-expected.txt: Added.
  • accessibility/mac/textmarker-range-for-range.html: Added.
5:04 PM Changeset in webkit [273226] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix CMake build.

  • CMakeLists.txt:
4:41 PM Changeset in webkit [273225] by keith_miller@apple.com
  • 48 edits in trunk

Implement the Top-level await proposal
https://bugs.webkit.org/show_bug.cgi?id=202484

Reviewed by Yusuke Suzuki.

JSTests:

  • test262/config.yaml:

Source/JavaScriptCore:

This patch adds support for the TLA proposal. The bulk of this patch is adding a couple of main parts.

1) converting the AbstractModuleRecord to contain many of same internal fields as JSGenerator so much of the async codegen can be shared.

2) having the link phase of the module loader record whether a module subgraph is async.
3) teaching the module loader that evaluating a module may require more than one vm entry and forwarding the awaited value as well as the resume mode to the VM.

One thing particularly interesting about this patch is that moduleEvaluation now *sometimes* (when a strongly connected subgraph is async) will return a promise. This happened to already be awaited when called from loadAndEvaluateModule (unnecessarily before) but now also needs to be handled by requestImportModule.

No new tests because every test I came up with was subsumed by tests already in test262.

  • API/JSAPIGlobalObject.h:
  • API/JSAPIGlobalObject.mm:

(JSC::JSAPIGlobalObject::moduleLoaderEvaluate):

(globalPrivate.newRegistryEntry):
(link):
(async requestImportModule):
(moduleEvaluation): Deleted.
(requestImportModule): Deleted.

  • bytecode/BytecodeGeneratorification.cpp:

(JSC::BytecodeGeneratorification::run):
(JSC::performGeneratorification):

  • bytecode/BytecodeIntrinsicRegistry.cpp:

(JSC::BytecodeIntrinsicRegistry::BytecodeIntrinsicRegistry):

  • bytecode/BytecodeIntrinsicRegistry.h:
  • bytecode/BytecodeList.rb:
  • bytecode/BytecodeUseDef.cpp:

(JSC::computeUsesForBytecodeIndexImpl):

  • bytecode/UnlinkedModuleProgramCodeBlock.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitWillLeaveCallFrameDebugHook):
(JSC::BytecodeGenerator::emitGenericEnumeration):
(JSC::BytecodeGenerator::emitYieldPoint):
(JSC::BytecodeGenerator::emitYield):
(JSC::BytecodeGenerator::emitDelegateYield):
(JSC::BytecodeGenerator::emitGeneratorStateChange):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::generatorStateRegister):
(JSC::BytecodeGenerator::generatorValueRegister):
(JSC::BytecodeGenerator::generatorResumeModeRegister):
(JSC::BytecodeGenerator::generatorFrameRegister):

  • bytecompiler/NodesCodegen.cpp:

(JSC::abstractModuleRecordInternalFieldIndex):
(JSC::BytecodeIntrinsicNode::emit_intrinsic_getAbstractModuleRecordInternalField):
(JSC::FunctionNode::emitBytecode):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::executeModuleProgram):

  • interpreter/Interpreter.h:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createAwait):
(JSC::ASTBuilder::usesAwait):

  • parser/Nodes.cpp:

(JSC::ModuleProgramNode::ModuleProgramNode):

  • parser/Nodes.h:
  • parser/Parser.cpp:

(JSC::JSToken::dump const):
(JSC::Parser<LexerType>::parseForStatement):
(JSC::Parser<LexerType>::parseAwaitExpression):
(JSC::Parser<LexerType>::parsePrimaryExpression):
(JSC::Parser<LexerType>::parseUnaryExpression):

  • parser/ParserModes.h:
  • parser/ParserTokens.h:
  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::finishCreation):
(JSC::AbstractModuleRecord::link):
(JSC::AbstractModuleRecord::evaluate):

  • runtime/AbstractModuleRecord.h:

(JSC::AbstractModuleRecord::initialValues):
(JSC::AbstractModuleRecord::internalField):
(JSC::AbstractModuleRecord::internalField const):

  • runtime/JSAsyncGenerator.h:
  • runtime/JSGenerator.h:
  • runtime/JSGlobalObject.h:
  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::evaluate):
(JSC::JSModuleLoader::evaluateNonVirtual):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/JSModuleLoader.h:
  • runtime/JSModuleRecord.cpp:

(JSC::JSModuleRecord::link):
(JSC::JSModuleRecord::evaluate):

  • runtime/JSModuleRecord.h:
  • runtime/ModuleProgramExecutable.h:
  • runtime/OptionsList.h:
  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::dump const):

  • runtime/SymbolTable.h:
  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::link):
(JSC::WebAssemblyModuleRecord::linkImpl):

  • wasm/js/WebAssemblyModuleRecord.h:

Source/WebCore:

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSDOMGlobalObject::moduleLoaderEvaluate):

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

(WebCore::ScriptController::evaluateModule):

  • bindings/js/ScriptController.h:
  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::evaluate):

  • bindings/js/ScriptModuleLoader.h:
  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::evaluateModule):

  • workers/WorkerOrWorkletScriptController.h:
1:54 PM Changeset in webkit [273224] by ysuzuki@apple.com
  • 17 edits in trunk

Support modules in service workers
https://bugs.webkit.org/show_bug.cgi?id=222155

Reviewed by Saam Barati.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/json-module-service-worker-test.https.tentative-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-matchall-client-types.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/import-module-scripts.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/performance-timeline.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update-registration-with-type.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/update.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/worker-client-id.https-expected.txt:

Source/WebCore:

This patch adds module support to service-workers. Basically this just plumbs the type: "module" information to
service worker's job as described in the spec[1]: Each SW job should have workerType, and this is passed.
And we sometimes compare newestWorker->type() with this job.workerType (as defined in the spec). And we spawn
the SW with this job.workerType. Since Worker already supports "module" evaluation, this is automatically evaluated
as modules if we spawn SW thread with "module" type.

When using, we can pass "module" type to the register method as follows.

navigator.serviceWorker.register('script.mjs', {

type: "module"

});

[1]: https://w3c.github.io/ServiceWorker/

  • workers/service/ServiceWorker.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):

  • workers/service/ServiceWorkerJobData.cpp:

(WebCore::ServiceWorkerJobData::isolatedCopy const):
(WebCore::ServiceWorkerJobData::isEquivalent const):

  • workers/service/ServiceWorkerJobData.h:

(WebCore::ServiceWorkerJobData::encode const):
(WebCore::ServiceWorkerJobData::decode):

  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::update):

  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::ServiceWorkerThread):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::softUpdate):

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptFetchFinished):
(WebCore::SWServerJobQueue::runRegisterJob):
(WebCore::SWServerJobQueue::runUpdateJob):

1:38 PM Changeset in webkit [273223] by Alan Bujtas
  • 7 edits in trunk/Source/WebCore

[LFC][IFC] Hittest should be using the border box (and not the margin box)
https://bugs.webkit.org/show_bug.cgi?id=222249

Reviewed by Antti Koivisto.

This patch fixes the cases when the inline box (e.g. <span>) has horizontal
margins and we find those inline boxes instead of their containing blocks.
e.g.
<div><span style="margin-left: 100px;">border box starts at 100px</span></div>
document.elementFromPoint(50, 10) should not find the <span>.

Let's simplify LineBox interface so that it returns the border box. Clients
are mainly interested in the border box.
(LineBox is mostly there to support vertical alignment and the vertical
alignment uses the margin box height. The inline level boxes on the line now have
this seemingly odd combination of border box width and margin box height, but
that's required to keep the alignment logic clean and simple.)

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineFormattingContextGeometry.cpp:

(WebCore::Layout::LineBoxBuilder::constructInlineLevelBoxes):

  • layout/inlineformatting/InlineLineBox.cpp:

(WebCore::Layout::LineBox::logicalBorderBoxForAtomicInlineLevelBox const):
(WebCore::Layout::LineBox::logicalBorderBoxForInlineBox const):
(WebCore::Layout::LineBox::logicalMarginRectForAtomicInlineLevelBox const): Deleted.
(WebCore::Layout::LineBox::logicalRectForInlineBox const): Deleted.

  • layout/inlineformatting/InlineLineBox.h:
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLineRuns const):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayNonRootInlineBoxes const):

  • layout/layouttree/LayoutTreeBuilder.cpp:

(WebCore::Layout::showInlineTreeAndRuns):

1:08 PM Changeset in webkit [273222] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] JSInternalPromise::then can fail if execution is terminated
https://bugs.webkit.org/show_bug.cgi?id=222244

Reviewed by Mark Lam.

JSInternalPromise::then assumed that call's result is always JSInternalPromise.
But this is wrong if termination exception is thrown. In that case, this call fails.
This patch makes it robust against this behavior.

  • runtime/JSInternalPromise.cpp:

(JSC::JSInternalPromise::then):

12:49 PM Changeset in webkit [273221] by Simon Fraser
  • 2 edits in trunk/Source/WTF

Re-enable Paint Timing
https://bugs.webkit.org/show_bug.cgi?id=211736

Reviewed by Noam Rosenthal.

Now that bug 222245 is fixed in r273220, re-enable Paint Timing
(aka First Contentful Paint.)

  • Scripts/Preferences/WebPreferencesEfxperimental.yaml:
11:07 AM Changeset in webkit [273220] by Noam Rosenthal
  • 4 edits in trunk/Source/WebCore

[Paint Timing] Return early from contentful paint check when no contentful pixels/characters at all
https://bugs.webkit.org/show_bug.cgi?id=222245

Reviewed by Simon Fraser.

Bail from recursive contenful-paint check if there are no pixels/text characters in the entire document.

Covered by existing tests, an optimization only.

  • dom/Document.cpp:

(WebCore::Document::enqueuePaintTimingEntryIfNeeded):

  • page/FrameView.cpp:

(WebCore::FrameView::hasContenfulDescendants const):

  • page/FrameView.h:
9:20 AM Changeset in webkit [273219] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Small improvements to r273073
https://bugs.webkit.org/show_bug.cgi?id=222179

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-21
Reviewed by Darin Adler.

No new tests, because this should not change behavior.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::enclosingScrollableContainerForSnapping const): Replace
a while loop with a for loop and prefer downcast<> to static_cast<>.

4:51 AM Changeset in webkit [273218] by ysuzuki@apple.com
  • 7 edits
    16 adds in trunk/JSTests

[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=222243

Reviewed by Alexey Shvayka.

  • test262/config.yaml:
  • test262/expectations.yaml:
  • test262/latest-changes-summary.txt:
  • test262/test/built-ins/Object/assign/target-is-frozen-accessor-property-set-succeeds.js: Added.

(target1.set foo):
(target2.Object.freeze.set sym):

  • test262/test/built-ins/Object/assign/target-is-frozen-data-property-set-throws.js: Added.
  • test262/test/built-ins/Object/assign/target-is-non-extensible-existing-accessor-property.js: Added.

(target1.Object.preventExtensions.set foo):
(target2.set sym):

  • test262/test/built-ins/Object/assign/target-is-non-extensible-existing-data-property.js: Added.
  • test262/test/built-ins/Object/assign/target-is-non-extensible-property-creation-throws.js: Added.

(get bar):

  • test262/test/built-ins/Object/assign/target-is-sealed-existing-accessor-property.js: Added.

(target1.Object.seal.set foo):
(target2.set sym):

  • test262/test/built-ins/Object/assign/target-is-sealed-existing-data-property.js: Added.
  • test262/test/built-ins/Object/assign/target-is-sealed-property-creation-throws.js: Added.

(get bar):

  • test262/test/built-ins/Object/freeze/proxy-with-defineProperty-handler.js: Added.

(proxy.new.Proxy.get foo):
(proxy.new.Proxy.set foo):
(set foo.defineProperty):
(set foo):

  • test262/test/built-ins/Object/seal/proxy-with-defineProperty-handler.js: Added.

(proxy.new.Proxy.get foo):
(proxy.new.Proxy.set foo):
(set foo.defineProperty):
(set foo):

  • test262/test/built-ins/TypedArray/prototype/filter/BigInt/callbackfn-detachbuffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/built-ins/TypedArray/prototype/findIndex/BigInt/predicate-may-detach-buffer.js:

(testWithBigIntTypedArrayConstructors):

  • test262/test/intl402/DateTimeFormat/constructor-no-instanceof.js: Added.
  • test262/test/intl402/DateTimeFormat/prototype/format/no-instanceof.js: Added.
  • test262/test/intl402/DateTimeFormat/prototype/resolvedOptions/no-instanceof.js: Added.
  • test262/test/intl402/NumberFormat/constructor-no-instanceof.js: Added.
  • test262/test/intl402/NumberFormat/prototype/format/no-instanceof.js: Added.
  • test262/test/intl402/NumberFormat/prototype/resolvedOptions/no-instanceof.js: Added.
  • test262/test262-Revision.txt:
4:35 AM Changeset in webkit [273217] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Remove vm.topCallFrame storing in Baseline JIT
https://bugs.webkit.org/show_bug.cgi?id=222162

Reviewed by Mark Lam.

This patch removes vm.topCallFrame storing in the Baseline JIT for ports that can USE(BUILTIN_FRAME_ADDRESS).
Also refactored some CommonSlowPath functions so that they can start using builtin_frame_address later
instead of requiring that CallFrame be passed in.

  • jit/JITInlines.h:

(JSC::JIT::updateTopCallFrame):

  • runtime/CommonSlowPaths.cpp:

(JSC::iteratorOpenTryFastImpl):
(JSC::JSC_DEFINE_COMMON_SLOW_PATH):
(JSC::iteratorNextTryFastImpl):

Feb 20, 2021:

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

[Cocoa] Update WebCoreArgumentCodersMac with some new additions
https://bugs.webkit.org/show_bug.cgi?id=222242
<rdar://problem/74562457>

Reviewed by Tim Horton.

Will be tested by new API Tests in a subsequent patch.

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<WebCore::ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::ResourceRequest>::decodePlatformData):

8:24 PM Changeset in webkit [273215] by BJ Burg
  • 4 edits in trunk/Source/WebKit

[Cocoa] Web Inspector: expose the WKBrowsingContextHandle associated with Web Inspector's page
https://bugs.webkit.org/show_bug.cgi?id=222226

Reviewed by Timothy Hatcher.

In order to implement browser.devtools.inspectedWindow.tabId for Web Extensions,
we need a way to do a reverse lookup of the tabId using the current browsing context
controller (WKWebProcessPlugInBrowserContextController) in the injected bundle.

This patch exposes the browsing context handle for the underlying WKWebView that
hosts the inspector page. Clients can use this to precompute a tabId for each
inspector browsing context that may be encountered by injected bundle code.

  • UIProcess/API/Cocoa/_WKInspectorPrivate.h:
  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector handle]): Added.

  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::classesForCoder):
Drive-by, make it possible to use WKBrowsingContextHandle in injected bundle parameters.
This is easy because it conforms to NSSecureCoding and is simply a pageId + frameId.

8:15 PM Changeset in webkit [273214] by Chris Fleizach
  • 40 edits
    4 adds in trunk

AX: Image should report the embedded accessibility description if available
https://bugs.webkit.org/show_bug.cgi?id=221875
<rdar://problem/74320584>

Reviewed by Jer Noble.

Source/WebCore:

Check if images have accessibility description metadata and expose that to the AX API.

Test: accessibility/embedded-image-description.html

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::embeddedImageDescription const):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityObjectInterface.h:
  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityPhotoDescription]):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::initializeAttributeData):

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • platform/cf/MediaAccessibilitySoftLink.cpp:
  • platform/cf/MediaAccessibilitySoftLink.h:
  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:

(WebCore::Image::accessibilityDescription const):

  • platform/graphics/ImageDecoder.h:
  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::accessibilityDescription):

  • platform/graphics/ImageSource.h:
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoderCG::accessibilityDescription const):

  • platform/graphics/cg/ImageDecoderCG.h:
  • rendering/RenderImage.h:

(WebCore::RenderImage::accessibilityDescription const):

Source/WebCore/PAL:

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/MediaAccessibilitySPI.h: Added.

Source/WebKit:

  • WebProcess/GPU/media/RemoteImageDecoderAVF.h:

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(getEmbeddedImageDescription):
(AccessibilityUIElement::getJSClass):

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/ios/AccessibilityUIElementIOS.mm:

(AccessibilityUIElement::embeddedImageDescription const):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::embeddedImageDescription const):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::embeddedImageDescription const):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::embeddedImageDescription const):

LayoutTests:

  • accessibility/embedded-image-description-expected.txt: Added.
  • accessibility/embedded-image-description.html: Added.
  • accessibility/resources/embedded-image-description-example.jpg: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/win/TestExpectations:
6:05 PM Changeset in webkit [273213] by Peng Liu
  • 24 edits in trunk

Video elements do not work as sources for TexImage2D calls in GPU Process
https://bugs.webkit.org/show_bug.cgi?id=218184

Reviewed by Jer Noble.

Source/WebCore:

Add a function GraphicsContextGL::copyTextureFromMedia() which can be used by the graphics
context to copy video texture from a video element (player).

This patch also replaces MediaPlayer::copyVideoTextureToPlatformTexture() with
MediaPlayer::pixelBufferForCurrentTime() on Cocoa ports. The motivation is that
RemoteGraphicsContextGL::copyTextureFromMedia() will run in a background thread
("RemoteGraphicsContextGL work queue") and it is difficult to make
MediaPlayer::copyVideoTextureToPlatformTexture() thread-safe. In addition, we cannot
simply run it on the main thread because it uses graphic context internally. Adding a
function MediaPlayer::pixelBufferForCurrentTime() solves the problem.

Manually tested.
We need to enable both "GPU Process: Media" and "GPU Process: WebGL" to test the feature.

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::copyVideoTextureToPlatformTexture): Deleted.

  • html/HTMLVideoElement.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::texImageSourceHelper):

  • platform/graphics/GraphicsContextGL.h:
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::pixelBufferForCurrentTime):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::pixelBufferForCurrentTime):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::copyVideoTextureToPlatformTexture): Deleted.

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pixelBufferForCurrentTime):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::copyVideoTextureToPlatformTexture): Deleted.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::copyTextureFromMedia):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:

Source/WebKit:

Add an IPC message RemoteGraphicsContextGL::CopyTextureFromMedia to implement
RemoteGraphicsContextGLProxy::copyTextureFromMedia() in the Web process.

  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:

We should use m_gpuConnectionToWebProcess in the main thread only.

  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::copyTextureFromMedia):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

Tools:

  • Scripts/generate-gpup-webgl:
5:06 PM Changeset in webkit [273212] by youenn@apple.com
  • 9 edits in trunk

Add support for adding/removing/clearing mock devices in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=222174

Reviewed by Eric Carlson.

Source/WebKit:

Make sure to forward mock device orders to GPU process so that it is kept in sync with UIProcess.
Covered by updated test.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::addMockMediaDevice):
(WebKit::GPUProcess::clearMockMediaDevices):
(WebKit::GPUProcess::removeMockMediaDevice):
(WebKit::GPUProcess::resetMockMediaDevices):

  • GPUProcess/GPUProcess.h:
  • GPUProcess/GPUProcess.messages.in:
  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::addMockMediaDevice):
(WebKit::GPUProcessProxy::clearMockMediaDevices):
(WebKit::GPUProcessProxy::removeMockMediaDevice):
(WebKit::GPUProcessProxy::resetMockMediaDevices):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::addMockMediaDevice):
(WebKit::WebProcessPool::clearMockMediaDevices):
(WebKit::WebProcessPool::removeMockMediaDevice):
(WebKit::WebProcessPool::resetMockMediaDevices):

LayoutTests:

  • fast/mediastream/device-change-event-2.html:
4:47 PM Changeset in webkit [273211] by weinig@apple.com
  • 14 edits in trunk

color(lab ...) should serialize as color(lab ...) not lab() according to latest CSS Color 4 spec
https://bugs.webkit.org/show_bug.cgi?id=222110

Reviewed by Dean Jackson.

Source/WebCore:

To make this work it was necessary to make it so that extended colors, like Lab,
could store an extra bit of data on Color to indicate that it should use the
color() function for serialization when parsed using the color() form.

To do that, Color was reworked to allow extra metadata flags for both inline and
extended colors. Previously, only inline colors could make use of the extra bits.
Now, we take advantage of the fact that we have the high 16 bits available to us
for pointers to also store that metadata for extended colors. Rather than using a
union, we encode the pointer / inline color into a uint64_t, and use the extra bits
for the flags we need. Currently we only use 6, so there is quite a bit more that
could be used here.

Finally, the color serialization code has been updated to check for the new bit,
called UseColorFunctionSerialization, and to serialize using color() notation
if it is set.

We are currently only taking advantage of this for differentiating between lab(...)
and color(lab ...), but in the future we should be able to also optimize color(srgb ...)
values that can be represented fully by SRGBA<uint8_t>.

Since we can now add flags for extended colors, the semantic bit is also now usable
for extended colors, though none currently exist.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForLabParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForXYZParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionParameters):

  • platform/graphics/Color.cpp:

(WebCore::Color::Color):
(WebCore::Color::operator=):
(WebCore::Color::colorWithAlpha const):
(WebCore::Color::semanticColor const):

  • platform/graphics/Color.h:

(WebCore::Color::isHashTableDeletedValue const):
(WebCore::Color::Color):
(WebCore::Color::toAllFlags):
(WebCore::Color::setColor):
(WebCore::Color::setExtendedColor):
(WebCore::operator==):
(WebCore::extendedColorsEqual):
(WebCore::extendedColorsEqualIgnoringSemanticColor):
(WebCore::equalIgnoringSemanticColor):
(WebCore::Color::~Color):
(WebCore::Color::hash const):
(WebCore::Color::isValid const):
(WebCore::Color::isSemantic const):
(WebCore::Color::usesColorFunctionSerialization const):
(WebCore::Color::flags const):
(WebCore::Color::isExtended const):
(WebCore::Color::isInline const):
(WebCore::Color::asExtended const):
(WebCore::Color::asExtendedRef const):
(WebCore::Color::asInline const):
(WebCore::Color::asPackedInline const):
(WebCore::Color::encodedFlags):
(WebCore::Color::encodedInlineColor):
(WebCore::Color::encodedPackedInlineColor):
(WebCore::Color::encodedExtendedColor):
(WebCore::Color::decodedFlags):
(WebCore::Color::decodedInlineColor):
(WebCore::Color::decodedPackedInlineColor):
(WebCore::Color::decodedExtendedColor):
(WebCore::Color::setInvalid):
(WebCore::Color::encode const):
(WebCore::Color::decode):
(WebCore::Color::tagAsSemantic): Deleted.
(WebCore::Color::tagAsValid): Deleted.

  • platform/graphics/ColorBlending.cpp:

(WebCore::blendWithWhite):

  • platform/graphics/ColorSerialization.cpp:

(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):
(WebCore::serializationUsingColorFunction):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::Color::Color):

  • platform/graphics/mac/ColorMac.mm:

(WebCore::semanticColorFromNSColor):

  • rendering/RenderThemeIOS.mm:

(WebCore::systemColorFromCSSValueIDSelector):
(WebCore::systemColorFromCSSValueID):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor const):

LayoutTests:

  • fast/css/parsing-lab-colors-expected.txt:
  • fast/css/parsing-lab-colors.html:

Update test and results for new serialization of color(lab ...).

4:38 PM Changeset in webkit [273210] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Fix the build when TREE_DEBUGGING is enabled in release builds
https://bugs.webkit.org/show_bug.cgi?id=222238

Reviewed by Zalan Bujtas.

FloatingObjects logging needs to use ENABLE(TREE_DEBUGGING) not #ifndef NDEBUG.

  • rendering/FloatingObjects.cpp:
  • rendering/FloatingObjects.h:
3:17 PM Changeset in webkit [273209] by jiewen_tan@apple.com
  • 32 edits in trunk

PCM: Store and report source unlinkable tokens
https://bugs.webkit.org/show_bug.cgi?id=222208
<rdar://problem/73582032>

Reviewed by John Wilander.

Source/WebCore:

This patch hooks up the network process with the PCM fraud prevention feature to
enable the generation, storing and reporting the source unlinkable token.

Existing tests updated.

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::setSourceSecretTokenValue):
Adds infrastructure to mock the crypto operations such that layout tests can be
conducted without the server side crypto support.

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::attributionReportJSON const):
(WebCore::PrivateClickMeasurement::tokenSignatureJSON const):
(WebCore::PrivateClickMeasurement::setSourceUnlinkableToken):
(WebCore::PrivateClickMeasurement::tokenSignatureJSON): Deleted.

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::sourceUnlinkableToken const):

  • loader/cocoa/PrivateClickMeasurementCocoa.mm:

(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceSecretToken):
(WebCore::PrivateClickMeasurement::calculateAndUpdateSourceUnlinkableToken):
(WebCore::PrivateClickMeasurement::sourceSecretToken): Deleted.
(WebCore::PrivateClickMeasurement::calculateSourceUnlinkableToken): Deleted.
Update interfaces to service the use cases in the Networking process better.

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setFraudPreventionValuesForTesting):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::setFraudPreventionValuesForTesting):

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getSignedSecretToken):
(WebKit::PrivateClickMeasurementManager::setFraudPreventionValuesForTesting):

  • NetworkProcess/PrivateClickMeasurementManager.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetFraudPreventionValuesForTesting):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::markPrivateClickMeasurementsAsExpiredForTesting):
(WebKit::WebPageProxy::setFraudPreventionValuesForTesting):

  • UIProcess/WebPageProxy.h:

Adds infrastructure to mock the crypto operations such that layout tests can be
conducted without the server side crypto support.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):

  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedSecretToken):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
(WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):

  • NetworkProcess/PrivateClickMeasurementManager.h:

Connects the fraud prevention feature in PCM to generate, store, and report the unlinkable token.

Tools:

  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

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

(WTR::TestRunner::setFraudPreventionValuesForTesting):

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

(WTR::TestController::setFraudPreventionValuesForTesting):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
Rebases some test cases.

LayoutTests:

  • http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start-expected.txt:
  • http/tests/privateClickMeasurement/resources/signToken.php:
  • http/tests/privateClickMeasurement/send-attribution-conversion-request-expected.txt:
  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt:
  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:

Modifies the test to mock the whole round trip.

3:01 PM Changeset in webkit [273208] by jiewen_tan@apple.com
  • 2 edits in trunk/Source/WTF

PCM: Turn the fraud prevention on by default
https://bugs.webkit.org/show_bug.cgi?id=222224
<rdar://problem/73588234>

Reviewed by John Wilander.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
2:43 PM Changeset in webkit [273207] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WTF

Make PaintTimingEnabled default to false
https://bugs.webkit.org/show_bug.cgi?id=222186

Reviewed by Simon Fraser.

PaintTiming causes about 4% regression in the MotionMark sub-tests:
Multiply and Focus. Do disable it for now.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
2:40 PM Changeset in webkit [273206] by commit-queue@webkit.org
  • 6 edits in trunk

"min-content" & "max-content" keywords should behave as initial value in block axis (but WebKit improperly treats them as the content-size)
https://bugs.webkit.org/show_bug.cgi?id=191390

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-20
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Update improved test expectation.

  • web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/min-inline-size-expected.txt:

Source/WebCore:

"min-content" & "max-content" should use automatic size in block direction [1].

This behavior matches Gecko and Blink.

[1] https://drafts.csswg.org/css-sizing-3/#valdef-width-min-content

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::constrainLogicalHeightByMinMax const):

LayoutTests:

Adapt test to new behavior.

  • fast/css-intrinsic-dimensions/height-expected.html: Removed.
  • fast/css-intrinsic-dimensions/height.html: Removed.
2:22 PM Changeset in webkit [273205] by Lauro Moura
  • 3 edits in trunk/Source/WebCore

Unreviewed. GLib buildfix after r273203

  • bindings/js/WorkerModuleScriptLoader.h:
  • bindings/js/WorkerScriptFetcher.h:
12:33 PM Changeset in webkit [273204] by Peng Liu
  • 42 edits
    4 copies
    14 adds in trunk

WebGL GPU process IPC should use shared memory for asynchronous messages
https://bugs.webkit.org/show_bug.cgi?id=219641
<rdar://problem/72340651>

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-20
Reviewed by Geoff Garen.

Source/WebKit:

Implement a concept of a message buffer. This is a similar concept as
"command buffer" or "display list" in some graphics APIs. Messages
can be added to the buffer by a client and then played back by a
server.

Current implementation adds a specific pseudo-infinite,
semi-duplex message buffer type IPC::StreamConnectionBuffer. This
is a buffer that can be attached to stream connection, an object
that can deliver IPC messages either through the message buffer
or through normal IPC::Connection. The stream connection is
implemented as IPC::StreamClientConnection and IPC::StreamServerConnection.
The connection has server and client distinction, similar to
IPC::Connection. Unlike IPC::Connection, a stream connection is asymmetric
in features: the client can send messages and receive replies, where
as the server can receive messages and send replies.

Messages received through IPC::StreamServerConnection can be
processed by StreamConnectionWorkQueue.

Currently asynchronous messages are added to the stream. Synchronous messages
and their replies are dispatched through normal IPC.

WebGL is implemented by having one StreamConnectionWorkQueue for all WebGL
in the browser. Currently each web process WebGL context in has one
StreamClientConnection attached to one 2mb StreamConnectionBuffer.

Later on, there will be only one WebGL stream connection and connection
buffer shared between all contexts in particular thread in Web process.
The implementation is "optimized" for the later on case. Due to single-
process nature of each page, it does not make much sense to have buffer
per context. However, it is anticipated that many of the successive calls
are to same context. The SHM message format implements an optimization
where the destination id is maintained as part of the stream connection
state.

In GPU process side, all WebGL is processed in one task queue,
"RemoteGraphicsContextGL task queue". It will process up to 1000 commands
per connection per iteration.

Implemented as follows:
Sender shares the shared memory area with the destination when creating
the destination.

If the message fits to the stream shared memory area, write it there.
Otherwise send it via normal IPC as out of line message.

Messages to the destination arrive as before, in order. For each out of line
message, an entry is pushed to the stream. Receiver will stop processing the
stream and processing will continue once the out-of-line
message has been processed.

Sender can write messages to the stream simultaneous to the receiver reading
the messages. This is implemented as a ring buffer with atomic sender and receiver
pointers.

Stream connection processing is implemented as a shared semaphore. This semaphore
is notified if the receiver is waiting on it.

Performance impact (iMac Pro):

  • MotionMark triangles: 300 points -> 4000 points (~7000 points no-GPUP)
  • WebGL samples Aquarium: 1000 fish ~60fps -> 5000 fish ~60fps (~5000 fish with no-GPUP)

No new tests, tested by existing tests.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::createGraphicsContextGL):

  • GPUProcess/GPUConnectionToWebProcess.h:
  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::remoteGraphicsContextGLStreamWorkQueue):
(WebKit::RemoteGraphicsContextGL::create):
(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::~RemoteGraphicsContextGL):
(WebKit::RemoteGraphicsContextGL::initialize):
(WebKit::RemoteGraphicsContextGL::connectWebProcessConnection):
(WebKit::RemoteGraphicsContextGL::disconnectWebProcessConnection):
(WebKit::RemoteGraphicsContextGL::workQueueInitialize):
(WebKit::RemoteGraphicsContextGL::workQueueUninitialize):
Initialize the OpenGL context in the work queue, since OpenGL
has various limitations wrt thread mobility.

(WebKit::RemoteGraphicsContextGL::forceContextLost):
(WebKit::RemoteGraphicsContextGL::dispatchContextChangedNotification):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:

(WebKit::RemoteGraphicsContextGL::platformWorkQueueInitialize):
(WebKit::RemoteGraphicsContextGL::send const):

  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:

(WebKit::RemoteGraphicsContextGL::create):
(WebKit::RemoteGraphicsContextGLCocoa::RemoteGraphicsContextGLCocoa):
(WebKit::RemoteGraphicsContextGLCocoa::platformWorkQueueInitialize):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:
  • Platform/IPC/ArgumentCoder.h:
  • Platform/IPC/ArgumentCoders.cpp:
  • Platform/IPC/ArgumentCoders.h:

Make it possible to use multiple different Encoder classes to encode
the IPC data.

  • Platform/IPC/Connection.cpp:

(IPC::Connection::processIncomingMessage):
(IPC::Connection::dispatchDidReceiveInvalidMessage):

  • Platform/IPC/Connection.h:

Add possibility for the stream decoding logic to send the didReceiveInvalidMessage
notification to the connection client.

  • Platform/IPC/Decoder.cpp:

(IPC::Decoder::Decoder):
(IPC::m_bufferDeallocator):
(IPC::m_destinationID):

  • Platform/IPC/Decoder.h:

Add a constructor for Decoder for constructing a decoder in place in
the stream buffer.

  • Platform/IPC/HandleMessage.h:

(IPC::handleMessageSynchronous):
Adds a stream-specific handleMessageSynchronous.
The old ones are unneccessarily complex, as they need redundant calls through redundant
generated send functions.
The old ones need the reply encoder passed in, which is redundant and problematic
for the upcoming case where the stream messaging will mainly reply through the stream itself,
constructing the IPC::StreamConnectionEncoder instead of normal IPC::Encoder.

  • Platform/IPC/StreamClientConnection.cpp: Copied from Source/WebKit/Platform/IPC/cocoa/MachPort.h.

(IPC::StreamClientConnection::StreamClientConnection):
(IPC::StreamClientConnection::setWakeUpSemaphore):
Add function to set the connection receive side wakeup semaphore.
Currently the semaphore is the semaphore that StreamConnectionWorkQueue
waits on. All streams processed by the same work queue will receive the same
semaphore and will notify it when they have written new data.

(IPC::StreamClientConnection::wakeUpReceiver):

  • Platform/IPC/StreamClientConnection.h: Added.

(IPC::StreamClientConnection::send):
(IPC::StreamClientConnection::sendSync):
(IPC::StreamClientConnection::trySendDestinationIDIfNeeded):
(IPC::StreamClientConnection::sendProcessOutOfStreamMessage):
(IPC::StreamClientConnection::tryAcquire):
(IPC::StreamClientConnection::release):
(IPC::StreamClientConnection::alignedSpan):
(IPC::StreamClientConnection::size):
(IPC::StreamClientConnection::clampedLimit const):
Add the implementation for sending data through the shared memory.

  • Platform/IPC/StreamConnectionBuffer.cpp: Added.

(IPC::createMemory):
(IPC::StreamConnectionBuffer::StreamConnectionBuffer):
(IPC::StreamConnectionBuffer::operator=):
(IPC::StreamConnectionBuffer::encode const):
(IPC::StreamConnectionBuffer::decode):

  • Platform/IPC/StreamConnectionBuffer.h: Added.

(IPC::StreamConnectionBuffer::wrapOffset const):
(IPC::StreamConnectionBuffer::alignOffset const):
(IPC::StreamConnectionBuffer::senderOffset):
(IPC::StreamConnectionBuffer::receiverOffset):
(IPC::StreamConnectionBuffer::data const):
(IPC::StreamConnectionBuffer::dataSize const):
(IPC::StreamConnectionBuffer::senderWaitSemaphore):
(IPC::StreamConnectionBuffer::header const):
(IPC::StreamConnectionBuffer::headerSize):
Add the common implementation for the shared memory ring buffer.
This is the common implementation used by both the sender side
as well as the receiver side.
Due to the selection of how the size is marked up, the
common implementation does not contain all the non-trivial code.
The "algorithm" uses a "hole indicator" to differentiate between
cases of "buffer is empty" and "buffer is full". The other
alternative could be better and maybe explored later.

  • Platform/IPC/StreamConnectionEncoder.h: Added.
  • Platform/IPC/StreamConnectionWorkQueue.cpp: Added.

(IPC::StreamConnectionWorkQueue::StreamConnectionWorkQueue):
(IPC::StreamConnectionWorkQueue::dispatch):
(IPC::StreamConnectionWorkQueue::addStreamConnection):
(IPC::StreamConnectionWorkQueue::removeStreamConnection):
(IPC::StreamConnectionWorkQueue::stop):
(IPC::StreamConnectionWorkQueue::wakeUp):
(IPC::StreamConnectionWorkQueue::wakeUpSemaphore):
(IPC::StreamConnectionWorkQueue::wakeUpProcessingThread):
(IPC::StreamConnectionWorkQueue::processStreams):
Work queue contains multiple StreamServerConnection instances.
For each iteration of the work queue thread, it will process
1000 items from each connection. If none of the connections contain
work, the queue will sleep on the work queue semaphore.
The senders will send through StreamClientConnection which
will wake up the work queue by signaling the semaphore.

  • Platform/IPC/StreamConnectionWorkQueue.h: Copied from Source/WebKit/Platform/IPC/cocoa/MachPort.h.
  • Platform/IPC/StreamServerConnection.cpp: Added.

(IPC::StreamServerConnectionBase::StreamServerConnectionBase):
(IPC::StreamServerConnectionBase::startReceivingMessagesImpl):
(IPC::StreamServerConnectionBase::stopReceivingMessagesImpl):
(IPC::StreamServerConnectionBase::enqueueMessage):
(IPC::StreamServerConnectionBase::tryAquire):
(IPC::StreamServerConnectionBase::release):
(IPC::StreamServerConnectionBase::alignedSpan):
(IPC::StreamServerConnectionBase::size):
(IPC::StreamServerConnectionBase::clampedLimit const):

  • Platform/IPC/StreamServerConnection.h: Added.

(IPC::StreamServerConnectionBase::connection):
(IPC::StreamServerConnectionBase::wrapOffset const):
(IPC::StreamServerConnectionBase::alignOffset const):
(IPC::StreamServerConnectionBase::sharedSenderOffset):
(IPC::StreamServerConnectionBase::sharedReceiverOffset):
(IPC::StreamServerConnectionBase::data const):
(IPC::StreamServerConnectionBase::dataSize const):
(IPC::StreamServerConnectionBase::sendSyncReply):
(IPC::StreamServerConnection<Receiver>::startReceivingMessages):
(IPC::StreamServerConnection<Receiver>::stopReceivingMessages):
(IPC::StreamServerConnection<Receiver>::dispatchStreamMessages):
(IPC::StreamServerConnection<Receiver>::processSetStreamDestinationID):
(IPC::StreamServerConnection<Receiver>::dispatchStreamMessage):
(IPC::StreamServerConnection<Receiver>::dispatchOutOfStreamMessage):
StreamServerConnection will process the message buffer and dispatch
messages based on the buffer contents. The class is a template so
that the message data decode switch (generated by the normal IPC
generator) is perhaps inlined to the message unpack loop.

  • Platform/IPC/cocoa/MachPort.h:
  • Scripts/webkit/messages.py:
  • Scripts/webkit/messages_unittest.py:

Implements a 'Stream' attribute for the message receiver. When marked as
'Stream', the receiver message handler is didReceiveStreamMessage and it
will be called for all messages, stream or normal IPC, sync or async.

  • Scripts/webkit/model.py:

Adds IPC control message ProcessOutOfStreamMessage that is acted on if
it is part of the stream messages. It means that the stream processing
should stop until one normal IPC message, sync or non-synch, should be
processed.

Adds IPC control message SetStreamDestinationID that is acted on if it
is part of the stream messages. It will set the destination ID for all
the subsequent stream messages, until another SetStreamDestinationID
message is seen.

  • Scripts/webkit/tests/Makefile:
  • Scripts/webkit/tests/MessageNames.cpp:

(IPC::description):
(IPC::receiverName):
(IPC::isValidMessageName):

  • Scripts/webkit/tests/MessageNames.h:
  • Scripts/webkit/tests/TestWithStream.messages.in: Copied from Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in.
  • Scripts/webkit/tests/TestWithStreamBuffer.messages.in: Copied from Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in.
  • Scripts/webkit/tests/TestWithStreamBufferMessageReceiver.cpp: Added.

(WebKit::TestWithStreamBuffer::didReceiveMessage):

  • Scripts/webkit/tests/TestWithStreamBufferMessages.h: Added.

(Messages::TestWithStreamBuffer::messageReceiverName):
(Messages::TestWithStreamBuffer::SendStreamBuffer::name):
(Messages::TestWithStreamBuffer::SendStreamBuffer::SendStreamBuffer):
(Messages::TestWithStreamBuffer::SendStreamBuffer::arguments const):

  • Scripts/webkit/tests/TestWithStreamBufferMessagesReplies.h: Added.
  • Scripts/webkit/tests/TestWithStreamMessageReceiver.cpp: Added.

(WebKit::TestWithStream::didReceiveStreamMessage):

  • Scripts/webkit/tests/TestWithStreamMessages.h: Added.

(Messages::TestWithStream::messageReceiverName):
(Messages::TestWithStream::SendString::name):
(Messages::TestWithStream::SendString::SendString):
(Messages::TestWithStream::SendString::arguments const):
(Messages::TestWithStream::SendStringSynchronized::name):
(Messages::TestWithStream::SendStringSynchronized::SendStringSynchronized):
(Messages::TestWithStream::SendStringSynchronized::arguments const):

  • Scripts/webkit/tests/TestWithStreamMessagesReplies.h: Added.
  • Sources.txt:
  • UIProcess/Downloads/DownloadProxy.h:
  • UIProcess/ProvisionalPageProxy.cpp:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::wasCreated):
Send the work queue wakeup semaphore as a result of the context creation.

  • Platform/IPC/ScopedActiveMessageReceiveQueue.h: Added.

(IPC::ScopedActiveMessageReceiveQueue::ScopedActiveMessageReceiveQueue):
(IPC::ScopedActiveMessageReceiveQueue::operator=):
(IPC::ScopedActiveMessageReceiveQueue::~ScopedActiveMessageReceiveQueue):
(IPC::ScopedActiveMessageReceiveQueue::reset):
(IPC::ScopedActiveMessageReceiveQueue::get const):
(IPC::ScopedActiveMessageReceiveQueue::stopListeningForIPCAndRelease):
Add a holder to replace previous RemoteRenderingBackendWrapper.
Now other classes can be held similarly.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.messages.in:
  • WebProcess/Network/webrtc/LibWebRTCNetwork.h:

Tools:

Mark RemoteGraphicsContextGL message receiver as "Stream",
a new variant of receiver.

  • Scripts/generate-gpup-webgl:

LayoutTests:

Mark few tests as not timing out now that the implementation is not so slow.

  • gpu-process/TestExpectations:
12:28 PM Changeset in webkit [273203] by ysuzuki@apple.com
  • 108 edits
    2 copies
    1 move
    2 adds in trunk

JS Modules in Workers
https://bugs.webkit.org/show_bug.cgi?id=164860

Reviewed by Saam Barati.

LayoutTests/imported/w3c:

Some of worklet failures in WPT is because,

  1. Previously, worklet does not support module. These tests are passing incorrectly when modules are not supported. Now, modules are supported, and some edge features are missing, so start failing
  2. WPT is using www1.localhost in some tests (CSP tests), and this is not supported in WebKit's WPT testing. So failing incorrectly.
  • web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.tentative.any.worker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/microtasks/checkpoint-after-workerglobalscope-onerror-module-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/alpha/base-url-worker-importScripts-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/dynamic-import/alpha/base-url-worker.sub-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-1-nothrow-worker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-1-worker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-2-import-worker-expected.txt:
  • web-platform-tests/html/semantics/scripting-1/the-script-element/module/evaluation-order-3-dynamic-worker-expected.txt:
  • web-platform-tests/service-workers/service-worker/import-module-scripts.https-expected.txt:
  • web-platform-tests/workers/baseurl/alpha/import-in-moduleworker-expected.txt:
  • web-platform-tests/workers/baseurl/alpha/importScripts-in-worker-expected.txt:
  • web-platform-tests/workers/baseurl/alpha/xhr-in-moduleworker-expected.txt:
  • web-platform-tests/workers/baseurl/alpha/xhr-in-worker-expected.txt:
  • web-platform-tests/workers/constructors/Worker/same-origin-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerGlobalScope/location/redirect-module-expected.txt:
  • web-platform-tests/workers/modules/dedicated-worker-import-blob-url.any-expected.txt:
  • web-platform-tests/workers/modules/dedicated-worker-import-csp-expected.txt:
  • web-platform-tests/workers/modules/dedicated-worker-import-failure-expected.txt:
  • web-platform-tests/workers/modules/dedicated-worker-import-meta-expected.txt:
  • web-platform-tests/workers/modules/dedicated-worker-import-meta.html:
  • web-platform-tests/workers/modules/dedicated-worker-import-referrer-expected.txt:
  • web-platform-tests/workers/modules/dedicated-worker-import.any-expected.txt:
  • web-platform-tests/workers/modules/dedicated-worker-options-type-expected.txt:
  • web-platform-tests/workers/modules/dedicated-worker-parse-error-failure-expected.txt:
  • web-platform-tests/workers/name-property-expected.txt:
  • web-platform-tests/worklets/audio-worklet-credentials.https-expected.txt:
  • web-platform-tests/worklets/audio-worklet-csp.https-expected.txt:
  • web-platform-tests/worklets/audio-worklet-import.https-expected.txt:
  • web-platform-tests/worklets/audio-worklet-referrer.https-expected.txt:
  • web-platform-tests/xhr/open-url-redirected-worker-origin-expected.txt:

Source/JavaScriptCore:

Add error information to extract this in WebCore's module loader.
Currently, we are using Promise pipeline, and this makes it a bit difficult to extract error information.
This error information attached in this patch allows us to extract SyntaxError in WebCore, and throwing
JS SyntaxError instead of AbortError.

We are planning to update our module pipieline not using Promises in the future. The current design derived
from the original module loader pipeline where using Promises is critical. But now, that proposal was abandoned,
so we can just simplify the module loader.

  • runtime/AggregateError.cpp:

(JSC::AggregateError::AggregateError):

  • runtime/Error.cpp:

(JSC::createError):
(JSC::createEvalError):
(JSC::createRangeError):
(JSC::createReferenceError):
(JSC::createSyntaxError):
(JSC::createTypeError):
(JSC::createURIError):
(JSC::createGetterTypeError):
(JSC::throwSyntaxError):

  • runtime/Error.h:
  • runtime/ErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::ErrorInstance):
(JSC::ErrorInstance::create):
(JSC::ErrorInstance::sanitizedMessageString):
(JSC::ErrorInstance::sanitizedNameString):
(JSC::ErrorInstance::sanitizedToString):

  • runtime/ErrorInstance.h:

(JSC::ErrorInstance::create):
(JSC::ErrorInstance::errorType const):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructor<errorType>::constructImpl):
(JSC::NativeErrorConstructor<errorType>::callImpl):

  • runtime/NullSetterFunction.cpp:

(JSC::NullSetterFunctionInternal::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/JSWebAssemblyCompileError.cpp:

(JSC::JSWebAssemblyCompileError::JSWebAssemblyCompileError):

  • wasm/js/JSWebAssemblyLinkError.cpp:

(JSC::JSWebAssemblyLinkError::JSWebAssemblyLinkError):

  • wasm/js/JSWebAssemblyRuntimeError.cpp:

(JSC::JSWebAssemblyRuntimeError::JSWebAssemblyRuntimeError):

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyLinkErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyRuntimeErrorConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WebCore:

This patch implements JS modules in Workers and Worklets. We are not supporting modules in ServiceWorkers' initialization yet.
But service-worker can import modules via JS import().

The worker can be executed as a module if we pass, type: "module" to worker options. Worklet is executed as modules by default.

  1. In Worker, we first fetch the initial code. And then, analyze the dependencies and load subsequent modules. We iterate run-loop to load all the dependent modules in the module loader. At that time, we annotate run-loop tasks with special taskMode to iterate tasks with this taskMode. This prevents us from discarding different tasks in this run-loop driving phase. (e.g. postMessage can be called from the main thread while loading module graph, in that case, we should not discard this task.)
  1. In Worklet, we just request module loading to ScriptModuleLoader, and run it after loading module graph. This is OK since worklet thread is already running. So we can just request modules and worklet thread automatically drives module loading via run-loop.
  • Headers.cmake:
  • Modules/webaudio/AudioWorkletGlobalScope.h:

(WebCore::AudioWorkletGlobalScope::currentFrame const): Deleted.
(WebCore::AudioWorkletGlobalScope::sampleRate const): Deleted.
(WebCore::AudioWorkletGlobalScope::currentTime const): Deleted.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/CachedModuleScriptLoader.cpp:

(WebCore::CachedModuleScriptLoader::create):
(WebCore::CachedModuleScriptLoader::CachedModuleScriptLoader):
(WebCore::CachedModuleScriptLoader::load):
(WebCore::CachedModuleScriptLoader::notifyFinished):

  • bindings/js/CachedModuleScriptLoader.h:
  • bindings/js/CachedScriptFetcher.cpp:
  • bindings/js/JSDOMExceptionHandling.cpp:

(WebCore::retrieveErrorMessageWithoutName):
(WebCore::createDOMException):

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

(WebCore::scriptModuleLoader):
(WebCore::JSDOMGlobalObject::moduleLoaderResolve):
(WebCore::JSDOMGlobalObject::moduleLoaderFetch):
(WebCore::JSDOMGlobalObject::moduleLoaderEvaluate):
(WebCore::JSDOMGlobalObject::moduleLoaderImportModule):
(WebCore::JSDOMGlobalObject::moduleLoaderCreateImportMetaProperties):

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

(WebCore::JSDOMWindowBase::moduleLoaderResolve): Deleted.
(WebCore::JSDOMWindowBase::moduleLoaderFetch): Deleted.
(WebCore::JSDOMWindowBase::moduleLoaderEvaluate): Deleted.
(WebCore::JSDOMWindowBase::moduleLoaderImportModule): Deleted.
(WebCore::JSDOMWindowBase::moduleLoaderCreateImportMetaProperties): Deleted.

  • bindings/js/JSDOMWindowBase.h:
  • bindings/js/JSWorkerGlobalScopeBase.cpp:
  • bindings/js/JSWorkletGlobalScopeBase.cpp:
  • bindings/js/ModuleScriptLoader.h: Copied from Source/WebCore/dom/ModuleFetchParameters.h.

(WebCore::ModuleScriptLoader::clearClient):
(WebCore::ModuleScriptLoader::scriptFetcher):
(WebCore::ModuleScriptLoader::parameters):
(WebCore::ModuleScriptLoader::ModuleScriptLoader):

  • bindings/js/ModuleScriptLoaderClient.h: Renamed from Source/WebCore/bindings/js/CachedModuleScriptLoaderClient.h.
  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::ScriptModuleLoader):
(WebCore::resolveModuleSpecifier):
(WebCore::ScriptModuleLoader::resolve):
(WebCore::ScriptModuleLoader::fetch):
(WebCore::ScriptModuleLoader::moduleURL):
(WebCore::ScriptModuleLoader::responseURLFromRequestURL):
(WebCore::ScriptModuleLoader::evaluate):
(WebCore::ScriptModuleLoader::importModule):
(WebCore::ScriptModuleLoader::notifyFinished):

  • bindings/js/ScriptModuleLoader.h:
  • bindings/js/ScriptSourceCode.h:

(WebCore::ScriptSourceCode::ScriptSourceCode):

  • bindings/js/WorkerModuleScriptLoader.cpp: Added.

(WebCore::WorkerModuleScriptLoader::create):
(WebCore::WorkerModuleScriptLoader::WorkerModuleScriptLoader):
(WebCore::WorkerModuleScriptLoader::~WorkerModuleScriptLoader):
(WebCore::WorkerModuleScriptLoader::load):
(WebCore::WorkerModuleScriptLoader::referrerPolicy):
(WebCore::WorkerModuleScriptLoader::notifyFinished):
(WebCore::WorkerModuleScriptLoader::taskMode):

  • bindings/js/WorkerModuleScriptLoader.h: Copied from Source/WebCore/dom/ModuleFetchParameters.h.
  • bindings/js/WorkerScriptFetcher.h: Added.
  • dom/Document.cpp:
  • dom/ExceptionCode.h:
  • dom/LoadableModuleScript.cpp:

(WebCore::LoadableModuleScript::LoadableModuleScript):
(WebCore::LoadableModuleScript::load): Deleted.

  • dom/LoadableModuleScript.h:
  • dom/ModuleFetchParameters.h:

(WebCore::ModuleFetchParameters::create):
(WebCore::ModuleFetchParameters::isTopLevelModule const):
(WebCore::ModuleFetchParameters::ModuleFetchParameters):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestModuleScript):

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::create):

  • loader/ThreadableLoader.h:

(WebCore::ThreadableLoader::create):

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

(WebCore::Worker::Worker):
(WebCore::Worker::create):
(WebCore::Worker::notifyFinished):

  • workers/Worker.h:
  • workers/Worker.idl:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::importScripts):

  • workers/WorkerGlobalScope.h:

(WebCore::WorkerGlobalScope::credentials const):

  • workers/WorkerGlobalScopeProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::startWorkerGlobalScope):

  • workers/WorkerMessagingProxy.h:
  • workers/WorkerOrWorkletGlobalScope.cpp:

(WebCore::WorkerOrWorkletGlobalScope::WorkerOrWorkletGlobalScope):

  • workers/WorkerOrWorkletGlobalScope.h:

(WebCore::WorkerOrWorkletGlobalScope::moduleLoader):

  • workers/WorkerOrWorkletScriptController.cpp:

(WebCore::jsValueToModuleKey):
(WebCore::WorkerOrWorkletScriptController::evaluateModule):
(WebCore::WorkerOrWorkletScriptController::loadModuleSynchronously):
(WebCore::WorkerOrWorkletScriptController::linkAndEvaluateModule):
(WebCore::WorkerOrWorkletScriptController::loadAndEvaluateModule):

  • workers/WorkerOrWorkletScriptController.h:
  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadAsynchronously):
(WebCore::WorkerScriptLoader::didReceiveResponse):

  • workers/WorkerScriptLoader.h:

(WebCore::WorkerScriptLoader::responseSource const):
(WebCore::WorkerScriptLoader::isRedirected const):

  • workers/WorkerThread.cpp:

(WebCore::WorkerParameters::isolatedCopy const):
(WebCore::WorkerThread::evaluateScriptIfNecessary):

  • workers/WorkerThread.h:
  • workers/WorkerType.h:
  • workers/service/ServiceWorkerContainer.h:
  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerJob.cpp:

(WebCore::ServiceWorkerJob::fetchScriptWithContext):

  • workers/service/ServiceWorkerRegistrationOptions.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::ServiceWorkerThread):

  • workers/service/server/SWServerWorker.h:
  • worklets/PaintWorkletGlobalScope.h:

(WebCore::PaintWorkletGlobalScope::paintDefinitionMap): Deleted.
(WebCore::PaintWorkletGlobalScope::paintDefinitionLock): Deleted.
(WebCore::PaintWorkletGlobalScope::~PaintWorkletGlobalScope): Deleted.

  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::fetchAndInvokeScript):
(WebCore::WorkletGlobalScope::processNextScriptFetchJobIfNeeded): Deleted.
(WebCore::WorkletGlobalScope::didReceiveResponse): Deleted.
(WebCore::WorkletGlobalScope::notifyFinished): Deleted.
(WebCore::WorkletGlobalScope::didCompleteScriptFetchJob): Deleted.

  • worklets/WorkletGlobalScope.h:

LayoutTests:

  • TestExpectations:
  • http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-redirect-expected.txt:
  • http/tests/subresource-integrity/sri-module-expected.txt:
  • webaudio/audioworklet-addModule-failure-expected.txt:
  • webaudio/worklet-crash-expected.txt:
10:17 AM Changeset in webkit [273202] by Wenson Hsieh
  • 5 edits in trunk

Unreviewed, reverting r273115.

Breaks autocorrect without the accompanying change in
rdar://problem/74211293

Reverted changeset:

"Unconditionally return information in _autofillContext SPI
when a field is focused"
https://bugs.webkit.org/show_bug.cgi?id=221828
https://commits.webkit.org/r273115

10:13 AM Changeset in webkit [273201] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix regression from r273194 that was spotted by Darin Adler after landing.

  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate completePaymentMethodSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingContactSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingMethodSelection:]):

10:11 AM Changeset in webkit [273200] by dino@apple.com
  • 19 edits
    4 adds in trunk/Source/ThirdParty/ANGLE

Fix a number of functional regressions caused by enabling the Metal ANGLE backend by default.
https://bugs.webkit.org/show_bug.cgi?id=220895
<rdar://problem/73539537>

Patch by Kyle Piddington <Kyle Piddington> on 2021-02-19
Reviewed by Kenneth Russell.

Take two of this patch - this time with the new files FixTypeConstructors and NameEmbeddedUniformStructsMetal

Fixed webgl/1.0.3/conformance/context/context-hidden-alpha.html

MTL Translator direct fixes for webgl/1.0.3/conformance/glsl/constructors/glsl-construct-*vec2 tests, Plus fix for GL_VertexIndex

Fix EmitMetal crash for missing function textureRect.

Additional fixes for 73675990, shaders-with-invariance.html, shaders-with-uniform-structs.html, struct-specifiers-in-uniforms.html, framebuffer-object-attachment.html

Fixed clamping of array elements.

  • ANGLE.xcodeproj/project.pbxproj:
  • src/compiler/translator/TranslatorMetalDirect.cpp:

(sh::TranslatorMetalDirect::translateImpl):

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:

(GenMetalTraverser::emitPostQualifier):
(GenMetalTraverser::visitBinary):
(GenMetalTraverser::BuildFuncToName):

  • src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp: Added.

(sh::FixTypeTraverser::FixTypeTraverser):
(sh::FixTypeConstructors):

  • src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.h: Added.
  • src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.cpp: Added.

(sh::NameEmbeddedStructUniformsMetal):

  • src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.h: Added.
  • src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp:

(SaturateVectorOf):

  • src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:

(sh::ProgramPrelude::ProgramPrelude):

  • src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp:

(sh::Reducer::Reducer):
(sh::ReduceInterfaceBlocks):

  • src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.h:
  • src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp:
  • src/libANGLE/renderer/load_functions_table_autogen.cpp:
  • src/libANGLE/renderer/metal/ContextMtl.mm:

(rx::ContextMtl::drawElementsImpl):

  • src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.h:
  • src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm:

(rx::IOSurfaceSurfaceMtl::IOSurfaceSurfaceMtl):
(rx::IOSurfaceSurfaceMtl::createBackingTexture):

  • src/libANGLE/renderer/metal/RenderBufferMtl.mm:

(rx::RenderbufferMtl::setStorageImpl):

  • src/libANGLE/renderer/metal/VertexArrayMtl.h:
  • src/libANGLE/renderer/metal/VertexArrayMtl.mm:

(rx::VertexArrayMtl::getIndexBuffer):
(rx::VertexArrayMtl::convertIndexBuffer):
(rx::VertexArrayMtl::streamIndexBufferFromClient):

  • src/libANGLE/renderer/metal/mtl_utils.mm:

(rx::mtl::InitializeDepthStencilTextureContentsGPU):

  • src/libANGLE/renderer/metal/shaders/blit.metal:
  • src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc:
9:00 AM Changeset in webkit [273199] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

Revert r272384 [Python-3] Change shebang in git-webkit
https://bugs.webkit.org/show_bug.cgi?id=221412

Unreviewed infrastructure fix.

Revert to Python 2 for git-webkit command because of auto-install issues.

  • CISupport/ews-build/steps.py:
  • CISupport/ews-build/steps_unittest.py:
6:18 AM Changeset in webkit [273198] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

[LFC][Integration] Enclosing top and bottom value are relative to the containing block's border box
https://bugs.webkit.org/show_bug.cgi?id=222220

Reviewed by Antti Koivisto.

This patch ensures that the enclosing top and bottom values are in the same coordinate space
as the line top and bottom values are.
See fast/scrolling/scroll-to-anchor-zoomed-header.html.

  • layout/inlineformatting/InlineFormattingContext.cpp:

(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):

  • layout/inlineformatting/InlineLineGeometry.h:
  • layout/integration/LayoutIntegrationInlineContentBuilder.cpp:

(WebCore::LayoutIntegration::operator+):
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):

2:39 AM Changeset in webkit [273197] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove unused isGoogle function
https://bugs.webkit.org/show_bug.cgi?id=222227

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-20
Reviewed by Frédéric Wang.

Remove unused (after r273084) isGoogle function.

  • platform/UserAgentQuirks.cpp:

(WebCore::isGoogle): Deleted.

Feb 19, 2021:

10:56 PM Changeset in webkit [273196] by Chris Dumez
  • 8 edits in trunk/Source/WebKit

Crash under Decoder::Decoder()
https://bugs.webkit.org/show_bug.cgi?id=222192
<rdar://31392681>

Reviewed by Geoffrey Garen.

We are sometimes crashing under Decoder's copyBuffer(), inside the memcpy()
call, with a null address. I have no idea how this is happening and this
code has not changed in a long time so I have made the following hardening:

  1. Update copyBuffer() to use tryFastMalloc() instead of fastMalloc(). Log and return null if tryFastMalloc() failed instead of calling memcpy().
  2. Update Decoder::create() to log and return early if the input buffer is null.
  3. Update Connection's createMessageDecoder() to use CheckedSize when computing the bodySize that is being passed to Decoder::create(). If we overflow, log and return null.

No new tests, no idea how this can happen in practice.

  • Platform/IPC/Decoder.cpp:

(IPC::copyBuffer):
(IPC::Decoder::create):
(IPC::Decoder::Decoder):

  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::createMessageDecoder):

10:37 PM Changeset in webkit [273195] by BJ Burg
  • 3 edits in trunk/Source/WebKit

[Cocoa] WKBrowsingContextHandle should conform to NSCopying
https://bugs.webkit.org/show_bug.cgi?id=222214

Reviewed by Devin Rousso.

  • Shared/API/Cocoa/WKBrowsingContextHandle.h:
  • Shared/API/Cocoa/WKBrowsingContextHandle.mm:

(-[WKBrowsingContextHandle copyWithZone:]):

10:37 PM Changeset in webkit [273194] by Chris Dumez
  • 52 edits in trunk

Review remaining usage of autorelease to make sure it is necessary
https://bugs.webkit.org/show_bug.cgi?id=222177

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

  • API/JSContext.mm:

(+[JSContext contextWithJSGlobalContextRef:]):

  • API/JSVirtualMachine.mm:

(+[JSVirtualMachine virtualMachineWithContextGroupRef:]):

  • API/JSWrapperMap.mm:

(-[JSWrapperMap objcWrapperForJSValueRef:inContext:]):

Source/WebCore:

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(-[WebVideoFullscreenController didFinishFullscreen:]):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(-[WKPaymentAuthorizationDelegate completePaymentMethodSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingContactSelection:]):
(-[WKPaymentAuthorizationDelegate completeShippingMethodSelection:]):

  • UIProcess/API/Cocoa/NSAttributedString.mm:

(+[_WKAttributedStringWebViewCache configuration]):
(+[NSAttributedString _loadFromHTMLWithOptions:contentLoader:completionHandler:]):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(setUpPagePolicyClient):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _takePDFSnapshotWithConfiguration:completionHandler:]):

  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView _requestTextInputContextsInRect:completionHandler:]):

  • WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:

(WebKit::convertToNPNNString):

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):

Source/WebKitLegacy/mac:

  • Misc/WebNSObjectExtras.mm:

(-[WebMainThreadInvoker forwardInvocation:]):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView sendEvent:isDrawRect:]):

  • WebView/WebVideoFullscreenController.mm:

(-[WebVideoFullscreenController init]):

Tools:

  • TestRunnerShared/mac/NSPasteboardAdditions.mm:

(+[NSPasteboard _modernPasteboardType:]):

  • TestWebKitAPI/Tests/JavaScriptCore/JSRunLoopTimer.mm:

(TestWebKitAPI::triggerGC):

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

(TestWebKitAPI::WebCoreNSURLSessionTest::SetUp):

  • TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/DeviceManagementRestrictions.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:

(TestWebKitAPI::webViewWithDownloadMonitorSpeedMultiplier):

  • TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:

(runDragStartDataTestCase):

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(-[InAppBrowserSchemeHandler webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBTempFileSize.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/JITEnabled.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/LocalStorageDatabaseTracker.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ReparentWebViewTimeout.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):
(-[ResourceLoadStatisticsSchemeHandler webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(TEST):
(-[UITestDelegate webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:

(webViewForScriptMessageHandlerMultipleHandlerRemovalTest):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:

(-[SyncErrorScheme webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/FontManagerTests.mm:

(TestWebKitAPI::TEST):

10:34 PM Changeset in webkit [273193] by commit-queue@webkit.org
  • 5 edits in trunk

Support aspect-ratio on flexbox items
https://bugs.webkit.org/show_bug.cgi?id=219679

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-19
Reviewed by Sergio Villar Senin.

Source/WebCore:

Support aspect-ratio on flexbox items by not only
considering implicit aspect-ratio in items (for example
images) but also through explicit aspect-ratio property
usage.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::cacheIntrinsicContentLogicalHeightForFlexItem const):
(WebCore::RenderBox::computeLogicalHeight const):
Do not pass indefinite intrinsic height.
(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatio const):
If override height is set then we can compute logical width from it.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::childHasAspectRatio):
(WebCore::RenderFlexibleBox::computeMainAxisExtentForChild):
(WebCore::RenderFlexibleBox::useChildAspectRatio const):
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const):
(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const):
(WebCore::RenderFlexibleBox::needToStretchChildLogicalHeight const):

LayoutTests:

Unskip tests that pass now.

9:52 PM Changeset in webkit [273192] by Devin Rousso
  • 16 edits
    2 copies in trunk/Source

[Payment Request] add an object data to PaymentShippingOption so that data specific to Apple Pay can be provided
https://bugs.webkit.org/show_bug.cgi?id=222211
<rdar://problem/72916508>

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/paymentrequest/PaymentShippingOption.idl:
  • Modules/paymentrequest/PaymentShippingOption.h:
  • Modules/applepay/ApplePayShippingMethod.idl:
  • Modules/applepay/ApplePayShippingMethod.h:

(WebCore::ApplePayShippingMethod::encode const):
(WebCore::ApplePayShippingMethod::decode):

  • Modules/applepay/ApplePayShippingMethodData.idl: Added.
  • Modules/applepay/ApplePayShippingMethodData.h: Added.

(WebCore::ApplePayShippingMethodData::encode const):
(WebCore::ApplePayShippingMethodData::decode):
(WebCore::ApplePayShippingMethodData::decodeData):

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::checkAndCanonicalizeDetails):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::merge): Added.
(WebCore::convertAndValidate):
(WebCore::computeShippingMethods):
Extend from ApplePayShippingMethodData, which is also used to pull values out of the
object data from PaymentShippingOption. This way, both Apple Pay JS and PaymentRequest
can be given the same data (albeit in slightly different places) and have the same capabilities.

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKShippingMethod):

  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(toShippingMethod):

9:29 PM Changeset in webkit [273191] by Devin Rousso
  • 9 edits in trunk/Source/WebCore

Allow track lists other than Subtitles/Captions/Descriptions to be sorted
https://bugs.webkit.org/show_bug.cgi?id=222207
<rdar://problem/74539660>

Reviewed by Eric Carlson.

  • html/track/TextTrac.h:
  • page/CaptionUserPreferences.h:
  • page/CaptionUserPreferences.cpp:

(WebCore::CaptionUserPreferences::sortedTrackListForMenu):

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

(WebCore::PlaybackSessionModelMediaElement::updateMediaSelectionOptions):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):

  • Modules/modern-media-controls/media/overflow-support.js:

(OverflowSupport.prototype.get tracksToMonitor):

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::sortedTrackListForMenu):
(WebCore::MediaControlsHost::showMediaControlsContextMenu):

7:46 PM Changeset in webkit [273190] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit

Unreviewed, fix some internal builds after r273184

Add a forward declaration for this (recently added) SPI, which we can safely revert once internal automation is
using an SDK with the fix for <rdar://problem/73852335>.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dataOwnerForPasteboard:]):

Additionally make this binary compatible with older versions of the system by adding a -respondsToSelector:
check before attempting to use the declared SPI.

7:06 PM Changeset in webkit [273189] by Chris Dumez
  • 19 edits in trunk/Source/ThirdParty/ANGLE

Unreviewed, reverting r273188.

Broke the build: Is missing a cpp file

Reverted changeset:

"Fix a number of functional regressions caused by enabling the
Metal ANGLE backend by default."
https://bugs.webkit.org/show_bug.cgi?id=220895
https://commits.webkit.org/r273188

6:09 PM Changeset in webkit [273188] by dino@apple.com
  • 19 edits in trunk/Source/ThirdParty/ANGLE

Fix a number of functional regressions caused by enabling the Metal ANGLE backend by default.
https://bugs.webkit.org/show_bug.cgi?id=220895
<rdar://problem/73539537>

Patch by Kyle Piddington <Kyle Piddington> on 2021-02-19
Reviewed by Kenneth Russell.

Fixed webgl/1.0.3/conformance/context/context-hidden-alpha.html

MTL Translator direct fixes for webgl/1.0.3/conformance/glsl/constructors/glsl-construct-*vec2 tests, Plus fix for GL_VertexIndex

Fix EmitMetal crash for missing function textureRect.

Additional fixes for 73675990, shaders-with-invariance.html, shaders-with-uniform-structs.html, struct-specifiers-in-uniforms.html, framebuffer-object-attachment.html

Fixed clamping of array elements.

  • ANGLE.xcodeproj/project.pbxproj:
  • src/compiler/translator/TranslatorMetalDirect.cpp:

(sh::TranslatorMetalDirect::translateImpl):

  • src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp:

(GenMetalTraverser::emitPostQualifier):
(GenMetalTraverser::visitBinary):
(GenMetalTraverser::BuildFuncToName):

  • src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.cpp: Added.

(sh::FixTypeTraverser::FixTypeTraverser):
(sh::FixTypeConstructors):

  • src/compiler/translator/TranslatorMetalDirect/FixTypeConstructors.h: Added.
  • src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.cpp: Added.

(sh::NameEmbeddedStructUniformsMetal):

  • src/compiler/translator/TranslatorMetalDirect/NameEmbeddedUniformStructsMetal.h: Added.
  • src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp:

(SaturateVectorOf):

  • src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:

(sh::ProgramPrelude::ProgramPrelude):

  • src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.cpp:

(sh::Reducer::Reducer):
(sh::ReduceInterfaceBlocks):

  • src/compiler/translator/TranslatorMetalDirect/ReduceInterfaceBlocks.h:
  • src/compiler/translator/TranslatorMetalDirect/SeparateCompoundStructDeclarations.cpp:
  • src/libANGLE/renderer/load_functions_table_autogen.cpp:
  • src/libANGLE/renderer/metal/ContextMtl.mm:

(rx::ContextMtl::drawElementsImpl):

  • src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.h:
  • src/libANGLE/renderer/metal/IOSurfaceSurfaceMtl.mm:

(rx::IOSurfaceSurfaceMtl::IOSurfaceSurfaceMtl):
(rx::IOSurfaceSurfaceMtl::createBackingTexture):

  • src/libANGLE/renderer/metal/RenderBufferMtl.mm:

(rx::RenderbufferMtl::setStorageImpl):

  • src/libANGLE/renderer/metal/VertexArrayMtl.h:
  • src/libANGLE/renderer/metal/VertexArrayMtl.mm:

(rx::VertexArrayMtl::getIndexBuffer):
(rx::VertexArrayMtl::convertIndexBuffer):
(rx::VertexArrayMtl::streamIndexBufferFromClient):

  • src/libANGLE/renderer/metal/mtl_utils.mm:

(rx::mtl::InitializeDepthStencilTextureContentsGPU):

  • src/libANGLE/renderer/metal/shaders/blit.metal:
  • src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc:
6:01 PM Changeset in webkit [273187] by ysuzuki@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

[JSC] Not allocating empty object for Intl options
https://bugs.webkit.org/show_bug.cgi?id=222203

Reviewed by Mark Lam.

This patch introduces Optional<JSObject&> to Intl options to explicitly mark it as maybe-null.
This maybe-null object can appear when the options is undefined. According to the spec, we allocates
empty object (with null Prototype?) for this case, but accessing this object's property is non-observable
since this does not have Prototype?. As a result, we can skip allocation and accesses in this case.

This can also pave the way to avoiding allocations of options objects for Date#toLocaleString etc.'s specific cases.

  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::initializeCollator):

  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::initializeDateTimeFormat):
(JSC::toDateTimeOptionsAnyDate): Deleted.

  • runtime/IntlDisplayNames.cpp:

(JSC::IntlDisplayNames::initializeDisplayNames):

  • runtime/IntlListFormat.cpp:

(JSC::IntlListFormat::initializeListFormat):

  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::initializeLocale):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):

  • runtime/IntlNumberFormat.h:
  • runtime/IntlNumberFormatInlines.h:

(JSC::setNumberFormatDigitOptions):

  • runtime/IntlObject.cpp:

(JSC::intlBooleanOption):
(JSC::intlStringOption):
(JSC::intlNumberOption):
(JSC::supportedLocales):

  • runtime/IntlObject.h:
  • runtime/IntlObjectInlines.h:

(JSC::intlOption):
(JSC::intlGetOptionsObject): Deleted.

  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::initializePluralRules):

  • runtime/IntlPluralRules.h:
  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::initializeRelativeTimeFormat):

  • runtime/IntlSegmenter.cpp:

(JSC::IntlSegmenter::initializeSegmenter):

5:07 PM Changeset in webkit [273186] by Kate Cheney
  • 3 edits in trunk/Source/WebKit

Add back old media playback API but deprecated
https://bugs.webkit.org/show_bug.cgi?id=222206
<rdar://problem/74539125>

We should add these back in case clients adopted them before the name
update in https://trac.webkit.org/changeset/272923/webkit.

Reviewed by Tim Horton.

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

(-[WKWebView pauseAllMediaPlayback:]):
(-[WKWebView suspendAllMediaPlayback:]):
(-[WKWebView resumeAllMediaPlayback:]):
(-[WKWebView closeAllMediaPresentations:]):
(-[WKWebView requestMediaPlaybackState:]):

4:55 PM Changeset in webkit [273185] by Patrick Angle
  • 2 edits in trunk/Source/WebCore

Web Inspector: Implement Grid Overlay "Show line names" drawing
https://bugs.webkit.org/show_bug.cgi?id=222006
<rdar://problem/74409722>

Reviewed by BJ Burg.

Followup for r273155 related to WTF::String::append performance.

  • inspector/InspectorOverlay.cpp:

(WebCore::gridLineNames):

  • Use const Vector<String>& to avoid copying the entire Vector and churning the reference count on the strings.

(WebCore::InspectorOverlay::drawGridOverlay):

  • Use WTF::StringBuilder instead of WTF::String::append for line label contents.
4:51 PM Changeset in webkit [273184] by Wenson Hsieh
  • 28 edits
    2 adds in trunk

[iOS] Specify a _UIDataOwner when reading or writing from the system pasteboard
https://bugs.webkit.org/show_bug.cgi?id=222072
<rdar://problem/74208576>

Reviewed by Devin Rousso.

Source/WebCore:

Add a static helper method to PlatformPasteboard, so that it can perform arbitrary pasteboard operations
within the context of a given DataOwnerType. We then use this static helper to wrap all pasteboard access
(reading, writing, etc.) inside calls to +[UIPasteboard _performAsDataOwner:block:] -- see WebKit ChangeLog
for more details.

Tests: UIPasteboardTests.PerformAsDataOwnerWhenCopying

UIPasteboardTests.PerformAsDataOwnerWhenPasting

  • Headers.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/DataOwnerType.h: Added.

Add a new enum to represent a data owner type.

  • platform/PlatformPasteboard.h:
  • platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::performAsDataOwner):

  • platform/libwpe/PlatformPasteboardLibWPE.cpp:

(WebCore::PlatformPasteboard::performAsDataOwner):

  • platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::performAsDataOwner):

Source/WebCore/PAL:

Import UIPasteboard_Private.h so that PlatformPasteboardIOS.mm can use the new SPI.

  • pal/spi/ios/UIKitSPI.h:

Source/WebKit:

Adds WebKit2 support for tagging PlatformPasteboard with the content view's pasteboard data owner type. See
below for more details.

  • Platform/spi/ios/UIKitSPI.h:

Import UIPasteboard_Private.h so that we know about +_performAsDataOwner:block: in the API tests.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardTypes):
(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):
(WebKit::WebPasteboardProxy::getPasteboardStringForType):
(WebKit::WebPasteboardProxy::getPasteboardStringsForType):
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::getPasteboardChangeCount):
(WebKit::WebPasteboardProxy::getPasteboardColor):
(WebKit::WebPasteboardProxy::getPasteboardURL):
(WebKit::WebPasteboardProxy::addPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardURL):
(WebKit::WebPasteboardProxy::setPasteboardColor):
(WebKit::WebPasteboardProxy::setPasteboardStringForType):
(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):

Make all of these methods use dataOwner() with either a Read or Write pasteboard access intent to grab the
data owner type from the view corresponding to the page identifier, and then wrap all pasteboard access within
PlatformPasteboard's new performAsDataOwner static helper.

(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::getNumberOfFiles):
(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
(WebKit::WebPasteboardProxy::writeCustomData):
(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):
(WebKit::WebPasteboardProxy::writeURLToPasteboard):
(WebKit::WebPasteboardProxy::writeWebContentToPasteboard):
(WebKit::WebPasteboardProxy::writeImageToPasteboard):
(WebKit::WebPasteboardProxy::writeStringToPasteboard):
(WebKit::WebPasteboardProxy::updateSupportedTypeIdentifiers):
(WebKit::WebPasteboardProxy::determineDataOwner const):

Use the given page identifier in various pasteboard IPC endpoints in WebPasteboardProxy to ask WebPageProxy
for its pasteboard data owner type when reading or writing pasteboard data.

  • UIProcess/PageClient.h:

Add a client hook to return a DataOwnerType enum, given a PasteboardAccessIntent -- that is, copy (write) or
paste (read).

(WebKit::PageClient::dataOwnerForPasteboard const):

  • UIProcess/PasteboardAccessIntent.h: Added.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::dataOwnerForPasteboard const):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::dataOwnerForPasteboard const):

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(coreDataOwnerType):
(-[WKContentView _dataOwnerForPasteboard:]):

Return -_dataOwnerForPaste or -_dataOwnerForCopy (depending on the PasteboardAccessIntent).

  • WebKit.xcodeproj/project.pbxproj:

Source/WTF:

  • wtf/PlatformHave.h:

Turn several compile-time guards previously in PlatformPasteboardIOS.mm into HAVE()-s.

Tools:

Add a couple of new API tests to verify that +[UIPasteboard _performAsDataOwner:block:] is invoked with the
expected data owner type when copying and pasting.

  • TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:

(+[TestUIPasteboard _performAsDataOwner:block:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView contentsAsString]):

Additionally add a helper method to grab a WKWebView's contents as an NSString, just for convenience.

4:46 PM Changeset in webkit [273183] by Chris Dumez
  • 33 edits in trunk/Source

Make format of release logging more consistent to facilitate grepping
https://bugs.webkit.org/show_bug.cgi?id=222200

Reviewed by Simon Fraser.

Source/WebCore:

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setMainDocumentError):
(WebCore::DocumentLoader::mainReceivedError):
(WebCore::DocumentLoader::notifyFinished):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::DocumentLoader::startLoadingMainResource):
(WebCore::DocumentLoader::cancelMainResourceLoad):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didFail):
(WebCore::SubresourceLoader::willCancel):

  • workers/service/ServiceWorker.cpp:

(WebCore::ServiceWorker::ServiceWorker):
(WebCore::ServiceWorker::updateState):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):
(WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):

  • workers/service/ServiceWorkerRegistration.cpp:

(WebCore::ServiceWorkerRegistration::ServiceWorkerRegistration):

  • workers/service/server/SWServerJobQueue.cpp:

(WebCore::SWServerJobQueue::scriptFetchFinished):
(WebCore::SWServerJobQueue::didResolveRegistrationPromise):

Source/WebKit:

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::didCompleteWithError):

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::didReceiveMessage):
(WebKit::NetworkProcess::didReceiveSyncMessage):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::prepareToSuspend):

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::didReceiveResponse):
(WebKit::PingLoad::didCompleteWithError):

  • NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::didFailLoading):

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::startFetch):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::waitForSyncReply):

  • UIProcess/ApplicationStateTracker.mm:

(WebKit::ApplicationStateTracker::ApplicationStateTracker):

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::terminate):

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::setAssertionType):
(WebKit::ProcessThrottler::updateAssertionIfNeeded):
(WebKit::ProcessThrottler::sendPrepareToSuspendIPC):

  • UIProcess/ProvisionalPageProxy.cpp:

(WebKit::ProvisionalPageProxy::ProvisionalPageProxy):
(WebKit::ProvisionalPageProxy::processDidTerminate):
(WebKit::ProvisionalPageProxy::cancel):
(WebKit::ProvisionalPageProxy::loadData):
(WebKit::ProvisionalPageProxy::loadRequest):
(WebKit::ProvisionalPageProxy::goToBackForwardItem):
(WebKit::ProvisionalPageProxy::didCreateMainFrame):
(WebKit::ProvisionalPageProxy::didStartProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
(WebKit::ProvisionalPageProxy::didCommitLoadForFrame):
(WebKit::ProvisionalPageProxy::didCreateContextForVisibilityPropagation):

  • UIProcess/WebBackForwardCache.cpp:

(WebKit::WebBackForwardCache::addEntry):
(WebKit::WebBackForwardCache::removeEntry):
(WebKit::WebBackForwardCache::takeSuspendedPage):

  • UIProcess/WebBackForwardCacheEntry.cpp:

(WebKit::WebBackForwardCacheEntry::expirationTimerFired):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::willPerformClientRedirectForFrame):
(WebKit::WebPageProxy::didCancelClientRedirectForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::didPerformClientRedirectShared):
(WebKit::WebPageProxy::dispatchProcessDidTerminate):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::gpuProcessCrashed):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::updateServiceWorkerProcessAssertion):

  • UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager _updateBackgroundTask]):
(-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpiration]):
(-[WKProcessAssertionBackgroundTaskManager _handleBackgroundTaskExpirationOnMainThread]):
(WebKit::ProcessAssertion::ProcessAssertion):
(WebKit::ProcessAssertion::~ProcessAssertion):
(WebKit::ProcessAssertion::processAssertionWasInvalidated):

  • UIProcess/ios/WKApplicationStateTrackingView.mm:

(-[WKApplicationStateTrackingView willMoveToWindow:]):
(-[WKApplicationStateTrackingView didMoveToWindow]):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _setupVisibilityPropagationView]):
(-[WKContentView _setupVisibilityPropagationViewForGPUProcess]):

  • WebAuthnProcess/WebAuthnProcess.cpp:

(WebKit::WebAuthnProcess::prepareToSuspend):

  • WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:

(WebKit::WebResourceLoadObserver::logUserInteractionWithReducedTimeResolution):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didReceivePolicyDecision):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::prepareToSuspend):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::updateFreezerStatus):

4:31 PM Changeset in webkit [273182] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS Wk 2 ] inspector/debugger/async-stack-trace-basic.html is flakey timing out
https://bugs.webkit.org/show_bug.cgi?id=222209

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-19

  • platform/mac-wk2/TestExpectations: Marking as flakey timeout to skip in EWS, timeouts also occurring in production.
4:26 PM Changeset in webkit [273181] by commit-queue@webkit.org
  • 7 edits in trunk

NSError returned by WebKit API should actually conform to NSSecureCoding
https://bugs.webkit.org/show_bug.cgi?id=222204
<rdar://problem/63893583>

Patch by Alex Christensen <achristensen@webkit.org> on 2021-02-19
Reviewed by Chris Dumez.

Source/WebKit:

When an NSError is encoded, its userInfo is encoded, which means everything we put in userInfo should be encodable.
WKReloadFrameErrorRecoveryAttempter was not, so let's make it! When encoded, it will just encode nothing.
When decoded, it will produce a WKReloadFrameErrorRecoveryAttempter that does nothing, which is valid behavior,
and more desirable than crashing.

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

(-[WKReloadFrameErrorRecoveryAttempter encodeWithCoder:]):
(-[WKReloadFrameErrorRecoveryAttempter initWithCoder:]):
(+[WKReloadFrameErrorRecoveryAttempter supportsSecureCoding]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/cocoa/TestNavigationDelegate.h:
  • TestWebKitAPI/cocoa/TestNavigationDelegate.mm:

(-[TestNavigationDelegate waitForDidFailProvisionalNavigation]):

4:18 PM Changeset in webkit [273180] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

CrashTracer: com.apple.WebKit.Networking at WebKit: WTF::Detail::CallableWrapper<WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests()
https://bugs.webkit.org/show_bug.cgi?id=222201

Patch by Alex Christensen <achristensen@webkit.org> on 2021-02-19
Reviewed by Chris Dumez.

  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::attribute):
(WebKit::PrivateClickMeasurementManager::firePendingAttributionRequests):

3:50 PM Changeset in webkit [273179] by Truitt Savell
  • 2 edits in trunk/LayoutTests

inspector/animation/lifecycle-css-transition.html is a flakey timeout on EWS
https://bugs.webkit.org/show_bug.cgi?id=222195

Unreviewed testing gardneing.

Patch by Robert Jenner <Robert Jenner> on 2021-02-19

  • platform/mac/TestExpectations: Marking as flakey timeout to skip in EWS, but not in produciton.
3:38 PM Changeset in webkit [273178] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r273069. rdar://problem/74500798

Backgrounding a page that is playing and capturing audio will stop audio playing
https://bugs.webkit.org/show_bug.cgi?id=222032
<rdar://problem/74389497>

Reviewed by Eric Carlson.

When a page gets backgrounded while capturing, it will continue doing capture, as can be seen with the red status bar.
In that case, for video conferencing, it makes sense that audio being played continues playing, at least for MediaStreamTrack.
The red status bar is an indication that the call is continuing.
Also, for MediaStreamTrack, audio and video content are not buffered: they are played or discarded.
The media player, whenever not visible, will stop processing video but will continue processing audio if not interrupted.
This makes it working for websites using video elements for both audio and video, which is more common than websites using video elements for video and audio elements for audio.

Manually tested.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const):

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

3:38 PM Changeset in webkit [273177] by Alan Coon
  • 5 edits
    2 adds in branches/safari-611-branch

Cherry-pick r273003. rdar://problem/74500696

Animated keyframe style needs to go through full style adjuster
https://bugs.webkit.org/show_bug.cgi?id=222036
rdar://72421747

Reviewed by Zalan Bujtas.

Source/WebCore:

We can create unadjusted styles via keyframe animations and those may cause problems in rendering.

Test: fast/animation/animation-position-crash.html

  • style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjustAnimatedStyle):

Make this a member function and invoke Adjuster::adjust.
Simplify the z-index adjustment since it is mostly handled by adjust.

  • style/StyleAdjuster.h:
  • style/StyleTreeResolver.cpp:

Always use style adjuster for keyframe animation.

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:

  • fast/animation/animation-position-crash-expected.html: Added.
  • fast/animation/animation-position-crash.html: Added.

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

3:37 PM Changeset in webkit [273176] by Alan Coon
  • 4 edits in branches/safari-611-branch/Source/WebKit

Cherry-pick r272990. rdar://problem/74500669

Regression(r268097): Calling processDidTerminate delegate asynchronously is risky compatibility-wise
https://bugs.webkit.org/show_bug.cgi?id=222011

Reviewed by Carlos Garcia Campos.

Calling processDidTerminate delegate asynchronously like we did in r268097 is risky compatibility-wise.
This caused breakage in at least 2 client applications. While this can be dealt with on the client side,
it would be better to fix what r268097 was trying to fix without making the delegate call asynchronous.
The reason calling the delegate asynchronously is risky is because some view state may have time to get
reset by the time the client gets notified on the crash, potentially confusing the crash handling logic
in the client.

No new tests, covered by WKNavigation.ReloadRelatedViewsInProcessDidTerminate API test that is
still passing even though the delegate call is no longer asynchronous.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::commitProvisionalPage): (WebKit::WebPageProxy::resetStateAfterProcessTermination): (WebKit::WebPageProxy::dispatchProcessDidTerminate):
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch): (WebKit::WebProcessProxy::requestTermination):

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

3:37 PM Changeset in webkit [273175] by Alan Coon
  • 3 edits in branches/safari-611-branch/Source/JavaScriptCore

Cherry-pick r272938. rdar://problem/74500752

operationNewArrayWithSize should call tryCreate instead of create
https://bugs.webkit.org/show_bug.cgi?id=221983
<rdar://74265630>

Reviewed by Mark Lam.

I disassembled crashlogs inside operationNewArrayWithSize. They are crashing
inside array allocation. They are crashing on OOM. By code inspection,
operationNewArrayWithSizeAndHint has the same problem.

Callsites to both functions already handle exceptions being thrown, so
converting both operationNewArrayWithSize and operationNewArrayWithSizeAndHint
to throw instead of crash on OOM is trivial.

I wasn't able to come up with a test case for this.

  • dfg/DFGOperations.cpp: (JSC::DFG::JSC_DEFINE_JIT_OPERATION):
  • runtime/ObjectConstructor.cpp: (JSC::ownPropertyKeys):

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

3:37 PM Changeset in webkit [273174] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272931. rdar://problem/74500616

RenderElement::containingBlockForAbsolutePosition may call RenderObject::containingBlock recursively
https://bugs.webkit.org/show_bug.cgi?id=221976
<rdar://problem/72775667>

Reviewed by Simon Fraser.

When a RenderInline happens to be absolute positioned (this is a highly incorrect state, see webkit.org/b/221994), containingBlockForAbsolutePosition() calls containingBlock()
with |this| and in return containingBlock() calls back on containingBlockForAbsolutePosition() with the same renderer.
This patch ensures that we always call containingBlock() from containingBlockForAbsolutePosition() with an ancestor -mostly with the parent().

  • rendering/RenderElement.cpp: (WebCore::RenderElement::containingBlockForAbsolutePosition const):

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

3:37 PM Changeset in webkit [273173] by Alan Coon
  • 4 edits in branches/safari-611-branch

Cherry-pick r272927. rdar://problem/74500651

REGRESSION(r271515): ::marker fired at wrong time
https://bugs.webkit.org/show_bug.cgi?id=221961
<rdar://problem/74397846>

Reviewed by Dean Jackson.

Source/WebCore:

Restore the order in which we generate CSS Animations for pseudo-elements as it was prior to r271515.

  • style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::resolveElement):

LayoutTests:

Remove flakiness for this test since it didn't allow us to spot the regression introduced by r271515.

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

3:37 PM Changeset in webkit [273172] by Alan Coon
  • 2 edits in branches/safari-611-branch/Source/WebCore

Cherry-pick r272913. rdar://problem/74500965

AVAudioSessionCaptureDeviceManager should disable its audio session in a background thread
https://bugs.webkit.org/show_bug.cgi?id=221949
<rdar://problem/74315824>

Reviewed by Eric Carlson.

Manually tested.

  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: (WebCore::AVAudioSessionCaptureDeviceManager::disableAllDevicesQuery): Hop to a background thread before disabling the audio session. Abort if audio session is no longer marked as unneeded.

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

3:37 PM Changeset in webkit [273171] by Alan Coon
  • 3 edits
    2 adds in branches/safari-611-branch

Cherry-pick r272379. rdar://problem/74500599

Supplementary code points (U+10000 - U+10FFFF) are not shaped correctly in the fast text codepath
https://bugs.webkit.org/show_bug.cgi?id=221356
<rdar://problem/72555297>

Reviewed by Zalan Bujtas.

Source/WebCore:

Supplementary code points are represented in UTF-16 as two adjacent (surrogate) code units. When we map code
points to glyphs, we were originally mapping these two code units to a single glyph. However, shaping
routines require that the number of code units and glyphs be equal, by injecting a 0 glyph for the trailing
surrogate.

Luckily, we don't actually have to delete these extra 0 glyphs, because the shaping engine will do that for us.

Test: fast/text/multi-code-unit-simple-path.html

  • platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::advanceInternal):

LayoutTests:

  • fast/text/multi-code-unit-simple-path-expected-mismatch.html: Added.
  • fast/text/multi-code-unit-simple-path.html: Added.

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

3:37 PM Changeset in webkit [273170] by Alan Coon
  • 4 edits in branches/safari-611-branch/Source/WebKit

Revert r246382. rdar://problem/74501060

3:24 PM Changeset in webkit [273169] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Remove access to IOSurfaceAcceleratorClient
https://bugs.webkit.org/show_bug.cgi?id=222199
<rdar://problem/73518610>

Reviewed by Brent Fulgham.

Remove access to IOSurfaceAcceleratorClient in the WebContent process on iOS when the GPU process is enabled.
This patch also adds the IOKit filter from IOSurfaceRootUserClient when the GPU process is not enabled, to
the rule for IOSurfaceRootUserClient when the GPU process is enabled.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:16 PM Changeset in webkit [273168] by Truitt Savell
  • 2 edits in trunk/LayoutTests

css3/calc/transforms-translate.html is a flakey image failure in EWS
https://bugs.webkit.org/show_bug.cgi?id=222205

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-19

  • platform/mac/TestExpectations: Marking as flakey Image Failure to skip in EWS, but not in production.
3:15 PM Changeset in webkit [273167] by jiewen_tan@apple.com
  • 15 edits
    4 adds in trunk

PCM: Generate secret token and corresponding unlinkable token
https://bugs.webkit.org/show_bug.cgi?id=222019
<rdar://problem/73581412>

Reviewed by John Wilander.

Source/WebCore:

Covered by API tests.

This patch utilizes RSABSSA to generate secret token for PCM fraud prevention.

  • Configurations/WebCore.xcconfig:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:

Paperwork to link CryptoKitCBridging.

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::isValid const):
(WebCore::PrivateClickMeasurement::setEphemeralSourceNonce):

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::attributeOnSite const):
(WebCore::PrivateClickMeasurement::ephemeralSourceNonce const):
(WebCore::PrivateClickMeasurement::clearEphemeralSourceNonce):
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::EphemeralSourceNonce): Deleted.
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::isValid const): Deleted.
(WebCore::PrivateClickMeasurement::setEphemeralSourceNonce): Deleted.
Groups functionalities behind HAVE_RSA_BSSA.

  • loader/cocoa/PrivateClickMeasurementCocoa.mm: Added.

(WebCore::PrivateClickMeasurement::blindedSecretJson):
(WebCore::PrivateClickMeasurement::calculatePersistentBlindedToken):
Introduces new methods to generate the blinded secrets and unlinkable tokens.

Source/WTF:

  • wtf/PlatformHave.h:

Adds a compile time flag for RSABSSA.

Tools:

  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):
Add tests.

3:01 PM Changeset in webkit [273166] by Truitt Savell
  • 2 edits in trunk/LayoutTests

media/modern-media-controls/tracks-support/tracks-support-audio-tracks.html is a flakey timeout on EWS
https://bugs.webkit.org/show_bug.cgi?id=222197

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-19

  • platform/mac/TestExpectations: Marking as flakey time out to skip in EWS, but not in production.
2:56 PM Changeset in webkit [273165] by jer.noble@apple.com
  • 2 edits in trunk/Source/WTF

[Cocoa] Enable Opus decode support by default
https://bugs.webkit.org/show_bug.cgi?id=222131

Reviewed by Eric Carlson.

  • Scripts/Preferences/WebPreferencesExperimental.yaml:
1:35 PM Changeset in webkit [273164] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: CSS Grid Inspector: use a color palette for default grid overlay colors
https://bugs.webkit.org/show_bug.cgi?id=222161

Reviewed by Devin Rousso.

Define a 5-color palette.

  • UserInterface/Controllers/OverlayManager.js:

(WI.OverlayManager):
(WI.OverlayManager.prototype.showGridOverlay):
(WI.OverlayManager.prototype.colorForNode):
(WI.OverlayManager.prototype._handleMainResourceDidChange):

  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection.prototype.layout):

1:28 PM Changeset in webkit [273163] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Legacy CDM doesn't work when GPU media process is enabled
https://bugs.webkit.org/show_bug.cgi?id=222163
rdar://74254335

Patch by Jean-Yves Avenard <Jean-Yves Avenard> on 2021-02-19
Reviewed by Eric Carlson.

We don't have an infrastructure to generate CDM keys

  • WebProcess/GPU/media/RemoteLegacyCDMSession.cpp:

(WebKit::RemoteLegacyCDMSession::update):
Don't unditionally report that an error occurred, but the result of the actual proxied operation in the content process.

1:04 PM Changeset in webkit [273162] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Partially revert r272973
https://bugs.webkit.org/show_bug.cgi?id=222168

Unreviewed, partially reverting r272973.

Partially revert r272973, since it appears to have caused a Safari launch regression.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
1:04 PM Changeset in webkit [273161] by Truitt Savell
  • 2 edits in trunk/LayoutTests

media/media-extension-with-fragment.html is crashing on EWS
https://bugs.webkit.org/show_bug.cgi?id=222185

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-19

  • platform/mac/TestExpectations: Marking as Crash to skip in EWS, but not in production.
12:50 PM Changeset in webkit [273160] by msaboff@apple.com
  • 5 edits
    14 adds in trunk

Minor fixes to RegExp match indices after r273086
https://bugs.webkit.org/show_bug.cgi?id=222157

Reviewed by Yusuke Suzuki.

JSTests:

Added a new test to verify that all flag RegExp flag combinations work round tripping
from flags to flag proerties and back.
Added standalone versions of the updated regexp-match-indices from the PR
https://github.com/tc39/test262/pull/2934 as JSTest/stress test.
Disabled the regexp-match-indices feature test in test262 until the pull request
with updated tests land and we update the WebKit version.
This is tracked in https://bugs.webkit.org/show_bug.cgi?id=222142.

  • stress/regexp-all-flags.js: Added.

(flagsFromVariation):
(setPropertiesForVariation):
(missingPropertiesForVariation):
(test.let.flagsSet.get call):
(test):

  • stress/test262-indices-array-element.js: Added.

(assertSameValue):

  • stress/test262-indices-array-matched.js: Added.

(assertSameValue):
(assertCompareArray):

  • stress/test262-indices-array-non-unicode-match.js: Added.

(assertSameValue):
(assertCompareArray):
(assertDeepEqual):
(verifyProperty):

  • stress/test262-indices-array-properties.js: Added.

(verifyProperty):

  • stress/test262-indices-array-unicode-match.js: Added.

(assertSameValue):
(assertCompareArray):
(assertDeepEqual):
(verifyProperty):

  • stress/test262-indices-array-unicode-property-names.js: Added.

(assertCompareArray):

  • stress/test262-indices-array-unmatched.js: Added.

(assertSameValue):

  • stress/test262-indices-array.js: Added.

(assert):
(assertSameValue):

  • stress/test262-indices-groups-object-undefined.js: Added.

(verifyProperty):

  • stress/test262-indices-groups-object-unmatched.js: Added.

(assertSameValue):
(assertCompareArray):

  • stress/test262-indices-groups-object.js: Added.

(assertSameValue):
(assertCompareArray):
(verifyProperty):

  • stress/test262-indices-groups-properties.js: Added.

(assertCompareArray):
(verifyProperty):

  • stress/test262-indices-property.js: Added.

(assertSameValue):
(verifyProperty):

  • test262/config.yaml:

Source/JavaScriptCore:

When hasIndices is true, but there aren't any named groups, the spec says that we should
create the indices.groups property is the value undefined.
Increased the size of FlagsString to 7 plus terminater to account for the new 'd' flags.

  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/RegExpPrototype.cpp:
12:47 PM Changeset in webkit [273159] by Devin Rousso
  • 38 edits
    1 copy
    1 add in trunk/Source

[Payment Request] add support for Apple Pay payment method mode
https://bugs.webkit.org/show_bug.cgi?id=222128
<rdar://problem/72320278>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • Modules/applepay/ApplePayPaymentMethodModeUpdate.idl: Added.
  • Modules/applepay/ApplePayPaymentMethodModeUpdate.h: Added.

(WebCore::ApplePayPaymentMethodModeUpdate::encode const):
(WebCore::ApplePayPaymentMethodModeUpdate::decode):
Allow all aspects of the current payment request to be updated.

  • Modules/applepay/ApplePaySession.h:
  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate):
(WebCore::ApplePaySession::didChangePaymentMethodMode): Added.
(WebCore::ApplePaySession::canSuspendWithoutCanceling const):
(WebCore::ApplePaySession::canBegin const):
(WebCore::ApplePaySession::canAbort const):
(WebCore::ApplePaySession::canCancel const):
(WebCore::ApplePaySession::canCompleteShippingMethodSelection const):
(WebCore::ApplePaySession::canCompleteShippingContactSelection const):
(WebCore::ApplePaySession::canCompletePaymentMethodSelection const):
(WebCore::ApplePaySession::canCompletePaymentMethodModeChange const): Added.
(WebCore::ApplePaySession::canCompletePayment const):
(WebCore::ApplePaySession::isFinalState const):
Dispatch a new event for when the payment method mode changes and add a new method to be
called inside that event handler.

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::computeErrors const): Added.
(WebCore::ApplePayPaymentHandler::detailsUpdated):
(WebCore::ApplePayPaymentHandler::shippingAddressUpdated):
(WebCore::ApplePayPaymentHandler::shippingOptionUpdated):
(WebCore::ApplePayPaymentHandler::paymentMethodUpdated):
(WebCore::ApplePayPaymentHandler::didAuthorizePayment):
(WebCore::ApplePayPaymentHandler::didSelectShippingMethod):
(WebCore::ApplePayPaymentHandler::didSelectShippingContact):
(WebCore::ApplePayPaymentHandler::didSelectPaymentMethod):
(WebCore::ApplePayPaymentHandler::didChangePaymentMethodMode): Added.
Use the existing PaymentMethodChangeEvent by providing the new mode in methodDetails.

  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::completePaymentMethodModeChange): Added.
(WebCore::PaymentCoordinator::didChangePaymentMethodMode): Added.

  • Modules/applepay/PaymentCoordinatorClient.h:
  • Modules/applepay/PaymentSession.h:

Piping from/to the WebProcess for payment method mode changes.

  • dom/EventNames.h:
  • Modules/applepay/ApplePayErrorCode.h:
  • Modules/applepay/ApplePayErrorCode.idl:

New enum values for payment method mode errors.

  • Modules/applepay/PaymentHeaders.h:
  • loader/EmptyClients.cpp:
  • testing/MockPaymentCoordinator.h:
  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::completePaymentMethodModeChange): Added.

  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:

Source/WebKit:

Handle the delegate call from PaymentAuthorization(View)Controller by passing it along to
the WebProcess to be handled by WebCore. Handle the response sent by the WebProcess by
invoking the callback that was provided by the delegate call (which is saved to an ivar).

  • WebProcess/ApplePay/WebPaymentCoordinator.messages.in:
  • WebProcess/ApplePay/WebPaymentCoordinator.h:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::completePaymentMethodModeChange): Added.
(WebKit::WebPaymentCoordinator::didChangePaymentMethodMode): Added.

  • Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::completePaymentMethodModeChange): Added.
(WebKit::WebPaymentCoordinatorProxy::presenterDidChangePaymentMethodMode): Added.
(WebKit::WebPaymentCoordinatorProxy::canBegin const):
(WebKit::WebPaymentCoordinatorProxy::canCancel const):
(WebKit::WebPaymentCoordinatorProxy::canCompletePayment const):
(WebKit::WebPaymentCoordinatorProxy::canAbort const):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentMethodModeChange): Added.

  • Platform/cocoa/PaymentAuthorizationPresenter.h:
  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::toPKPaymentErrorCode):
(WebKit::PaymentAuthorizationPresenter::completePaymentMethodModeChange): Added.

  • Platform/cocoa/PaymentAuthorizationViewController.mm:
  • Platform/cocoa/WKPaymentAuthorizationDelegate.h:
  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:
  • Platform/ios/PaymentAuthorizationController.mm:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPaymentCoordinatorClient.h:
  • WebCoreSupport/WebPaymentCoordinatorClient.mm:

(WebPaymentCoordinatorClient::completePaymentMethodModeChange):

12:39 PM Changeset in webkit [273158] by youenn@apple.com
  • 9 edits
    1 add in trunk

Allow to use BigInt as key identifier
https://bugs.webkit.org/show_bug.cgi?id=222165

Reviewed by Darin Adler.

Source/WebCore:

Allow to pass a BigInt as key id so as to use all of SFrame key ID 8 bytes.
A RangeError is thrown if BigInt is more than 64 bits.

Update the implementation to use a Vector instead of a map to keep the keys.
This allows to also use 0 and 264-1 values that HashMap reserves for its personal use.

Covered by updated test.

  • Modules/mediastream/RTCRtpSFrameTransform.idl:
  • Modules/mediastream/RTCRtpSFrameTransformer.cpp:

(WebCore::RTCRtpSFrameTransformer::setEncryptionKey):
(WebCore::RTCRtpSFrameTransformer::updateEncryptionKey):
(WebCore::RTCRtpSFrameTransformer::decryptFrame):

  • Modules/mediastream/RTCRtpSFrameTransformer.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSRTCRtpSFrameTransformCustom.cpp: Added.

(WebCore::JSRTCRtpSFrameTransform::setEncryptionKey):

LayoutTests:

  • webrtc/sframe-keys-expected.txt:
  • webrtc/sframe-keys.html:
12:12 PM Changeset in webkit [273157] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Add IOKit filtering also when the GPU process is enabled
https://bugs.webkit.org/show_bug.cgi?id=222153
<rdar://problem/74505024>

Reviewed by Brent Fulgham.

IOKit filtering is enabled when the GPU process is not enabled. It should also be enabled when the GPU process is enabled.

  • WebProcess/com.apple.WebProcess.sb.in:
12:09 PM Changeset in webkit [273156] by Fujii Hironori
  • 4 edits in trunk

A number of offscreencanvas tests are asserting isMainThread trying to access strictCSSParserContext
https://bugs.webkit.org/show_bug.cgi?id=222156

Reviewed by Carlos Garcia Campos.

Source/WebCore:

strictCSSParserContext() can be used only in the main thread.
It can't be used in parseColorWorkerSafe().

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseColorWorkerSafe): Use
CSSParserContext(HTMLStandardMode) instead of
strictCSSParserContext().

LayoutTests:

  • platform/glib/TestExpectations:
12:01 PM Changeset in webkit [273155] by Patrick Angle
  • 2 edits in trunk/Source/WebCore

Web Inspector: Implement Grid Overlay "Show line names" drawing
https://bugs.webkit.org/show_bug.cgi?id=222006
<rdar://problem/74409722>

Reviewed by BJ Burg.

Add support for showing line names to the grid overlay, including explicit, auto-repeated, and implicit names.

  • inspector/InspectorOverlay.cpp:

(WebCore::gridLineNames):

  • Gather the grid line names for a grid from the multiple possible sources.

(WebCore::InspectorOverlay::drawGridOverlay):

  • Support showing grid line name labels.
  • Refactored line number label drawing to share a common structure with line name label drawing.
11:44 AM Changeset in webkit [273154] by Aditya Keerthi
  • 355 edits
    4 adds
    1 delete in trunk

[iOS][FCR] Enable the new appearance by default
https://bugs.webkit.org/show_bug.cgi?id=222015
<rdar://problem/74415537>

Reviewed by Wenson Hsieh.

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Enable the iOS Form Control Refresh.

Tools:

Rebaselined tests to account for changes to <input> and
<textarea> elements.

  • TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:

(DocumentEditingContext.SpatialRequestInTextField):

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(DragAndDropTests.BackgroundImageLinkToInput):
(DragAndDropTests.ContentEditableToTextarea):
(DragAndDropTests.ImageInLinkToInput):
(DragAndDropTests.LinkToInput):
(DragAndDropTests.TextAreaToInput):

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(KeyboardInputTests.SelectionClipRectsWhenPresentingInputView):

LayoutTests:

Rebaseline tests to account for the new appearance.

  • editing/editable-region/overflow-scroll-text-field-and-contenteditable-expected.txt:
  • editing/editable-region/search-field-basic-expected.txt:
  • editing/editable-region/text-field-basic-expected.txt:
  • editing/editable-region/text-field-inside-composited-negative-z-index-layer-expected.txt:
  • editing/editable-region/textarea-basic-expected.txt:
  • fast/forms/button-set-display-flex-justifyContent-center-expected.html:
  • fast/forms/button-set-display-flex-justifyContent-center.html:

Specify a color to ensure the text color always matches.

  • fast/forms/datalist/datalist-fallback-content.html:

Ensure the button is hidden on iOS for this reference test. Previously
the button was hidden by default.

  • fast/forms/datalist/datalist-textinput-suggestions-order.html:
  • fast/forms/date/date-input-rendering-basic-expected.txt:
  • fast/forms/date/date-pseudo-elements-expected.txt:
  • fast/forms/ios/choose-select-option.html:
  • fast/forms/ios/disabled-options-in-multi-select-picker.html:
  • fast/forms/ios/form-control-refresh/datalist/datalist-show-hide-expected.txt: Removed.
  • fast/forms/ios/form-control-refresh/datalist/datalist-show-hide.html: Removed.

Replaced by a test with the same name in fast/forms/datalist.

  • fast/forms/ios/form-control-refresh/datalist/datalist-textinput-suggestions-order-expected.txt: Removed.
  • fast/forms/ios/form-control-refresh/datalist/datalist-textinput-suggestions-order.html: Removed.

Replaced by a test with the same name in fast/forms/datalist.

  • fast/forms/ios/no-stale-checked-items-in-select-picker.html:
  • fast/forms/ios/select-picker-change-and-focus-another-select.html:
  • fast/forms/time/time-input-rendering-basic-expected.txt:
  • fast/shadow-dom/color-input-element-shadow-manipulation.html:

Use the center of element to ensure the element is detected. The new
border-radius means that the top left corner of the element is empty.

  • platform/ios-simulator/fast/forms/auto-fill-button/hide-auto-fill-strong-password-viewable-treatment-when-form-is-reset-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-credit-card-auto-fill-button-expected.txt:
  • platform/ios-simulator/fast/forms/auto-fill-button/input-strong-password-viewable-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-searchinput-appearance-expected.txt:
  • platform/ios-simulator/fast/forms/datalist/datalist-textinput-appearance-expected.txt:
  • platform/ios-wk2/compositing/contents-opaque/control-layer-expected.txt:
  • platform/ios-wk2/editing/input/caret-at-the-edge-of-input-expected.txt:
  • platform/ios-wk2/editing/input/reveal-caret-of-multiline-input-expected.txt:
  • platform/ios-wk2/editing/inserting/4960120-1-expected.txt:
  • platform/ios-wk2/editing/inserting/before-after-input-element-expected.txt:
  • platform/ios-wk2/editing/pasteboard/4641033-expected.txt:
  • platform/ios-wk2/editing/pasteboard/4944770-1-expected.txt:
  • platform/ios-wk2/editing/pasteboard/4944770-2-expected.txt:
  • platform/ios-wk2/editing/pasteboard/input-field-1-expected.txt:
  • platform/ios-wk2/editing/pasteboard/pasting-tabs-expected.txt:
  • platform/ios-wk2/editing/selection/4895428-3-expected.txt:
  • platform/ios-wk2/editing/selection/caret-before-select-expected.txt:
  • platform/ios-wk2/editing/selection/drag-select-1-expected.txt:
  • platform/ios-wk2/editing/selection/select-across-readonly-input-1-expected.txt:
  • platform/ios-wk2/editing/selection/select-across-readonly-input-2-expected.txt:
  • platform/ios-wk2/editing/selection/select-across-readonly-input-3-expected.txt:
  • platform/ios-wk2/editing/selection/select-across-readonly-input-4-expected.txt:
  • platform/ios-wk2/editing/selection/select-across-readonly-input-5-expected.txt:
  • platform/ios-wk2/editing/selection/select-from-textfield-outwards-expected.txt:
  • platform/ios-wk2/fast/block/basic/011-expected.txt:
  • platform/ios-wk2/fast/block/float/overhanging-tall-block-expected.txt:
  • platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
  • platform/ios-wk2/fast/dynamic/008-expected.txt:
  • platform/ios-wk2/fast/forms/basic-buttons-expected.txt:
  • platform/ios-wk2/fast/forms/basic-textareas-quirks-expected.txt:
  • platform/ios-wk2/fast/forms/datalist/input-appearance-range-with-datalist-rtl-expected-mismatch.html: Added.

Now that range inputs have a filled track, the RTL appearance should
mismatch the LTR appearance.

  • platform/ios-wk2/fast/forms/input-appearance-preventDefault-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-click-outside-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-double-click-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-drag-down-expected.txt:
  • platform/ios-wk2/fast/forms/input-text-option-delete-expected.txt:
  • platform/ios-wk2/fast/forms/range/input-appearance-range-rtl-expected-mismatch.html: Added.

Now that range inputs have a filled track, the RTL appearance should
mismatch the LTR appearance.

  • platform/ios-wk2/fast/forms/targeted-frame-submission-expected.txt:
  • platform/ios-wk2/fast/forms/textAreaLineHeight-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-align-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-visibility-1-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-placeholder-visibility-2-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-scroll-height-expected.txt:
  • platform/ios-wk2/fast/forms/textarea-setinnerhtml-expected.txt:
  • platform/ios-wk2/fast/hidpi/resize-corner-hidpi-expected.txt:
  • platform/ios-wk2/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
  • platform/ios-wk2/fast/overflow/scrollRevealButton-expected.txt:
  • platform/ios-wk2/fast/parser/document-write-option-expected.txt:
  • platform/ios-wk2/fast/parser/entity-comment-in-textarea-expected.txt:
  • platform/ios-wk2/fast/parser/open-comment-in-textarea-expected.txt:
  • platform/ios-wk2/fast/repaint/placeholder-after-caps-lock-hidden-expected.txt:
  • platform/ios-wk2/fast/replaced/border-radius-clip-expected.txt:
  • platform/ios-wk2/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt:
  • platform/ios-wk2/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
  • platform/ios-wk2/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
  • platform/ios-wk2/fast/transforms/transformed-focused-text-input-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-flexbox/radiobutton-min-size-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-pseudo/file-chooser-button-display-toggle-crash.tentative-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/baseline-alignment-and-overflow.tentative-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/button-layout/abspos-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/widgets/select-wrap-no-spill.optional-expected.txt:
  • platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt:
  • platform/ios/compositing/overflow/theme-affects-visual-overflow-expected.txt:
  • platform/ios/css1/box_properties/acid_test-expected.txt:
  • platform/ios/css2.1/20110323/replaced-elements-001-expected.txt:
  • platform/ios/css2.1/t09-c5526c-display-00-e-expected.txt:
  • platform/ios/css3/flexbox/button-expected.txt:
  • platform/ios/editing/pasteboard/4806874-expected.txt:
  • platform/ios/editing/selection/3690703-2-expected.txt:
  • platform/ios/editing/selection/3690703-expected.txt:
  • platform/ios/editing/selection/3690719-expected.txt:
  • platform/ios/editing/selection/4397952-expected.txt:
  • platform/ios/editing/selection/4975120-expected.txt:
  • platform/ios/editing/selection/5240265-expected.txt:
  • platform/ios/editing/selection/replaced-boundaries-3-expected.txt:
  • platform/ios/editing/selection/select-box-expected.txt:
  • platform/ios/editing/selection/select-element-paragraph-boundary-expected.txt:
  • platform/ios/editing/selection/selection-button-text-expected.txt:
  • platform/ios/fast/block/float/032-expected.txt:
  • platform/ios/fast/block/float/float-avoidance-expected.txt:
  • platform/ios/fast/block/positioning/inline-block-relposition-expected.txt:
  • platform/ios/fast/box-sizing/percentage-height-expected.txt:
  • platform/ios/fast/css/continuationCrash-expected.txt:
  • platform/ios/fast/css/focus-ring-exists-for-search-field-expected.txt:
  • platform/ios/fast/css/input-search-padding-expected.txt:
  • platform/ios/fast/css/line-height-expected.txt:
  • platform/ios/fast/css/margin-top-bottom-dynamic-expected.txt:
  • platform/ios/fast/css/non-standard-checkbox-size-expected.txt:
  • platform/ios/fast/css/rtl-ordering-expected.txt:
  • platform/ios/fast/css/text-input-with-webkit-border-radius-expected.txt:
  • platform/ios/fast/css/text-overflow-input-expected.txt:
  • platform/ios/fast/css/text-transform-select-expected.txt:
  • platform/ios/fast/dom/HTMLInputElement/input-image-alt-text-expected.txt:
  • platform/ios/fast/dom/HTMLMeterElement/meter-boundary-values-expected.txt:
  • platform/ios/fast/dom/HTMLMeterElement/meter-element-expected.txt:
  • platform/ios/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt:
  • platform/ios/fast/dom/HTMLMeterElement/meter-optimums-expected.txt:
  • platform/ios/fast/dom/HTMLMeterElement/meter-styles-expected.txt:
  • platform/ios/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
  • platform/ios/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
  • platform/ios/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
  • platform/ios/fast/events/context-no-deselect-expected.txt:
  • platform/ios/fast/forms/001-expected.txt:
  • platform/ios/fast/forms/003-expected.txt:
  • platform/ios/fast/forms/004-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/auto-fill-button/input-strong-password-auto-fill-button-expected.txt:
  • platform/ios/fast/forms/basic-inputs-expected.txt:
  • platform/ios/fast/forms/basic-selects-expected.txt:
  • platform/ios/fast/forms/basic-textareas-expected.txt:
  • platform/ios/fast/forms/blankbuttons-expected.txt:
  • platform/ios/fast/forms/box-shadow-override-expected.txt:
  • platform/ios/fast/forms/button-align-expected.txt:
  • platform/ios/fast/forms/button-cannot-be-nested-expected.txt:
  • platform/ios/fast/forms/button-default-title-expected.txt:
  • platform/ios/fast/forms/button-generated-content-expected.txt:
  • platform/ios/fast/forms/button-positioned-expected.txt:
  • platform/ios/fast/forms/button-sizes-expected.txt:
  • platform/ios/fast/forms/button-style-color-expected.txt:
  • platform/ios/fast/forms/button-table-styles-expected.txt:
  • platform/ios/fast/forms/button-text-transform-expected.txt:
  • platform/ios/fast/forms/button-white-space-expected.txt:
  • platform/ios/fast/forms/color/input-appearance-color-expected.txt:
  • platform/ios/fast/forms/control-clip-expected.txt:
  • platform/ios/fast/forms/control-clip-overflow-expected.txt:
  • platform/ios/fast/forms/control-restrict-line-height-expected.txt:
  • platform/ios/fast/forms/disabled-select-change-index-expected.txt:
  • platform/ios/fast/forms/encoding-test-expected.txt:
  • platform/ios/fast/forms/fieldset-align-expected.txt:
  • platform/ios/fast/forms/file/file-input-direction-expected.txt:
  • platform/ios/fast/forms/file/file-input-disabled-expected.txt:
  • platform/ios/fast/forms/floating-textfield-relayout-expected.txt:
  • platform/ios/fast/forms/form-element-geometry-expected.txt:
  • platform/ios/fast/forms/formmove-expected.txt:
  • platform/ios/fast/forms/formmove2-expected.txt:
  • platform/ios/fast/forms/formmove3-expected.txt:
  • platform/ios/fast/forms/hidden-listbox-expected.txt:
  • platform/ios/fast/forms/indeterminate-expected.txt:
  • platform/ios/fast/forms/input-align-expected.txt:
  • platform/ios/fast/forms/input-appearance-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-default-bkcolor-expected.txt:
  • platform/ios/fast/forms/input-appearance-disabled-expected.txt:
  • platform/ios/fast/forms/input-appearance-focus-expected.txt:
  • platform/ios/fast/forms/input-appearance-height-expected.txt:
  • platform/ios/fast/forms/input-appearance-readonly-expected.txt:
  • platform/ios/fast/forms/input-appearance-selection-expected.txt:
  • platform/ios/fast/forms/input-appearance-visibility-expected.txt:
  • platform/ios/fast/forms/input-appearance-width-expected.txt:
  • platform/ios/fast/forms/input-button-sizes-expected.txt:
  • platform/ios/fast/forms/input-disabled-color-expected.txt:
  • platform/ios/fast/forms/input-double-click-selection-gap-bug-expected.txt:
  • platform/ios/fast/forms/input-field-text-truncated-expected.txt:
  • platform/ios/fast/forms/input-first-letter-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-1-expected.txt:
  • platform/ios/fast/forms/input-placeholder-visibility-3-expected.txt:
  • platform/ios/fast/forms/input-readonly-dimmed-expected.txt:
  • platform/ios/fast/forms/input-readonly-empty-expected.txt:
  • platform/ios/fast/forms/input-spaces-expected.txt:
  • platform/ios/fast/forms/input-table-expected.txt:
  • platform/ios/fast/forms/input-text-click-inside-expected.txt:
  • platform/ios/fast/forms/input-text-scroll-left-on-blur-expected.txt:
  • platform/ios/fast/forms/input-text-self-emptying-click-expected.txt:
  • platform/ios/fast/forms/input-type-text-min-width-expected.txt:
  • platform/ios/fast/forms/input-value-expected.txt:
  • platform/ios/fast/forms/input-width-expected.txt:
  • platform/ios/fast/forms/listbox-bidi-align-expected.txt:
  • platform/ios/fast/forms/listbox-hit-test-zoomed-expected.txt:
  • platform/ios/fast/forms/listbox-scrollbar-incremental-load-expected.txt:
  • platform/ios/fast/forms/listbox-width-change-expected.txt:
  • platform/ios/fast/forms/menulist-clip-expected.txt:
  • platform/ios/fast/forms/menulist-deselect-update-expected.txt:
  • platform/ios/fast/forms/menulist-narrow-width-expected.txt:
  • platform/ios/fast/forms/menulist-no-overflow-expected.txt:
  • platform/ios/fast/forms/menulist-option-wrap-expected.txt:
  • platform/ios/fast/forms/menulist-restrict-line-height-expected.txt:
  • platform/ios/fast/forms/menulist-separator-painting-expected.txt:
  • platform/ios/fast/forms/menulist-style-color-expected.txt:
  • platform/ios/fast/forms/menulist-width-change-expected.txt:
  • platform/ios/fast/forms/minWidthPercent-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-rtl-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-disabled-readonly-expected.txt:
  • platform/ios/fast/forms/number/number-appearance-spinbutton-layer-expected.txt:
  • platform/ios/fast/forms/option-script-expected.txt:
  • platform/ios/fast/forms/option-strip-whitespace-expected.txt:
  • platform/ios/fast/forms/option-text-clip-expected.txt:
  • platform/ios/fast/forms/placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/plaintext-mode-2-expected.txt:
  • platform/ios/fast/forms/range/input-appearance-range-expected.txt:
  • platform/ios/fast/forms/range/range-thumb-height-percentage-expected.txt:
  • platform/ios/fast/forms/range/slider-thumb-shared-style-expected.txt:
  • platform/ios/fast/forms/search-cancel-button-style-sharing-expected.txt:
  • platform/ios/fast/forms/search-display-none-cancel-button-expected.txt:
  • platform/ios/fast/forms/search-input-rtl-expected.txt:
  • platform/ios/fast/forms/search-styled-expected.txt:
  • platform/ios/fast/forms/search/search-zoom-computed-style-height-expected.txt:
  • platform/ios/fast/forms/select-align-expected.txt:
  • platform/ios/fast/forms/select-background-none-expected.txt:
  • platform/ios/fast/forms/select-baseline-expected.txt:
  • platform/ios/fast/forms/select-block-background-expected.txt:
  • platform/ios/fast/forms/select-change-listbox-size-expected.txt:
  • platform/ios/fast/forms/select-change-listbox-to-popup-expected.txt:
  • platform/ios/fast/forms/select-change-popup-to-listbox-expected.txt:
  • platform/ios/fast/forms/select-dirty-parent-pref-widths-expected.txt:
  • platform/ios/fast/forms/select-disabled-appearance-expected.txt:
  • platform/ios/fast/forms/select-element-focus-ring-expected.txt:
  • platform/ios/fast/forms/select-empty-option-height-expected.txt:
  • platform/ios/fast/forms/select-initial-position-expected.txt:
  • platform/ios/fast/forms/select-item-background-clip-expected.txt:
  • platform/ios/fast/forms/select-list-box-with-height-expected.txt:
  • platform/ios/fast/forms/select-non-native-rendering-direction-expected.txt:
  • platform/ios/fast/forms/select-selected-expected.txt:
  • platform/ios/fast/forms/select-style-expected.txt:
  • platform/ios/fast/forms/select-visual-hebrew-expected.txt:
  • platform/ios/fast/forms/select-writing-direction-natural-expected.txt:
  • platform/ios/fast/forms/select/optgroup-rendering-expected.txt:
  • platform/ios/fast/forms/selectlist-minsize-expected.txt:
  • platform/ios/fast/forms/stuff-on-my-optgroup-expected.txt:
  • platform/ios/fast/forms/tabbing-input-iframe-expected.txt:
  • platform/ios/fast/forms/textarea-placeholder-pseudo-style-expected.txt:
  • platform/ios/fast/forms/textarea-scrollbar-expected.txt:
  • platform/ios/fast/forms/textarea-scrolled-type-expected.txt:
  • platform/ios/fast/forms/textarea-width-expected.txt:
  • platform/ios/fast/forms/textfield-focus-ring-expected.txt:
  • platform/ios/fast/forms/textfield-outline-expected.txt:
  • platform/ios/fast/forms/textfield-overflow-expected.txt:
  • platform/ios/fast/frames/take-focus-from-iframe-expected.txt:
  • platform/ios/fast/hidpi/video-controls-in-hidpi-expected.txt:
  • platform/ios/fast/html/details-no-summary4-expected.txt:
  • platform/ios/fast/html/details-open-javascript-expected.txt:
  • platform/ios/fast/html/details-open2-expected.txt:
  • platform/ios/fast/html/details-open4-expected.txt:
  • platform/ios/fast/html/details-replace-summary-child-expected.txt:
  • platform/ios/fast/html/details-replace-text-expected.txt:
  • platform/ios/fast/html/keygen-expected.txt:
  • platform/ios/fast/inline/positionedLifetime-expected.txt:
  • platform/ios/fast/invalid/014-expected.txt:
  • platform/ios/fast/layers/video-layer-expected.txt:
  • platform/ios/fast/lists/dynamic-marker-crash-expected.txt:
  • platform/ios/fast/multicol/client-rects-expected.txt:
  • platform/ios/fast/multicol/client-rects-spanners-complex-expected.txt:
  • platform/ios/fast/multicol/client-rects-spanners-expected.txt:
  • platform/ios/fast/multicol/newmulticol/client-rects-expected.txt:
  • platform/ios/fast/overflow/overflow-x-y-expected.txt:
  • platform/ios/fast/parser/bad-xml-slash-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-expected.txt:
  • platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
  • platform/ios/fast/replaced/three-selects-break-expected.txt:
  • platform/ios/fast/replaced/width100percent-button-expected.txt:
  • platform/ios/fast/replaced/width100percent-checkbox-expected.txt:
  • platform/ios/fast/replaced/width100percent-menulist-expected.txt:
  • platform/ios/fast/replaced/width100percent-radio-expected.txt:
  • platform/ios/fast/replaced/width100percent-searchfield-expected.txt:
  • platform/ios/fast/replaced/width100percent-textarea-expected.txt:
  • platform/ios/fast/replaced/width100percent-textfield-expected.txt:
  • platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt:
  • platform/ios/fast/selectors/064-expected.txt:
  • platform/ios/fast/table/append-cells2-expected.txt:
  • platform/ios/fast/table/colspanMinWidth-expected.txt:
  • platform/ios/fast/table/remove-td-display-none-expected.txt:
  • platform/ios/fast/table/spanOverlapRepaint-expected.txt:
  • platform/ios/fast/table/text-field-baseline-expected.txt:
  • platform/ios/fast/text/drawBidiText-expected.txt:
  • platform/ios/fast/text/international/bidi-listbox-atsui-expected.txt:
  • platform/ios/fast/text/international/bidi-listbox-expected.txt:
  • platform/ios/fast/text/international/bidi-menulist-expected.txt:
  • platform/ios/fast/text/international/hindi-spacing-expected.txt:
  • platform/ios/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
  • platform/ios/fast/text/whitespace/normal-after-nowrap-breaking-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/selection/selection-select-all-move-input-crash-expected.txt:
  • platform/ios/media/audio-controls-rendering-expected.txt:
  • platform/ios/media/audio-repaint-expected.txt:
  • platform/ios/media/controls-strict-expected.txt:
  • platform/ios/media/controls-styling-strict-expected.txt:
  • platform/ios/media/controls-without-preload-expected.txt:
  • platform/ios/media/media-controls-clone-expected.txt:
  • platform/ios/media/video-controls-rendering-expected.txt:
  • platform/ios/media/video-zoom-controls-expected.txt:
  • platform/ios/svg/custom/foreign-object-skew-expected.txt:
  • platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
  • platform/ios/svg/hixie/mixed/003-expected.txt:
  • platform/ios/tables/mozilla/bugs/45621-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug12384-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug138725-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug194024-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug24200-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug26178-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug29326-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug30559-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug30692-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug33855-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug39209-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4429-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug44505-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug51727-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug52505-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug52506-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug55545-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug59354-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug60749-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug68912-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug92647-2-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
  • platform/ios/tables/mozilla/bugs/bug99948-expected.txt:
  • platform/ios/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
  • platform/ios/tables/mozilla/core/margins-expected.txt:
  • platform/ios/tables/mozilla/dom/tableDom-expected.txt:
  • platform/ios/tables/mozilla/other/move_row-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/bugs/bug92647-1-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/core/captions1-expected.txt:
  • platform/ios/tables/mozilla_expected_failures/core/captions2-expected.txt:
  • platform/ios/transforms/2d/zoom-menulist-expected.txt:
  • platform/ios/transforms/3d/general/perspective-non-layer-expected.txt:
  • platform/ipad/fast/forms/choose-select-option.html:

This test is covered by a test of the same name in
fast/forms/ios/form-control-refresh/select.

  • platform/ipad/fast/forms/select-with-title.html:

This test assumes a popover appearance, which is gone with the redesign.
This test can eventually be removed entirely.

11:38 AM Changeset in webkit [273153] by ysuzuki@apple.com
  • 7 edits
    1 add in trunk

[JSC] Do not use toObject for options in new Intl constructors
https://bugs.webkit.org/show_bug.cgi?id=222164

Reviewed by Alexey Shvayka.

JSTests:

  • stress/intl-get-options-not-using-toobject.js: Added.

(shouldThrow):

Source/JavaScriptCore:

New spec change[1] introduced stricter GetOptionsObject for relatively new Intl constructors: Intl.DisplayNames, Intl.ListFormat, and Intl.Segmenter[2].
This does not perform ToObject, and instead,

  1. If the input is an undefined, then it returns empty object.
  2. If the input is an object, then it returns this object.
  3. Otherwise, throwing a TypeError.

This patch implements it.

[1]: https://github.com/tc39/ecma402/pull/538
[2]: https://github.com/tc39/proposal-intl-segmenter/issues/132

  • runtime/IntlDisplayNames.cpp:

(JSC::IntlDisplayNames::initializeDisplayNames):

  • runtime/IntlListFormat.cpp:

(JSC::IntlListFormat::initializeListFormat):

  • runtime/IntlObjectInlines.h:

(JSC::intlGetOptionsObject):

  • runtime/IntlSegmenter.cpp:

(JSC::IntlSegmenter::initializeSegmenter):

11:17 AM Changeset in webkit [273152] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Need to rebase builtins generator tests results.
https://bugs.webkit.org/show_bug.cgi?id=222184
rdar://74528501

Reviewed by Yusuke Suzuki.

  • Scripts/tests/builtins/expected/WebCore-AnotherGuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCoreJSBuiltins.h-result:
11:13 AM Changeset in webkit [273151] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

Add notifyd message filter
https://bugs.webkit.org/show_bug.cgi?id=222129
<rdar://problem/73987767>

Reviewed by Brent Fulgham.

Add notifyd message filter in the WebContent process' sandbox.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • WebProcess/com.apple.WebProcess.sb.in:
11:08 AM Changeset in webkit [273150] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ MacOS Wk2 ] media/media-fragments/TC0034.html is flakey crashing
https://bugs.webkit.org/show_bug.cgi?id=221930

Uneviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-19

  • platform/mac-wk2/TestExpectations: Skipping test until it can be fixed.
11:06 AM Changeset in webkit [273149] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GPU Process] Repopulate the TestExpectations file #4
https://bugs.webkit.org/show_bug.cgi?id=222147

Unreviewed test gardening.

Patch by Rini Patel <rini_patel@apple.com> on 2021-02-19

  • gpu-process/TestExpectations:
10:53 AM Changeset in webkit [273148] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Truncate long node display names in Grid Overlay list
https://bugs.webkit.org/show_bug.cgi?id=222057

Patch by Razvan Caliman <Razvan Caliman> on 2021-02-19
Reviewed by BJ Burg.

Truncate long node display names for grid overlays in the Layout panel.

  • UserInterface/Views/CSSGridSection.css:

(.css-grid-section .node-link,):
(.css-grid-section .node-overlay-list):
(.css-grid-section .node-overlay-list-item-container):
(.css-grid-section .node-overlay-list-item-container label):
(.css-grid-section .node-overlay-list-item-container .inline-swatch):

  • UserInterface/Views/CSSGridSection.js:

(WI.CSSGridSection.prototype.initialLayout):
(WI.CSSGridSection.prototype.layout):

  • UserInterface/Views/LayoutDetailsSidebarPanel.css:

(.details-section.layout-css-grid > .content > .group > .row > .css-grid-section):
(.details-section.layout-css-grid > .content,):
Resetting to display: block for .details-section and descendants that use display: table-*
otherwise it messes with the Flexbox layout of nested children.

10:51 AM Changeset in webkit [273147] by Ruben Turcios
  • 1 copy in tags/Safari-612.1.4.1

Tag Safari-612.1.4.1.

10:22 AM Changeset in webkit [273146] by Ruben Turcios
  • 8 edits in branches/safari-612.1.4-branch/Source

Versioning.

WebKit-7612.1.4.1

10:21 AM Changeset in webkit [273145] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Ensure that the test failures are listed in sorted order
https://bugs.webkit.org/show_bug.cgi?id=222176

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(ReRunJavaScriptCoreTests.evaluateCommand):
(AnalyzeJSCTestsResults.start):
(RunWebKitTests.commandComplete):
(ReRunWebKitTests.evaluateCommand):
(ReRunWebKitTests.commandComplete):

  • CISupport/ews-build/steps_unittest.py:

(TestAnalyzeJSCTestsResults.test_multiple_new_stress_failure):
(TestAnalyzeJSCTestsResults.test_multiple_new_binary_failure):

9:55 AM Changeset in webkit [273144] by Kate Cheney
  • 2 edits in trunk/Source/WebKit

Add better error handling to ResourceLoadStatisticsDatabaseStore::needsUpdatedPrivateClickMeasurementSchema()
https://bugs.webkit.org/show_bug.cgi?id=222169
<rdar://problem/74522283>

Reviewed by Darin Adler.

Add better error handling for the case where the query to find the
UnattributedPrivateClickMeasurement table fails. This is unlikely to
happen in practice, however, if it does, we should add logging and
a debug ASSERT.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::ResourceLoadStatisticsDatabaseStore::needsUpdatedPrivateClickMeasurementSchema):

9:38 AM Changeset in webkit [273143] by Devin Rousso
  • 61 edits
    3 copies
    1 move
    2 deletes in trunk/Source

[Payment Request] add an object data to PaymentDetailsBase so that data specific to Apple Pay can be provided
https://bugs.webkit.org/show_bug.cgi?id=222002
<rdar://problem/72319946>

Reviewed by Tim Horton.

Source/WebCore:

  • Modules/paymentrequest/PaymentDetailsBase.idl:
  • Modules/paymentrequest/PaymentDetailsBase.h:
  • Modules/applepay/ApplePayDetailsUpdateBase.idl: Added.
  • Modules/applepay/ApplePayDetailsUpdateBase.h: Added.

(WebCore::ApplePayDetailsUpdateBase::encode const):
(WebCore::ApplePayDetailsUpdateBase::decode):
(WebCore::ApplePayDetailsUpdateBase::decodeBase):

  • Modules/applepay/ApplePayPaymentMethodUpdate.h:
  • Modules/applepay/ApplePayPaymentMethodUpdate.idl:

(WebCore::ApplePayPaymentMethodUpdate::encode const): Added.
(WebCore::ApplePayPaymentMethodUpdate::decode): Added.

  • Modules/applepay/ApplePayShippingContactUpdate.idl:
  • Modules/applepay/ApplePayShippingContactUpdate.h:

(WebCore::ApplePayShippingContactUpdate::encode const): Added.
(WebCore::ApplePayShippingContactUpdate::decode): Added.

  • Modules/applepay/ApplePayShippingMethodUpdate.idl:
  • Modules/applepay/ApplePayShippingMethodUpdate.h:

(WebCore::ApplePayShippingMethodUpdate::encode const): Added.
(WebCore::ApplePayShippingMethodUpdate::decode): Added.
Introduce a common base class ApplePayDetailsUpdateBase instead of repeating members on
each of the ApplePay*Update final classes.

  • Modules/applepay/ApplePayDetailsUpdateData.idl: Added.
  • Modules/applepay/ApplePayDetailsUpdateData.h: Added.

(WebCore::ApplePayDetailsUpdateData::encode const):
(WebCore::ApplePayDetailsUpdateData::decode):
(WebCore::ApplePayDetailsUpdateData::decodeData):

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::checkAndCanonicalizeDetails):
(WebCore::PaymentRequest::settleDetailsPromise):
Have the common base class above extend from ApplePayDetailsUpdateData, which is used to
pull values out of the object data from PaymentDetailsBase. This way, both Apple Pay JS
and PaymentRequest can be given the same data (albeit in slightly different places) and have
the same capabilities.

  • Modules/applepay/ApplePayError.h:

(WebCore::ApplePayError::encode const): Added.
(WebCore::ApplePayError::decode): Added.

  • Modules/applepay/ApplePayError.cpp: Removed.
  • Modules/applepay/ApplePayErrorCode.h:
  • Modules/applepay/ApplePayErrorContactField.h:
  • Modules/applepay/ApplePayPaymentAuthorizationResult.h:
  • Modules/applepay/ApplePaySessionPaymentRequest.h:

(WebCore::ApplePaySessionPaymentRequest::shippingMethods const):
(WebCore::ApplePaySessionPaymentRequest::setShippingMethods):

  • Modules/applepay/ApplePaySession.h:
  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidate):
(WebCore::ApplePaySession::completeShippingContactSelection):
(WebCore::ApplePaySession::didSelectShippingMethod):
(WebCore::finishConverting): Deleted.
(WebCore::convert): Deleted.

  • Modules/applepay/ApplePayShippingMethod.h:

(WebCore::ApplePayShippingMethod::encode const): Added.
(WebCore::ApplePayShippingMethod::decode): Added.

  • Modules/applepay/ApplePayShippingMethodSelectedEvent.h:
  • Modules/applepay/ApplePayShippingMethodSelectedEvent.cpp:

(WebCore::ApplePayShippingMethodSelectedEvent::ApplePayShippingMethodSelectedEvent):
(WebCore::convert): Deleted.

  • Modules/applepay/PaymentCoordinator.h:
  • Modules/applepay/PaymentCoordinator.cpp:

(WebCore::PaymentCoordinator::completeShippingMethodSelection):
(WebCore::PaymentCoordinator::completeShippingContactSelection):
(WebCore::PaymentCoordinator::completePaymentMethodSelection):
(WebCore::PaymentCoordinator::didSelectShippingMethod):

  • Modules/applepay/PaymentCoordinatorClient.h:
  • Modules/applepay/PaymentHeaders.h:
  • Modules/applepay/PaymentRequestValidator.mm:

(WebCore::validateShippingMethod):
(WebCore::validateShippingMethods):

  • Modules/applepay/PaymentSession.h:
  • Modules/applepay/PaymentSummaryItems.h:
  • Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:
  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.h:
  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::convertAndValidate):
(WebCore::validate):
(WebCore::merge):
(WebCore::ApplePayPaymentHandler::show):
(WebCore::ApplePayPaymentHandler::computeShippingMethods):
(WebCore::ApplePayPaymentHandler::computeTotalAndLineItems const):
(WebCore::appendShippingContactInvalidError):
(WebCore::ApplePayPaymentHandler::computeErrors const):
(WebCore::ApplePayPaymentHandler::computeAddressErrors const):
(WebCore::ApplePayPaymentHandler::computePayerErrors const):
(WebCore::ApplePayPaymentHandler::computePaymentMethodErrors const):
(WebCore::ApplePayPaymentHandler::shippingAddressUpdated):
(WebCore::ApplePayPaymentHandler::shippingOptionUpdated):
(WebCore::ApplePayPaymentHandler::paymentMethodUpdated):
(WebCore::ApplePayPaymentHandler::retry):
(WebCore::ApplePayPaymentHandler::didSelectShippingMethod):

  • loader/EmptyClients.cpp:
  • testing/MockPaymentCoordinator.h:
  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::showPaymentUI):
(WebCore::MockPaymentCoordinator::completeShippingMethodSelection):
(WebCore::convert):
(WebCore::MockPaymentCoordinator::completeShippingContactSelection):
(WebCore::MockPaymentCoordinator::completePaymentMethodSelection):
(WebCore::MockPaymentCoordinator::changeShippingOption):
(WebCore::MockPaymentCoordinator::completePaymentSession):
(WebCore::MockPaymentCoordinator::updateTotalAndLineItems): Deleted.

  • testing/MockPaymentError.h:

Use ApplePay*Update instead of duplicating its structure in another object (ApplePaySessionPaymentRequest::*Update).
Use ApplePayLineItem instead of duplicating its structure in another object (ApplePaySessionPaymentRequest::TotalAndLineItems).
Use ApplePayShippingMethod instead of duplicating its structure in another object (ApplePaySessionPaymentRequest::ShippingMethod).
Use ApplePayError* instead of duplicating its structure in another object (ApplePaySessionPaymentRequest::PaymentError::*).

  • Modules/applepay/PaymentMethodUpdate.h:
  • Modules/applepay/cocoa/PaymentMethodUpdateCocoa.mm: Removed.

Do the conversion from ApplePayPaymentMethodUpdate to PKPaymentRequestPaymentMethodUpdate
in the UIProcess.

  • Modules/applepay/ApplePayPaymentRequest.h:
  • Modules/applepay/ApplePayRequestBase.cpp:

(WebCore::convertAndValidate):

  • Modules/applepay/ApplePayRequestBase.h:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • Platform/cocoa/PaymentAuthorizationPresenter.h:
  • Platform/cocoa/PaymentAuthorizationPresenter.mm:

(WebKit::toPKPaymentErrorCode):
(WebKit::toNSError):
(WebKit::toNSErrors):
(WebKit::toPKShippingMethods):
(WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection):
(WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection):

  • Platform/cocoa/WKPaymentAuthorizationDelegate.mm:

(toShippingMethod):

  • Scripts/webkit/messages.py:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.h:
  • Shared/ApplePay/WebPaymentCoordinatorProxy.cpp:

(WebKit::WebPaymentCoordinatorProxy::completeShippingMethodSelection):
(WebKit::WebPaymentCoordinatorProxy::completeShippingContactSelection):
(WebKit::WebPaymentCoordinatorProxy::completePaymentMethodSelection):
(WebKit::WebPaymentCoordinatorProxy::presenterDidSelectShippingMethod):

  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
  • Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKShippingMethod):
(WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
(WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingMethodSelection):
(WebKit::WebPaymentCoordinatorProxy::platformCompleteShippingContactSelection):
(WebKit::WebPaymentCoordinatorProxy::platformCompletePaymentMethodSelection):
(WebKit::finishCreating): Deleted.

  • Shared/WebCoreArgumentCoders.h:
  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<WebCore::PaymentAuthorizationResult>::decode):
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest>::decode):
(IPC::ArgumentCoder<Vector<RefPtr<ApplePayError>>>::encode): Added.
(IPC::ArgumentCoder<Vector<RefPtr<ApplePayError>>>::decode): Added.
(IPC::ArgumentCoder<WebCore::PaymentError>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::PaymentError>::decode): Deleted.
(IPC::ArgumentCoder<WebCore::PaymentMethodUpdate>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::PaymentMethodUpdate>::decode): Deleted.
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::ShippingMethod>::encode): Deleted.
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::ShippingMethod>::decode): Deleted.
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::TotalAndLineItems>::encode): Deleted.
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::TotalAndLineItems>::decode): Deleted.
(IPC::ArgumentCoder<WebCore::ShippingContactUpdate>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::ShippingContactUpdate>::decode): Deleted.
(IPC::ArgumentCoder<WebCore::ShippingMethodUpdate>::encode): Deleted.
(IPC::ArgumentCoder<WebCore::ShippingMethodUpdate>::decode): Deleted.

  • WebProcess/ApplePay/WebPaymentCoordinator.messages.in:
  • WebProcess/ApplePay/WebPaymentCoordinator.h:
  • WebProcess/ApplePay/WebPaymentCoordinator.cpp:

(WebKit::WebPaymentCoordinator::completeShippingMethodSelection):
(WebKit::WebPaymentCoordinator::completeShippingContactSelection):
(WebKit::WebPaymentCoordinator::completePaymentMethodSelection):
(WebKit::WebPaymentCoordinator::didSelectShippingMethod):
Use ApplePay*Update instead of duplicating its structure in another object (ApplePaySessionPaymentRequest::*Update).
Use ApplePayShippingMethod instead of duplicating its structure in another object (ApplePaySessionPaymentRequest::ShippingMethod).
Use ApplePayError* instead of duplicating its structure in another object (ApplePaySessionPaymentRequest::PaymentError::*).

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebPaymentCoordinatorClient.h:
  • WebCoreSupport/WebPaymentCoordinatorClient.mm:

(WebPaymentCoordinatorClient::completeShippingMethodSelection):
(WebPaymentCoordinatorClient::completeShippingContactSelection):
(WebPaymentCoordinatorClient::completePaymentMethodSelection):
Use ApplePay*Update instead of duplicating its structure in another object (ApplePaySessionPaymentRequest::*Update).

9:33 AM Changeset in webkit [273142] by Jonathan Bedard
  • 6 edits
    1 add in trunk/Tools

[webkitscmpy] Add clean command
https://bugs.webkit.org/show_bug.cgi?id=222135
<rdar://problem/74496504>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:

(Git):
(Git.clean): Throw away all local changes.

  • Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:

(Svn):
(Svn.clean): Throw away all local changes, delete untracked files.

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/init.py:

(main): Add Clean command

  • Scripts/libraries/webkitscmpy/webkitscmpy/program/clean.py: Added.

(Clean): Command to remove all local changes from the current checkout.

9:29 AM Changeset in webkit [273141] by Chris Dumez
  • 3 edits in trunk

Norton Safe Web extension is causing crashes / hangs under [WKRemoteObjectEncoder encodeObject:forKey:]
https://bugs.webkit.org/show_bug.cgi?id=222172

Reviewed by Alex Christensen.

The extension appears to be trying to send a JSValue that is a DOM Node. WebKit makes the following
call to convert it into a NSDictionary:
[[JSValue valueWithJSValueRef:value inContext:[JSContext contextWithJSGlobalContextRef:JSContextGetGlobalContext(context)]] toObject]

JSC very aggressively iterates over all of the properties of the DOM Node and recursively ends up
converting the whole DOM tree with all their properties. This leads to a lot of cycles to as JSC
maintains the JSObject <-> NSObject identity during the conversion (Each time the JSDocument is
serialized, the same NSDictionary* pointer is used to represent it).

The logic introduced in r270559 to detect cycles was flawed because it relied on a NSSet of
NSObject* and [NSSet containsObject:] to detect the cycles. The issue is that [NSSet containsObject:]
doesn't do a simple pointer comparison but instead calls [NSObject isEqual:] which is very
expensive for types like NSDictionary and leads to trouble when the dictionary contains a cycle.
To address this I replaced the NSSet with a WTF::HashSet<NSObject *> so that key lookup ends up
doing a simple pointer comparison.

Even after the previous fix, the extension would still cause massive hangs because it would take
a very long time to try and encode the whole DOM tree with all the properties of each Node (even
without cycles). To address this, we now abort encoding when detecting a cycle instead of encoding
an empty object to break the cycle.

After this change, Safari becomes usable with this extension again. However, there are still much
shorter hangs that occur due to the converting of the JSNode into a JSDictionary via
[JSValue toObject]. We should probably improve this in a follow-up.

Easy way to reproduce the crash / hang:

  1. Install Norton Safe Web & Norton Password Manager extension (may require a subscription)
  2. Make sure the extensions are activated and turned on by clicking on their icons next to the URL bar
  3. Go to https://bugs.webkit.org/attachment.cgi?id=420530&action=edit
  4. Click on the combo box next to "Review" -> Hang / Crash

No new tests, covered by WebKit.RemoteObjectRegistry API test.

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(-[WKRemoteObjectEncoder init]):
(encodeInvocationArguments):
(encodeObject):

9:16 AM Changeset in webkit [273140] by Caio Lima
  • 2 edits in trunk/JSTests

[ESNext] Fix Test262 expectations for static private methods
https://bugs.webkit.org/show_bug.cgi?id=222170

Unreviewed, update test262/expectations.yaml

  • test262/expectations.yaml:
8:05 AM Changeset in webkit [273139] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

RemoteRenderingBackend is accessed in non-thread-safe manner
https://bugs.webkit.org/show_bug.cgi?id=222056

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-19
Reviewed by Chris Dumez.

The class calls Connection::addWorkQueueMessageReceiver() during its
construction, passing 'this' as the receiver.

The virtual function pointer is not fully constructed during the call time.
Connection may start dispatching calls to the work queue. The work queue may
dispatch the task function through that pointer immediately after the call. If a
message comes during the constructor call, it may be dispatched during the
constructor still running, before the virtual function pointer being correctly
set up. Accessing virtual function pointer is not thread safe until it is fully
constructed.

No new tests, unit tests for WebKit not possible ATM.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::create):
(WebKit::RemoteRenderingBackend::RemoteRenderingBackend):
(WebKit::RemoteRenderingBackend::startListeningForIPC):

  • GPUProcess/graphics/RemoteRenderingBackend.h:
7:51 AM Changeset in webkit [273138] by mark.lam@apple.com
  • 565 edits
    7 adds in trunk/Source

Implement a GC verifier.
https://bugs.webkit.org/show_bug.cgi?id=217274
rdar://56255683

Reviewed by Filip Pizlo and Saam Barati.

Source/JavaScriptCore:

The idea behind the GC verifier is that in the GC End phase before we finalize
and sweep, we'll do a simple stop the world synchronous full GC with the
VerifierSlotVisitor. The VerifierSlotVisitor will collect it's own information
on whether a JS cell should be marked or not. After this verifier GC pass, we'll
compare the mark results.

If the verifier GC says a cell should be marked, then the real GC should have
marked the cell. The reverse is not true: if the verifier does not mark a cell,
it is still OK for the real GC to mark it. For example, in an eden GC, all old
generation cells would be considered mark by the real GC though the verifier would
know better if they are already dead.

Implementation details:

  1. SlotVisitor (only used by the real GC) now inherits from a new abstract class, AbstractSlotVisitor.

VerifierSlotVisitor (only used by the verifier GC) also inherits from
AbstractSlotVisitor.

  1. AbstractSlotVisitor declares many virtual methods.

SlotVisitor implements some of these virtual methods as inline and final.
If the client is invoking one these methods and knows that it will be operating
on a SlotVisitor, the method being final allows it to be inlined into the client
instead of going through the virtual dispatch.

For the VerifierSlotVisitor, these methods will always be invoked by virtual
dispatch via the AbstractSlotVisitor abstraction.

  1. Almost all methods that takes a SlotVisitor previously (with a few exceptions) will now be templatized, and specialized to either take a SlotVisitor or an AbstractSlotVisitor.

The cell MethodTable will now have 2 versions of visitChildren and visitOutputConstraints:
one for SlotVisitor, and one for AbstractSlotVisitor.

The reason we don't wire the 2nd version to VerifierSlotVisitor (instead of
AbstractSlotVisitor) is because we don't need the GC verifier to run at top
speed (though we don't want it to be too slow). Also, having hooks for using
an AbstractSlotVisitor gives us more utility for implementing other types of
GC checkers / analyzers in the future as subclasses of AbstractSlotVisitor.

  1. Some minority of methods that used to take a SlotVisitor but are not critical to performance, will now just take an AbstractSlotVisitor instead. For example, see TypeProfilerLog::visit().
  1. isReachableFromOpaqueRoots() methods will also only take an AbstractSlotVisitor.

The reason this is OK is because isReachableFromOpaqueRoots() only uses the
visitor's addOpaqueRoot() and containsOpaqueRoot() methods, which are implemented
in the AbstractSlotVisitor itself.

For SlotVisitor, the m_opaqueRoot field will reference Heap::m_opaqueRoots.
For VerifierSlotVisitor, the m_opaqueRoot field will reference its own
opaque roots storage.

This implementation of addOpaqueRoot() is perf neutral for SlotVisitor because
where it would previously invoke m_heap.m_opaqueRoots.add(), it will now
invoke m_opaqueRoot.add() instead where m_opaqueRoot points to m_heap.m_opaqueRoots.

Ditto for AbstractSlotVisitor::containsOpaqueRoot().

  1. When reifying a templatized visit method, we do it in 2 ways:
  1. Implement the template method as an ALWAYS_INLINE Impl method, and have 2 visit methods (taking a SlotVisitor and an AbstractSlotVisitor respectively) inline the Impl method. For example, see JSObject::visitChildrenImpl().
  1. Just templatize the visit method, and explicitly instantiate it with a SlotVisitor and an AbstractSlotVisitor. For example, see DesiredTransition::visitChildren().

The reason we need form (a) is if:

  1. we need to export the visit methods. For example, see JSObject:visitChildren().

Note: A Clang engineer told me that "there's no way to export an explicit
instantiation that will make it a strong symbol." This is because "C++ does not
provide any standard way to guarantee that an explicit instantiation is unique,
and Clang hasn't added any extension to do so."

  1. the visit method is an override of a virtual method.

For example, see DFG::Scannable::visitChildren() and DFG::Graph::visitChildren().

Otherwise, we'll prefer form (b) as it is natural C++.

  1. Because templatizing all the visit methods requires a lot of boiler plate code, we introduce some macros in SlotVisitorMacros.h to reduce some of the boiler plate burden.

We especially try to do this for methods of form (a) (see (6) above) which
require more boiler plate.

  1. The driver of the real GC is MarkingConstraintSet::executeConvergence() which runs with the MarkingConstraintSolver.

The driver of the verifier GC is Heap::verifyGC(), which has a loop to drain
marked objects and execute contraints.

  1. The GC verifier is built in by default but disabled. The relevant options are: JSC_verifyGC and JSC_verboseVerifyGC.

JSC_verifyGC will enable the GC verifier.

If JSC_verifyGC is true and the verifier finds a cell that is
erroneously not marked by the real GC, it will dump an error message and then
crash with a RELEASE_ASSERT.

JSC_verboseVerifyGC will enable the GC verifier along with some more heavy
weight record keeping (i.e. tracking the parent / owner cell that marked a
cell, and capturing the call stack when the marked cell is appended to the mark
stack).

If JSC_verboseVerifyGC is true and the verifier finds a cell that is
erroneously not marked by the real GC, it will dump the parent cell and
captured stack along with an error message before crashing. This extra
information provides the starting point for debugging GC bugs found by the
verifier.

Enabling JSC_verboseVerifyGC will automatically enable JSC_verifyGC.

  1. Non-determinism in the real GC.

The GC verifier's algorithm relies on the real GC being deterministic. However,
there are a few places where this is not true:

  1. Marking conservative roots on the mutator stacks.

By the time the verifier GC runs (in the GC End phase), the mutator stacks
will look completely different than what the real GC saw. To work around
this, if the verifier is enabled, then every conservative root captured by
the real GC will also be added to the verifier's mark stack.

When running verifyGC() in the End phase, the conservative root scans will be
treated as no-ops.

  1. CodeBlock::shouldJettisonDueToOldAge() may return a different value.

This is possible because the codeBlock may be in mid compilation while the
real GC is in progress.

CodeBlock::shouldVisitStrongly() calls shouldJettisonDueToOldAge(), and may
see an old LLInt codeBlock whose timeToLive has expired. As a result,
shouldJettisonDueToOldAge() returns true and shouldVisitStrongly() will
return false for the real GC, leading to it not marking the codeBlock.

However, before the verifier GC gets to run, baseline compilation on the
codeBlock may finish. As a baseline codeBlock now, it gets a longer time
to live.

As a result, when the verifier GC runs, shouldJettisonDueToOldAge() will
return false, and shouldVisitStrongly() in turn returns true. This results
in the verifier GC marking the codeBlock (and its children) when the real
GC did not, which leads to a false error. This is not a real error because
if the real GC did not mark the code block, it will simply get jettisoned,
and can be reinstantiated when needed later. There's no GC bug here.
However, we do need to work around this to prevent the false error for the
GC verifier.

The work around is to introduce a CodeBlock::m_visitChildrenSkippedDueToOldAge
flag that records what the real GC decided in shouldJettisonDueToOldAge().
This allows the verifier GC to replay the same decision and get a consistent
result.

  1. CodeBlock::propagateTransitions() will only do a best effort at visiting cells in ICs, etc. If a cell is not already strongly marked by the time CodeBlock::propagateTransitions() checks it, propagateTransitions() will not mark other cells that are reachable from it.

Since the real GC does marking on concurrent threads, marking order is not
deterministic. CodeBlock::propagateTransitions() may or may not see a cell
as already marked by the time it runs.

The verifier GC may mark some of these cells in a different order than the
real GC. As a result, in the verifier GC, CodeBlock::propagateTransitions()
may see a cell as marked (and therefore, visit its children) when it did
not for the real GC.

To work around this, we currently add a SuppressGCVerifierScope to
CodeBlock::propagateTransitions() to pessimize the verifier, and assume that
propagateTransitions() will mark nothing.

SuppressGCVerifierScope is a blunt hammer that stops the verifier GC from
analyzing all cells potentially reachable via CodeBlock::propagateTransitions().
In the future, it may be possible to refine this and track which cells were
actually skipped over (like we did for shouldJettisonDueToOldAge()).
However, this decision tracking needs to be done in the real GC, and can be
very expensive in terms of performance. The shouldJettisonDueToOldAge()
case is rare, and as such lends itself to this more fine grain tracking
without hurting performance. The decisions made in CodeBlock::propagateTransitions()
are not as rare, and hence, it would hurt performance if we did fine grain
decision tracking there (at least or now).

  1. Marking in the verifier GC.

The real GC tracks cell marks using a Bitmap in the MarkedBlocks. The verifier
GC keeps tracks of MarkedBlock cell marks using a Bitmap on the side, stashed
away in a HashMap.

To improve the verifier marking performance, we reserve a void* m_verifierMemo
pointer in the MarkedBlock, which the verifier will employ to cache its
MarkedBlockData for that MarkedBlock. This allows the verifier to get to its
side Bitmap without having to do a HashMap look up for every cell.

Size-wise, in the current 16K MarkBlocks, there is previously room for 1005.5
atoms after reserving space for the MarkedBlock::Footer. Since we can never
allocate half an atom anyway, that .5 atom gives us the 8 bytes we need for
the m_verifierMemo pointer, which we'll put in the MarkedBlock::Footer. With
this patch, each MarkedBlock will now have exactly 1005 atoms available for
allocation.

I ran JetStream2 and Speedometer2 locally on a MacBookAir10,1, MacBookPro16,1,
and a 12.9” 4th Gen iPad Pro. The benchmark results for these were all neutral.

The design of the GC verifier is such that it incurs almost no additional runtime
memory overhead if not in use. Code size does increase significantly because
there are now 2 variants of most of the methods that take a SlotVisitor.

When in use, the additional runtime memory is encapsulated in the
VerifierSlotVisitor, which is instantiated and destructed every GC cycle. Hence,
it can affect peak memory usage during GCs, but the cost is transient. It does
not persist past the GC End phase.

  • API/JSAPIWrapperObject.h:
  • API/JSAPIWrapperObject.mm:

(JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots):
(JSC::JSAPIWrapperObject::visitChildrenImpl):
(JSC::JSAPIWrapperObject::visitChildren): Deleted.

  • API/JSCallbackObject.cpp:
  • API/JSCallbackObject.h:

(JSC::JSCallbackObjectData::visitChildren):
(JSC::JSCallbackObjectData::JSPrivatePropertyMap::visitChildren):
(JSC::JSCallbackObject<Parent>::visitChildrenImpl):

  • API/JSManagedValue.mm:

(JSManagedValueHandleOwner::isReachableFromOpaqueRoots):

  • API/JSMarkingConstraintPrivate.cpp:

(JSC::isMarked):
(JSContextGroupAddMarkingConstraint):

  • API/JSVirtualMachine.mm:

(scanExternalObjectGraph):
(scanExternalRememberedSet):

  • API/JSVirtualMachineInternal.h:
  • API/MarkedJSValueRefArray.cpp:

(JSC::MarkedJSValueRefArray::visitAggregate):

  • API/MarkedJSValueRefArray.h:
  • API/glib/JSAPIWrapperGlobalObject.cpp:

(JSC::JSAPIWrapperGlobalObject::visitChildren): Deleted.

  • API/glib/JSAPIWrapperGlobalObject.h:
  • API/glib/JSAPIWrapperObjectGLib.cpp:

(JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots):
(JSC::JSAPIWrapperObject::visitChildrenImpl):
(JSC::JSAPIWrapperObject::visitChildren): Deleted.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Scripts/wkbuiltins/builtins_generate_internals_wrapper_header.py:

(BuiltinsInternalsWrapperHeaderGenerator):

  • Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py:

(BuiltinsInternalsWrapperImplementationGenerator.generate_visit_method):

  • Scripts/wkbuiltins/builtins_templates.py:
  • Sources.txt:
  • bytecode/AccessCase.cpp:

(JSC::AccessCase::propagateTransitions const):
(JSC::AccessCase::visitAggregateImpl const):
(JSC::AccessCase::visitAggregate const): Deleted.

  • bytecode/AccessCase.h:
  • bytecode/ByValInfo.cpp:

(JSC::ByValInfo::visitAggregateImpl):
(JSC::ByValInfo::visitAggregate): Deleted.

  • bytecode/ByValInfo.h:
  • bytecode/CheckPrivateBrandStatus.cpp:

(JSC::CheckPrivateBrandStatus::visitAggregateImpl):
(JSC::CheckPrivateBrandStatus::markIfCheap):
(JSC::CheckPrivateBrandStatus::visitAggregate): Deleted.

  • bytecode/CheckPrivateBrandStatus.h:
  • bytecode/CheckPrivateBrandVariant.cpp:

(JSC::CheckPrivateBrandVariant::markIfCheap):
(JSC::CheckPrivateBrandVariant::visitAggregateImpl):
(JSC::CheckPrivateBrandVariant::visitAggregate): Deleted.

  • bytecode/CheckPrivateBrandVariant.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::visitChildrenImpl):
(JSC::CodeBlock::visitChildren):
(JSC::CodeBlock::shouldVisitStrongly):
(JSC::CodeBlock::shouldJettisonDueToOldAge):
(JSC::shouldMarkTransition):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::determineLiveness):
(JSC::CodeBlock::finalizeUnconditionally):
(JSC::CodeBlock::visitOSRExitTargets):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::stronglyVisitWeakReferences):

  • bytecode/CodeBlock.h:
  • bytecode/DeleteByIdVariant.cpp:

(JSC::DeleteByIdVariant::visitAggregateImpl):
(JSC::DeleteByIdVariant::markIfCheap):
(JSC::DeleteByIdVariant::visitAggregate): Deleted.

  • bytecode/DeleteByIdVariant.h:
  • bytecode/DeleteByStatus.cpp:

(JSC::DeleteByStatus::visitAggregateImpl):
(JSC::DeleteByStatus::markIfCheap):
(JSC::DeleteByStatus::visitAggregate): Deleted.

  • bytecode/DeleteByStatus.h:
  • bytecode/DirectEvalCodeCache.cpp:

(JSC::DirectEvalCodeCache::visitAggregateImpl):
(JSC::DirectEvalCodeCache::visitAggregate): Deleted.

  • bytecode/DirectEvalCodeCache.h:
  • bytecode/ExecutableToCodeBlockEdge.cpp:

(JSC::ExecutableToCodeBlockEdge::visitChildrenImpl):
(JSC::ExecutableToCodeBlockEdge::visitOutputConstraintsImpl):
(JSC::ExecutableToCodeBlockEdge::runConstraint):
(JSC::ExecutableToCodeBlockEdge::visitChildren): Deleted.
(JSC::ExecutableToCodeBlockEdge::visitOutputConstraints): Deleted.

  • bytecode/ExecutableToCodeBlockEdge.h:
  • bytecode/GetByIdVariant.cpp:

(JSC::GetByIdVariant::visitAggregateImpl):
(JSC::GetByIdVariant::markIfCheap):
(JSC::GetByIdVariant::visitAggregate): Deleted.

  • bytecode/GetByIdVariant.h:
  • bytecode/GetByStatus.cpp:

(JSC::GetByStatus::visitAggregateImpl):
(JSC::GetByStatus::markIfCheap):
(JSC::GetByStatus::visitAggregate): Deleted.

  • bytecode/GetByStatus.h:
  • bytecode/InByIdStatus.cpp:

(JSC::InByIdStatus::markIfCheap):

  • bytecode/InByIdStatus.h:
  • bytecode/InByIdVariant.cpp:

(JSC::InByIdVariant::markIfCheap):

  • bytecode/InByIdVariant.h:
  • bytecode/InternalFunctionAllocationProfile.h:

(JSC::InternalFunctionAllocationProfile::visitAggregate):

  • bytecode/ObjectAllocationProfile.h:

(JSC::ObjectAllocationProfileBase::visitAggregate):
(JSC::ObjectAllocationProfileWithPrototype::visitAggregate):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::propagateTransitions const):
(JSC::PolymorphicAccess::visitAggregateImpl):
(JSC::PolymorphicAccess::visitAggregate): Deleted.

  • bytecode/PolymorphicAccess.h:
  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::markIfCheap):

  • bytecode/PutByIdStatus.h:
  • bytecode/PutByIdVariant.cpp:

(JSC::PutByIdVariant::markIfCheap):

  • bytecode/PutByIdVariant.h:
  • bytecode/RecordedStatuses.cpp:

(JSC::RecordedStatuses::visitAggregateImpl):
(JSC::RecordedStatuses::markIfCheap):
(JSC::RecordedStatuses::visitAggregate): Deleted.

  • bytecode/RecordedStatuses.h:
  • bytecode/SetPrivateBrandStatus.cpp:

(JSC::SetPrivateBrandStatus::visitAggregateImpl):
(JSC::SetPrivateBrandStatus::markIfCheap):
(JSC::SetPrivateBrandStatus::visitAggregate): Deleted.

  • bytecode/SetPrivateBrandStatus.h:
  • bytecode/SetPrivateBrandVariant.cpp:

(JSC::SetPrivateBrandVariant::markIfCheap):
(JSC::SetPrivateBrandVariant::visitAggregateImpl):
(JSC::SetPrivateBrandVariant::visitAggregate): Deleted.

  • bytecode/SetPrivateBrandVariant.h:
  • bytecode/StructureSet.cpp:

(JSC::StructureSet::markIfCheap const):

  • bytecode/StructureSet.h:
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::visitAggregateImpl):
(JSC::StructureStubInfo::propagateTransitions):
(JSC::StructureStubInfo::visitAggregate): Deleted.

  • bytecode/StructureStubInfo.h:
  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::visitChildrenImpl):
(JSC::UnlinkedCodeBlock::visitChildren): Deleted.

  • bytecode/UnlinkedCodeBlock.h:
  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::UnlinkedFunctionExecutable::visitChildrenImpl):
(JSC::UnlinkedFunctionExecutable::visitChildren): Deleted.

  • bytecode/UnlinkedFunctionExecutable.h:
  • debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::visitChildrenImpl):
(JSC::DebuggerScope::visitChildren): Deleted.

  • debugger/DebuggerScope.h:
  • dfg/DFGDesiredTransitions.cpp:

(JSC::DFG::DesiredTransition::visitChildren):
(JSC::DFG::DesiredTransitions::visitChildren):

  • dfg/DFGDesiredTransitions.h:
  • dfg/DFGDesiredWeakReferences.cpp:

(JSC::DFG::DesiredWeakReferences::visitChildren):

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

(JSC::DFG::Graph::visitChildrenImpl):
(JSC::DFG::Graph::visitChildren):

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

(JSC::DFG::Plan::checkLivenessAndVisitChildren):
(JSC::DFG::Plan::isKnownToBeLiveDuringGC):
(JSC::DFG::Plan::isKnownToBeLiveAfterGC):

  • dfg/DFGPlan.h:
  • dfg/DFGPlanInlines.h:

(JSC::DFG::Plan::iterateCodeBlocksForGC):

  • dfg/DFGSafepoint.cpp:

(JSC::DFG::Safepoint::checkLivenessAndVisitChildren):
(JSC::DFG::Safepoint::isKnownToBeLiveDuringGC):
(JSC::DFG::Safepoint::isKnownToBeLiveAfterGC):

  • dfg/DFGSafepoint.h:
  • dfg/DFGScannable.h:
  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::visitWeakReferences):
(JSC::DFG::Worklist::removeDeadPlans):

  • dfg/DFGWorklist.h:
  • dfg/DFGWorklistInlines.h:

(JSC::DFG::iterateCodeBlocksForGC):
(JSC::DFG::Worklist::iterateCodeBlocksForGC):

  • heap/AbstractSlotVisitor.h: Added.

(JSC::AbstractSlotVisitor::Context::cell const):
(JSC::AbstractSlotVisitor::SuppressGCVerifierScope::SuppressGCVerifierScope):
(JSC::AbstractSlotVisitor::SuppressGCVerifierScope::~SuppressGCVerifierScope):
(JSC::AbstractSlotVisitor::DefaultMarkingViolationAssertionScope::DefaultMarkingViolationAssertionScope):
(JSC::AbstractSlotVisitor::collectorMarkStack):
(JSC::AbstractSlotVisitor::mutatorMarkStack):
(JSC::AbstractSlotVisitor::collectorMarkStack const):
(JSC::AbstractSlotVisitor::mutatorMarkStack const):
(JSC::AbstractSlotVisitor::isEmpty):
(JSC::AbstractSlotVisitor::setIgnoreNewOpaqueRoots):
(JSC::AbstractSlotVisitor::visitCount const):
(JSC::AbstractSlotVisitor::addToVisitCount):
(JSC::AbstractSlotVisitor::rootMarkReason const):
(JSC::AbstractSlotVisitor::setRootMarkReason):
(JSC::AbstractSlotVisitor::didRace):
(JSC::AbstractSlotVisitor::codeName const):
(JSC::SetRootMarkReasonScope::SetRootMarkReasonScope):
(JSC::SetRootMarkReasonScope::~SetRootMarkReasonScope):

  • heap/AbstractSlotVisitorInlines.h: Added.

(JSC::AbstractSlotVisitor::Context::Context):
(JSC::AbstractSlotVisitor::Context::~Context):
(JSC::AbstractSlotVisitor::AbstractSlotVisitor):
(JSC::AbstractSlotVisitor::heap const):
(JSC::AbstractSlotVisitor::vm):
(JSC::AbstractSlotVisitor::vm const):
(JSC::AbstractSlotVisitor::addOpaqueRoot):
(JSC::AbstractSlotVisitor::containsOpaqueRoot const):
(JSC::AbstractSlotVisitor::append):
(JSC::AbstractSlotVisitor::appendHidden):
(JSC::AbstractSlotVisitor::appendHiddenUnbarriered):
(JSC::AbstractSlotVisitor::appendValues):
(JSC::AbstractSlotVisitor::appendValuesHidden):
(JSC::AbstractSlotVisitor::appendUnbarriered):
(JSC::AbstractSlotVisitor::parentCell const):
(JSC::AbstractSlotVisitor::reset):

  • heap/HandleSet.cpp:

(JSC::HandleSet::visitStrongHandles):

  • heap/HandleSet.h:
  • heap/Heap.cpp:

(JSC::Heap::iterateExecutingAndCompilingCodeBlocks):
(JSC::Heap::iterateExecutingAndCompilingCodeBlocksWithoutHoldingLocks):
(JSC::Heap::runEndPhase):
(JSC::Heap::willStartCollection):
(JSC::scanExternalRememberedSet):
(JSC::serviceSamplingProfiler):
(JSC::Heap::addCoreConstraints):
(JSC::Heap::verifyGC):
(JSC::Heap::isAnalyzingHeap const): Deleted.

  • heap/Heap.h:

(JSC::Heap::isMarkingForGCVerifier const):
(JSC::Heap::numOpaqueRoots const): Deleted.

  • heap/HeapInlines.h:

(JSC::Heap::isMarked):

  • heap/HeapProfiler.cpp:

(JSC::HeapProfiler::setActiveHeapAnalyzer):

  • heap/IsoCellSet.h:
  • heap/IsoCellSetInlines.h:

(JSC::IsoCellSet::forEachMarkedCellInParallel):

  • heap/JITStubRoutineSet.cpp:

(JSC::JITStubRoutineSet::traceMarkedStubRoutines):

  • heap/JITStubRoutineSet.h:

(JSC::JITStubRoutineSet::traceMarkedStubRoutines):

  • heap/MarkStackMergingConstraint.cpp:

(JSC::MarkStackMergingConstraint::prepareToExecuteImpl):
(JSC::MarkStackMergingConstraint::executeImplImpl):
(JSC::MarkStackMergingConstraint::executeImpl):

  • heap/MarkStackMergingConstraint.h:
  • heap/MarkedBlock.h:

(JSC::MarkedBlock::Handle::atomAt const):
(JSC::MarkedBlock::setVerifierMemo):
(JSC::MarkedBlock::verifierMemo const):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::visitWeakSets):

  • heap/MarkedSpace.h:
  • heap/MarkingConstraint.cpp:

(JSC::MarkingConstraint::execute):
(JSC::MarkingConstraint::executeSynchronously):
(JSC::MarkingConstraint::prepareToExecute):
(JSC::MarkingConstraint::doParallelWork):
(JSC::MarkingConstraint::prepareToExecuteImpl):

  • heap/MarkingConstraint.h:
  • heap/MarkingConstraintExecutorPair.h: Added.

(JSC::MarkingConstraintExecutorPair::MarkingConstraintExecutorPair):
(JSC::MarkingConstraintExecutorPair::execute):

  • heap/MarkingConstraintSet.cpp:

(JSC::MarkingConstraintSet::add):
(JSC::MarkingConstraintSet::executeAllSynchronously):
(JSC::MarkingConstraintSet::executeAll): Deleted.

  • heap/MarkingConstraintSet.h:

(JSC::MarkingConstraintSet::add):

  • heap/MarkingConstraintSolver.cpp:
  • heap/MarkingConstraintSolver.h:
  • heap/SimpleMarkingConstraint.cpp:

(JSC::SimpleMarkingConstraint::SimpleMarkingConstraint):
(JSC::SimpleMarkingConstraint::executeImplImpl):
(JSC::SimpleMarkingConstraint::executeImpl):

  • heap/SimpleMarkingConstraint.h:
  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::SlotVisitor):
(JSC::SlotVisitor::reset):
(JSC::SlotVisitor::appendSlow):
(JSC::SlotVisitor::addParallelConstraintTask):

  • heap/SlotVisitor.h:

(JSC::SlotVisitor::collectorMarkStack): Deleted.
(JSC::SlotVisitor::mutatorMarkStack): Deleted.
(JSC::SlotVisitor::collectorMarkStack const): Deleted.
(JSC::SlotVisitor::mutatorMarkStack const): Deleted.
(JSC::SlotVisitor::isEmpty): Deleted.
(JSC::SlotVisitor::isFirstVisit const): Deleted.
(JSC::SlotVisitor::bytesVisited const): Deleted.
(JSC::SlotVisitor::visitCount const): Deleted.
(JSC::SlotVisitor::addToVisitCount): Deleted.
(JSC::SlotVisitor::isAnalyzingHeap const): Deleted.
(JSC::SlotVisitor::heapAnalyzer const): Deleted.
(JSC::SlotVisitor::rootMarkReason const): Deleted.
(JSC::SlotVisitor::setRootMarkReason): Deleted.
(JSC::SlotVisitor::markingVersion const): Deleted.
(JSC::SlotVisitor::mutatorIsStopped const): Deleted.
(JSC::SlotVisitor::rightToRun): Deleted.
(JSC::SlotVisitor::didRace): Deleted.
(JSC::SlotVisitor::setIgnoreNewOpaqueRoots): Deleted.
(JSC::SlotVisitor::codeName const): Deleted.
(JSC::SetRootMarkReasonScope::SetRootMarkReasonScope): Deleted.
(JSC::SetRootMarkReasonScope::~SetRootMarkReasonScope): Deleted.

  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::isMarked const):
(JSC::SlotVisitor::addOpaqueRoot): Deleted.
(JSC::SlotVisitor::containsOpaqueRoot const): Deleted.
(JSC::SlotVisitor::heap const): Deleted.
(JSC::SlotVisitor::vm): Deleted.
(JSC::SlotVisitor::vm const): Deleted.

  • heap/SlotVisitorMacros.h: Added.
  • heap/Subspace.h:
  • heap/SubspaceInlines.h:

(JSC::Subspace::forEachMarkedCellInParallel):

  • heap/VerifierSlotVisitor.cpp: Added.

(JSC::MarkerData::MarkerData):
(JSC::VerifierSlotVisitor::MarkedBlockData::MarkedBlockData):
(JSC::VerifierSlotVisitor::MarkedBlockData::addMarkerData):
(JSC::VerifierSlotVisitor::MarkedBlockData::markerData const):
(JSC::VerifierSlotVisitor::PreciseAllocationData::PreciseAllocationData):
(JSC::VerifierSlotVisitor::PreciseAllocationData::markerData const):
(JSC::VerifierSlotVisitor::PreciseAllocationData::addMarkerData):
(JSC::VerifierSlotVisitor::VerifierSlotVisitor):
(JSC::VerifierSlotVisitor::~VerifierSlotVisitor):
(JSC::VerifierSlotVisitor::addParallelConstraintTask):
(JSC::VerifierSlotVisitor::executeConstraintTasks):
(JSC::VerifierSlotVisitor::append):
(JSC::VerifierSlotVisitor::appendToMarkStack):
(JSC::VerifierSlotVisitor::appendUnbarriered):
(JSC::VerifierSlotVisitor::appendHiddenUnbarriered):
(JSC::VerifierSlotVisitor::drain):
(JSC::VerifierSlotVisitor::dumpMarkerData):
(JSC::VerifierSlotVisitor::isFirstVisit const):
(JSC::VerifierSlotVisitor::isMarked const):
(JSC::VerifierSlotVisitor::markAuxiliary):
(JSC::VerifierSlotVisitor::mutatorIsStopped const):
(JSC::VerifierSlotVisitor::testAndSetMarked):
(JSC::VerifierSlotVisitor::setMarkedAndAppendToMarkStack):
(JSC::VerifierSlotVisitor::visitAsConstraint):
(JSC::VerifierSlotVisitor::visitChildren):

  • heap/VerifierSlotVisitor.h: Added.

(JSC::VerifierSlotVisitor::MarkedBlockData::block const):
(JSC::VerifierSlotVisitor::MarkedBlockData::atoms const):
(JSC::VerifierSlotVisitor::MarkedBlockData::isMarked):
(JSC::VerifierSlotVisitor::MarkedBlockData::testAndSetMarked):
(JSC::VerifierSlotVisitor::PreciseAllocationData::allocation const):
(JSC::VerifierSlotVisitor::appendSlow):

  • heap/VerifierSlotVisitorInlines.h: Added.

(JSC::VerifierSlotVisitor::forEachLiveCell):
(JSC::VerifierSlotVisitor::forEachLivePreciseAllocation):
(JSC::VerifierSlotVisitor::forEachLiveMarkedBlockCell):

  • heap/VisitCounter.h:

(JSC::VisitCounter::VisitCounter):
(JSC::VisitCounter::visitor const):

  • heap/WeakBlock.cpp:

(JSC::WeakBlock::specializedVisit):
(JSC::WeakBlock::visitImpl):
(JSC::WeakBlock::visit):

  • heap/WeakBlock.h:
  • heap/WeakHandleOwner.cpp:

(JSC::WeakHandleOwner::isReachableFromOpaqueRoots):

  • heap/WeakHandleOwner.h:
  • heap/WeakSet.cpp:
  • heap/WeakSet.h:

(JSC::WeakSet::visit):

  • interpreter/ShadowChicken.cpp:

(JSC::ShadowChicken::visitChildren):

  • interpreter/ShadowChicken.h:
  • jit/GCAwareJITStubRoutine.cpp:

(JSC::MarkingGCAwareJITStubRoutine::markRequiredObjectsInternalImpl):
(JSC::MarkingGCAwareJITStubRoutine::markRequiredObjectsInternal):
(JSC::GCAwareJITStubRoutine::markRequiredObjectsInternal): Deleted.

  • jit/GCAwareJITStubRoutine.h:

(JSC::GCAwareJITStubRoutine::markRequiredObjects):
(JSC::GCAwareJITStubRoutine::markRequiredObjectsInternal):

  • jit/JITWorklist.cpp:
  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallStubRoutine::markRequiredObjectsInternalImpl):
(JSC::PolymorphicCallStubRoutine::markRequiredObjectsInternal):

  • jit/PolymorphicCallStubRoutine.h:
  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::visitChildrenImpl):
(JSC::AbstractModuleRecord::visitChildren): Deleted.

  • runtime/AbstractModuleRecord.h:
  • runtime/ArgList.cpp:

(JSC::MarkedArgumentBuffer::markLists):

  • runtime/ArgList.h:
  • runtime/CacheableIdentifier.h:
  • runtime/CacheableIdentifierInlines.h:

(JSC::CacheableIdentifier::visitAggregate const):

  • runtime/ClassInfo.h:

(JSC::MethodTable::visitChildren const):
(JSC::MethodTable::visitOutputConstraints const):

  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::visitChildrenImpl):
(JSC::ClonedArguments::visitChildren): Deleted.

  • runtime/ClonedArguments.h:
  • runtime/DirectArguments.cpp:

(JSC::DirectArguments::visitChildrenImpl):
(JSC::DirectArguments::visitChildren): Deleted.

  • runtime/DirectArguments.h:
  • runtime/EvalExecutable.cpp:

(JSC::EvalExecutable::visitChildrenImpl):
(JSC::EvalExecutable::visitChildren): Deleted.

  • runtime/EvalExecutable.h:
  • runtime/Exception.cpp:

(JSC::Exception::visitChildrenImpl):
(JSC::Exception::visitChildren): Deleted.

  • runtime/Exception.h:
  • runtime/FunctionExecutable.cpp:

(JSC::FunctionExecutable::visitChildrenImpl):
(JSC::FunctionExecutable::visitChildren): Deleted.

  • runtime/FunctionExecutable.h:
  • runtime/FunctionRareData.cpp:

(JSC::FunctionRareData::visitChildrenImpl):
(JSC::FunctionRareData::visitChildren): Deleted.

  • runtime/FunctionRareData.h:
  • runtime/GenericArguments.h:
  • runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::visitChildrenImpl):
(JSC::GenericArguments<Type>::visitChildren): Deleted.

  • runtime/GetterSetter.cpp:

(JSC::GetterSetter::visitChildrenImpl):
(JSC::GetterSetter::visitChildren): Deleted.

  • runtime/GetterSetter.h:
  • runtime/HashMapImpl.cpp:

(JSC::HashMapBucket<Data>::visitChildrenImpl):
(JSC::HashMapImpl<HashMapBucket>::visitChildrenImpl):
(JSC::HashMapBucket<Data>::visitChildren): Deleted.
(JSC::HashMapImpl<HashMapBucket>::visitChildren): Deleted.

  • runtime/HashMapImpl.h:
  • runtime/InternalFunction.cpp:

(JSC::InternalFunction::visitChildrenImpl):
(JSC::InternalFunction::visitChildren): Deleted.

  • runtime/InternalFunction.h:
  • runtime/IntlCollator.cpp:

(JSC::IntlCollator::visitChildrenImpl):
(JSC::IntlCollator::visitChildren): Deleted.

  • runtime/IntlCollator.h:
  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::visitChildrenImpl):
(JSC::IntlDateTimeFormat::visitChildren): Deleted.

  • runtime/IntlDateTimeFormat.h:
  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::visitChildrenImpl):
(JSC::IntlLocale::visitChildren): Deleted.

  • runtime/IntlLocale.h:
  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::visitChildrenImpl):
(JSC::IntlNumberFormat::visitChildren): Deleted.

  • runtime/IntlNumberFormat.h:
  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::visitChildrenImpl):
(JSC::IntlPluralRules::visitChildren): Deleted.

  • runtime/IntlPluralRules.h:
  • runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::visitChildrenImpl):
(JSC::IntlRelativeTimeFormat::visitChildren): Deleted.

  • runtime/IntlRelativeTimeFormat.h:
  • runtime/IntlSegmentIterator.cpp:

(JSC::IntlSegmentIterator::visitChildrenImpl):
(JSC::IntlSegmentIterator::visitChildren): Deleted.

  • runtime/IntlSegmentIterator.h:
  • runtime/IntlSegments.cpp:

(JSC::IntlSegments::visitChildrenImpl):
(JSC::IntlSegments::visitChildren): Deleted.

  • runtime/IntlSegments.h:
  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::visitChildrenImpl):
(JSC::JSArrayBufferView::visitChildren): Deleted.

  • runtime/JSArrayBufferView.h:
  • runtime/JSArrayIterator.cpp:

(JSC::JSArrayIterator::visitChildrenImpl):
(JSC::JSArrayIterator::visitChildren): Deleted.

  • runtime/JSArrayIterator.h:
  • runtime/JSAsyncGenerator.cpp:

(JSC::JSAsyncGenerator::visitChildrenImpl):
(JSC::JSAsyncGenerator::visitChildren): Deleted.

  • runtime/JSAsyncGenerator.h:
  • runtime/JSBigInt.cpp:

(JSC::JSBigInt::visitChildrenImpl):
(JSC::JSBigInt::visitChildren): Deleted.

  • runtime/JSBigInt.h:
  • runtime/JSBoundFunction.cpp:

(JSC::JSBoundFunction::visitChildrenImpl):
(JSC::JSBoundFunction::visitChildren): Deleted.

  • runtime/JSBoundFunction.h:
  • runtime/JSCallee.cpp:

(JSC::JSCallee::visitChildrenImpl):
(JSC::JSCallee::visitChildren): Deleted.

  • runtime/JSCallee.h:
  • runtime/JSCell.h:
  • runtime/JSCellInlines.h:

(JSC::JSCell::visitChildrenImpl):
(JSC::JSCell::visitOutputConstraintsImpl):
(JSC::JSCell::visitChildren): Deleted.
(JSC::JSCell::visitOutputConstraints): Deleted.

  • runtime/JSFinalizationRegistry.cpp:

(JSC::JSFinalizationRegistry::visitChildrenImpl):
(JSC::JSFinalizationRegistry::visitChildren): Deleted.

  • runtime/JSFinalizationRegistry.h:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::visitChildrenImpl):
(JSC::JSFunction::visitChildren): Deleted.

  • runtime/JSFunction.h:
  • runtime/JSGenerator.cpp:

(JSC::JSGenerator::visitChildrenImpl):
(JSC::JSGenerator::visitChildren): Deleted.

  • runtime/JSGenerator.h:
  • runtime/JSGenericTypedArrayView.h:
  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::visitChildrenImpl):
(JSC::JSGenericTypedArrayView<Adaptor>::visitChildren): Deleted.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::visitChildrenImpl):
(JSC::JSGlobalObject::visitChildren): Deleted.

  • runtime/JSGlobalObject.h:
  • runtime/JSImmutableButterfly.cpp:

(JSC::JSImmutableButterfly::visitChildrenImpl):
(JSC::JSImmutableButterfly::visitChildren): Deleted.

  • runtime/JSImmutableButterfly.h:
  • runtime/JSInternalFieldObjectImpl.h:
  • runtime/JSInternalFieldObjectImplInlines.h:

(JSC::JSInternalFieldObjectImpl<passedNumberOfInternalFields>::visitChildrenImpl):
(JSC::JSInternalFieldObjectImpl<passedNumberOfInternalFields>::visitChildren): Deleted.

  • runtime/JSLexicalEnvironment.cpp:

(JSC::JSLexicalEnvironment::visitChildrenImpl):
(JSC::JSLexicalEnvironment::visitChildren): Deleted.

  • runtime/JSLexicalEnvironment.h:
  • runtime/JSMapIterator.cpp:

(JSC::JSMapIterator::visitChildrenImpl):
(JSC::JSMapIterator::visitChildren): Deleted.

  • runtime/JSMapIterator.h:
  • runtime/JSModuleEnvironment.cpp:

(JSC::JSModuleEnvironment::visitChildrenImpl):
(JSC::JSModuleEnvironment::visitChildren): Deleted.

  • runtime/JSModuleEnvironment.h:
  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::visitChildrenImpl):
(JSC::JSModuleNamespaceObject::visitChildren): Deleted.

  • runtime/JSModuleNamespaceObject.h:
  • runtime/JSModuleRecord.cpp:

(JSC::JSModuleRecord::visitChildrenImpl):
(JSC::JSModuleRecord::visitChildren): Deleted.

  • runtime/JSModuleRecord.h:
  • runtime/JSNativeStdFunction.cpp:

(JSC::JSNativeStdFunction::visitChildrenImpl):
(JSC::JSNativeStdFunction::visitChildren): Deleted.

  • runtime/JSNativeStdFunction.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::markAuxiliaryAndVisitOutOfLineProperties):
(JSC::JSObject::visitButterfly):
(JSC::JSObject::visitButterflyImpl):
(JSC::JSObject::visitChildrenImpl):
(JSC::JSFinalObject::visitChildrenImpl):
(JSC::JSObject::visitChildren): Deleted.
(JSC::JSFinalObject::visitChildren): Deleted.

  • runtime/JSObject.h:
  • runtime/JSPromise.cpp:

(JSC::JSPromise::visitChildrenImpl):
(JSC::JSPromise::visitChildren): Deleted.

  • runtime/JSPromise.h:
  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::visitChildrenImpl):
(JSC::JSPropertyNameEnumerator::visitChildren): Deleted.

  • runtime/JSPropertyNameEnumerator.h:
  • runtime/JSProxy.cpp:

(JSC::JSProxy::visitChildrenImpl):
(JSC::JSProxy::visitChildren): Deleted.

  • runtime/JSProxy.h:
  • runtime/JSScope.cpp:

(JSC::JSScope::visitChildrenImpl):
(JSC::JSScope::visitChildren): Deleted.

  • runtime/JSScope.h:
  • runtime/JSSegmentedVariableObject.cpp:

(JSC::JSSegmentedVariableObject::visitChildrenImpl):
(JSC::JSSegmentedVariableObject::visitChildren): Deleted.

  • runtime/JSSegmentedVariableObject.h:
  • runtime/JSSetIterator.cpp:

(JSC::JSSetIterator::visitChildrenImpl):
(JSC::JSSetIterator::visitChildren): Deleted.

  • runtime/JSSetIterator.h:
  • runtime/JSString.cpp:

(JSC::JSString::visitChildrenImpl):
(JSC::JSString::visitChildren): Deleted.

  • runtime/JSString.h:
  • runtime/JSStringIterator.cpp:

(JSC::JSStringIterator::visitChildrenImpl):
(JSC::JSStringIterator::visitChildren): Deleted.

  • runtime/JSStringIterator.h:
  • runtime/JSSymbolTableObject.cpp:

(JSC::JSSymbolTableObject::visitChildrenImpl):
(JSC::JSSymbolTableObject::visitChildren): Deleted.

  • runtime/JSSymbolTableObject.h:
  • runtime/JSWeakObjectRef.cpp:

(JSC::JSWeakObjectRef::visitChildrenImpl):
(JSC::JSWeakObjectRef::visitChildren): Deleted.

  • runtime/JSWeakObjectRef.h:
  • runtime/JSWithScope.cpp:

(JSC::JSWithScope::visitChildrenImpl):
(JSC::JSWithScope::visitChildren): Deleted.

  • runtime/JSWithScope.h:
  • runtime/JSWrapperObject.cpp:

(JSC::JSWrapperObject::visitChildrenImpl):
(JSC::JSWrapperObject::visitChildren): Deleted.

  • runtime/JSWrapperObject.h:
  • runtime/LazyClassStructure.cpp:

(JSC::LazyClassStructure::visit):

  • runtime/LazyClassStructure.h:
  • runtime/LazyProperty.h:
  • runtime/LazyPropertyInlines.h:

(JSC::ElementType>::visit):

  • runtime/ModuleProgramExecutable.cpp:

(JSC::ModuleProgramExecutable::visitChildrenImpl):
(JSC::ModuleProgramExecutable::visitChildren): Deleted.

  • runtime/ModuleProgramExecutable.h:
  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):

  • runtime/OptionsList.h:
  • runtime/ProgramExecutable.cpp:

(JSC::ProgramExecutable::visitChildrenImpl):
(JSC::ProgramExecutable::visitChildren): Deleted.

  • runtime/ProgramExecutable.h:
  • runtime/PropertyMapHashTable.h:
  • runtime/PropertyTable.cpp:

(JSC::PropertyTable::visitChildrenImpl):
(JSC::PropertyTable::visitChildren): Deleted.

  • runtime/ProxyObject.cpp:

(JSC::ProxyObject::visitChildrenImpl):
(JSC::ProxyObject::visitChildren): Deleted.

  • runtime/ProxyObject.h:
  • runtime/ProxyRevoke.cpp:

(JSC::ProxyRevoke::visitChildrenImpl):
(JSC::ProxyRevoke::visitChildren): Deleted.

  • runtime/ProxyRevoke.h:
  • runtime/RegExpCachedResult.cpp:

(JSC::RegExpCachedResult::visitAggregateImpl):
(JSC::RegExpCachedResult::visitAggregate): Deleted.

  • runtime/RegExpCachedResult.h:
  • runtime/RegExpGlobalData.cpp:

(JSC::RegExpGlobalData::visitAggregateImpl):
(JSC::RegExpGlobalData::visitAggregate): Deleted.

  • runtime/RegExpGlobalData.h:
  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::visitChildrenImpl):
(JSC::RegExpObject::visitChildren): Deleted.

  • runtime/RegExpObject.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::visit):

  • runtime/SamplingProfiler.h:
  • runtime/ScopedArguments.cpp:

(JSC::ScopedArguments::visitChildrenImpl):
(JSC::ScopedArguments::visitChildren): Deleted.

  • runtime/ScopedArguments.h:
  • runtime/SimpleTypedArrayController.cpp:

(JSC::SimpleTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots):

  • runtime/SimpleTypedArrayController.h:
  • runtime/SmallStrings.cpp:

(JSC::SmallStrings::visitStrongReferences):

  • runtime/SmallStrings.h:
  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::visitChildrenImpl):
(JSC::SparseArrayValueMap::visitChildren): Deleted.

  • runtime/SparseArrayValueMap.h:
  • runtime/StackFrame.cpp:

(JSC::StackFrame::visitChildren): Deleted.

  • runtime/StackFrame.h:

(JSC::StackFrame::visitChildren):

  • runtime/Structure.cpp:

(JSC::Structure::visitChildrenImpl):
(JSC::Structure::isCheapDuringGC):
(JSC::Structure::markIfCheap):
(JSC::Structure::visitChildren): Deleted.

  • runtime/Structure.h:
  • runtime/StructureChain.cpp:

(JSC::StructureChain::visitChildrenImpl):
(JSC::StructureChain::visitChildren): Deleted.

  • runtime/StructureChain.h:
  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::visitChildrenImpl):
(JSC::StructureRareData::visitChildren): Deleted.

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

(JSC::SymbolTable::visitChildrenImpl):
(JSC::SymbolTable::visitChildren): Deleted.

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

(JSC::TypeProfilerLog::visit):

  • runtime/TypeProfilerLog.h:
  • runtime/VM.h:

(JSC::VM::isAnalyzingHeap const):
(JSC::VM::activeHeapAnalyzer const):
(JSC::VM::setActiveHeapAnalyzer):

  • runtime/WeakMapImpl.cpp:

(JSC::WeakMapImpl<WeakMapBucket>::visitChildrenImpl):
(JSC::WeakMapImpl<WeakMapBucket<WeakMapBucketDataKey>>::visitOutputConstraints):
(JSC::WeakMapImpl<BucketType>::visitOutputConstraints):
(JSC::WeakMapImpl<WeakMapBucket>::visitChildren): Deleted.
(JSC::WeakMapImpl<WeakMapBucket<WeakMapBucketDataKeyValue>>::visitOutputConstraints): Deleted.

  • runtime/WeakMapImpl.h:

(JSC::WeakMapBucket::visitAggregate):

  • tools/JSDollarVM.cpp:

(JSC::JSDollarVM::visitChildrenImpl):
(JSC::JSDollarVM::visitChildren): Deleted.

  • tools/JSDollarVM.h:
  • wasm/WasmGlobal.cpp:

(JSC::Wasm::Global::visitAggregateImpl):
(JSC::Wasm::Global::visitAggregate): Deleted.

  • wasm/WasmGlobal.h:
  • wasm/WasmTable.cpp:

(JSC::Wasm::Table::visitAggregateImpl):
(JSC::Wasm::Table::visitAggregate): Deleted.

  • wasm/WasmTable.h:
  • wasm/js/JSToWasmICCallee.cpp:

(JSC::JSToWasmICCallee::visitChildrenImpl):
(JSC::JSToWasmICCallee::visitChildren): Deleted.

  • wasm/js/JSToWasmICCallee.h:
  • wasm/js/JSWebAssemblyCodeBlock.cpp:

(JSC::JSWebAssemblyCodeBlock::visitChildrenImpl):
(JSC::JSWebAssemblyCodeBlock::visitChildren): Deleted.

  • wasm/js/JSWebAssemblyCodeBlock.h:
  • wasm/js/JSWebAssemblyGlobal.cpp:

(JSC::JSWebAssemblyGlobal::visitChildrenImpl):
(JSC::JSWebAssemblyGlobal::visitChildren): Deleted.

  • wasm/js/JSWebAssemblyGlobal.h:
  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::visitChildrenImpl):
(JSC::JSWebAssemblyInstance::visitChildren): Deleted.

  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/JSWebAssemblyMemory.cpp:

(JSC::JSWebAssemblyMemory::visitChildrenImpl):
(JSC::JSWebAssemblyMemory::visitChildren): Deleted.

  • wasm/js/JSWebAssemblyMemory.h:
  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::visitChildrenImpl):
(JSC::JSWebAssemblyModule::visitChildren): Deleted.

  • wasm/js/JSWebAssemblyModule.h:
  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::visitChildrenImpl):
(JSC::JSWebAssemblyTable::visitChildren): Deleted.

  • wasm/js/JSWebAssemblyTable.h:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::WebAssemblyFunction::visitChildrenImpl):
(JSC::WebAssemblyFunction::visitChildren): Deleted.

  • wasm/js/WebAssemblyFunction.h:
  • wasm/js/WebAssemblyFunctionBase.cpp:

(JSC::WebAssemblyFunctionBase::visitChildrenImpl):
(JSC::WebAssemblyFunctionBase::visitChildren): Deleted.

  • wasm/js/WebAssemblyFunctionBase.h:
  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::visitChildrenImpl):
(JSC::WebAssemblyModuleRecord::visitChildren): Deleted.

  • wasm/js/WebAssemblyModuleRecord.h:
  • wasm/js/WebAssemblyWrapperFunction.cpp:

(JSC::WebAssemblyWrapperFunction::visitChildrenImpl):
(JSC::WebAssemblyWrapperFunction::visitChildren): Deleted.

  • wasm/js/WebAssemblyWrapperFunction.h:

Source/WebCore:

  1. Added support for the GC verifier.
  2. Also removed NodeFilterCondition::visitAggregate() because it is not used.
  3. Rebased bindings test results.
  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::visitReferencedIndexes const):

  • Modules/indexeddb/IDBObjectStore.h:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::visitReferencedObjectStores const):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/webaudio/AudioBuffer.cpp:

(WebCore::AudioBuffer::visitChannelWrappers):

  • Modules/webaudio/AudioBuffer.h:
  • bindings/js/DOMGCOutputConstraint.cpp:

(WebCore::DOMGCOutputConstraint::executeImplImpl):
(WebCore::DOMGCOutputConstraint::executeImpl):

  • bindings/js/DOMGCOutputConstraint.h:
  • bindings/js/JSAbortControllerCustom.cpp:

(WebCore::JSAbortController::visitAdditionalChildren):

  • bindings/js/JSAbortSignalCustom.cpp:

(WebCore::JSAbortSignalOwner::isReachableFromOpaqueRoots):

  • bindings/js/JSAttrCustom.cpp:

(WebCore::JSAttr::visitAdditionalChildren):

  • bindings/js/JSAudioBufferCustom.cpp:

(WebCore::JSAudioBuffer::visitAdditionalChildren):

  • bindings/js/JSAudioTrackCustom.cpp:

(WebCore::JSAudioTrack::visitAdditionalChildren):

  • bindings/js/JSAudioTrackListCustom.cpp:

(WebCore::JSAudioTrackList::visitAdditionalChildren):

  • bindings/js/JSAudioWorkletProcessorCustom.cpp:

(WebCore::JSAudioWorkletProcessor::visitAdditionalChildren):

  • bindings/js/JSCSSRuleCustom.cpp:

(WebCore::JSCSSRule::visitAdditionalChildren):

  • bindings/js/JSCSSRuleListCustom.cpp:

(WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::visitAdditionalChildren):

  • bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackDataWeak::visitJSFunction):
(WebCore::JSCallbackDataWeak::WeakOwner::isReachableFromOpaqueRoots):

  • bindings/js/JSCallbackData.h:
  • bindings/js/JSCanvasRenderingContext2DCustom.cpp:

(WebCore::JSCanvasRenderingContext2DOwner::isReachableFromOpaqueRoots):
(WebCore::JSCanvasRenderingContext2D::visitAdditionalChildren):

  • bindings/js/JSCustomEventCustom.cpp:

(WebCore::JSCustomEvent::visitAdditionalChildren):

  • bindings/js/JSDOMBuiltinConstructorBase.cpp:

(WebCore::JSDOMBuiltinConstructorBase::visitChildrenImpl):
(WebCore::JSDOMBuiltinConstructorBase::visitChildren): Deleted.

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

(WebCore::JSDOMGlobalObject::visitChildrenImpl):
(WebCore::JSDOMGlobalObject::visitChildren): Deleted.

  • bindings/js/JSDOMGlobalObject.h:
  • bindings/js/JSDOMGuardedObject.h:
  • bindings/js/JSDOMQuadCustom.cpp:

(WebCore::JSDOMQuad::visitAdditionalChildren):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::visitAdditionalChildren):

  • bindings/js/JSDeprecatedCSSOMValueCustom.cpp:

(WebCore::JSDeprecatedCSSOMValueOwner::isReachableFromOpaqueRoots):

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::visitAdditionalChildren):

  • bindings/js/JSErrorEventCustom.cpp:

(WebCore::JSErrorEvent::visitAdditionalChildren):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::visitJSFunctionImpl):
(WebCore::JSEventListener::visitJSFunction):

  • bindings/js/JSEventListener.h:
  • bindings/js/JSEventTargetCustom.cpp:

(WebCore::JSEventTarget::visitAdditionalChildren):

  • bindings/js/JSFetchEventCustom.cpp:

(WebCore::JSFetchEvent::visitAdditionalChildren):

  • bindings/js/JSHTMLCanvasElementCustom.cpp:

(WebCore::JSHTMLCanvasElement::visitAdditionalChildren):

  • bindings/js/JSHTMLTemplateElementCustom.cpp:

(WebCore::JSHTMLTemplateElement::visitAdditionalChildren):

  • bindings/js/JSHistoryCustom.cpp:

(WebCore::JSHistory::visitAdditionalChildren):

  • bindings/js/JSIDBCursorCustom.cpp:

(WebCore::JSIDBCursor::visitAdditionalChildren):

  • bindings/js/JSIDBCursorWithValueCustom.cpp:

(WebCore::JSIDBCursorWithValue::visitAdditionalChildren):

  • bindings/js/JSIDBIndexCustom.cpp:

(WebCore::JSIDBIndex::visitAdditionalChildren):

  • bindings/js/JSIDBObjectStoreCustom.cpp:

(WebCore::JSIDBObjectStore::visitAdditionalChildren):

  • bindings/js/JSIDBRequestCustom.cpp:

(WebCore::JSIDBRequest::visitAdditionalChildren):

  • bindings/js/JSIDBTransactionCustom.cpp:

(WebCore::JSIDBTransaction::visitAdditionalChildren):

  • bindings/js/JSIntersectionObserverCustom.cpp:

(WebCore::JSIntersectionObserver::visitAdditionalChildren):

  • bindings/js/JSIntersectionObserverEntryCustom.cpp:

(WebCore::JSIntersectionObserverEntry::visitAdditionalChildren):

  • bindings/js/JSMessageChannelCustom.cpp:

(WebCore::JSMessageChannel::visitAdditionalChildren):

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::JSMessageEvent::visitAdditionalChildren):

  • bindings/js/JSMessagePortCustom.cpp:

(WebCore::JSMessagePort::visitAdditionalChildren):

  • bindings/js/JSMutationObserverCustom.cpp:

(WebCore::JSMutationObserver::visitAdditionalChildren):
(WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots):

  • bindings/js/JSMutationRecordCustom.cpp:

(WebCore::JSMutationRecord::visitAdditionalChildren):

  • bindings/js/JSNavigatorCustom.cpp:

(WebCore::JSNavigator::visitAdditionalChildren):

  • bindings/js/JSNodeCustom.cpp:

(WebCore::isReachableFromDOM):
(WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
(WebCore::JSNode::visitAdditionalChildren):

  • bindings/js/JSNodeIteratorCustom.cpp:

(WebCore::JSNodeIterator::visitAdditionalChildren):

  • bindings/js/JSNodeListCustom.cpp:

(WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):

  • bindings/js/JSOffscreenCanvasRenderingContext2DCustom.cpp:

(WebCore::JSOffscreenCanvasRenderingContext2DOwner::isReachableFromOpaqueRoots):
(WebCore::JSOffscreenCanvasRenderingContext2D::visitAdditionalChildren):

  • bindings/js/JSPaintRenderingContext2DCustom.cpp:

(WebCore::JSPaintRenderingContext2DOwner::isReachableFromOpaqueRoots):
(WebCore::JSPaintRenderingContext2D::visitAdditionalChildren):

  • bindings/js/JSPaintWorkletGlobalScopeCustom.cpp:

(WebCore::JSPaintWorkletGlobalScope::visitAdditionalChildren):

  • bindings/js/JSPaymentMethodChangeEventCustom.cpp:

(WebCore::JSPaymentMethodChangeEvent::visitAdditionalChildren):

  • bindings/js/JSPaymentResponseCustom.cpp:

(WebCore::JSPaymentResponse::visitAdditionalChildren):

  • bindings/js/JSPerformanceObserverCustom.cpp:

(WebCore::JSPerformanceObserver::visitAdditionalChildren):
(WebCore::JSPerformanceObserverOwner::isReachableFromOpaqueRoots):

  • bindings/js/JSPopStateEventCustom.cpp:

(WebCore::JSPopStateEvent::visitAdditionalChildren):

  • bindings/js/JSPromiseRejectionEventCustom.cpp:

(WebCore::JSPromiseRejectionEvent::visitAdditionalChildren):

  • bindings/js/JSResizeObserverCustom.cpp:

(WebCore::JSResizeObserver::visitAdditionalChildren):

  • bindings/js/JSResizeObserverEntryCustom.cpp:

(WebCore::JSResizeObserverEntry::visitAdditionalChildren):

  • bindings/js/JSSVGViewSpecCustom.cpp:

(WebCore::JSSVGViewSpec::visitAdditionalChildren):

  • bindings/js/JSServiceWorkerGlobalScopeCustom.cpp:

(WebCore::JSServiceWorkerGlobalScope::visitAdditionalChildren):

  • bindings/js/JSStaticRangeCustom.cpp:

(WebCore::JSStaticRange::visitAdditionalChildren):

  • bindings/js/JSStyleSheetCustom.cpp:

(WebCore::JSStyleSheet::visitAdditionalChildren):

  • bindings/js/JSTextTrackCueCustom.cpp:

(WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots):
(WebCore::JSTextTrackCue::visitAdditionalChildren):

  • bindings/js/JSTextTrackCustom.cpp:

(WebCore::JSTextTrack::visitAdditionalChildren):

  • bindings/js/JSTextTrackListCustom.cpp:

(WebCore::JSTextTrackList::visitAdditionalChildren):

  • bindings/js/JSTreeWalkerCustom.cpp:

(WebCore::JSTreeWalker::visitAdditionalChildren):

  • bindings/js/JSUndoItemCustom.cpp:

(WebCore::JSUndoItem::visitAdditionalChildren):
(WebCore::JSUndoItemOwner::isReachableFromOpaqueRoots):

  • bindings/js/JSValueInWrappedObject.h:

(WebCore::JSValueInWrappedObject::visit const):

  • bindings/js/JSVideoTrackCustom.cpp:

(WebCore::JSVideoTrack::visitAdditionalChildren):

  • bindings/js/JSVideoTrackListCustom.cpp:

(WebCore::JSVideoTrackList::visitAdditionalChildren):

  • bindings/js/JSWebGL2RenderingContextCustom.cpp:

(WebCore::JSWebGL2RenderingContext::visitAdditionalChildren):

  • bindings/js/JSWebGLRenderingContextCustom.cpp:

(WebCore::JSWebGLRenderingContext::visitAdditionalChildren):

  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::visitChildrenImpl):
(WebCore::JSWorkerGlobalScopeBase::visitChildren): Deleted.

  • bindings/js/JSWorkerGlobalScopeBase.h:
  • bindings/js/JSWorkerGlobalScopeCustom.cpp:

(WebCore::JSWorkerGlobalScope::visitAdditionalChildren):

  • bindings/js/JSWorkerNavigatorCustom.cpp:

(WebCore::JSWorkerNavigator::visitAdditionalChildren):

  • bindings/js/JSWorkletGlobalScopeBase.cpp:

(WebCore::JSWorkletGlobalScopeBase::visitChildrenImpl):
(WebCore::JSWorkletGlobalScopeBase::visitChildren): Deleted.

  • bindings/js/JSWorkletGlobalScopeBase.h:
  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::visitAdditionalChildren):

  • bindings/js/JSXPathResultCustom.cpp:

(WebCore::JSXPathResult::visitAdditionalChildren):

  • bindings/js/WebCoreTypedArrayController.cpp:

(WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots):

  • bindings/js/WebCoreTypedArrayController.h:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):
(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
(GenerateIterableDefinition):

  • bindings/scripts/test/JS/JSDOMWindow.cpp:

(WebCore::JSDOMWindow::subspaceForImpl):

  • bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp:

(WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:

(WebCore::JSExposedToWorkerAndWindow::subspaceForImpl):
(WebCore::JSExposedToWorkerAndWindowOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.h:
  • bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp:

(WebCore::JSPaintWorkletGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp:

(WebCore::JSServiceWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::JSTestCEReactions::subspaceForImpl):
(WebCore::JSTestCEReactionsOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestCEReactions.h:
  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::JSTestCEReactionsStringifier::subspaceForImpl):
(WebCore::JSTestCEReactionsStringifierOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestCEReactionsStringifier.h:
  • bindings/scripts/test/JS/JSTestCallTracer.cpp:

(WebCore::JSTestCallTracer::subspaceForImpl):
(WebCore::JSTestCallTracerOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestCallTracer.h:
  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl):
(WebCore::JSTestClassWithJSBuiltinConstructorOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h:
  • bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:

(WebCore::JSTestConditionalIncludes::subspaceForImpl):
(WebCore::JSTestConditionalIncludesOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestConditionalIncludes.h:
  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:

(WebCore::JSTestConditionallyReadWrite::subspaceForImpl):
(WebCore::JSTestConditionallyReadWriteOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.h:
  • bindings/scripts/test/JS/JSTestDOMJIT.cpp:

(WebCore::JSTestDOMJIT::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:

(WebCore::JSTestDefaultToJSON::subspaceForImpl):
(WebCore::JSTestDefaultToJSONOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestDefaultToJSON.h:
  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:

(WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl):
(WebCore::JSTestDefaultToJSONFilteredByExposedOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.h:
  • bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp:

(WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:

(WebCore::JSTestDefaultToJSONInherit::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:

(WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestDomainSecurity.cpp:

(WebCore::JSTestDomainSecurity::subspaceForImpl):
(WebCore::JSTestDomainSecurityOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestDomainSecurity.h:
  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySetting::subspaceForImpl):
(WebCore::JSTestEnabledBySettingOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.h:
  • bindings/scripts/test/JS/JSTestEnabledForContext.cpp:

(WebCore::JSTestEnabledForContext::subspaceForImpl):
(WebCore::JSTestEnabledForContextOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestEnabledForContext.h:
  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTarget::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestException::subspaceForImpl):
(WebCore::JSTestExceptionOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestException.h:
  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachable::subspaceForImpl):
(WebCore::JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObject::subspaceForImpl):
(WebCore::JSTestGlobalObjectOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestGlobalObject.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl):
(WebCore::JSTestIndexedSetterNoIdentifierOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:

(WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl):
(WebCore::JSTestIndexedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h:
  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl):
(WebCore::JSTestIndexedSetterWithIdentifierOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::jsTestInterfacePrototypeFunction_entriesCaller):
(WebCore::JSTestInterface::subspaceForImpl):
(WebCore::JSTestInterfaceOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestInterface.h:
  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl):
(WebCore::JSTestInterfaceLeadingUnderscoreOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h:
  • bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::jsTestIterablePrototypeFunction_entriesCaller):
(WebCore::JSTestIterable::subspaceForImpl):
(WebCore::JSTestIterableOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestIterable.h:
  • bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::JSTestJSBuiltinConstructor::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:

(WebCore::JSTestLegacyFactoryFunction::subspaceForImpl):
(WebCore::JSTestLegacyFactoryFunctionOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestLegacyFactoryFunction.h:
  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:

(WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl):
(WebCore::JSTestLegacyNoInterfaceObjectOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.h:
  • bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl):
(WebCore::JSTestLegacyOverrideBuiltInsOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.h:
  • bindings/scripts/test/JS/JSTestMapLike.cpp:

(WebCore::JSTestMapLike::subspaceForImpl):
(WebCore::JSTestMapLikeOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestMapLike.h:
  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:

(WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl):
(WebCore::JSTestMapLikeWithOverriddenOperationsOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.h:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifierOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:

(WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl):
(WebCore::JSTestNamedAndIndexedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifierOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:

(WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl):
(WebCore::JSTestNamedDeleterNoIdentifierOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:

(WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl):
(WebCore::JSTestNamedDeleterThrowingExceptionOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:

(WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl):
(WebCore::JSTestNamedDeleterWithIdentifierOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:

(WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl):
(WebCore::JSTestNamedDeleterWithIndexedGetterOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h:
  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:

(WebCore::JSTestNamedGetterCallWith::subspaceForImpl):
(WebCore::JSTestNamedGetterCallWithOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedGetterCallWith.h:
  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:

(WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl):
(WebCore::JSTestNamedGetterNoIdentifierOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:

(WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl):
(WebCore::JSTestNamedGetterWithIdentifierOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl):
(WebCore::JSTestNamedSetterNoIdentifierOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:

(WebCore::JSTestNamedSetterThrowingException::subspaceForImpl):
(WebCore::JSTestNamedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl):
(WebCore::JSTestNamedSetterWithIdentifierOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl):
(WebCore::JSTestNamedSetterWithIndexedGetterOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetterOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl):
(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltInsOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl):
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h:
  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl):
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltInsOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h:
  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::jsTestNodePrototypeFunction_entriesCaller):
(WebCore::JSTestNode::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObj::subspaceForImpl):
(WebCore::JSTestObj::visitChildrenImpl):
(WebCore::JSTestObjOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestObj::visitChildren): Deleted.

  • bindings/scripts/test/JS/JSTestObj.h:
  • bindings/scripts/test/JS/JSTestOperationConditional.cpp:

(WebCore::JSTestOperationConditional::subspaceForImpl):
(WebCore::JSTestOperationConditionalOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestOperationConditional.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructors::subspaceForImpl):
(WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:

(WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl):
(WebCore::JSTestOverloadedConstructorsWithSequenceOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h:
  • bindings/scripts/test/JS/JSTestPluginInterface.cpp:

(WebCore::JSTestPluginInterface::subspaceForImpl):
(WebCore::JSTestPluginInterfaceOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestPluginInterface.h:
  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:

(WebCore::JSTestPromiseRejectionEvent::subspaceForImpl):

  • bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp:

(WebCore::JSTestReadOnlyMapLike::subspaceForImpl):
(WebCore::JSTestReadOnlyMapLikeOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestReadOnlyMapLike.h:
  • bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp:

(WebCore::JSTestReadOnlySetLike::subspaceForImpl):
(WebCore::JSTestReadOnlySetLikeOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestReadOnlySetLike.h:
  • bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp:

(WebCore::JSTestReportExtraMemoryCost::subspaceForImpl):
(WebCore::JSTestReportExtraMemoryCost::visitChildrenImpl):
(WebCore::JSTestReportExtraMemoryCostOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestReportExtraMemoryCost::visitChildren): Deleted.

  • bindings/scripts/test/JS/JSTestReportExtraMemoryCost.h:
  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl):
(WebCore::JSTestSerializedScriptValueInterface::visitChildrenImpl):
(WebCore::JSTestSerializedScriptValueInterfaceOwner::isReachableFromOpaqueRoots):
(WebCore::JSTestSerializedScriptValueInterface::visitChildren): Deleted.

  • bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
  • bindings/scripts/test/JS/JSTestSetLike.cpp:

(WebCore::JSTestSetLike::subspaceForImpl):
(WebCore::JSTestSetLikeOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestSetLike.h:
  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:

(WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl):
(WebCore::JSTestSetLikeWithOverriddenOperationsOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.h:
  • bindings/scripts/test/JS/JSTestStringifier.cpp:

(WebCore::JSTestStringifier::subspaceForImpl):
(WebCore::JSTestStringifierOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestStringifier.h:
  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:

(WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl):
(WebCore::JSTestStringifierAnonymousOperationOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h:
  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:

(WebCore::JSTestStringifierNamedOperation::subspaceForImpl):
(WebCore::JSTestStringifierNamedOperationOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestStringifierNamedOperation.h:
  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:

(WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl):
(WebCore::JSTestStringifierOperationImplementedAsOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h:
  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:

(WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl):
(WebCore::JSTestStringifierOperationNamedToStringOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h:
  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:

(WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl):
(WebCore::JSTestStringifierReadOnlyAttributeOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h:
  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:

(WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl):
(WebCore::JSTestStringifierReadWriteAttributeOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h:
  • bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefs::subspaceForImpl):
(WebCore::JSTestTypedefsOwner::isReachableFromOpaqueRoots):

  • bindings/scripts/test/JS/JSTestTypedefs.h:
  • bindings/scripts/test/JS/JSWorkerGlobalScope.cpp:

(WebCore::JSWorkerGlobalScope::subspaceForImpl):

  • bindings/scripts/test/JS/JSWorkletGlobalScope.cpp:

(WebCore::JSWorkletGlobalScope::subspaceForImpl):

  • dom/ActiveDOMCallback.h:

(WebCore::ActiveDOMCallback::visitJSFunction):

  • dom/EventListener.h:

(WebCore::EventListener::visitJSFunction):

  • dom/EventTarget.cpp:

(WebCore::EventTarget::visitJSEventListeners):

  • dom/EventTarget.h:
  • dom/MutationRecord.cpp:
  • dom/MutationRecord.h:
  • dom/NodeFilterCondition.h:

(WebCore::NodeFilterCondition::visitAggregate): Deleted.

  • dom/StaticRange.cpp:

(WebCore::StaticRange::visitNodesConcurrently const):

  • dom/StaticRange.h:
  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::addMembersToOpaqueRoots):

  • html/canvas/WebGL2RenderingContext.h:
  • html/canvas/WebGLFramebuffer.cpp:

(WebCore::WebGLFramebuffer::addMembersToOpaqueRoots):

  • html/canvas/WebGLFramebuffer.h:
  • html/canvas/WebGLProgram.cpp:

(WebCore::WebGLProgram::addMembersToOpaqueRoots):

  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::addMembersToOpaqueRoots):

  • html/canvas/WebGLRenderingContextBase.h:
  • html/canvas/WebGLTransformFeedback.cpp:

(WebCore::WebGLTransformFeedback::addMembersToOpaqueRoots):

  • html/canvas/WebGLTransformFeedback.h:
  • html/canvas/WebGLVertexArrayObjectBase.cpp:

(WebCore::WebGLVertexArrayObjectBase::addMembersToOpaqueRoots):

  • html/canvas/WebGLVertexArrayObjectBase.h:
3:49 AM Changeset in webkit [273137] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Crash in readPixels with ANGLE Metal backend
https://bugs.webkit.org/show_bug.cgi?id=220877

RenderbufferMtl::initializeContents is sometimes bound with a
default level index, which doesn't specify type, layer count, or
other information. When this path is called with an invalid index,
assume a 2d index.

Patch by Kyle Piddington <Kyle Piddington> on 2021-02-19
Reviewed by Dean Jackson.

  • src/libANGLE/renderer/metal/RenderBufferMtl.mm:

(rx::RenderbufferMtl::initializeContents):

2:30 AM Changeset in webkit [273136] by Manuel Rego Casasnovas
  • 2 edits in trunk/LayoutTests/imported/w3c

Fix Selenium key code for ENTER in testdriver-vendor.js
https://bugs.webkit.org/show_bug.cgi?id=222037

Reviewed by Carlos Garcia Campos.

In r272726 we added a bunch of Selenium key codes,
but the one for 0XE007 (ENTER) was wrong
as eventSender.keyDown() expects "\n" and not "enter".
This patch fixes the wrong code.

  • web-platform-tests/resources/testdriver-vendor.js:
1:42 AM Changeset in webkit [273135] by ysuzuki@apple.com
  • 11 edits
    3 adds in trunk

[JSC] Simplify excludedSet handling in object rest expression
https://bugs.webkit.org/show_bug.cgi?id=221668

Reviewed by Alexey Shvayka.

JSTests:

  • microbenchmarks/object-rest-computed-destructuring.js: Added.
  • stress/object-rest-computed-inlined-numbers.js: Added.

(inner):
(outer):

  • stress/object-rest-computed-inlined.js: Added.

(inner):
(outer):

Source/JavaScriptCore:

This patch simplifies Object rest/spread by avoiding use of JSSet.
Instead, we store IdentifierSet into UnlinkedCodeBlock's vector and
access this directly through JS constant number.
And for additional properties, we collect it during destructuring,
and pass it to @copyDataProperties as an argument so that we do not
need to call Set#add in JS side.

We also check (isNumber()
isString) conditions for properties to

avoid calling ToPropertyKey for constant case. This is OK since we
will call ToPropertyKey inside @copyDataProperties, and this is
side-effect free if the input is number or string.

This patch shows 2x improvement in microbenchmarking.

ToT Patched

object-rest-computed-destructuring 62.9960+-6.5072 30.2157+-1.1420 definitely 2.0849x faster

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::setConstantIdentifierSetRegisters): Deleted.

  • bytecode/CodeBlock.h:
  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::constantIdentifierSets):

  • bytecode/UnlinkedCodeBlockGenerator.h:

(JSC::UnlinkedCodeBlockGenerator::constantIdentifierSets):
(JSC::UnlinkedCodeBlockGenerator::addSetConstant):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitLoad):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ObjectPatternNode::bindValue const):
(JSC::ObjectSpreadExpressionNode::emitBytecode):

  • runtime/CachedTypes.cpp:

(JSC::CachedConstantIdentifierSetEntry::encode): Deleted.
(JSC::CachedConstantIdentifierSetEntry::decode const): Deleted.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::getCallerCodeBlock):
(JSC::JSC_DEFINE_HOST_FUNCTION):

1:30 AM Changeset in webkit [273134] by Kate Cheney
  • 3 edits in trunk/Source/WebKit

Create SQLite skeleton implementation for PCM fraud prevention
https://bugs.webkit.org/show_bug.cgi?id=222149
<rdar://problem/74502655>

Reviewed by Jiewen Tan.

This patch updates the PCM sqlite tables to hold 3 extra values:
token content, a signature, and a keyID. Since we are updating the
schema of an existing table, we need to migrate existing PCM data to
the new tables. These will have "null" values in the new fields.

Extensive local testing.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:

(WebKit::unattributedPrivateClickMeasurementSchemaV1):
(WebKit::unattributedPrivateClickMeasurementSchemaV1Alternate):
(WebKit::outdatedUnattributedColumns):
(WebKit::outdatedAttributedColumns):
Strings that will help us determine if the schema needs to be updated
and hold the existing columns so we can populate the new tables with
this data.

(WebKit::ResourceLoadStatisticsDatabaseStore::needsUpdatedPrivateClickMeasurementSchema):
Compare the existing schema with the new one. We only need to do this
for one PCM table because they are being changed in the same patch.

(WebKit::ResourceLoadStatisticsDatabaseStore::missingReferenceToObservedDomains):
Name update now that there are various reasons to migrate data.

(WebKit::columnsToCopy):
I chose to migrate all tables even if only PCM tables need updating
because it was simpler with existing code, and it gives us more
flexibility if we need to change more schemas in the future. Since
the migration happens only once each time we update the schema, this
is probably low cost. The columnsToCopy() function gives us the option
to specify data we need from existing tables when we migrate.

(WebKit::ResourceLoadStatisticsDatabaseStore::migrateDataToNewTablesIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::buildPrivateClickMeasurementFromDatabase):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertPrivateClickMeasurement):
For now, these are empty values that we will implement when PCM fraud
prevention pieces are in place.

(WebKit::ResourceLoadStatisticsDatabaseStore::isMigrationNecessary): Deleted.

  • NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
1:10 AM Changeset in webkit [273133] by jiewen_tan@apple.com
  • 28 edits in trunk

PCM: Request server public key to generate secret token
https://bugs.webkit.org/show_bug.cgi?id=222141
<rdar://problem/74462955>

Reviewed by John Wilander.

Source/WebCore:

This patch adds a way for PCM fraud prevention to request the server public key
which will be then used to generate the unlinkable token.

Covered by existing tests.

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::tokenPublicKeyURL const):

  • loader/PrivateClickMeasurement.h:

Adds new well-known ULR for this purpose.

Source/WebKit:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setPrivateClickMeasurementTokenPublicKeyURLForTesting):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::setPrivateClickMeasurementTokenPublicKeyURLForTesting):

  • NetworkProcess/NetworkSession.h:

Paperwork to add a way to set test URL.

  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::generateNetworkResourceLoadParameters):
(WebKit::generateNetworkResourceLoadParametersForPost):
(WebKit::generateNetworkResourceLoadParametersForGet):
(WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
(WebKit::PrivateClickMeasurementManager::setTokenPublicKeyURLForTesting):

  • NetworkProcess/PrivateClickMeasurementManager.h:

Teaches the PCMM to send the token public key request.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPrivateClickMeasurementTokenPublicKeyURLForTesting):

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::simulateResourceLoadStatisticsSessionRestart):
(WebKit::WebPageProxy::setPrivateClickMeasurementTokenPublicKeyURLForTesting):

  • UIProcess/WebPageProxy.h:

Paperwork to add a way to set test URL.

Tools:

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

(WTR::TestRunner::setPrivateClickMeasurementTokenPublicKeyURLForTesting):

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

(WTR::TestController::setPrivateClickMeasurementTokenPublicKeyURLForTesting):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
Paperwork to add a way to set test URL.

LayoutTests:

  • http/tests/privateClickMeasurement/resources/getTokenSigningData.php:
  • http/tests/privateClickMeasurement/resources/signToken.php:
  • http/tests/privateClickMeasurement/resources/util.js:

(tearDownAndFinish):

  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt:
  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html:

This patch modifies the above tests to be able to record two consecutive server requests.

1:07 AM Changeset in webkit [273132] by svillar@igalia.com
  • 34 edits
    10 adds in trunk

Implement WebXR getViewerPose and getPose
https://bugs.webkit.org/show_bug.cgi?id=221225
<rdar://problem/74112910>

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Mark pose and reference space WebXR tests as passing.

  • web-platform-tests/webxr/xrFrame_getPose.https-expected.txt: Added.
  • web-platform-tests/webxr/xrFrame_getViewerPose_getPose.https-expected.txt: Added.
  • web-platform-tests/webxr/xrReferenceSpace_originOffset_viewer.https-expected.txt: Added.
  • web-platform-tests/webxr/xrReferenceSpace_relationships.https-expected.txt: Added.
  • web-platform-tests/webxr/xrSession_requestAnimationFrame_data_valid.https-expected.txt: Added.
  • web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https-expected.txt: Added.
  • web-platform-tests/webxr/xrSession_viewer_referenceSpace.https-expected.txt: Added.
  • web-platform-tests/webxr/xrView_eyes.https-expected.txt: Added.
  • web-platform-tests/webxr/xrView_match.https-expected.txt: Added.
  • web-platform-tests/webxr/xrView_oneframeupdate.https-expected.txt: Added.

Source/WebCore:

  • Improve PlatformXR::FrameData struct.
  • Implement WebXRFrame getViewerPose and getPose.
  • Implement WebXRReferenceSpace offset, origin and effective tranforms.
  • Implement WebXRBoundedReferenceSpace nativeOrigin.
  • Apply frame updates in WebXRSession.
  • Implement views for OpenXR and DummyInlineDevice inline sessions.
  • Query and complete all the new FrameData in the OpenXR port.
  • Complete the WebFakeXRDevice implementation for WebXR WPT tests.

Tested by the WebXR WPT tests

  • Modules/webxr/WebXRBoundedReferenceSpace.cpp: Implement nativeOrigina and getOffsetReferenceSpace.

(WebCore::WebXRBoundedReferenceSpace::create):
(WebCore::WebXRBoundedReferenceSpace::WebXRBoundedReferenceSpace):
(WebCore::WebXRBoundedReferenceSpace::nativeOrigin const):
(WebCore::WebXRBoundedReferenceSpace::boundsGeometry const):
(WebCore::WebXRBoundedReferenceSpace::getOffsetReferenceSpace):

  • Modules/webxr/WebXRBoundedReferenceSpace.h:
  • Modules/webxr/WebXRFrame.cpp: Implement WebXR getViewerPose and getPose.

(WebCore::WebXRFrame::create):
(WebCore::WebXRFrame::WebXRFrame):
(WebCore::WebXRFrame::mustPosesBeLimited):
(WebCore::WebXRFrame::populatePose):
(WebCore::WebXRFrame::getViewerPose):
(WebCore::WebXRFrame::getPose):
(WebCore::WebXRFrame::matrixFromPose): add helper function.

  • Modules/webxr/WebXRFrame.h:

(WebCore::WebXRFrame::setFrameData):

  • Modules/webxr/WebXRFrame.idl: add MayThrowException.
  • Modules/webxr/WebXRPose.cpp: Add WebXRRigidTransform constructor parameter. Add specialize type traits.

(WebCore::WebXRPose::create):
(WebCore::WebXRPose::WebXRPose):

  • Modules/webxr/WebXRPose.h:

(WebCore::WebXRPose::isViewerPose const):

  • Modules/webxr/WebXRPose.idl: Remove ImplementationLacksVTable
  • Modules/webxr/WebXRReferenceSpace.cpp: Implement offset, origin and effective tranforms.

(WebCore::WebXRReferenceSpace::create):
(WebCore::WebXRReferenceSpace::WebXRReferenceSpace):
(WebCore::WebXRReferenceSpace::nativeOrigin const):
(WebCore::WebXRReferenceSpace::getOffsetReferenceSpace):
(WebCore::WebXRReferenceSpace::floorOriginTransform const):
(WebCore:: const):

  • Modules/webxr/WebXRReferenceSpace.h:

(WebCore::WebXRReferenceSpace::type const):

  • Modules/webxr/WebXRReferenceSpace.idl: Add SkipVTableValidation.
  • Modules/webxr/WebXRSession.cpp: Apply frame updates for frame. Add active views data.

(WebCore::WebXRSession::WebXRSession):
(WebCore::WebXRSession::requestReferenceSpace): Use WeakPtr instead Ref for WebXRSession.
(WebCore::WebXRSession::onFrame):
(WebCore::WebXRSession::posesCanBeReported const): add

  • Modules/webxr/WebXRSession.h:
  • Modules/webxr/WebXRSpace.cpp: Add nativeOrigin and effectiveOrigin member functions. Add specialize type traits.

(WebCore::WebXRSpace::WebXRSpace):
(WebCore::WebXRSpace::effectiveOrigin const):

  • Modules/webxr/WebXRSpace.h:

(WebCore::WebXRSpace::session const):
(WebCore::WebXRSpace::isReferenceSpace const):
(WebCore::WebXRSpace::isBoundedReferenceSpace const):

  • Modules/webxr/WebXRSystem.cpp: Implement views for DummyInlineDevice.

(WebCore::WebXRSystem::DummyInlineDevice::requestFrame):
(WebCore::WebXRSystem::DummyInlineDevice::views const):

  • Modules/webxr/WebXRSystem.h:
  • Modules/webxr/WebXRView.cpp: Pass WebXRRigidTransform in the constructor.

(WebCore::WebXRView::create):
(WebCore::WebXRView::WebXRView):
(WebCore::WebXRView::setProjectionMatrix): Use std::array to match device data.

  • Modules/webxr/WebXRView.h:

(WebCore::WebXRView::projectionMatrix const):
(WebCore::WebXRView::transform const):

  • Modules/webxr/WebXRViewerPose.cpp: Add views setter. Add specialize type traits.

(WebCore::WebXRViewerPose::create):
(WebCore::WebXRViewerPose::WebXRViewerPose):
(WebCore::WebXRViewerPose::setViews):

  • Modules/webxr/WebXRViewerPose.h:
  • Modules/webxr/WebXRViewerPose.idl: Remove ImplementationLacksVTable. Add JSGenerateToNativeObject.
  • Modules/webxr/XREye.h: Reuse PlatformXR enum.
  • platform/graphics/transforms/TransformationMatrix.cpp: Add projection matrix utility functions.

(WebCore::TransformationMatrix::fromProjection):

  • platform/graphics/transforms/TransformationMatrix.h:
  • platform/xr/PlatformXR.h: Improve FrameData.
  • platform/xr/openxr/PlatformXROpenXR.cpp: Query and complete all the new FrameData.

(PlatformXR::OpenXRDevice::createReferenceSpace): add helper function.
(PlatformXR::OpenXRDevice::recommendedResolution): Query resolution data from OpenXR.
(PlatformXR::OpenXRDevice::initializeTrackingAndRendering): Initialize local and view XrSpaces.
(PlatformXR::OpenXRDevice::initializeReferenceSpace): Lazily initialize stage XrSpace.
(PlatformXR::XrPosefToPose): add helper function.
(PlatformXR::xrViewToPose): add helper function.
(PlatformXR::OpenXRDevice::requestFrame): Complete all the new frame Data
(PlatformXR::OpenXRDevice::views const): Implement view data for OpenXR

  • platform/xr/openxr/PlatformXROpenXR.h:
  • testing/WebFakeXRDevice.cpp: Complete the required implementation for WebXR WPT tests.

(WebCore::FakeXRView::setProjection):
(WebCore::FakeXRView::setFieldOfView):
(WebCore::SimulatedXRDevice::frameTimerFired):
(WebCore::SimulatedXRDevice::requestFrame):
(WebCore::SimulatedXRDevice::views const):
(WebCore::SimulatedXRDevice::scheduleOnNextFrame):
(WebCore::WebFakeXRDevice::setViews):
(WebCore::WebFakeXRDevice::setViewerOrigin):
(WebCore::WebFakeXRDevice::clearViewerOrigin):
(WebCore::WebFakeXRDevice::setBoundsGeometry):
(WebCore::WebFakeXRDevice::setFloorOrigin):
(WebCore::WebFakeXRDevice::clearFloorOrigin):
(WebCore::WebFakeXRDevice::parseRigidTransform):
(WebCore::WebFakeXRDevice::parseView):

  • testing/WebFakeXRDevice.h:

LayoutTests:

Mark pose related WebXR tests as passing.

  • platform/wpe/TestExpectations:
1:03 AM Changeset in webkit [273131] by commit-queue@webkit.org
  • 9 edits
    1 copy in trunk/Source/WebKit

[WPE] User-Agent quirks not implemented
https://bugs.webkit.org/show_bug.cgi?id=222109

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-19
Reviewed by Carlos Garcia Campos.

Have WPE benefit from GTK's existing user agent code by moving the bits in WebPageGtk.cpp
and WebPageProxyGtk.cpp to WebPageGLib.cpp and a new WebPageProxyGLib.cpp. This also moves
over a few stub functions that are unimplemented in both WPE and GTK. Finally, it moves a
WebsiteDataStore function that had gotten very lost.

No new tests. Unfortunately, our existing user agent quirks tests do not exercise these
higher-level functions, and so were already running and passing for WPE.

  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/glib/WebPageProxyGLib.cpp: Copied from Source/WebKit/UIProcess/wpe/WebPageProxyWPE.cpp.

(WebKit::WebPageProxy::userAgentForURL):
(WebKit::WebPageProxy::standardUserAgent):
(WebKit::WebPageProxy::saveRecentSearches):
(WebKit::WebPageProxy::loadRecentSearches):

  • UIProcess/glib/WebsiteDataStoreGLib.cpp:

(WebKit::WebsiteDataStore::platformRemoveRecentSearches):

  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::WebPageProxy::userAgentForURL): Deleted.
(WebKit::WebPageProxy::standardUserAgent): Deleted.
(WebKit::WebPageProxy::saveRecentSearches): Deleted.
(WebKit::WebPageProxy::loadRecentSearches): Deleted.
(WebKit::WebsiteDataStore::platformRemoveRecentSearches): Deleted.

  • UIProcess/wpe/WebPageProxyWPE.cpp:

(WebKit::WebPageProxy::platformInitialize):
(WebKit::WebPageProxy::userAgentForURL): Deleted.
(WebKit::WebPageProxy::standardUserAgent): Deleted.
(WebKit::WebPageProxy::saveRecentSearches): Deleted.
(WebKit::WebPageProxy::loadRecentSearches): Deleted.
(WebKit::WebsiteDataStore::platformRemoveRecentSearches): Deleted.

  • WebProcess/WebPage/glib/WebPageGLib.cpp:

(WebKit::WebPage::platformUserAgent const):

  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

(WebKit::WebPage::platformUserAgent const): Deleted.

  • WebProcess/WebPage/wpe/WebPageWPE.cpp:

(WebKit::WebPage::platformUserAgent const): Deleted.

12:01 AM Changeset in webkit [273130] by youenn@apple.com
  • 17 edits
    2 adds in trunk

Update WKWebView getUserMedia delegate to latest proposal
https://bugs.webkit.org/show_bug.cgi?id=222103

Reviewed by Eric Carlson.

Source/WebKit:

Covered by updated API tests.

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):

  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::doDefaultAction):

Tools:

Introduce UserMediaCaptureUIDelegate to share more code between tests.

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:

(-[NavigationWhileGetUserMediaPromptDisplayedUIDelegate _webView:requestMediaCapturePermission:video:decisionHandler:]):

  • TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm:

(-[MediaStreamTrackDetachedUIDelegate _webView:mediaCaptureStateDidChange:]):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:

(-[SpeechRecognitionUIDelegate _webView:requestMediaCapturePermission:video:decisionHandler:]):
(-[SpeechRecognitionUIDelegate _webView:requestMediaCaptureAuthorization:decisionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm:

(-[UserMediaUIDelegate _webView:requestMediaCapturePermission:video:decisionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:

(-[SimulateFailedSandboxUIDelegate _webView:requestMediaCapturePermission:video:decisionHandler:]):

  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.h: Added.
  • TestWebKitAPI/cocoa/UserMediaCaptureUIDelegate.mm: Added.

(-[UserMediaCaptureUIDelegate init]):
(-[UserMediaCaptureUIDelegate wasPrompted]):
(-[UserMediaCaptureUIDelegate resetWasPrompted]):
(-[UserMediaCaptureUIDelegate waitUntilPrompted]):
(-[UserMediaCaptureUIDelegate setAudioDecision:]):
(-[UserMediaCaptureUIDelegate setVideoDecision:]):
(-[UserMediaCaptureUIDelegate _webView:requestMediaCapturePermission:video:decisionHandler:]):
(-[UserMediaCaptureUIDelegate _webView:checkUserMediaPermissionForURL:mainFrameURL:frameIdentifier:decisionHandler:]):

Feb 18, 2021:

10:36 PM Changeset in webkit [273129] by Simon Fraser
  • 3 edits
    1 add in trunk

Scrolling on https://www.apple.com/ipad-air/ can jitter on certain sections
https://bugs.webkit.org/show_bug.cgi?id=222136
rdar://71881767

Reviewed by Zalan Bujtas.

Source/WebCore:

On macOS computers with 16MB of memory, https://www.apple.com/ipad-air/ can trigger the
"conservative" compositing mode where RenderLayerCompositor tries to reduce the number of
composited layers.

On this particular page, a "will-change: transform" element with an overflow:hidden ancestor
triggers some bad compositing bounds geometry computation (webkit.org/b/222092,
webkit.org/b/222124) which has the end result of changing the composited bounds of the
"position:sticky" layer on every scroll. This results in layer contents temporarily
appearing stretched or in the wrong place (webkit.org/b/222132).

For now, do a conservative fix to avoid this problem, which is to continue to allow
"will-change: transform" to trigger compositing on macOS in conservative mode. This
actually reduces memory use on this page, because webkit.org/b/222092 was triggering
excessively large backing store.

Tested by compositing/layer-creation/compositing-policy.html

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForWillChange const):

LayoutTests:

  • platform/mac/compositing/layer-creation/compositing-policy-expected.txt: Added.
10:12 PM Changeset in webkit [273128] by Chris Dumez
  • 20 edits in trunk/Source

Reduce explicit usage of [objC autorelease] in WebKit
https://bugs.webkit.org/show_bug.cgi?id=221932
<rdar://problem/74410900>

Reviewed by Darin Adler.

Follow-up to r272936 in order to address post-landing review comments.

Source/JavaScriptCore:

  • API/JSContext.mm:

(-[JSContext init]):

  • API/JSWrapperMap.mm:

(-[JSWrapperMap classInfoForClass:]):

Source/WebCore:

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _stringFromStartMarker:toEndMarker:attributed:]):

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::attributesForAttributedStringConversion):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):

  • platform/ios/WebAVPlayerController.mm:

(-[WebAVPlayerController init]):

  • platform/ios/wak/WAKView.mm:

(-[WAKView dealloc]):

  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSessionDataTask initWithSession:identifier:request:]):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::createNSURLConnection):

Source/WebKit:

  • UIProcess/API/Cocoa/NSAttributedString.mm:

(+[NSAttributedString _loadFromHTMLWithOptions:contentLoader:completionHandler:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView findString:withConfiguration:completionHandler:]):
(-[WKWebView _frames:]):
(-[WKWebView _getContentsAsAttributedStringWithCompletionHandler:]):

  • UIProcess/API/Cocoa/_WKAutomationSession.mm:

(-[_WKAutomationSession init]):

  • UIProcess/API/Cocoa/_WKInspector.mm:

(-[_WKInspector registerExtensionWithID:displayName:completionHandler:]):

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController registerExtensionWithID:displayName:completionHandler:]):

  • UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:

(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):
(-[_WKUserContentExtensionStore lookupContentExtensionForIdentifier:completionHandler:]):

  • UIProcess/Automation/ios/WebAutomationSessionIOS.mm:

(WebKit::WebAutomationSession::platformSimulateKeyboardInteraction):

  • UIProcess/Cocoa/WKContactPicker.mm:

(-[WKContactPicker _contactsFromJSContacts:]):

9:51 PM Changeset in webkit [273127] by weinig@apple.com
  • 8 edits
    2 adds in trunk

Add experimental support for CSS Color 5 Relative Color Syntax
https://bugs.webkit.org/show_bug.cgi?id=221880

Reviewed by Darin Adler.

Source/WebCore:

Adds initial support for CSS Color 5 Relative Color Syntax - https://drafts.csswg.org/css-color-5/#relative-colors

This feature is off by default and can be enabled via the CSSRelativeColorSyntaxEnabled
experimental preference flag.

As this is the initial commit for this functionality, it is not yet complete.
This adds basic parsing and resolution for relative rgb(), hsl(), hwb(), lab()
and lch(), but does not yet implement support for calc() functions that can operate
on the channel keywords nor does it support using system keyword colors as the
origin of the relative colors.

Some additional caveats about this initial implementation that need further
clarification from the spec editors:

  1. Currently, we only allow using the channel corresponding to to the position of that channel

in the replacement syntax. This means you can't do:

rgb(from red g r b)

to permute the channels.

  1. For rgb(), which allows r, g, and b to be all numbers or all percentages,

we currently don't assume either number or percentage, and wait until some
constant value is provided to set the type. That means that:

rgb(from red r g 10)

will treat r, ang g as numbers, but:

rgb(from red r g 10%)

will treat r and g as percentages. This is not currently observable other than
that we reject something that mixes the two, such as

rgb(from red r 10 10%)

but will be fully observable once processing the channels via calc() is supported.

Test: fast/css/parsing-relative-color-syntax.html

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

(WebCore::operator==):

  • css/parser/CSSParserContext.h:

(WebCore::CSSParserContextHash::hash):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeOriginColor):
(WebCore::CSSPropertyParserHelpers::consumeOptionalAlphaOrIdent):
(WebCore::CSSPropertyParserHelpers::consumeHueOrIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrIdent):
(WebCore::CSSPropertyParserHelpers::consumePercentOrIdent):
(WebCore::CSSPropertyParserHelpers::extractChannelValue):
(WebCore::CSSPropertyParserHelpers::resolveRelativeColorChannel):
(WebCore::CSSPropertyParserHelpers::consumeRelativeRGBComponent):
(WebCore::CSSPropertyParserHelpers::parseRelativeRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseHSLParameters):
(WebCore::CSSPropertyParserHelpers::normalizeWhitenessBlackness):
(WebCore::CSSPropertyParserHelpers::parseRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunction):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml:

Add new experimental preference for CSS Color 5 Relative Color Syntax
which is off by default.

LayoutTests:

  • fast/css/parsing-relative-color-syntax-expected.txt: Added.
  • fast/css/parsing-relative-color-syntax.html: Added.

Add basic parsing and computed style computation tests for relative color syntax.

9:44 PM Changeset in webkit [273126] by Peng Liu
  • 4 edits in trunk/Source/WebKit

[ MacOS Wk2 Debug ] http/tests/misc/copy-resolves-urls.html is a flakey crash in RemoteMediaPlayerProxy
https://bugs.webkit.org/show_bug.cgi?id=222080

Reviewed by Eric Carlson.

No new tests, this will fix some crashing macOS tests.

  • GPUProcess/media/RemoteMediaResource.cpp:

(WebKit::RemoteMediaResource::RemoteMediaResource):
(WebKit::RemoteMediaResource::~RemoteMediaResource):

  • GPUProcess/media/RemoteMediaResource.h:
  • GPUProcess/media/RemoteMediaResourceManager.h:
8:39 PM Changeset in webkit [273125] by ysuzuki@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Enable private methods
https://bugs.webkit.org/show_bug.cgi?id=222137

Reviewed by Tadeu Zagallo.

  • runtime/OptionsList.h:
8:25 PM Changeset in webkit [273124] by Lauro Moura
  • 4 edits in trunk

[GLIB] Gardening debug OffscreenCanvas crashes

Unreviewed test gardening.

Tools:

  • TestWebKitAPI/glib/TestExpectations.json: Update bug number after

last gardening.

LayoutTests:

  • platform/glib/TestExpectations:
7:35 PM Changeset in webkit [273123] by mmaxfield@apple.com
  • 2 edits in trunk/Tools

MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>

Unreviewed.

Upgrade motionmark1.1.plan to r273122.

  • Scripts/webkitpy/benchmark_runner/data/plans/motionmark1.1.plan:
7:29 PM Changeset in webkit [273122] by mmaxfield@apple.com
  • 2 edits in trunk/PerformanceTests

MotionMark scores are super sensitive to a single long frame
https://bugs.webkit.org/show_bug.cgi?id=220847
<rdar://problem/74152743>

Reviewed by Maciej Stachowiak and Jon Lee.

Currently, "ramp" tests have three phases. The middle phase is where they try to determine a maximum reasonable
complexity, and the third one is where they try various complexities between 0 and the maximum. The calculation
of this maximum reasonable complexity is currently very sensitive to outlier frame times. If there is a single
outlier frame time, the failure mode is to assume that the maximum complexity is ~10. So, the solution is to
ignore outlier frame times during this first phase, and to ensure that there are at least 9 frames measured that
have non-outlier times.

  • MotionMark/tests/resources/main.js:

(filterOutOutliers):
(_measureAndResetInterval):
(update):
(registerFrameTime):
(intervalHasConcluded):
(start):
(didFinishInterval):

7:25 PM Changeset in webkit [273121] by mmaxfield@apple.com
  • 9 edits
    7 adds in trunk

[GPU Process] Temporarily disable drawing OT-SVG glyphs in the GPU process until it can be implemented properly
https://bugs.webkit.org/show_bug.cgi?id=221744
Source/WebCore:

<rdar://problem/74222334>

Reviewed by Simon Fraser.

Link with the system OTSVG framework to determine if glyphs will be rendered using that infrastructure.
Filter out glyphs which would be rendered using that infrastructure in the web process, and RELEASE_ASSERT()
in the GPU process that it won't be using that infrastructure.

This is just a temporary plug of a security hole, until we can properly transcode OT-SVG glyphs into WebKit's
display list infrastructure. This patch explicitly breaks drawing OT-SVG glyphs using the GPU process (which,
right now, only means it will be broken in canvas drawing, since regular DOM drawing doesn't use the GPU
process yet.)

Test: fast/text/otsvg-spacing.html

  • platform/graphics/Font.h:
  • platform/graphics/coretext/FontCascadeCoreText.cpp:

(WebCore::FontCascade::drawGlyphs):

  • platform/graphics/coretext/FontCoreText.cpp:

(WebCore::Font::findOTSVGGlyphs const):

  • platform/graphics/displaylists/DisplayListDrawGlyphsRecorderCoreText.cpp:

(WebCore::DisplayList::filterOutOTSVGGlyphs):
(WebCore::DisplayList::DrawGlyphsRecorder::drawGlyphs):

Source/WebCore/PAL:

Reviewed by Simon Fraser.

This patch soft-links the OTSVG framework because it's a private framework that doesn't exist on watchOS.

  • PAL.xcodeproj/project.pbxproj:
  • pal/cf/CoreTextSoftLink.cpp: Added.
  • pal/cf/CoreTextSoftLink.h: Added.
  • pal/cf/OTSVGTable.cpp: Added.

(PAL::OTSVGTable::OTSVGTable):
(PAL::OTSVGTable::~OTSVGTable):
(PAL::OTSVGTable::operator=):

  • pal/cf/OTSVGTable.h: Added.
  • pal/spi/cf/CoreTextSPI.h:

LayoutTests:

<rdar://problem/74222334>

Reviewed by Simon Fraser.

Create an OTSVG font for testing.
The A glyph is a green rectangle.
The B glyph is an image.
The C glyph is another image, with a different EXIF orientation than the B glyph.

This test makes sure that two glyphs with an OTSVG glyph between them don't get smooshed together in canvas.

I'm explicitly not testing the behavior of OTSVG itself in canvas, because this test explicitly disables
that behavior. I think it's wrong to create tests that make sure some functionality is broken, because the
functionality, philosophically, shouldn't be broken.

  • fast/text/otsvg-spacing-expected.html: Added.
  • fast/text/otsvg-spacing.html: Added.
  • fast/text/resources/Ahem-SVG.ttf: Added.
6:53 PM Changeset in webkit [273120] by pvollan@apple.com
  • 5 edits in trunk/Source/WebKit

[iOS] Remove access to AppleJPEGDriverUserClient
https://bugs.webkit.org/show_bug.cgi?id=221458
<rdar://problem/73518481>

Reviewed by Brent Fulgham.

Remove access to AppleJPEGDriverUserClient in the WebContent process' sandbox on iOS.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
  • UIProcess/WebPageProxy.cpp:

(WebKit::gpuIOKitClasses):

6:16 PM Changeset in webkit [273119] by Megan Gardner
  • 3 edits in trunk/Source/WebKit

Correctly retain properties in _WKAppHighlight
https://bugs.webkit.org/show_bug.cgi?id=222151

Reviewed by Wenson Hsieh.

  • UIProcess/API/Cocoa/_WKAppHighlight.h:
  • UIProcess/API/Cocoa/_WKAppHighlight.mm:

(-[_WKAppHighlight initWithHighlight:text:image:]):
(-[_WKAppHighlight highlight]):
(-[_WKAppHighlight text]):
(-[_WKAppHighlight image]):

6:10 PM Changeset in webkit [273118] by Dewei Zhu
  • 6 edits in trunk/Websites/perf.webkit.org

Fix a bug that a syncing script may try to reuse a delete root.
https://bugs.webkit.org/show_bug.cgi?id=222144

Reviewed by Ryosuke Niwa.

UploadedFile.deletedAt is not returned by API which makes UploadedFile instance always claims
the file it not deleted.
Fix a logical bug in CommitSet.areAllRootsAvailable.

  • public/include/uploaded-file-helpers.php: Include 'deletedAt' filed in the API response.
  • public/v3/models/commit-set.js:

(CommitSet.prototype.areAllRootsAvailable): Fixed an syntax error and a logical bug.

  • server-tests/api-build-requests-tests.js: Added check on 'deletedAt' to be set on deleted files.
  • unit-tests/commit-set-tests.js: Added unit tests for CommitSet.areAllRootsAvailable.
  • unit-tests/resources/mock-v3-models.js: Cleared static map for UploadedFile.
5:57 PM Changeset in webkit [273117] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[LFC][IFC] Do not create the line with negative width when negative letter spacing is present
https://bugs.webkit.org/show_bug.cgi?id=222119

Reviewed by Antti Koivisto.

We already handle the case of individual runs. This patch fixes the case when we merge runs together.
see fast/text/text-letter-spacing.html.

  • layout/inlineformatting/InlineLine.cpp:

(WebCore::Layout::Line::appendTextContent):

5:16 PM Changeset in webkit [273116] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Crash in IPC::decode(Decoder& decoder, RetainPtr<SecKeychainItemRef>& result)
https://bugs.webkit.org/show_bug.cgi?id=222084

Patch by Julian Gonzalez <julian_a_gonzalez@apple.com> on 2021-02-18
Reviewed by Ryosuke Niwa.

Source/WebKit:

Add a check for a CFDataRef of 0 length so that we do not pass those
to SecKeychainItemCopyFromPersistentReference(), which crashes with them.

Test: ipc/argument-coders-crash.html

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::decode):

LayoutTests:

Add the test provided by Nils Sommer that catches this crash.

  • ipc/argument-coders-crash-expected.txt: Added.
  • ipc/argument-coders-crash.html: Added.
4:58 PM Changeset in webkit [273115] by commit-queue@webkit.org
  • 5 edits in trunk

Unconditionally return information in _autofillContext SPI when a field is focused
https://bugs.webkit.org/show_bug.cgi?id=221828
rdar://74211237

Patch by Ricky Mondello <Ricky Mondello> on 2021-02-18
Reviewed by Darin Adler.

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _autofillContext]): Change the contract of _autofillContext to return information for any focused

text field. Add a "version" key. Explicitly indicate whether we're in a login context. This SPI remains stringly
typed for flexibility.

Tools:

Tests updated by Wenson Hsieh.

Rebaseline tests.

  • TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/ios/WKWebViewAutofillTests.mm:

(-[AutoFillTestView acceptsAutoFillLoginCredentials]): Renamed in line with the Password AutoFill-related

contract these tests are about.

4:47 PM Changeset in webkit [273114] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Re-add fsctl support for marking files as potentially 'hot'
https://bugs.webkit.org/show_bug.cgi?id=222120
<rdar://problem/74387453>

Reviewed by Per Arne Vollan.

Rolled out r271959.

  • WebProcess/com.apple.WebProcess.sb.in:
4:37 PM Changeset in webkit [273113] by Devin Rousso
  • 35 edits
    2 copies
    6 adds in trunk

[Payment Request] add an object data to PaymentItem so that data specific to Apple Pay can be provided
https://bugs.webkit.org/show_bug.cgi?id=221970
<rdar://problem/69806999>

Reviewed by Alex Christensen.

Source/WebCore:

  • Modules/paymentrequest/PaymentItem.idl:
  • Modules/paymentrequest/PaymentItem.h:
  • Modules/applepay/ApplePayLineItem.idl:
  • Modules/applepay/ApplePayLineItem.h:

(WebCore::ApplePayLineItem::encode const): Added.
(WebCore::ApplePayLineItem::decode): Added.

  • Modules/applepay/ApplePayLineItemData.idl: Added.
  • Modules/applepay/ApplePayLineItemData.h: Added.

(WebCore::ApplePayLineItemData::encode const):
(WebCore::ApplePayLineItemData::decode):
(WebCore::ApplePayLineItemData::decodeData):

  • Modules/paymentrequest/PaymentRequest.cpp:

(WebCore::checkAndCanonicalizeData): Added.
(WebCore::checkAndCanonicalizePaymentItem): Added.
(WebCore::checkAndCanonicalizeTotal):
(WebCore::checkAndCanonicalizeDetails):
(WebCore::PaymentRequest::create):
(WebCore::PaymentRequest::settleDetailsPromise):
Add IPC support and extend from ApplePayLineItemData which is used to pull values out of
the object data from PaymentItem. This way, both Apple Pay JS and PaymentRequest can be
given the same data (albeit in slightly different places) and have the same capabilities.

  • Modules/applepay/ApplePaySession.cpp:

(WebCore::convertAndValidateTotal):
(WebCore::convertAndValidate):

  • Modules/applepay/ApplePaySessionPaymentRequest.h:

(WebCore::ApplePaySessionPaymentRequest::lineItems const):
(WebCore::ApplePaySessionPaymentRequest::setLineItems):
(WebCore::ApplePaySessionPaymentRequest::total const):
(WebCore::ApplePaySessionPaymentRequest::setTotal):

  • Modules/applepay/PaymentMethodUpdate.h:
  • Modules/applepay/PaymentRequestValidator.h:
  • Modules/applepay/PaymentRequestValidator.mm:

(WebCore::PaymentRequestValidator::validateTotal):

  • Modules/applepay/PaymentSummaryItems.h:
  • Modules/applepay/cocoa/PaymentMethodUpdateCocoa.mm:

(WebCore::PaymentMethodUpdate::PaymentMethodUpdate):

  • Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:

(WebCore::toPKPaymentSummaryItemType):
(WebCore::toPKPaymentSummaryItem):
(WebCore::platformSummaryItems):

  • Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::merge): Added.
(WebCore::convertAndValidate):
(WebCore::ApplePayPaymentHandler::show):
(WebCore::ApplePayPaymentHandler::computeTotalAndLineItems const):

  • testing/MockPaymentCoordinator.cpp:

(WebCore::MockPaymentCoordinator::updateTotalAndLineItems):
Just use ApplePayLineItem instead of duplicating its structure in another object (ApplePaySessionPaymentRequest::LineItem).

  • inspector/WebInjectedScriptHost.cpp:

(WebCore::objectForPaymentDetailsModifier):
Drive-by: Don't always set modifier.total or modifier.additionalDisplayItems since they
might not have been provided.
Drive-by: Don't bother setting modifier.data since it's cleared during validation.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionaryImplementationContent):

  • bindings/scripts/test/SupplementalDependencies.dep:
  • bindings/scripts/test/TestDictionaryWithOnlyConditionalMembers.idl: Added.
  • bindings/scripts/test/JS/JSTestDictionaryWithOnlyConditionalMembers.h: Added.
  • bindings/scripts/test/JS/JSTestDictionaryWithOnlyConditionalMembers.cpp: Added.

(WebCore::convertDictionary<TestDictionaryWithOnlyConditionalMembers>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/TestEmptyDictionary.idl: Added.
  • bindings/scripts/test/JS/JSTestEmptyDictionary.h: Added.
  • bindings/scripts/test/JS/JSTestEmptyDictionary.cpp: Added.

(WebCore::convertDictionary<TestEmptyDictionary>):
(WebCore::convertDictionaryToJS):
Modify the IDL code generator to be able to handle empty IDL dictionaries.

  • platform/cocoa/WebCoreAdditions.mm:
  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • PlatformMac.cmake:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:

Source/WebCore/PAL:

  • pal/cocoa/PassKitSoftLink.h:
  • pal/cocoa/PassKitSoftLink.mm:
  • pal/spi/cocoa/PassKitSPI.h:

Source/WebKit:

  • Shared/WebCoreArgumentCoders.h:
  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:

(IPC::ArgumentCoder<ApplePaySessionPaymentRequest>::decode):
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::TotalAndLineItems>::decode):
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::LineItem>::encode): Deleted.
(IPC::ArgumentCoder<ApplePaySessionPaymentRequest::LineItem>::decode): Deleted.
Just use ApplePayLineItem instead of duplicating its structure in another object (ApplePaySessionPaymentRequest::LineItem).

LayoutTests:

  • http/tests/inspector/paymentrequest/payment-request-internal-properties.https-expected.txt:
4:19 PM Changeset in webkit [273112] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS Wk2 ]inspector/indexeddb/clearObjectStore.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=222140

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-18

  • platform/mac-wk2/TestExpectations:
4:15 PM Changeset in webkit [273111] by achristensen@apple.com
  • 4 edits in trunk

Add null check in _getMainResourceDataWithCompletionHandler
https://bugs.webkit.org/show_bug.cgi?id=222139
<rdar://problem/74449438>

Reviewed by Tim Horton.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _getMainResourceDataWithCompletionHandler:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/GetResourceData.mm:

(TEST):

4:15 PM Changeset in webkit [273110] by rniwa@webkit.org
  • 2 edits in trunk/LayoutTests

ASSERTION FAILED: m_state == State::Committed in WebKit::FrameLoadState::didFailLoad()
https://bugs.webkit.org/show_bug.cgi?id=221783
<rdar://problem/74257153>

Skip the test temporarily on debug bots while we figure out how to fix it.

  • platform/wk2/TestExpectations:
4:07 PM Changeset in webkit [273109] by BJ Burg
  • 12 edits in trunk/Source/WebKit

[Cocoa] Web Inspector: add support for using custom process pool and page group identifier
https://bugs.webkit.org/show_bug.cgi?id=222046
<rdar://74180162>

Reviewed by Timothy Hatcher.

These additions are necessary for clients to inject Web Extensions API into the tabs created
using _WKInspectorExtension.

Currently, Web Inspector pages use a private process pool that is separate from page content.
Since there is no way to set the pool's injected bundle path prior to opening Web Inspector,
we need to allow clients to explicitly configure and set a process pool to be used for
WebInspectorUI and any iframe tabs created using _WKInspectorExtension.

  • UIProcess/API/APIInspectorConfiguration.cpp:

(API::InspectorConfiguration::processPool):
(API::InspectorConfiguration::setProcessPool):

  • UIProcess/API/APIInspectorConfiguration.h:
  • UIProcess/API/Cocoa/_WKInspectorConfiguration.h:
  • UIProcess/API/Cocoa/_WKInspectorConfiguration.mm:

(-[_WKInspectorConfiguration setProcessPool:]):
(-[_WKInspectorConfiguration processPool]):
(-[_WKInspectorConfiguration applyToWebViewConfiguration:]):
(-[_WKInspectorConfiguration copyWithZone:]):
Add some plumbing for the new properties.

  • UIProcess/Inspector/WebInspectorUtilities.h:
  • UIProcess/Inspector/WebInspectorUtilities.cpp:

(WebKit::defaultInspectorPageGroupIdentifierForPage): Renamed.
(WebKit::defaultInspectorProcessPool): Renamed.
(WebKit::allInspectorProcessPools): Move to using a WeakHashSet since there could
be a number of pools specified by the client for different inspector instances.
(WebKit::prepareProcessPoolForInspector): Added.
(WebKit::isInspectorProcessPool): Turn this into a set lookup.

  • UIProcess/Inspector/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController webViewConfiguration]):
Add logic to use a custom process pool or a default process pool (existing behavior).
Add logic to use a custom page group identifier or a default value (existing behavior).

  • UIProcess/Inspector/gtk/RemoteWebInspectorProxyGtk.cpp:

(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):

  • UIProcess/Inspector/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformCreateFrontendPage):

  • UIProcess/Inspector/win/RemoteWebInspectorProxyWin.cpp:

(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):

  • UIProcess/Inspector/win/WebInspectorProxyWin.cpp:

(WebKit::WebInspectorProxy::platformCreateFrontendPage):
Adapt to renames.

4:01 PM Changeset in webkit [273108] by Wenson Hsieh
  • 24 edits in trunk/Source

Plumb an Optional<PageIdentifier> through WebPasteboardProxy
https://bugs.webkit.org/show_bug.cgi?id=222071

Reviewed by Tim Horton.

Source/WebCore:

Update various PasteboardStrategy methods to additionally take a const PasteboardContext*; additionally
update call sites of PasteboardStrategy methods to pass in a context (e.g. Pasteboard::context(), in the
vast majority of cases below).

  • editing/cocoa/EditorCocoa.mm:

(WebCore::Editor::takeFindStringFromSelection):

  • page/mac/DragControllerMac.mm:

(WebCore::DragController::updateSupportedTypeIdentifiersForDragHandlingMethod const):

  • platform/Pasteboard.cpp:

(WebCore::Pasteboard::allPasteboardItemInfo const):
(WebCore::Pasteboard::pasteboardItemInfo const):
(WebCore::Pasteboard::readString):
(WebCore::Pasteboard::readBuffer):
(WebCore::Pasteboard::readURL):

  • platform/PasteboardStrategy.h:
  • platform/cocoa/DragDataCocoa.mm:

(WebCore::DragData::containsURLTypeIdentifier const):
(WebCore::DragData::containsColor const):
(WebCore::DragData::numberOfFiles const):
(WebCore::DragData::asFilenames const):
(WebCore::DragData::containsPlainText const):
(WebCore::DragData::asColor const):
(WebCore::DragData::containsCompatibleContent const):
(WebCore::DragData::containsPromise const):
(WebCore::DragData::containsURL const):
(WebCore::DragData::asURL const):

  • platform/cocoa/PasteboardCocoa.mm:

(WebCore::Pasteboard::fileContentState):
(WebCore::Pasteboard::typesSafeForBindings):
(WebCore::Pasteboard::writeCustomData):
(WebCore::Pasteboard::changeCount const):
(WebCore::Pasteboard::readTypesWithSecurityCheck):
(WebCore::Pasteboard::readBufferForTypeWithSecurityCheck):

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::typesSafeForBindings):
(WebCore::Pasteboard::writeCustomData):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::Pasteboard):
(WebCore::changeCountForPasteboard):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::writePlainText):
(WebCore::Pasteboard::read):
(WebCore::Pasteboard::readPasteboardWebContentDataForType):
(WebCore::readURLAlongsideAttachmentIfNecessary):
(WebCore::Pasteboard::readRespectingUTIFidelities):
(WebCore::Pasteboard::hasData):
(WebCore::Pasteboard::clear):
(WebCore::Pasteboard::readPlatformValuesAsStrings):
(WebCore::Pasteboard::writeString):
(WebCore::Pasteboard::readFilePaths):

  • platform/libwpe/PasteboardLibWPE.cpp:

(WebCore::Pasteboard::readString):
(WebCore::Pasteboard::read):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::clear):
(WebCore::Pasteboard::write):
(WebCore::Pasteboard::writePlainText):
(WebCore::writeURLForTypes):
(WebCore::Pasteboard::writeTrustworthyWebURLsPboardType):
(WebCore::writeFileWrapperAsRTFDAttachment):
(WebCore::Pasteboard::canSmartReplace):
(WebCore::readStringAtPreferredItemIndex):
(WebCore::readBufferAtPreferredItemIndex):
(WebCore::Pasteboard::read):
(WebCore::Pasteboard::hasData):
(WebCore::Pasteboard::readPlatformValuesAsStrings):
(WebCore::Pasteboard::writeString):
(WebCore::Pasteboard::readFilePaths):
(WebCore::Pasteboard::setDragImage):

Source/WebKit:

Add const PasteboardContext* arguments to the PasteboardStrategy methods on WebPlatformStrategies, convert
them to PageIdentifiers, and send them over to the UI process via WebPasteboardProxy methods.

While currently unused inside WebPasteboardProxy, the next patch will attempt to use these page identifiers to
retrieve a data owner type from the corresponding WebPageProxy, and then forward this data owner type to the
PlatformPasteboard.

  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:

(WebKit::WebPasteboardProxy::getPasteboardTypes):
(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):
(WebKit::WebPasteboardProxy::getPasteboardStringForType):
(WebKit::WebPasteboardProxy::getPasteboardStringsForType):
(WebKit::WebPasteboardProxy::getPasteboardBufferForType):
(WebKit::WebPasteboardProxy::getPasteboardChangeCount):
(WebKit::WebPasteboardProxy::getPasteboardColor):
(WebKit::WebPasteboardProxy::getPasteboardURL):
(WebKit::WebPasteboardProxy::addPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardTypes):
(WebKit::WebPasteboardProxy::setPasteboardURL):
(WebKit::WebPasteboardProxy::setPasteboardColor):
(WebKit::WebPasteboardProxy::setPasteboardStringForType):
(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):
(WebKit::WebPasteboardProxy::setPasteboardBufferForType):
(WebKit::WebPasteboardProxy::getNumberOfFiles):
(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
(WebKit::WebPasteboardProxy::writeCustomData):
(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):
(WebKit::WebPasteboardProxy::writeURLToPasteboard):
(WebKit::WebPasteboardProxy::writeWebContentToPasteboard):
(WebKit::WebPasteboardProxy::writeImageToPasteboard):
(WebKit::WebPasteboardProxy::writeStringToPasteboard):
(WebKit::WebPasteboardProxy::updateSupportedTypeIdentifiers):

  • UIProcess/WebPasteboardProxy.cpp:

(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
(WebKit::WebPasteboardProxy::writeCustomData):
(WebKit::WebPasteboardProxy::allPasteboardItemInfo):
(WebKit::WebPasteboardProxy::informationForItemAtIndex):
(WebKit::WebPasteboardProxy::getPasteboardItemsCount):
(WebKit::WebPasteboardProxy::readURLFromPasteboard):
(WebKit::WebPasteboardProxy::readBufferFromPasteboard):
(WebKit::WebPasteboardProxy::readStringFromPasteboard):
(WebKit::WebPasteboardProxy::containsStringSafeForDOMToReadForType):
(WebKit::WebPasteboardProxy::containsURLStringSuitableForLoading):
(WebKit::WebPasteboardProxy::urlStringSuitableForLoading):

  • UIProcess/WebPasteboardProxy.h:
  • UIProcess/WebPasteboardProxy.messages.in:
  • UIProcess/gtk/WebPasteboardProxyGtk.cpp:

(WebKit::WebPasteboardProxy::typesSafeForDOMToReadAndWrite):
(WebKit::WebPasteboardProxy::writeCustomData):

  • UIProcess/libwpe/WebPasteboardProxyLibWPE.cpp:

(WebKit::WebPasteboardProxy::readStringFromPasteboard):

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::writeItemsToPasteboard):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::pageIdentifier):
(WebKit::WebPlatformStrategies::getTypes):
(WebKit::WebPlatformStrategies::bufferForType):
(WebKit::WebPlatformStrategies::getPathnamesForType):
(WebKit::WebPlatformStrategies::stringForType):
(WebKit::WebPlatformStrategies::allStringsForType):
(WebKit::WebPlatformStrategies::changeCount):
(WebKit::WebPlatformStrategies::color):
(WebKit::WebPlatformStrategies::url):
(WebKit::WebPlatformStrategies::addTypes):
(WebKit::WebPlatformStrategies::setTypes):
(WebKit::WebPlatformStrategies::setBufferForType):
(WebKit::WebPlatformStrategies::setURL):
(WebKit::WebPlatformStrategies::setColor):
(WebKit::WebPlatformStrategies::setStringForType):
(WebKit::WebPlatformStrategies::getNumberOfFiles):
(WebKit::WebPlatformStrategies::containsURLStringSuitableForLoading):
(WebKit::WebPlatformStrategies::urlStringSuitableForLoading):
(WebKit::WebPlatformStrategies::writeToPasteboard):
(WebKit::WebPlatformStrategies::updateSupportedTypeIdentifiers):
(WebKit::WebPlatformStrategies::typesSafeForDOMToReadAndWrite):
(WebKit::WebPlatformStrategies::writeCustomData):
(WebKit::WebPlatformStrategies::containsStringSafeForDOMToReadForType):
(WebKit::WebPlatformStrategies::getPasteboardItemsCount):
(WebKit::WebPlatformStrategies::allPasteboardItemInfo):
(WebKit::WebPlatformStrategies::informationForItemAtIndex):
(WebKit::WebPlatformStrategies::readBufferFromPasteboard):
(WebKit::WebPlatformStrategies::readURLFromPasteboard):
(WebKit::WebPlatformStrategies::readStringFromPasteboard):

  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:

Source/WebKitLegacy/mac:

Add const PasteboardContext* arguments to the PasteboardStrategy methods on WebPlatformStrategies.

  • WebCoreSupport/WebPlatformStrategies.h:
  • WebCoreSupport/WebPlatformStrategies.mm:

(WebPlatformStrategies::getTypes):
(WebPlatformStrategies::bufferForType):
(WebPlatformStrategies::getPathnamesForType):
(WebPlatformStrategies::allStringsForType):
(WebPlatformStrategies::stringForType):
(WebPlatformStrategies::changeCount):
(WebPlatformStrategies::color):
(WebPlatformStrategies::url):
(WebPlatformStrategies::addTypes):
(WebPlatformStrategies::setTypes):
(WebPlatformStrategies::setBufferForType):
(WebPlatformStrategies::setURL):
(WebPlatformStrategies::setColor):
(WebPlatformStrategies::setStringForType):
(WebPlatformStrategies::getNumberOfFiles):
(WebPlatformStrategies::typesSafeForDOMToReadAndWrite):
(WebPlatformStrategies::writeCustomData):
(WebPlatformStrategies::containsStringSafeForDOMToReadForType):
(WebPlatformStrategies::informationForItemAtIndex):
(WebPlatformStrategies::allPasteboardItemInfo):
(WebPlatformStrategies::getPasteboardItemsCount):
(WebPlatformStrategies::readBufferFromPasteboard):
(WebPlatformStrategies::readURLFromPasteboard):
(WebPlatformStrategies::readStringFromPasteboard):
(WebPlatformStrategies::containsURLStringSuitableForLoading):
(WebPlatformStrategies::urlStringSuitableForLoading):
(WebPlatformStrategies::writeToPasteboard):
(WebPlatformStrategies::updateSupportedTypeIdentifiers):

3:48 PM Changeset in webkit [273107] by Caio Lima
  • 12 edits
    6 adds in trunk

[JSC] Implement private static method
https://bugs.webkit.org/show_bug.cgi?id=219181

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/class-private-method-access.js: Added.
  • stress/private-accessor-static-non-static.js: Added.
  • stress/private-getter-inner-class.js:
  • stress/static-private-methods-and-accessor-inner-class.js: Added.
  • stress/static-private-methods-and-accessor-multiple-evaluation.js: Added.
  • stress/static-private-methods-and-accessors-postfix-node.js: Added.
  • stress/static-private-methods-and-accessors-prefix-node.js: Added.
  • test262/config.yaml:

Source/JavaScriptCore:

This patch is implementing static private methods and accessors
proposal based on https://github.com/tc39/proposal-static-class-features.
This implementation diverge a bit from private methods&accessors on the
brand check, because we are using a simpler way to perform static
brand checks. Since only the class constructor is allowed to access
its private methods and accessors, we save it on @privateClassBrand
on class lexical scope and compare it with the receiver of the static
private method (and accessors) using === operation.
While this genenrates more bytecodes than check_private_brand, we
don't need to perform a Structure transition to install a brand,
and avoid allocation of a private symbol. Since each evaluation of a
class generates a different constructor object, we preserve the semantics
that private methods are lexically scoped.

  • builtins/BuiltinNames.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitCreatePrivateBrand):
(JSC::BytecodeGenerator::emitInstallPrivateBrand):
(JSC::BytecodeGenerator::emitInstallPrivateClassBrand):
(JSC::BytecodeGenerator::emitGetPrivateBrand):
(JSC::BytecodeGenerator::emitCheckPrivateBrand):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::BaseDotNode::emitGetPropertyValue):
(JSC::BaseDotNode::emitPutProperty):
(JSC::PostfixNode::emitDot):
(JSC::PrefixNode::emitDot):
(JSC::ClassExprNode::emitBytecode):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseClass):
(JSC::Parser<LexerType>::parseGetterSetter):

  • parser/Parser.h:

(JSC::Scope::declarePrivateMethod):
(JSC::Scope::declarePrivateAccessor):
(JSC::Scope::declarePrivateSetter):
(JSC::Scope::declarePrivateGetter):

  • parser/VariableEnvironment.cpp:

(JSC::VariableEnvironment::declarePrivateAccessor):
(JSC::VariableEnvironment::declarePrivateSetter):
(JSC::VariableEnvironment::declarePrivateGetter):
(JSC::VariableEnvironment::declarePrivateMethod):

  • parser/VariableEnvironment.h:

(JSC::PrivateNameEntry::isStatic const):
(JSC::VariableEnvironment::isEmpty const):
(JSC::VariableEnvironment::declareStaticPrivateMethod):
(JSC::VariableEnvironment::declarePrivateSetter):
(JSC::VariableEnvironment::declareStaticPrivateSetter):
(JSC::VariableEnvironment::declarePrivateGetter):
(JSC::VariableEnvironment::declareStaticPrivateGetter):
(JSC::VariableEnvironment::hasStaticPrivateMethodOrAccessor const):
(JSC::VariableEnvironment::hasInstancePrivateMethodOrAccessor const):
(JSC::VariableEnvironment::hasPrivateMethodOrAccessor const): Deleted.

3:37 PM Changeset in webkit [273106] by Russell Epstein
  • 1 copy in tags/Safari-612.1.4

Tag Safari-612.1.4.

3:28 PM Changeset in webkit [273105] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION (r273004): [ macOS ] media/modern-media-controls/volume-support/volume-support-drag.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=222117

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-18

  • platform/mac/TestExpectations:
3:20 PM Changeset in webkit [273104] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Fix segfaults on 32-bit big endian systems
https://bugs.webkit.org/show_bug.cgi?id=221710

Patch by Daniel Kolesa <Daniel Kolesa> on 2021-02-18
Reviewed by Yusuke Suzuki.

In these cases, we are loading values from memory into registers.
Seemingly, these values are present at an offset on 32-bit big
endian targets; therefore, add PayloadOffset, which is 4 on BE
and 0 on LE (same behavior as right now) and is already present
in other similar accesses in the file.

  • llint/LowLevelInterpreter32_64.asm:
3:14 PM Changeset in webkit [273103] by achristensen@apple.com
  • 4 edits in trunk

Fix null dereferencing in RangeResponseGenerator::giveResponseToTasksWithFinishedRanges
https://bugs.webkit.org/show_bug.cgi?id=222126

Reviewed by Darin Adler.

Source/WebCore:

Setting the resource to nullptr can delete the resource, which deletes the client, which is this.
When we go to read m_generator from this, we get a nullptr crash. Let's not crash.

  • platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

1:22 PM Changeset in webkit [273102] by Kate Cheney
  • 29 edits in trunk

Add support for non app-bound requests
https://bugs.webkit.org/show_bug.cgi?id=221909
<rdar://problem/73512988>

Source/WebCore:

Reviewed by Brent Fulgham.

Store whether the last navigation was app-bound in the DocumentLoader
so we can pass it to all sub resource loads. See WebKit changelog for more details.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::lastNavigationWasAppBound const):
(WebCore::DocumentLoader::setlastNavigationWasAppBound):

  • platform/network/ResourceRequestBase.cpp:

(WebCore::ResourceRequestBase::setAsIsolatedCopy):

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::isAppBound const):
(WebCore::ResourceRequestBase::setIsAppBound):
(WebCore::ResourceRequestBase::ResourceRequestBase):
(WebCore::ResourceRequestBase::encodeBase const):
(WebCore::ResourceRequestBase::decodeBase):

Source/WebKit:

Reviewed by Brent Fulgham.

Add a new parameter to the ResourceRequest class specifying app
bound requests and populate subresource loads, redirects, and
preconnect tasks with this value.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::preconnectTo):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::continueWillSendRedirectedRequest):

  • Scripts/webkit/messages.py:
  • Shared/NavigatingToAppBoundDomain.h:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<WebCore::ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<WebCore::ResourceRequest>::decodePlatformData):

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _lastNavigationWasAppBound:]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::setLastNavigationWasAppBound):
(WebKit::WebPageProxy::lastNavigationWasAppBound):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::preconnectTo):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadRequest):
(WebKit::WebPageProxy::preconnectTo):
(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResource):
For the case of a main resource load without a navigation, like from about:blank,
the main resource load uses the original document loader which was created before
WebPage::loadRequest sets the value of m_lastNavigationWasAppBound. For this reason,
we should not check the document loader value for the main resource and
know that the resource request has the correct value.

(WebKit::WebLoaderStrategy::preconnectTo):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_lastNavigationWasAppBound):
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::createDocumentLoader):
We should store lastNavigationWasAppBound in the document loader
instead of the page so we don't affect previous loads while initiating
the navigation to the next site.

(WebKit::WebPage::lastNavigationWasAppBound):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::setLastNavigationWasAppBound):

  • WebProcess/WebPage/WebPage.messages.in:

Tools:

API test coverage.

Reviewed by Brent Fulgham.

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:
  • TestWebKitAPI/cocoa/TestWKWebView.h:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView lastNavigationWasAppBound:]):

1:17 PM Changeset in webkit [273101] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Undeprecate some webkit-patch commands
https://bugs.webkit.org/show_bug.cgi?id=222106

Patch by Sam Sneddon <Sam Sneddon> on 2021-02-18
Reviewed by Jonathan Bedard.

This removes the deprecated decorator from the webkit-patch commands we quickly heard are
actually used: apply-watchlist-local, check-style, clean, create-revert, prepare-revert,
and validate-changelog.

  • Scripts/webkitpy/tool/commands/applywatchlistlocal.py:
  • Scripts/webkitpy/tool/commands/download.py:
1:04 PM Changeset in webkit [273100] by Aditya Keerthi
  • 2 edits in trunk/Source/WebCore

[iOS][FCR] Adjust button colors and fonts to match new specification
https://bugs.webkit.org/show_bug.cgi?id=222123
<rdar://problem/74485781>

Reviewed by Wenson Hsieh.

  • css/formControlsIOS.css:

(input:matches([type="button"], [type="submit"], [type="reset"]), input[type="file"]::file-selector-button, button):
(input:matches([type="button"], [type="reset"]), input[type="file"]::file-selector-button, button):

Use a blue on gray color scheme, rather than dark blue on light blue.

(input[type="submit"]):

Submit buttons have a bold font by default.

1:02 PM Changeset in webkit [273099] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[macOS] Remove unused IPC shared memory reads in WebContent process
https://bugs.webkit.org/show_bug.cgi?id=222083
<rdar://problem/73509623>

Reviewed by Per Arne Vollan.

  • WebProcess/com.apple.WebProcess.sb.in:
12:58 PM Changeset in webkit [273098] by Patrick Angle
  • 2 edits in trunk/Source/WebCore

Web Inspector: Implement Grid Overlay "Show track sizes" drawing
https://bugs.webkit.org/show_bug.cgi?id=222007

Reviewed by BJ Burg.

Show computed and authored track sizes in the grid overlay. Authored sizes are determined from the original
CSSValue, not from the GridTrackSize as the later loses the exact authored syntax (e.g. 14vw is already
resolved to an absolute pixel value).

When the authored size is in px and is identical to the computed size, the value is only shown once for the
track.

  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::drawLayoutLabel):

  • Use the system-ui font for layout labels and reduce the font size to improve information density.
  • Drive-by further adjustment to label text positioning to be more accurate.

(WebCore::authoredGridTrackSizes):

  • Get the authored sizes for each track in a sizing direction (row-wise or column-wise).

(WebCore::InspectorOverlay::drawGridOverlay):

  • Draw labels for track sizes with their computed and, if different from the computed, authored values.
  • Drive-by to have area name label backgrounds share a common constant color with track size label backgrounds.
12:51 PM Changeset in webkit [273097] by Nikita Vasilyev
  • 6 edits
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Elements: show badges for CSS Grid container elements
https://bugs.webkit.org/show_bug.cgi?id=221370

Reviewed by BJ Burg.

Clicking "grid" CSS badge shows/hides the grid overlay for the corresponding element.

  • UserInterface/Base/Setting.js:
  • UserInterface/Controllers/OverlayManager.js:

(WI.OverlayManager.prototype.isGridOverlayVisible):
(WI.OverlayManager.prototype.toggleGridOverlay):

  • UserInterface/Main.html:
  • UserInterface/Views/DOMTreeElement.css: Added.

(.tree-outline.dom .badge-css-grid):
(.tree-outline.dom .badge-css-grid.activated):
(.tree-outline.dom li.selected .badge-css-grid):
(.tree-outline.dom li.selected .badge-css-grid.activated):
(body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.selected .badge-css-grid):
(body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.selected .badge-css-grid.activated):
(@media (prefers-color-scheme: dark) .tree-outline.dom .badge-css-grid):

  • UserInterface/Views/DOMTreeElement.js:

(WI.DOMTreeElement):
(WI.DOMTreeElement.prototype.onattach):
(WI.DOMTreeElement.prototype.ondetach):
(WI.DOMTreeElement.prototype.updateTitle):
(WI.DOMTreeElement.prototype._updateGridBadge):
(WI.DOMTreeElement.prototype._gridBadgeClicked):
(WI.DOMTreeElement.prototype._gridBadgeDoubleClicked):
(WI.DOMTreeElement.prototype._updateGridBadgeStatus):
(WI.DOMTreeElement.prototype._handleLayoutContextTypeChanged):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

12:46 PM Changeset in webkit [273096] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Update .eslintrc to account for ECMAScript 2021
https://bugs.webkit.org/show_bug.cgi?id=222107

Patch by Razvan Caliman <Razvan Caliman> on 2021-02-18
Reviewed by BJ Burg.

Add ES2021 parser option so ESLint-based linters don't throw errors

for newer JavaScript features, like logical assignment operators (??=, &&=,
)

Note: The linter in an editor must support ESLint v7.8.0 or newer to understand ES2021.

  • .eslintrc:
12:46 PM Changeset in webkit [273095] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

Unreviewed, reverting r273063.

GTK port layout tests are timint out.

Reverted changeset:

"[CoordinatedGraphics] The whole content is unnecessarily
repainted by animations in non-AC mode pages"
https://bugs.webkit.org/show_bug.cgi?id=221391
https://commits.webkit.org/r273063

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

Unreviewed, reverting r272849.
https://bugs.webkit.org/show_bug.cgi?id=222121

Increased page load time

Reverted changeset:

"CSSFontFace should not need its m_fontSelector data member"
https://bugs.webkit.org/show_bug.cgi?id=208351
https://trac.webkit.org/changeset/272849

12:36 PM Changeset in webkit [273093] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Remove access to audio IOKit
https://bugs.webkit.org/show_bug.cgi?id=222062
<rdar://problem/70496648>

Reviewed by Brent Fulgham.

Remove access to audio IOKit in the WebContent process on macOS when GPUP is enabled.

  • WebProcess/com.apple.WebProcess.sb.in:
12:15 PM Changeset in webkit [273092] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

Skip platform specific Python tests
https://bugs.webkit.org/show_bug.cgi?id=222066

Reviewed by Jonathan Bedard.

Catalog platform specific tests based on operating system. Skip those tests that don't
apply to the platform. Mac should continue to run all tests since it runs the webkitpy
tests in EWS.

  • Scripts/webkitpy/test/main.py:
12:14 PM Changeset in webkit [273091] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[BigSur] imported/w3c/web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-156.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=222118

Unreviewed test gardening.

Patch by Amir Mark Jr <Amir Mark Jr.> on 2021-02-18

  • platform/mac/TestExpectations:
12:08 PM Changeset in webkit [273090] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

[ews] Ensure that uat instance doesn't comment on bugs
https://bugs.webkit.org/show_bug.cgi?id=222035

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(SetCommitQueueMinusFlagOnPatch.getResultSummary):
(SetCommitQueueMinusFlagOnPatch.doStepIf):
(CommentOnBug.getResultSummary):
(CommentOnBug.doStepIf):
(PushCommitToWebKitRepo.doStepIf):

  • CISupport/ews-build/steps_unittest.py: Updated unit-test accordingly.
12:04 PM Changeset in webkit [273089] by youenn@apple.com
  • 5 edits in trunk/Source

libwebrtc installs some files into incorrect locations in /usr/local/include
https://bugs.webkit.org/show_bug.cgi?id=221534
<rdar://problem/74333613>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

  • libwebrtc.xcodeproj/project.pbxproj:

Mark optional.h as project instead of private.
Move vp9 header copying from common to webm.

Source/WebCore:

No change of behavior.

  • platform/graphics/cocoa/SourceBufferParserWebM.h:
  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

Update according new vp9 header code path.

11:44 AM Changeset in webkit [273088] by wilander@apple.com
  • 35 edits
    2 copies
    3 adds in trunk

PCM: Request signature for unlinkable token using attributionSourceNonce
https://bugs.webkit.org/show_bug.cgi?id=222076
<rdar://73581651>

Reviewed by Chris Dumez.

Source/WebCore:

Test: http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

Adoption of renamed function PrivateClickMeasurement::attributionReportURL().

  • loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::tokenSignatureURL const):
(WebCore::PrivateClickMeasurement::tokenSignatureJSON const):

New functions to facilitate the request for a token signature.

(WebCore::PrivateClickMeasurement::attributionReportURL const):
(WebCore::PrivateClickMeasurement::attributionReportJSON const):

Renamed functions to make them distinct from their token signing peers.

(WebCore::PrivateClickMeasurement::reportURL const): Deleted.
(WebCore::PrivateClickMeasurement::json const): Deleted.

  • loader/PrivateClickMeasurement.h:

(WebCore::PrivateClickMeasurement::encode const):
(WebCore::PrivateClickMeasurement::decode):
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::encode const):
(WebCore::PrivateClickMeasurement::EphemeralSourceNonce::decode):

Encode and decode to facilitate transfer over IPC.

Source/WebKit:

This patch makes PrivateClickMeasurementManager::storeUnattributed() look
for incoming source nonces and if found, call the new function
PrivateClickMeasurementManager::getSignedUnlinkableToken().

A new static function generateNetworkResourceLoadParameters() was added
to reuse code between PrivateClickMeasurementManager::getSignedUnlinkableToken()
and the existing PrivateClickMeasurementManager::fireConversionRequest().

To enable testing, there is a new function called
NetworkSession::setPrivateClickMeasurementTokenSignatureURLForTesting() and
function setPrivateClickMeasurementConversionURLForTesting() was renamed
setPrivateClickMeasurementAttributionReportURLForTesting() in NetworkProcess,
NetworkSession, WKPagePrivate, WKWebViewPrivateForTesting, and
PrivateClickMeasurementManager to align with the naming used in other places.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setPrivateClickMeasurementTokenSignatureURLForTesting):
(WebKit::NetworkProcess::setPrivateClickMeasurementAttributionReportURLForTesting):
(WebKit::NetworkProcess::setPrivateClickMeasurementConversionURLForTesting): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkSession.cpp:

(WebKit::NetworkSession::setPrivateClickMeasurementTokenSignatureURLForTesting):
(WebKit::NetworkSession::setPrivateClickMeasurementAttributionReportURLForTesting):
(WebKit::NetworkSession::setPrivateClickMeasurementConversionURLForTesting): Deleted.

  • NetworkProcess/NetworkSession.h:
  • NetworkProcess/PrivateClickMeasurementManager.cpp:

(WebKit::PrivateClickMeasurementManager::storeUnattributed):
(WebKit::generateNetworkResourceLoadParameters):
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableToken):
(WebKit::PrivateClickMeasurementManager::fireConversionRequest):
(WebKit::PrivateClickMeasurementManager::setTokenSignatureURLForTesting):
(WebKit::PrivateClickMeasurementManager::setAttributionReportURLForTesting):
(WebKit::PrivateClickMeasurementManager::setConversionURLForTesting): Deleted.

  • NetworkProcess/PrivateClickMeasurementManager.h:
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPrivateClickMeasurementTokenSignatureURLForTesting):
(WKPageSetPrivateClickMeasurementAttributionReportURLForTesting):
(WKPageSetPrivateClickMeasurementConversionURLForTesting): Deleted.

  • UIProcess/API/C/WKPagePrivate.h:
  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _setPrivateClickMeasurementAttributionReportURLForTesting:completionHandler:]):
(-[WKWebView _setPrivateClickMeasurementConversionURLForTesting:completionHandler:]): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setPrivateClickMeasurementTokenSignatureURLForTesting):
(WebKit::WebPageProxy::setPrivateClickMeasurementAttributionReportURLForTesting):
(WebKit::WebPageProxy::setPrivateClickMeasurementConversionURLForTesting): Deleted.

  • UIProcess/WebPageProxy.h:

Tools:

The changes to the TestRunner are:

  • Rename setPrivateClickMeasurementConversionURLForTesting() to

setPrivateClickMeasurementAttributionReportURLForTesting() to align with other
naming and make it clear that it does.

  • Add the new setPrivateClickMeasurementTokenSignatureURLForTesting() used for

testing the token signing request.

The changes to API tests are to adopt renamed functions in
WebCore::PrivateClickMeasurement:

  • reportURL() renamed attributionReportURL().
  • json() renamed attributionReportJSON().
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

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

(WTR::TestRunner::setPrivateClickMeasurementTokenSignatureURLForTesting):
(WTR::TestRunner::setPrivateClickMeasurementAttributionReportURLForTesting):
(WTR::TestRunner::setPrivateClickMeasurementConversionURLForTesting): Deleted.

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

(WTR::TestController::setPrivateClickMeasurementTokenSignatureURLForTesting):
(WTR::TestController::setPrivateClickMeasurementAttributionReportURLForTesting):
(WTR::TestController::setPrivateClickMeasurementConversionURLForTesting): Deleted.

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/contentextensions/block-private-click-measurement.html:

Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().

  • http/tests/privateClickMeasurement/conversion-disabled-in-ephemeral-session.html:

Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().

  • http/tests/privateClickMeasurement/expired-attribution-report-gets-sent-on-session-start.html:

Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().

  • http/tests/privateClickMeasurement/resources/getConversionData.php:

Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().

  • http/tests/privateClickMeasurement/resources/getTokenSigningData.php: Added.
  • http/tests/privateClickMeasurement/resources/signToken.php: Added.
  • http/tests/privateClickMeasurement/resources/tokenSigningFilePath.php: Added.
  • http/tests/privateClickMeasurement/resources/util.js:

(tearDownAndFinish):

Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().
Now also calls setPrivateClickMeasurementTokenSignatureURLForTesting().

  • http/tests/privateClickMeasurement/send-attribution-conversion-request.html:

Adoption of renamed TestRunner function setPrivateClickMeasurementAttributionReportURLForTesting().

  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce-expected.txt: Added.
  • http/tests/privateClickMeasurement/store-private-click-measurement-with-source-nonce.html: Added.
11:40 AM Changeset in webkit [273087] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[WPE][GTK] Avoid another child setup function in process launcher code
https://bugs.webkit.org/show_bug.cgi?id=222049

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-18
Reviewed by Carlos Garcia Campos.

Avoiding child setup functions is desirable because it could allow GSubprocess to use
posix_spawn() instead of fork() in the future. That's not possible to do if we have code
that needs to run between fork() and exec().

In this case, the child setup is used only to unset CLOEXEC. We could simply not set it in
the first place. This only fails if a secondary thread decides to launch a subprocess before
XDGDBusProxyLauncher::launch returns. That window already exists in many other places (e.g.
anywhere else setCloseOnExec is called, such as for IPC::Connection objects). Threads should
not do that.

This also fixes a bug where unsetting CLOEXEC would fail if we get unlucky and receive
EINTR. A loop is required here. WTF::setCloseOnExec handles that for us.

  • UIProcess/Launcher/glib/BubblewrapLauncher.cpp:

(WebKit::XDGDBusProxyLauncher::launch):
(WebKit::XDGDBusProxyLauncher::childSetupFunc): Deleted.

11:14 AM Changeset in webkit [273086] by msaboff@apple.com
  • 24 edits in trunk

[JSC] Implement RegExp Match Indices proposal
https://bugs.webkit.org/show_bug.cgi?id=202475

Reviewed by Yusuke Suzuki.

JSTests:

Updated tests.

  • es6/Proxy_internal_get_calls_RegExp.prototype.flags.js:
  • stress/static-getter-in-names.js:
  • test262/config.yaml:

Source/JavaScriptCore:

This implements the latest version of the RegExp match indices proposal (https://github.com/tc39/proposal-regexp-match-indices).
It includes a new 'd' flag to RegExp's to trigger the population of the 'indices' property tree in a Matches result from
RegExp.exec() and related methods. This change is performance neutral on JetStream2.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGStrengthReductionPhase.cpp:

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

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::regExpMatchesArrayWithIndicesStructure const):
(JSC::JSGlobalObject::regExpMatchesIndicesArrayStructure const):

  • runtime/RegExp.cpp:

(JSC::RegExpFunctionalTestCollector::outputOneTest):
(JSC::regexpToSourceString):

  • runtime/RegExp.h:
  • runtime/RegExpMatchesArray.cpp:

(JSC::createEmptyRegExpMatchesArray):
(JSC::createStructureWithIndicesImpl):
(JSC::createIndicesStructureImpl):
(JSC::createRegExpMatchesArrayWithIndicesStructure):
(JSC::createRegExpMatchesIndicesArrayStructure):
(JSC::createRegExpMatchesArrayWithIndicesSlowPutStructure):
(JSC::createRegExpMatchesIndicesArraySlowPutStructure):

  • runtime/RegExpMatchesArray.h:

(JSC::createRegExpMatchesArray):

  • runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::flagsString):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • yarr/YarrFlags.cpp:

(JSC::Yarr::parseFlags):

  • yarr/YarrFlags.h:
  • yarr/YarrInterpreter.h:

(JSC::Yarr::BytecodePattern::hasIndices const):

  • yarr/YarrPattern.h:

(JSC::Yarr::YarrPattern::hasIndices const):

LayoutTests:

Updated tests.

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/regexp-named-capture-groups-expected.txt:
  • js/script-tests/Object-getOwnPropertyNames.js:
  • js/script-tests/regexp-named-capture-groups.js:
11:12 AM Changeset in webkit [273085] by youenn@apple.com
  • 7 edits in trunk

Set ENABLE_VP9 to 1 on IOS
https://bugs.webkit.org/show_bug.cgi?id=222042
<rdar://problem/74433523>

Reviewed by Eric Carlson.

Source/WebKit:

No change of behavior.

  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetVP9DecoderEnabled):
(WKPreferencesGetVP9DecoderEnabled):

  • UIProcess/API/C/WKPreferencesRef.h:

Source/WTF:

  • wtf/PlatformEnableCocoa.h:

Tools:

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformResetPreferencesToConsistentValues):
Disable VP9Decoder in ios simulator since there is no support for it through VTB.

10:58 AM Changeset in webkit [273084] by commit-queue@webkit.org
  • 5 edits in trunk

[GTK] Remove all Google user agent quirks except for Google Docs
https://bugs.webkit.org/show_bug.cgi?id=222039

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-18
Reviewed by Carlos Garcia Campos.

Source/WebCore:

The Google user agent quirks have a very long and complex history, detailed across over a
dozen different bug reports. But Google seems to have improved its practices, and they are
no longer needed except on Google Docs, at least for now. This is a historic moment!

  • platform/UserAgentQuirks.cpp:

(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):
(WebCore::urlRequiresLinuxDesktopPlatform): Deleted.

  • platform/glib/UserAgentGLib.cpp:

(WebCore::buildUserAgentString):

Tools:

  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp:

(TestWebKitAPI::TEST):
(TestWebKitAPI::assertUserAgentForURLHasLinuxPlatformQuirk): Deleted.

10:38 AM Changeset in webkit [273083] by Devin Rousso
  • 11 edits in trunk/Source

Experiment with using the theme-color as the scroll area background if provided
https://bugs.webkit.org/show_bug.cgi?id=222078
<rdar://problem/74158818>

Reviewed by Tim Horton.

Source/WebCore:

  • rendering/RenderLayerCompositor.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateLayerForOverhangAreasBackgroundColor): Added.
(WebCore::RenderLayerCompositor::rootBackgroundColorOrTransparencyChanged):

  • dom/Document.cpp:

(WebCore::Document::processThemeColor):
Notify the RenderLayerCompositor when <meta name="theme-color" content="..."> changes.

Source/WebKit:

  • UIProcess/API/ios/WKWebViewIOS.mm:

(baseScrollViewBackgroundColor):

  • UIProcess/ViewSnapshotStore.cpp:

(WebKit::ViewSnapshotStore::recordSnapshot):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebPageProxy::scrollAreaBackgroundColor): Added.

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:
10:18 AM Changeset in webkit [273082] by pvollan@apple.com
  • 12 edits in trunk/Source

[macOS] Observe system sleep events in the UI process
https://bugs.webkit.org/show_bug.cgi?id=221996
<rdar://problem/74406570>

Reviewed by Chris Dumez.

Source/WebCore:

System sleep events should be observed in the UI process, which should notify the WebContent process.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm:

(WebCore::MediaSessionManagerCocoa::MediaSessionManagerCocoa):

Source/WebCore/PAL:

Export symbols, since the system sleep listener will be instantiated in the UI process.

  • pal/system/SystemSleepListener.h:

Source/WebKit:

System sleep events should be observed in the UI process, which should notify the WebContent process.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::registerNotificationObservers):
(WebKit::WebProcessPool::unregisterNotificationObservers):
(WebKit::WebProcessPool::systemWillSleep):
(WebKit::WebProcessPool::systemDidWake):

  • UIProcess/WebProcessPool.h:
  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::systemWillSleep):
(WebKit::WebProcess::systemDidWake):

9:52 AM Changeset in webkit [273081] by achristensen@apple.com
  • 4 edits in trunk

Disable RangeResponseGenerator again.
https://bugs.webkit.org/show_bug.cgi?id=221072

Source/WebCore:

It seems to be causing GPU process crashes. Needs more investigating.

  • platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

9:46 AM Changeset in webkit [273080] by commit-queue@webkit.org
  • 30 edits in trunk

WebGL contexts do not work as source for Context2D drawImage calls in GPU process
https://bugs.webkit.org/show_bug.cgi?id=221811

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-18
Reviewed by Darin Adler.

Source/WebCore:

Implements rudimentary support for reading the WebGL context and transfering
it to a ImageBuffer.

Fixes many tests that are removed from gpu-process/TestExpectations.

  • html/OffscreenCanvas.cpp:

(WebCore::OffscreenCanvas::transferToImageBitmap):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::paintRenderingResultsToCanvas):

  • platform/graphics/GraphicsContextGL.h:

Make paintRenderingResultsToCanvas and paintCompositedResultsToCanvas
take ImageBuffer& instead of ImageBuffer*, since the buffer always
exists.

  • platform/graphics/cairo/GraphicsContextGLCairo.cpp:

(WebCore::GraphicsContextGLOpenGL::paintToCanvas):

  • platform/graphics/cg/GraphicsContextGLCG.cpp:

(WebCore::GraphicsContextGLOpenGL::paintToCanvas):
Change the function signature so that it can be called from
other thread and without GraphicsContextGL instance.
It is not really a GraphicsContextGLOpenGL related function..

  • platform/graphics/cocoa/GraphicsContextGLIOSurfaceSwapChain.cpp:

(WebCore::GraphicsContextGLIOSurfaceSwapChain::displayBuffer const):
(WebCore::GraphicsContextGLIOSurfaceSwapChain::recycleBuffer):
(WebCore::GraphicsContextGLIOSurfaceSwapChain::detachClient):
(WebCore::GraphicsContextGLIOSurfaceSwapChain::present):

  • platform/graphics/cocoa/GraphicsContextGLIOSurfaceSwapChain.h:
  • platform/graphics/cocoa/WebGLLayer.mm:

(WebGLLayerSwapChain::present):
Move the triple buffering implementation to the base class.
The implementation is now also used in GPU process side,
since the GPU process needs to be able to read the composited
results.

Previously the same logic was split between Web process and GPU process.

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::paintRenderingResultsToCanvas):
(WebCore::GraphicsContextGLOpenGL::paintCompositedResultsToCanvas):
(WebCore::GraphicsContextGLOpenGL::paintRenderingResultsToImageData):
(WebCore::GraphicsContextGLOpenGL::readRenderingResultsForPainting):
(WebCore::GraphicsContextGLOpenGL::readCompositedResultsForPainting):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.h:

Expose public functions to get ImageData out of drawing buffer and
display buffer.

Source/WebKit:

Implements rudimentary support for reading the WebGL context and transfering
it to a ImageBuffer.

Fixes many tests that are removed from gpu-process/TestExpectations.

  • GPUProcess/GPUConnectionToWebProcess.cpp:

(WebKit::GPUConnectionToWebProcess::createGraphicsContextGL):

  • GPUProcess/GPUConnectionToWebProcess.h:

(WebKit::GPUConnectionToWebProcess::RemoteRenderingBackendWrapper::get const):

  • GPUProcess/GPUConnectionToWebProcess.messages.in:
  • GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::create):
(WebKit::RemoteGraphicsContextGL::RemoteGraphicsContextGL):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createGraphicsContextGL const):

  • GPUProcess/graphics/RemoteGraphicsContextGLCocoa.cpp:

(WebKit::RemoteGraphicsContextGL::create):
(WebKit::RemoteGraphicsContextGLCocoa::RemoteGraphicsContextGLCocoa):

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:

(WebKit::RemoteRenderingBackendProxy::renderingBackendIdentifier const):

RemoteGraphicsContextGL takes a ref of the respective RemoteRenderingBackend.
RemoteRenderingBackend is the one that can handle ImageBuffers.

(WebKit::RemoteGraphicsContextGL::paintRenderingResultsToCanvas):
(WebKit::RemoteGraphicsContextGL::paintCompositedResultsToCanvas):
(WebKit::RemoteGraphicsContextGL::paintImageDataToImageBuffer):

  • GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:

Implement the functions by:

1) Wait for the pending changes to the ImageBuffer
2) Send a synchronous message from Web process to GPU process WebGL sequence
3) Reading the buffer, post the task to RenderingBackend sequence
4) Paint the results to the ImageBuffer
5) Return the synchronous message result

(WebKit::RemoteGraphicsContextGLCocoa::prepareForDisplay):

RemoteGraphicsContextGL now retains the reference to display buffer.
Before, just sent the display buffer to Web process and forgot
about it.

  • GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::dispatch):

  • GPUProcess/graphics/RemoteRenderingBackend.h:

Add function to dispatch work to rendering backend sequence.

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:

(WebKit::RemoteGraphicsContextGLProxy::create):
(WebKit::RemoteGraphicsContextGLProxy::RemoteGraphicsContextGLProxy):
(WebKit::RemoteGraphicsContextGLProxy::paintRenderingResultsToCanvas):
(WebKit::RemoteGraphicsContextGLProxy::paintCompositedResultsToCanvas):

  • WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:

Send the messages.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::connectToGPUProcess):

Use IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply to
send CreateRenderingBackend. It must be dispatched in order compared to other
messages such as CreateRemoteGraphicsContextGL.

Tools:

Update two signatures for manually implemented messages.

  • Scripts/generate-gpup-webgl:

LayoutTests:

Remove now passing tests from the expectations.

  • gpu-process/TestExpectations:
9:42 AM Changeset in webkit [273079] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed tiny cleanup after r273056.

  • wtf/Forward.h:
9:02 AM Changeset in webkit [273078] by weinig@apple.com
  • 10 edits in trunk

lch() colors should serialize as lch(), not lab()
https://bugs.webkit.org/show_bug.cgi?id=222085

Reviewed by Darin Adler.

Source/WebCore:

Updates fast/css/parsing-lab-colors.html

The spec was updated to require lch() to serialize to itself.

Store LCHA colors in Color to allow serialization. This just moves
the conversion to Lab from parse time to CGColor creation time (it
happens implicitly in the conversion to extended sRGB).

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::parseLCHParameters):

  • platform/graphics/ColorSerialization.cpp:

(WebCore::serialization):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):

  • platform/graphics/ColorSpace.cpp:

(WebCore::operator<<):

  • platform/graphics/ColorSpace.h:

(WebCore::callWithColorType):

  • platform/graphics/ColorUtilities.h:

(WebCore::isBlack):
(WebCore::isWhite):

  • platform/graphics/cg/ColorSpaceCG.h:

(WebCore::cachedNullableCGColorSpace):

LayoutTests:

The spec was updated to require lch() to serialize to itself.

  • fast/css/parsing-lab-colors-expected.txt:
  • fast/css/parsing-lab-colors.html:

Update test to reflect new serialization of lch().

8:56 AM Changeset in webkit [273077] by Wenson Hsieh
  • 34 edits
    2 adds in trunk/Source

Plumb an Optional<PageIdentifier> through Pasteboard-related codepaths
https://bugs.webkit.org/show_bug.cgi?id=221987

Reviewed by Tim Horton.

Source/WebCore:

In order to facilitate tagging pasteboard reads and writes with a data owner type on iOS sourced from
WKContentView, we add infrastructure to (indirectly) tag Pasteboard with an optional PageIdentifier to
indicate which page is triggering the pasteboard operation.

However, since the Pasteboard class should only be responsible for interfacing with platform-dependent
strategies for reading or writing data, we can't directly add a PageIdentifier member to Pasteboard.
Instead, we introduce a separate PasteboardContext object, and let Pasteboard hold a unique pointer to this
context (which is set during construction). PasteboardContext is then subclassed by PagePasteboardContext,
which holds a PageIdentifier and is created from call sites of the Pasteboard constructor that have access
to page identifiers (e.g. Editor, Clipboard, EventHandler).

In a future patch, this opaque PasteboardContext will be converted back to a PagePasteboardContext in order
to retrieve the page identifier in the WebKit client layer.

  • Headers.cmake:
  • Modules/async-clipboard/Clipboard.cpp:

(WebCore::Clipboard::readText):
(WebCore::Clipboard::writeText):
(WebCore::Clipboard::read):
(WebCore::Clipboard::ItemWriter::ItemWriter):

Here (and in many places below), create PagePasteboardContext objects and use them to create Pasteboards,
passing them in as opaque PasteboardContexts.

  • WebCore.xcodeproj/project.pbxproj:
  • dom/DataTransfer.cpp:

(WebCore::DataTransfer::createForDrag):

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

(WebCore::createDataTransferForClipboardEvent):
(WebCore::dispatchClipboardEvent):
(WebCore::Editor::pasteAsPlainTextBypassingDHTML):
(WebCore::Editor::performCutOrCopy):
(WebCore::Editor::paste):
(WebCore::Editor::pasteAsPlainText):
(WebCore::Editor::pasteAsQuotation):
(WebCore::Editor::copyURL):
(WebCore::Editor::copyImage):

  • editing/EditorCommand.cpp:

(WebCore::executePasteGlobalSelection):

  • editing/mac/EditorMac.mm:

(WebCore::Editor::readSelectionFromPasteboard):
(WebCore::Editor::replaceNodeFromPasteboard):

  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::copyText):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::copyText):

  • page/DragController.cpp:

(WebCore::documentFragmentFromDragData):
(WebCore::DragController::dragExited):
(WebCore::DragController::performDragOperation):
(WebCore::DragController::tryDHTMLDrag):
(WebCore::DragController::tryToUpdateDroppedImagePlaceholders):

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleDrag):

  • page/PagePasteboardContext.h: Added.

Add PagePasteboardContext, a PasteboardContext subclass that contains a PageIdentifier indicating which
Page is requesting pasteboard access.

(isType):

  • platform/DragData.cpp:

(WebCore::DragData::DragData):
(WebCore::DragData::createPasteboardContext const):

Also plumb a PageIdentifier through DragData, and use it to implement a helper method that returns a context
object for Pasteboard.

  • platform/DragData.h:

Additionally make operator= platform-agnostic, instead of limited to GTK. (It isn't clear why this needs to be
limited to the GTK port).

(WebCore::DragData::DragData):
(WebCore::DragData::pageID const):

  • platform/Pasteboard.h:

Augment Pasteboard's (numerous) platform-specific constructors to take in a PasteboardContext unique
pointer as well, and store it in m_context.

(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::context const):

  • platform/PasteboardContext.h: Added.

Add PasteboardContext, which provides additional context for an arbitrary pasteboard operation in an opaque
fashion. See PagePasteboardContext above.

(WebCore::PasteboardContext::isPagePasteboardContext const):

  • platform/StaticPasteboard.cpp:

(WebCore::StaticPasteboard::StaticPasteboard):

  • platform/cocoa/DragDataCocoa.mm:

(WebCore::DragData::DragData):
(WebCore::DragData::canSmartReplace const):
(WebCore::DragData::asPlainText const):

  • platform/gtk/PasteboardGtk.cpp:

(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForGlobalSelection):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::create):
(WebCore::Pasteboard::Pasteboard):

  • platform/ios/PasteboardIOS.mm:

(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::create):
(WebCore::Pasteboard::createForCopyAndPaste):

  • platform/libwpe/PasteboardLibWPE.cpp:

(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::Pasteboard):

  • platform/mac/PasteboardMac.mm:

(WebCore::Pasteboard::Pasteboard):
(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::create):

  • platform/win/DragDataWin.cpp:

(WebCore::DragData::DragData):

  • platform/win/PasteboardWin.cpp:

(WebCore::Pasteboard::createForCopyAndPaste):
(WebCore::Pasteboard::createForDragAndDrop):
(WebCore::Pasteboard::create):
(WebCore::Pasteboard::Pasteboard):

Source/WebKit:

Update more DragData and Pasteboard initialization sites by passing in a PageIdentifier or
PasteboardContext, respectively. See WebCore ChangeLog for more details.

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<DragData>::encode):
(IPC::ArgumentCoder<DragData>::decode):

  • UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::draggingEntered):
(WebKit::WebViewImpl::draggingUpdated):
(WebKit::WebViewImpl::draggingExited):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView dragDataForDropSession:dragDestinationAction:]):

  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::updateGlobalSelection):

  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:

(WebKit::WebDragClient::declareAndWriteDragImage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::performDragControllerAction):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::performActionOnElement):

Source/WebKitLegacy/mac:

Create and pass in a PasteboardContext when creating a Pasteboard. See WebCore ChangeLog for more details.

  • WebCoreSupport/WebDragClient.mm:

(WebDragClient::declareAndWriteDragImage):

8:52 AM Changeset in webkit [273076] by weinig@apple.com
  • 2 edits in trunk/Source/WTF

Enable separated graphics layer experiments on internal variant
https://bugs.webkit.org/show_bug.cgi?id=222088

Reviewed by Dean Jackson.

  • wtf/PlatformEnableCocoa.h:
8:06 AM Changeset in webkit [273075] by achristensen@apple.com
  • 27 edits
    1 add in trunk

Add SPI for getting size of PDF document during printing
https://bugs.webkit.org/show_bug.cgi?id=222064
<rdar://problem/74370891>

Reviewed by Geoff Garen and Tim Horton.

Source/WebKit:

When printing a PDF, we want to know its page size. If the print is initiated by the web process (such as when window.print is called
or if the PDF contains JavaScript that tells the browser to print it) then we would like that information with the print request so we
don't have to ask the web process, which is hung waiting for a synchronous message reply. If the print is initiated by the UI process
(such as if the user prints from a menu or keyboard shortcut) then we need a way to ask what the size of a PDF is.

I reused the SPI in WKUIDelegatePrivate because it was only briefly adopted before we knew we needed this and then reverted.
I'm also adding an SPI way to get from a WKPageRef to a WKWebView so this can be adopted without redoing all of Safari.

Covered by API tests.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::printFrame):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _getPDFFirstPageSizeInFrame:completionHandler:]):

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

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::printFrame):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::printFrame):
(WebKit::WebPageProxy::getPDFFirstPageSize):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Plugins/PDF/PDFPlugin.h:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::pdfDocumentSizeForPrinting const):

  • WebProcess/Plugins/Plugin.cpp:

(WebKit::Plugin::pdfDocumentSizeForPrinting const):

  • WebProcess/Plugins/Plugin.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::print):

  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:

(WebKit::WebPage::getPDFFirstPageSize):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::getPDFFirstPageSize):

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

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/test_print.pdf: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm:

(-[PrintUIDelegate _webView:printFrame:pdfFirstPageSize:completionHandler:]):
(-[PrintUIDelegate waitForPageSize]):
(-[PrintUIDelegate lastPrintedFrame]):
(TEST):

7:59 AM Changeset in webkit [273074] by commit-queue@webkit.org
  • 15 edits in trunk/Source/WebKit

ThreadMessageReceiverRefCounted subclasses are accessed in non-thread-safe way
https://bugs.webkit.org/show_bug.cgi?id=221891

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-02-18
Reviewed by Chris Dumez.

For each ThreadMessageReceiverRefCounted subclass, remove calls
to Connection::addThreadMessageReceiver() from the constructor.
The calls pass 'this' as the ThreadMessageReceiver*. If the
connection tries to dispatch a message during the constructor, this
results in some or all of below:

  • non-thread-safe read of mutated virtual function pointer
  • call to incorrect member function, mostly to MessageReceiver::didReceiveMessage
  • an assert from above
  • skipped message

For each ThreadMessageReceiverRefCounted subclass, remove calls
to Connection::removeThreadMessageReceiver() from the destructor.
The message receive destination is still active during destructor,
so Connection might dispatch new message tasks during that time.
This causes ref of the instance already being destroyed, which
then causes the tasks to use deleted instance and then later
deleting it again.

Does not try to fix any other potential thread-related issues in
the modified areas.

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.cpp:

(WebKit::RemoteAudioMediaStreamTrackRendererManager::RemoteAudioMediaStreamTrackRendererManager):
(WebKit::RemoteAudioMediaStreamTrackRendererManager::startListeningForIPC):
(WebKit::RemoteAudioMediaStreamTrackRendererManager::close):

  • GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererManager.h:
  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:

(WebKit::RemoteSampleBufferDisplayLayerManager::RemoteSampleBufferDisplayLayerManager):
(WebKit::RemoteSampleBufferDisplayLayerManager::startListeningForIPC):
(WebKit::RemoteSampleBufferDisplayLayerManager::close):

  • GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h:
  • NetworkProcess/webrtc/NetworkRTCProvider.cpp:

(WebKit::NetworkRTCProvider::NetworkRTCProvider):
(WebKit::NetworkRTCProvider::startListeningForIPC):

  • NetworkProcess/webrtc/NetworkRTCProvider.h:

(WebKit::NetworkRTCProvider::create):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:

(WebKit::LibWebRTCCodecs::LibWebRTCCodecs):
(WebKit::LibWebRTCCodecs::startListeningForIPC):
(WebKit::LibWebRTCCodecs::~LibWebRTCCodecs):
(WebKit::LibWebRTCCodecs::gpuProcessConnectionDidClose):

  • WebProcess/GPU/webrtc/LibWebRTCCodecs.h:

(WebKit::LibWebRTCCodecs::create):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.cpp:

(WebKit::LibWebRTCNetwork::~LibWebRTCNetwork):

  • WebProcess/Network/webrtc/LibWebRTCNetwork.h:
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::libWebRTCCodecs):

  • WebProcess/cocoa/RemoteCaptureSampleManager.cpp:

(WebKit::RemoteCaptureSampleManager::~RemoteCaptureSampleManager):
(WebKit::RemoteCaptureSampleManager::stopListeningForIPC):

  • WebProcess/cocoa/RemoteCaptureSampleManager.h:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::~UserMediaCaptureManager):

  • WebProcess/glib/UserMediaCaptureManager.cpp:

(WebKit::UserMediaCaptureManager::~UserMediaCaptureManager):

4:02 AM Changeset in webkit [273073] by commit-queue@webkit.org
  • 7 edits
    1 delete in trunk

LayoutTests/imported/w3c:
Root scroll snapping broken overflow:scroll is set on the <body>
https://bugs.webkit.org/show_bug.cgi?id=221407

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-18
Reviewed by Simon Fraser.

  • web-platform-tests/css/css-scroll-snap/scrollTo-scrollBy-snaps-expected.txt:

Source/WebCore:
Root scroll snapping broken overflow:scroll is set on the <body>
https://bugs.webkit.org/show_bug.cgi?id=221407

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-18
Reviewed by Simon Fraser.

No new tests. This change fixes the WPT test:
imported/w3c/web-platform-tests/css/css-scroll-snap/scrollTo-scrollBy-snaps.html

Instead of walking up the render tree to find the containing element, be sure to
walk up the containing block chain. This will prevent WebKit from using the wrong
scrolling container for positioned elements that snap.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::findEnclosingScrollableContainerForSnapping const): Deleted.

  • rendering/RenderBox.h: Remove method definition.
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::enclosingScrollableContainerForSnapping const): Find the
scrolling container respecting the containing block chain. Never consider the
RenderView as a containing block. Although this element has a scroll area
and looks scrollable, it's a historical artifact and the real scroll container
is the FrameView.

LayoutTests:
Root scroll snapping broken when overflow:scroll is set on the <body>
https://bugs.webkit.org/show_bug.cgi?id=221407

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-18
Reviewed by Simon Fraser.

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-scroll-snap/scrollTo-scrollBy-snaps-expected.txt: Removed.

This baseline no longer differs between platforms.

1:58 AM Changeset in webkit [273072] by svillar@igalia.com
  • 12 edits in trunk

[css-flex] Implement section 9.8 Definite and Indefinite Sizes case 1
https://bugs.webkit.org/show_bug.cgi?id=219538
<rdar://problem/72136484>

Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-flexbox/flex-aspect-ratio-img-row-013-expected.txt: Replaced FAIL by PASS expectations.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003-expected.txt: Ditto.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-003v-expected.txt: Ditto.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004-expected.txt: Ditto.
  • web-platform-tests/css/css-flexbox/image-as-flexitem-size-004v-expected.txt: Ditto.
  • web-platform-tests/css/css-sizing/percentage-height-in-flexbox.html: Updated expectation. Still failing.

Source/WebCore:

If a single-line flex container has a definite cross size, the automatic preferred outer cross size
of any stretched flex items is the flex container's inner cross size (clamped to the flex item's
min and max cross size) and is considered definite. Before that we were considering all automatic
sizes as indefinite (see https://drafts.csswg.org/css-flexbox/#definite-sizes).

This patch does not consider all the cases where the container cross size is definite but just when
that size is fixed. Support for additional cases should be added in followup patches.

This change unveiled an implementation mistake when computing content sizes for the min-size:auto case.
In those cases we were always calling computeMainAxisExtentForChild() but that does not take into
account the aspect ratio, that's why we added an additional code path which computes the content
size using computeMainSizeFromAspectRatioUsing() instead.

This fixes 8 full tests plus 24 subtests in some other flexbox aspect ratio tests from the WPT suite.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::useChildAspectRatio const): Use ternary operator to simplify code.
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): Resolve child size to container's
size if childCrossSizeShouldUseContainerCrossSize().
(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const): New method implementing
section 9.8.1 of the specs.
(WebCore::RenderFlexibleBox::childCrossSizeIsDefinite const):
(WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild): Use aspect ratio to compute cross size
also if childCrossSizeShouldUseContainerCrossSize().
(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax): Use aspect ratio specific code to compute
content size if aspect ratio should be used for child.
(WebCore::RenderFlexibleBox::adjustChildSizeForAspectRatioCrossAxisMinAndMax):

  • rendering/RenderFlexibleBox.h:

LayoutTests:

12:53 AM Changeset in webkit [273071] by youenn@apple.com
  • 5 edits in trunk

[GPUP] Test webrtc/audio-video-element-playing.html fails when media in GPU Process is enabled
https://bugs.webkit.org/show_bug.cgi?id=221844
<rdar://problem/74388532>

Reviewed by Eric Carlson.

Source/WebCore:

Move from Clock to MonotonicTime since we do not need high precision anyway for MediaPlayerPrivateMediaStreamAVFObjC.
This allows not requiring access to the underlying coreaudio clock.
Covered by updated test.

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentMediaTime const):

LayoutTests:

  • webrtc/audio-video-element-playing.html:
12:49 AM Changeset in webkit [273070] by commit-queue@webkit.org
  • 12 edits in trunk

[GTK][WPE] Implement support for CSS Scroll Snap
https://bugs.webkit.org/show_bug.cgi?id=203684

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-18
Reviewed by Carlos Garcia Campos.

.:

Add initial support for css-scroll-snap on WebKitGTK+ and WebKitWPE. This
adds support for all types of scroll snapping that WebKit supports apart
from mouse wheel snapping. Support for that will be added in a followup
change.

  • Source/cmake/OptionsGTK.cmake: Enable scroll snapping when experimental features

are enabled.

  • Source/cmake/OptionsWPE.cmake: Ditto.

Source/WebCore:

No new tests. This change unskips all cross-platform scroll-snap tests
on both platforms.

  • Headers.cmake: Add headers to header list.
  • page/scrolling/ScrollSnapOffsetsInfo.cpp:

(WebCore::findFirstSnapStopOffsetBetweenOriginAndDestination): Fix a compilation
warning that now shows up on my system.

  • platform/generic/ScrollAnimatorGeneric.cpp:

(WebCore::ScrollAnimatorGeneric::scroll): Pass the 'behavior' parameter to
the superclass call.
(WebCore::ScrollAnimatorGeneric::scrollToOffsetWithoutAnimation): Call into the super
class to update the position instead of using the special method in the subclass.
(WebCore::ScrollAnimatorGeneric::updatePosition): Also update the current snap index.
This is necessary so that changes to the scroll position also modify the currently
target snap index.

LayoutTests:

  • css3/scroll-snap/scroll-padding-mainframe-paging.html: Since the GTK+ port has

animated scrolling, we need to modify this test to support a scroll operation
that does not happen immediately.

  • platform/gtk/TestExpectations: Unskip scroll snap tests.
  • platform/wpe/TestExpectations: Ditto.
  • resources/ui-helper.js:

(window.UIHelper.waitForTargetScrollAnimationToSettle): Added a new helper that
uses rAF to detect when an animated scroll operation has finished. This is the
same strategy that the WPT tests use to detect this.

12:43 AM Changeset in webkit [273069] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Backgrounding a page that is playing and capturing audio will stop audio playing
https://bugs.webkit.org/show_bug.cgi?id=222032
<rdar://problem/74389497>

Reviewed by Eric Carlson.

When a page gets backgrounded while capturing, it will continue doing capture, as can be seen with the red status bar.
In that case, for video conferencing, it makes sense that audio being played continues playing, at least for MediaStreamTrack.
The red status bar is an indication that the call is continuing.
Also, for MediaStreamTrack, audio and video content are not buffered: they are played or discarded.
The media player, whenever not visible, will stop processing video but will continue processing audio if not interrupted.
This makes it working for websites using video elements for both audio and video, which is more common than websites using video elements for video and audio elements for audio.

Manually tested.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const):

12:38 AM Changeset in webkit [273068] by commit-queue@webkit.org
  • 5 edits in trunk

Treat <ratio> that ends with forward slash as invalid
https://bugs.webkit.org/show_bug.cgi?id=221978

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-18
Reviewed by Manuel Rego Casasnovas.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/aspect-ratio-invalid-expected.txt:
  • web-platform-tests/css/css-sizing/aspect-ratio/parsing/aspect-ratio-invalid.html:

Source/WebCore:

Treat <ratio> that ends with forward slash as invalid:
https://drafts.csswg.org/css-values-4/#ratio-value

Test: imported/w3c/web-platform-tests/css/css-sizing/aspect-ratio/parsing/aspect-ratio-invalid.html

  • css/parser/CSSPropertyParser.cpp:

(WebCore::consumeAspectRatio):

12:04 AM Changeset in webkit [273067] by graouts@webkit.org
  • 8 edits
    1 add in trunk

Page updates and rAF callbacks should run at a frequency close to 60Hz on high refresh-rate displays
https://bugs.webkit.org/show_bug.cgi?id=221673
<rdar://problem/72398605>

Reviewed by Simon Fraser.

Source/WebCore:

Up to now, page rendering updates, which can, for instance, be triggered by registering a requestAnimationFrame()
callback or having CSS Animations, CSS Transitions or Web Animations running non-accelerated, would be triggered
at the current display's refresh rate on macOS, and 60fps on iOS.

For instance, this meant that plugging in a 144Hz display on a Mac would attempt to update the page rendering at
144fps. We think it's better, for Web compatibility reasons, to try to use a page rendering update cadence that
is as close to 60fps as possible while matching a display update. This means finding the whole multiple for which
the interval between frames would be as close to that for 60Hz.

Using the 144Hz case again, this means we would shoot for 72fps, since the refresh interval for 72fps is nearest
that at 60fps than that at 48fps (another multiple of 144).

In the case where the internal preference to control whether the refresh rate for page rendering updates is
forced to 60fps, which defaults to false, we pass in the page's "nominal refresh rate" to preferredFrameInterval().
If that rate is 60fps, we use the same rate and intervals as we always have. If that rate is less than 60fps, we
use that rate as-is.

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::preferredScriptedAnimationInterval const):

  • page/Page.cpp:

(WebCore::Page::preferredRenderingUpdateInterval const):

  • platform/graphics/AnimationFrameRate.h:

(WebCore::framesPerSecondNearestFullSpeed):
(WebCore::preferredFrameInterval):
(WebCore::preferredFramesPerSecond):

Source/WTF:

Add a new internal preference to force the refresh rate for page rendering updates to 60fps
rather than use the display's refresh rate. This setting defaults to false.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

Add API tests for the methods in AnimationFrameRate.h.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/AnimationFrameRate.cpp: Added.

Feb 17, 2021:

11:59 PM Changeset in webkit [273066] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Return correct target for App Highlight menus.
https://bugs.webkit.org/show_bug.cgi?id=222089

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView targetForAction:withSender:]):

11:08 PM Changeset in webkit [273065] by Fujii Hironori
  • 6 edits
    463 adds in trunk/LayoutTests

Import CSS @counter-style WPTs
https://bugs.webkit.org/show_bug.cgi?id=222024

Patch by Tyler Wilcock <Tyler Wilcock> on 2021-02-17
Reviewed by Fujii Hironori.

LayoutTests/imported/w3c:

Import css-counter-style WPTs via Tools/Scripts/import-w3c-tests -t web-platform-tests/css/css-counter-styles
and add expectations.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-counter-styles/META.yml: Added.
  • web-platform-tests/css/css-counter-styles/README: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/css3-counter-styles-101-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/css3-counter-styles-101.html: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/css3-counter-styles-102-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/css3-counter-styles-102.html: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/css3-counter-styles-103-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/css3-counter-styles-103.html: Added.
  • web-platform-tests/css/css-counter-styles/arabic-indic/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-006-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-006.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-007-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-007.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-008-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-008.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-009-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/css3-counter-styles-009.html: Added.
  • web-platform-tests/css/css-counter-styles/armenian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/bengali/css3-counter-styles-116-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/bengali/css3-counter-styles-116.html: Added.
  • web-platform-tests/css/css-counter-styles/bengali/css3-counter-styles-117-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/bengali/css3-counter-styles-117.html: Added.
  • web-platform-tests/css/css-counter-styles/bengali/css3-counter-styles-118-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/bengali/css3-counter-styles-118.html: Added.
  • web-platform-tests/css/css-counter-styles/bengali/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/broken-symbols-expected.htm: Added.
  • web-platform-tests/css/css-counter-styles/broken-symbols.htm: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/css3-counter-styles-158-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/css3-counter-styles-158.html: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/css3-counter-styles-159-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/css3-counter-styles-159.html: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/css3-counter-styles-160-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/css3-counter-styles-160.html: Added.
  • web-platform-tests/css/css-counter-styles/cambodian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/css3-counter-styles-001-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/css3-counter-styles-001.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/css3-counter-styles-004-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/css3-counter-styles-004.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/css3-counter-styles-005-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/css3-counter-styles-005.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-decimal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/css3-counter-styles-201-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/css3-counter-styles-201.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/css3-counter-styles-202-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/css3-counter-styles-202.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/css3-counter-styles-203-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/css3-counter-styles-203.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-earthly-branch/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/css3-counter-styles-204-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/css3-counter-styles-204.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/css3-counter-styles-205-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/css3-counter-styles-205.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/css3-counter-styles-206-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/css3-counter-styles-206.html: Added.
  • web-platform-tests/css/css-counter-styles/cjk-heavenly-stem/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-additive-symbols-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-additive-symbols-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-fallback-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-fallback.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-name-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-name-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-negative-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-negative-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-pad-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-pad-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-prefix-suffix-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-prefix-suffix-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-range-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-range-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-speak-as-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-speak-as-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-symbols-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-symbols-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-system-syntax-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/counter-style-system-syntax.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-additive-symbols-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-additive-symbols-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-additive-symbols-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-additive-symbols-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-fallback-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-fallback-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-fallback-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-fallback-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-name-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-name-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-name-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-name-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-negative-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-negative-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-negative-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-negative-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-pad-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-pad-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-pad-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-pad-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-prefix-suffix-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-prefix-suffix-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-prefix-suffix-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-prefix-suffix-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-range-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-range-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-range-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-range-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-symbols-setter-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-symbols-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-symbols-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-symbols-setter.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-1-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-1.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-2-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-2.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-invalid-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-invalid.html: Added.
  • web-platform-tests/css/css-counter-styles/cssom/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/css3-counter-styles-119-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/css3-counter-styles-119.html: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/css3-counter-styles-120-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/css3-counter-styles-120.html: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/css3-counter-styles-121-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/css3-counter-styles-121.html: Added.
  • web-platform-tests/css/css-counter-styles/devanagari/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-010-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-010.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-011-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-011.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-012-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-012.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-014-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/css3-counter-styles-014.html: Added.
  • web-platform-tests/css/css-counter-styles/georgian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/css3-counter-styles-122-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/css3-counter-styles-122.html: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/css3-counter-styles-123-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/css3-counter-styles-123.html: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/css3-counter-styles-124-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/css3-counter-styles-124.html: Added.
  • web-platform-tests/css/css-counter-styles/gujarati/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/css3-counter-styles-125-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/css3-counter-styles-125.html: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/css3-counter-styles-126-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/css3-counter-styles-126.html: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/css3-counter-styles-127-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/css3-counter-styles-127.html: Added.
  • web-platform-tests/css/css-counter-styles/gurmukhi/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-015-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-015.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-016-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-016.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-016a-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-016a.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-017-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/css3-counter-styles-017.html: Added.
  • web-platform-tests/css/css-counter-styles/hebrew/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/css3-counter-styles-033-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/css3-counter-styles-033.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/css3-counter-styles-034-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/css3-counter-styles-034.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/css3-counter-styles-035-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/css3-counter-styles-035.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana-iroha/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/css3-counter-styles-030-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/css3-counter-styles-030.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/css3-counter-styles-031-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/css3-counter-styles-031.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/css3-counter-styles-032-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/css3-counter-styles-032.html: Added.
  • web-platform-tests/css/css-counter-styles/hiragana/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/idlharness-expected.txt: Added.
  • web-platform-tests/css/css-counter-styles/idlharness.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-047-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-047.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-048-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-048.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-049-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-049.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-050-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-050.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-051-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/css3-counter-styles-051.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-formal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-042-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-042.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-043-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-043.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-044-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-044.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-045-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-045.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-046-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/css3-counter-styles-046.html: Added.
  • web-platform-tests/css/css-counter-styles/japanese-informal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/kannada/css3-counter-styles-128-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/kannada/css3-counter-styles-128.html: Added.
  • web-platform-tests/css/css-counter-styles/kannada/css3-counter-styles-129-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/kannada/css3-counter-styles-129.html: Added.
  • web-platform-tests/css/css-counter-styles/kannada/css3-counter-styles-130-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/kannada/css3-counter-styles-130.html: Added.
  • web-platform-tests/css/css-counter-styles/kannada/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/css3-counter-styles-039-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/css3-counter-styles-039.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/css3-counter-styles-040-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/css3-counter-styles-040.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/css3-counter-styles-041-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/css3-counter-styles-041.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana-iroha/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/katakana/css3-counter-styles-036-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana/css3-counter-styles-036.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana/css3-counter-styles-037-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana/css3-counter-styles-037.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana/css3-counter-styles-038-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana/css3-counter-styles-038.html: Added.
  • web-platform-tests/css/css-counter-styles/katakana/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/khmer/css3-counter-styles-161-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/khmer/css3-counter-styles-161.html: Added.
  • web-platform-tests/css/css-counter-styles/khmer/css3-counter-styles-162-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/khmer/css3-counter-styles-162.html: Added.
  • web-platform-tests/css/css-counter-styles/khmer/css3-counter-styles-163-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/khmer/css3-counter-styles-163.html: Added.
  • web-platform-tests/css/css-counter-styles/khmer/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-052-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-052.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-053-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-053.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-054-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-054.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-055-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-055.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-056-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/css3-counter-styles-056.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hangul-formal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-062-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-062.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-063-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-063.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-064-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-064.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-065-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-065.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-066-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/css3-counter-styles-066.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-formal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-057-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-057.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-058-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-058.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-059-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-059.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-060-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-060.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-061-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/css3-counter-styles-061.html: Added.
  • web-platform-tests/css/css-counter-styles/korean-hanja-informal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/lao/css3-counter-styles-131-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lao/css3-counter-styles-131.html: Added.
  • web-platform-tests/css/css-counter-styles/lao/css3-counter-styles-132-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lao/css3-counter-styles-132.html: Added.
  • web-platform-tests/css/css-counter-styles/lao/css3-counter-styles-133-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lao/css3-counter-styles-133.html: Added.
  • web-platform-tests/css/css-counter-styles/lao/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-111-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-111.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-112-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-112.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-114-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-114.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-115-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/css3-counter-styles-115.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-armenian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/css3-counter-styles-027-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/css3-counter-styles-027.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/css3-counter-styles-028-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/css3-counter-styles-028.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/css3-counter-styles-029-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/css3-counter-styles-029.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-greek/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-019-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-019.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-020-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-020.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-020a-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-020a.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-020b-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-020b.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-021-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-021.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-022-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/css3-counter-styles-022.html: Added.
  • web-platform-tests/css/css-counter-styles/lower-roman/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/css3-counter-styles-134-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/css3-counter-styles-134.html: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/css3-counter-styles-135-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/css3-counter-styles-135.html: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/css3-counter-styles-136-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/css3-counter-styles-136.html: Added.
  • web-platform-tests/css/css-counter-styles/malayalam/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/css3-counter-styles-137-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/css3-counter-styles-137.html: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/css3-counter-styles-138-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/css3-counter-styles-138.html: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/css3-counter-styles-139-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/css3-counter-styles-139.html: Added.
  • web-platform-tests/css/css-counter-styles/mongolian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/css3-counter-styles-140-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/css3-counter-styles-140.html: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/css3-counter-styles-141-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/css3-counter-styles-141.html: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/css3-counter-styles-142-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/css3-counter-styles-142.html: Added.
  • web-platform-tests/css/css-counter-styles/myanmar/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/oriya/css3-counter-styles-143-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/oriya/css3-counter-styles-143.html: Added.
  • web-platform-tests/css/css-counter-styles/oriya/css3-counter-styles-144-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/oriya/css3-counter-styles-144.html: Added.
  • web-platform-tests/css/css-counter-styles/oriya/css3-counter-styles-145-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/oriya/css3-counter-styles-145.html: Added.
  • web-platform-tests/css/css-counter-styles/oriya/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/persian/css3-counter-styles-104-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/persian/css3-counter-styles-104.html: Added.
  • web-platform-tests/css/css-counter-styles/persian/css3-counter-styles-105-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/persian/css3-counter-styles-105.html: Added.
  • web-platform-tests/css/css-counter-styles/persian/css3-counter-styles-106-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/persian/css3-counter-styles-106.html: Added.
  • web-platform-tests/css/css-counter-styles/persian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-076-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-076.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-077-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-077.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-078-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-078.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-079-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-079.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-080-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/css3-counter-styles-080.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-formal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-071-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-071.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-072-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-072.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-073-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-073.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-074-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-074.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-075-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/css3-counter-styles-075.html: Added.
  • web-platform-tests/css/css-counter-styles/simp-chinese-informal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/support/counter-style-testcommon.js: Added.

(test_counter_style_descriptor):
(test_valid_counter_style_descriptor):
(test_invalid_counter_style_descriptor):
(test_counter_style_name):
(test_valid_name):
(test_invalid_name):

  • web-platform-tests/css/css-counter-styles/support/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/tamil/css3-counter-styles-146-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/tamil/css3-counter-styles-146.html: Added.
  • web-platform-tests/css/css-counter-styles/tamil/css3-counter-styles-147-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/tamil/css3-counter-styles-147.html: Added.
  • web-platform-tests/css/css-counter-styles/tamil/css3-counter-styles-148-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/tamil/css3-counter-styles-148.html: Added.
  • web-platform-tests/css/css-counter-styles/tamil/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/telugu/css3-counter-styles-149-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/telugu/css3-counter-styles-149.html: Added.
  • web-platform-tests/css/css-counter-styles/telugu/css3-counter-styles-150-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/telugu/css3-counter-styles-150.html: Added.
  • web-platform-tests/css/css-counter-styles/telugu/css3-counter-styles-151-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/telugu/css3-counter-styles-151.html: Added.
  • web-platform-tests/css/css-counter-styles/telugu/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/thai/css3-counter-styles-152-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/thai/css3-counter-styles-152.html: Added.
  • web-platform-tests/css/css-counter-styles/thai/css3-counter-styles-153-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/thai/css3-counter-styles-153.html: Added.
  • web-platform-tests/css/css-counter-styles/thai/css3-counter-styles-154-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/thai/css3-counter-styles-154.html: Added.
  • web-platform-tests/css/css-counter-styles/thai/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-155-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-155.html: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-156-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-156.html: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-157-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/css3-counter-styles-157.html: Added.
  • web-platform-tests/css/css-counter-styles/tibetan/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-086-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-086.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-087-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-087.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-088-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-088.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-089-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-089.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-090-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/css3-counter-styles-090.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-formal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-081-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-081.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-082-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-082.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-083-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-083.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-084-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-084.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-085-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/css3-counter-styles-085.html: Added.
  • web-platform-tests/css/css-counter-styles/trad-chinese-informal/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-107-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-107.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-108-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-108.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-109-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-109.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-110-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/css3-counter-styles-110.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-armenian/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-023-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-023.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-024-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-024.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-024a-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-024a.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-025-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-025.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-026-expected.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/css3-counter-styles-026.html: Added.
  • web-platform-tests/css/css-counter-styles/upper-roman/w3c-import.log: Added.
  • web-platform-tests/css/css-counter-styles/w3c-import.log: Added.

LayoutTests:

css-counter-style WPTs.

10:53 PM Changeset in webkit [273064] by Peng Liu
  • 2 edits in trunk/Source/WebKit

[GPUP] Remove RemoteLegacyCDMSessionProxy and RemoteLegacyCDMSessionProxy from the message receiver map in the destructor of RemoteLegacyCDMFactoryProxy
https://bugs.webkit.org/show_bug.cgi?id=222079

Reviewed by Jer Noble.

Fix a GPU process crash when running http/tests/navigation/parsed-iframe-dynamic-form-back-entry.html.

  • GPUProcess/media/RemoteLegacyCDMFactoryProxy.cpp:

(WebKit::RemoteLegacyCDMFactoryProxy::~RemoteLegacyCDMFactoryProxy):

9:48 PM Changeset in webkit [273063] by Fujii Hironori
  • 3 edits in trunk/Source/WebKit

[CoordinatedGraphics] The whole content is unnecessarily repainted by animations in non-AC mode pages
https://bugs.webkit.org/show_bug.cgi?id=221391

Reviewed by Carlos Garcia Campos.

When triggerRenderingUpdate was called back, it added the whole
view area into the dirty region to repaint in non-AC mode pages.
This caused a problem that the whole content was unnecessarily
repainted by animations in non-AC mode pages.

Call scheduleDisplay instead of setNeedsDisplay in
triggerRenderingUpdate.

However, if the dirty region is empty, display() exited early. If
triggerRenderingUpdate is called back,
DrawingAreaCoordinatedGraphics::display should be called to ensure
WebPage::updateRendering() called even if m_dirtyRegion is empty.

Added a new flag m_scheduledWhileWaitingForDidUpdate.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::triggerRenderingUpdate):
Call scheduleDisplay() instead of setNeedsDisplay().
(WebKit::DrawingAreaCoordinatedGraphics::didUpdate):
(WebKit::DrawingAreaCoordinatedGraphics::scheduleDisplay): Don't
return early even if m_dirtyRegion is empty.
(WebKit::DrawingAreaCoordinatedGraphics::display()): Ditto.
(WebKit::DrawingAreaCoordinatedGraphics::display(UpdateInfo&)):
Return early if m_dirtyRegion is empty.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.h:

Added m_scheduledWhileWaitingForDidUpdate.

9:06 PM Changeset in webkit [273062] by Chris Dumez
  • 176 edits in trunk

Reduce explicit usage of [objC autorelease] in WebKit even further
https://bugs.webkit.org/show_bug.cgi?id=222060

Reviewed by Darin Adler.

Reduce explicit usage of [objC autorelease] in WebKit further by using RetainPtr.

Source/WebKit:

  • UIProcess/Cocoa/SafeBrowsingWarningCocoa.mm:

(WebKit::safeBrowsingDetailsText):

  • UIProcess/WebAuthentication/Mock/MockNfcService.mm:

(WebKit::MockNfcService::transceive):

  • UIProcess/ios/DragDropInteractionState.mm:

(WebKit::DragDropInteractionState::updatePreviewsForActiveDragSources):

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(-[WKSwipeTransitionController gestureRecognizerForInteractiveTransition:WithTarget:action:]):

  • UIProcess/ios/WKActionSheetAssistant.mm:

(appLinkForURL):

  • UIProcess/ios/WKContentViewInteraction.mm:

(ensureLocalDragSessionContext):
(-[WKContentView insertTextPlaceholderWithSize:completionHandler:]):
(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView _dataForPreviewItemController:atPosition:type:]):
(-[WKContentView _presentedViewControllerForPreviewItemController:]):
(-[WKContentView _presentationSnapshotForPreviewItemController:]):
(+[WKTextRange textRangeWithState:isRange:isEditable:startRect:endRect:selectionRects:selectedTextLength:]):
(+[WKTextPosition textPositionWithRect:]):

  • UIProcess/ios/WKTextPlaceholder.mm:

(-[WKTextPlaceholder rects]):

  • UIProcess/ios/WKWebEvent.mm:

(-[WKWebEvent initWithEvent:]):

  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:

(-[WKDataListSuggestionsPopover showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsViewController tableView:cellForRowAtIndexPath:]):

  • UIProcess/ios/forms/WKDatePickerViewController.mm:

(-[WKDatePickerViewController _dateComponentForDay:month:year:era:]):

  • UIProcess/ios/forms/WKFormSelectPicker.mm:

(-[WKOptionPickerCell initWithOptionItem:]):
(-[WKOptionGroupPickerCell initWithOptionItem:]):
(-[WKMultipleSelectPicker pickerView:viewForRow:forComponent:reusingView:]):
(-[WKSelectSinglePicker pickerView:attributedTitleForRow:forComponent:]):
(-[WKSelectPickerTableViewController tableView:viewForHeaderInSection:]):
(-[WKSelectPickerTableViewController tableView:cellForRowAtIndexPath:]):

  • UIProcess/ios/forms/WKFormSelectPopover.mm:

(-[WKSelectTableViewController tableView:cellForRowAtIndexPath:]):
(-[WKSelectPopover initWithView:hasGroups:]):

  • UIProcess/ios/forms/WKNumberPadView.mm:

(-[WKNumberPadView _buttonForPosition:]):

  • UIProcess/ios/forms/WKNumberPadViewController.mm:

(-[WKNumberPadViewController _handleKeyPress:]):

  • UIProcess/ios/forms/WKQuickboardListViewController.mm:

(-[WKQuickboardListViewController actionController]):

  • UIProcess/ios/forms/WKTextInputListViewController.mm:

(-[WKTextInputListViewController enterText:]):

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController enterFullScreen]):

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController _defaultAnimationController]):

  • UIProcess/mac/WKTextInputWindowController.mm:

(-[WKTextInputPanel _interpretKeyEvent:usingLegacyCocoaTextInput:string:]):

  • UIProcess/mac/WKViewLayoutStrategy.mm:

(+[WKViewLayoutStrategy layoutStrategyWithPage:view:viewImpl:mode:]):

  • UIProcess/mac/WebColorPickerMac.mm:

(-[WKColorPopoverMac setAndShowPicker:withColor:suggestions:]):

  • UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(-[WKDataListSuggestionsController tableView:rowViewForRow:]):
(-[WKDataListSuggestionsController tableView:viewForTableColumn:row:]):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:

(-[WKWebProcessPlugInFrame _certificateChain]):

  • WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm:

(-[WKWebProcessPlugInNodeHandle renderedImageWithOptions:width:]):

  • WebProcess/InjectedBundle/API/mac/WKDOMDocument.mm:

(-[WKDOMDocument parserYieldToken]):

  • WebProcess/InjectedBundle/API/mac/WKDOMInternals.mm:

(WebKit::toWKDOMType):

  • WebProcess/InjectedBundle/API/mac/WKDOMRange.mm:

(-[WKDOMRange rangeByExpandingToWordBoundaryByCharacters:inDirection:]):

  • WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:

(-[WKWebProcessPlugInBrowserContextController handle]):

  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::platformInitialize):

Source/WebKitLegacy/ios:

  • WebCoreSupport/WebSelectionRect.m:

(+[WebSelectionRect selectionRect]):

  • WebCoreSupport/WebVisiblePosition.mm:
  • WebView/WebPDFViewIOS.mm:

(-[WebPDFView _checkPDFTitle]):

Source/WebKitLegacy/mac:

  • DOM/DOM.mm:

(kit):

  • DOM/DOMAbstractView.mm:

(kit):

  • DOM/DOMBlob.mm:

(kit):

  • DOM/DOMCSSRule.mm:

(kit):

  • DOM/DOMCSSRuleList.mm:

(kit):

  • DOM/DOMCSSStyleDeclaration.mm:

(kit):

  • DOM/DOMCSSValue.mm:

(kit):

  • DOM/DOMCounter.mm:

(kit):

  • DOM/DOMEvent.mm:

(kit):

  • DOM/DOMFileList.mm:

(kit):

  • DOM/DOMHTMLCollection.mm:

(kit):

  • DOM/DOMHTMLOptionsCollection.mm:

(kit):

  • DOM/DOMImplementation.mm:

(kit):

  • DOM/DOMMediaError.mm:

(kit):

  • DOM/DOMMediaList.mm:

(kit):

  • DOM/DOMNamedNodeMap.mm:

(kit):

  • DOM/DOMNode.mm:

(kit):

  • DOM/DOMNodeIterator.mm:

(kit):

  • DOM/DOMNodeList.mm:

(kit):

  • DOM/DOMRGBColor.mm:

(kit):

  • DOM/DOMRange.mm:

(kit):

  • DOM/DOMRect.mm:

(kit):

  • DOM/DOMStyleSheet.mm:

(kit):

  • DOM/DOMStyleSheetList.mm:

(kit):

  • DOM/DOMTimeRanges.mm:

(kit):

  • DOM/DOMTokenList.mm:

(kit):

  • DOM/DOMTreeWalker.mm:

(kit):

  • DOM/DOMXPath.mm:

(kit):

  • DOM/DOMXPathExpression.mm:

(kit):

  • DOM/DOMXPathResult.mm:

(kit):

  • DOM/WebDOMOperations.mm:

(-[DOMNode webArchive]):
(-[DOMNode webArchiveByFilteringSubframes:]):
(-[DOMRange webArchive]):

  • DefaultDelegates/WebDefaultContextMenuDelegate.mm:

(-[WebDefaultUIDelegate menuItemWithTag:target:representedObject:]):

  • History/WebBackForwardList.mm:

(kit):
(-[WebBackForwardList addItem:]):
(-[WebBackForwardList backItem]):
(-[WebBackForwardList currentItem]):
(-[WebBackForwardList forwardItem]):
(-[WebBackForwardList itemAtIndex:]):

  • History/WebHistory.mm:

(-[WebHistoryPrivate data]):

  • History/WebHistoryItem.mm:

(kit):
(+[WebHistoryItem entryWithURL:]):

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _webkit_stringByTrimmingWhitespace]):

  • Misc/WebNSDataExtras.mm:

(-[NSData _webkit_parseRFC822HeaderFields]):

  • Misc/WebNSObjectExtras.mm:

(-[WebMainThreadInvoker forwardInvocation:]):
(-[WebMainThreadInvoker handleException:]):
(+[NSObject _webkit_invokeOnMainThread]):
(-[NSObject _webkit_invokeOnMainThread]):

  • Misc/WebNSURLExtras.mm:

(-[NSURL _web_originalDataAsString]):
(-[NSURL _web_hostString]):

  • Plugins/Hosted/HostedNetscapePluginStream.mm:

(WebKit::HostedNetscapePluginStream::pluginCancelledConnectionError const):

  • Plugins/WebBasePluginPackage.mm:

(+[WebBasePluginPackage pluginWithPath:]):

  • Plugins/WebNetscapePluginStream.mm:

(WebNetscapePluginStream::pluginCancelledConnectionError const):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView sendEvent:isDrawRect:]):

  • Plugins/WebPluginContainerCheck.mm:

(+[WebPluginContainerCheck checkWithRequest:target:resultObject:selector:controller:contextInfo:]):

  • Plugins/WebPluginDatabase.mm:

(-[WebPluginDatabase _plugInPaths]):

  • WebCoreSupport/WebEditorClient.mm:

(+[WebUndoStep stepWithUndoStep:]):

  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::convertMainResourceLoadToDownload):
(makeFormFieldValuesDictionary):
(WebFrameLoaderClient::pluginWillHandleLoadError const):
(WebFrameLoaderClient::createPlugin):

  • WebCoreSupport/WebInspectorClient.mm:

(-[WebInspectorWindowController webView:contextMenuItemsForElement:defaultMenuItems:]):

  • WebCoreSupport/WebSecurityOrigin.mm:
  • WebView/WebArchive.mm:

(-[WebArchive data]):

  • WebView/WebDataSource.mm:

(-[WebDataSource _fileWrapperForURL:]):
(-[WebDataSource webArchive]):
(-[WebDataSource mainResource]):
(-[WebDataSource subresourceForURL:]):

  • WebView/WebDeviceOrientationProviderMock.mm:

(-[WebDeviceOrientationProviderMockInternal lastOrientation]):

  • WebView/WebFrame.mm:

(-[WebFrame elementAtPoint:]):
(-[WebFrame parentFrame]):

  • WebView/WebFrameView.mm:

(-[WebFrameView initWithFrame:]):
(-[WebFrameView _setCustomScrollViewClass:]):

  • WebView/WebHTMLRepresentation.mm:

(-[WebHTMLRepresentation documentSource]):
(-[WebHTMLRepresentation attributedStringFrom:startOffset:to:endOffset:]):

  • WebView/WebHTMLView.mm:

(+[WebHTMLView _excludedElementsForAttributedStringConversion]):
(-[WebHTMLView _plainTextFromPasteboard:]):
(-[WebHTMLView view:stringForToolTip:point:userData:]):
(-[WebHTMLView rightMouseUp:]):
(-[WebHTMLView menuForEvent:]):
(-[WebHTMLView scrollWheel:]):
(-[WebHTMLView acceptsFirstMouse:]):
(-[WebHTMLView shouldDelayWindowOrderingForEvent:]):
(-[WebHTMLView mouseDown:]):
(-[WebHTMLView mouseDragged:]):
(-[WebHTMLView namesOfPromisedFilesDroppedAtDestination:]):
(-[WebHTMLView mouseUp:]):
(-[WebHTMLView keyDown:]):
(-[WebHTMLView keyUp:]):
(-[WebHTMLView flagsChanged:]):
(-[WebHTMLView _fontAttributesFromFontPasteboard]):
(-[WebHTMLView performKeyEquivalent:]):
(-[WebHTMLView textStorage]):
(-[WebHTMLView pasteboardTypesForSelection]):
(-[WebHTMLView _legacyAttributedStringFrom:offset:to:offset:]):
(-[WebHTMLView attributedString]):
(-[WebHTMLView selectedAttributedString]):
(-[WebHTMLView elementAtPoint:allowShadowContent:]):

  • WebView/WebImmediateActionController.mm:

(-[WebImmediateActionController _defaultAnimationController]):

  • WebView/WebNotification.mm:

(-[WebNotification origin]):

  • WebView/WebPDFView.mm:

(-[WebPDFView selectionImageForcingBlackText:]):
(-[WebPDFView _scaledAttributedString:]):

  • WebView/WebResource.mm:

(-[WebResource _initWithData:URL:MIMEType:textEncodingName:frameName:response:copyData:]):
(-[WebResource _fileWrapperRepresentation]):
(-[WebResource _response]):

  • WebView/WebScriptWorld.mm:

(+[WebScriptWorld world]):
(+[WebScriptWorld findOrCreateWorld:]):

  • WebView/WebVideoFullscreenController.mm:

(-[WebVideoFullscreenController init]):

  • WebView/WebView.mm:

(-[WebView _menuForElement:defaultItems:]):
(+[WebView _registerViewClass:representationClass:forURLScheme:]):
(-[WebView _displayURL]):
(-[WebView textIteratorForRect:]):
(+[WebView MIMETypesShownAsHTML]):

Tools:

  • DumpRenderTree/ios/DumpRenderTreeBrowserView.mm:

(-[DumpRenderTreeWebScrollView initWithFrame:]):

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(createJSStringRef):

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow):
(dumpFramesAsText):
(dump):

  • DumpRenderTree/mac/DumpRenderTreeWindow.mm:
  • DumpRenderTree/mac/EventSendingController.mm:

(+[SyntheticTouch touchWithLocation:phase:identifier:]):
(-[EventSendingController beginDragWithFiles:]):
(+[EventSendingController replaySavedEvents]):

  • DumpRenderTree/mac/PolicyDelegate.mm:

(dispositionTypeFromContentDispositionHeader):

  • DumpRenderTree/mac/ResourceLoadDelegate.mm:

(-[ResourceLoadDelegate webView:resource:willSendRequest:redirectResponse:fromDataSource:]):

  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate webView:createWebViewWithRequest:]):

  • TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:

(+[EventSerializer dictionaryForEvent:relativeToTime:]):

  • TestRunnerShared/cocoa/LayoutTestSpellChecker.mm:

(-[LayoutTestSpellChecker setResultsFromJSValue:inContext:]):

  • TestWebKitAPI/Tests/JavaScriptCore/JSRunLoopTimer.mm:

(TestWebKitAPI::triggerGC):

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

(TestWebKitAPI::WebCoreNSURLSessionTest::SetUp):

  • TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit/mac/ContextMenuImgWithVideo.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/BundleEditingDelegate.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/BundleFormDelegatePlugIn.mm:

(-[BundleFormDelegatePlugIn _webProcessPlugInBrowserContextController:willBeginInputSessionForElement:inFrame:userIsInteracting:]):

  • TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:

(TEST):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ClipboardTests.mm:

(readMarkupFromPasteboard):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:

(-[ContentRuleListNotificationDelegate webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:

(-[TestContextMenuUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuAPIBeforeSPIUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):
(-[TestContextMenuSuggestedActionsUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:

(readHTMLStringFromPasteboard):

  • TestWebKitAPI/Tests/WebKitCocoa/DeviceManagementRestrictions.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Download.mm:

(TestWebKitAPI::webViewWithDownloadMonitorSpeedMultiplier):
(TestWebKitAPI::mutateFile):

  • TestWebKitAPI/Tests/WebKitCocoa/EventAttribution.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacy.mm:

(-[InAppBrowserSchemeHandler webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBMultiProcess.mm:

(getNextMessage):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBStructuredCloneBackwardCompatibility.mm:

(getNextMessage):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBTempFileSize.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/JITEnabled.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/LocalStorageDatabaseTracker.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NavigationAction.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/NetworkProcessCrashNonPersistentDataStore.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/Preferences.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/Proxy.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/RemoteObjectRegistry.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ReparentWebViewTimeout.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadDelegate.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):
(-[ResourceLoadStatisticsSchemeHandler webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/SafeBrowsing.mm:

(+[TestServiceLookupResult resultWithProvider:phishing:malware:unwantedSoftware:]):
(+[TestLookupResult resultWithResults:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

(-[SWCustomUserAgentDelegate _webView:decidePolicyForNavigationAction:preferences:userInfo:decisionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/StorageQuota.mm:
  • TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:

(TestWebKitAPI::makeWebViewWith):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/TextManipulation.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:

(TEST):
(-[UITestDelegate webView:startURLSchemeTask:]):
(-[ModalDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentController.mm:

(webViewForScriptMessageHandlerMultipleHandlerRemovalTest):
(TEST):
(-[AsyncScriptMessageHandler userContentController:didReceiveScriptMessage:replyHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/UserContentWorld.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(platformCopyRichTextWithImage):
(platformImageWithData):

  • TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:

(-[UIDelegate _webView:configurationForLocalInspector:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-1.mm:

(-[TaskSchemeHandler webView:startURLSchemeTask:]):
(-[SyncErrorScheme webView:startURLSchemeTask:]):
(-[FrameSchemeHandler webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebGLPolicy.mm:

(-[WebGLTestDelegate webView:startURLSchemeTask:]):

  • TestWebKitAPI/Tests/WebKitCocoa/WebProcessKillIDBCleanup.mm:

(getNextMessage):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(getNextMessage):
(runWebsiteDataStoreCustomPaths):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm:

(-[ContentBlockingWebsitePoliciesDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[AutoplayPoliciesDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[AsyncAutoplayPoliciesDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(TEST):
(-[TestSchemeHandler webView:startURLSchemeTask:]):
(respond):
(-[CustomHeaderFieldsDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):
(-[CustomUserAgentDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[CustomJavaScriptUserAgentDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[CustomNavigatorPlatformDelegate _webView:decidePolicyForNavigationAction:userInfo:decisionHandler:]):
(-[WebsitePoliciesDeviceOrientationDelegate _webView:decidePolicyForNavigationAction:preferences:userInfo:decisionHandler:]):
(-[PopUpPoliciesDelegate _webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[WebsitePoliciesWebsiteDataStoreDelegate webView:decidePolicyForNavigationAction:preferences:decisionHandler:]):

  • TestWebKitAPI/Tests/WebKitCocoa/iOSMouseSupport.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitLegacy/ios/DateTimeInputsAccessoryViewTests.mm:

(cellForRowAtIndexPath):

  • TestWebKitAPI/Tests/ios/ActionSheetTests.mm:

(TestWebKitAPI::swizzledResizableSnapshotViewFromRect):

  • TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/InspectorBar.mm:

(-[InspectorBarController convertAttributes:]):

  • TestWebKitAPI/Tests/mac/JavascriptURLNavigation.mm:

(-[JavascriptURLNavigationDelegate webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:]):

  • TestWebKitAPI/Tests/mac/LegacyDragAndDropTests.mm:

(+[FrameLoadCompletionListener listenerWithCompletionBlock:]):
(TestWebKitAPI::getTestImage):

  • TestWebKitAPI/Tests/mac/MemoryPressureHandler.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/mac/WKWebViewMacEditingTests.mm:

(TEST):

  • TestWebKitAPI/Tests/mac/WebViewIconLoading.mm:

(imageFromData):

  • TestWebKitAPI/cocoa/TestProtocol.mm:

(additionalResponseHeaders):
(+[TestProtocol additionalResponseHeaders]):
(+[TestProtocol setAdditionalResponseHeaders:]):
(-[TestProtocol startLoading]):

  • TestWebKitAPI/cocoa/TestWKWebView.mm:

(-[WKWebView objectByCallingAsyncFunction:withArguments:error:]):
(-[TestWKWebView initWithFrame:]):
(-[TestWKWebView initWithFrame:configuration:processPoolConfiguration:]):

  • TestWebKitAPI/ios/DragAndDropSimulatorIOS.mm:

(-[MockDropSession initWithProviders:location:window:allowMove:]):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator _webView:willUpdateDropProposalToProposal:forSession:]):

  • TestWebKitAPI/mac/DragAndDropSimulatorMac.mm:

(defaultExternalDragImage):
(-[DragAndDropSimulator initWithWebViewFrame:configuration:]):
(-[DragAndDropSimulator runFrom:to:]):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::createJSStringRef):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformInitializeDataStore):
(WTR::TestController::platformCreateOtherPage):

  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(-[HIDEventGenerator sendEventStream:completionBlock:]):

8:33 PM Changeset in webkit [273061] by achristensen@apple.com
  • 7 edits in trunk

Fix a few issues with RangeResponseGenerator
https://bugs.webkit.org/show_bug.cgi?id=222087

Reviewed by Jer Noble.

Source/WebCore:

When it was enabled from r272908 to r273033 serveral issues were found and it was disabled until I fixed them.

The first was that RangeResponseGenerator was owned direclty by the WebCoreNSURLSession which is often deallocated on a non-main thread,
which caused all kinds of problems with the Strings and AtomStrings that are owned by its structures.
This was fixed by using WTF::DestructionThread::Main and I added assertions in the constructor and destructor.

The second was that WebCoreNSURLSessionDataTask's dealloc is casting _resource->client() to a WebCoreNSURLSessionDataTaskClient* and calling clearTask on it,
which writes null to that memory. Before r272908 it was a good assumption that the client was always a WebCoreNSURLSessionDataTaskClient, so there was no problem.
Since then, though, it could be a MediaResourceClient. The frustrating thing is that those two clients have the same size (32 bytes) so there was no out-of-bounds
memory writes, so ASAN wasn't seeing anything wrong. I was just seeing 0's written randomly to my client's data. I solved this by setting _resource to null when
the RangeResponseGenerator adopts the resource and client, so WebCoreNSURLSessionDataTask's dealloc won't do anything with it any more.

The third was that when the media stack calls WebCoreNSURLSessionDataTask's cancel, we were not removing the task from the RangeResponseGenerator's structures.
I noticed that when looking at logs, and added a call to removeTask.

Before fixing these three things, about 2/3 of the time I couldn't watch a real video on the real internet successfully. Now, I can about 95% of the time with my
test video, which responds with an HTTP 503 about 5% of the time, and there's nothing I can do about that. There were also some flaky tests that exercised these paths,
which have passed for me locally almost 2000 times without any failures.

  • platform/network/cocoa/RangeResponseGenerator.h:

(WebCore::RangeResponseGenerator::create):

  • platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::RangeResponseGenerator::RangeResponseGenerator):
(WebCore::RangeResponseGenerator::~RangeResponseGenerator):
(WebCore::RangeResponseGenerator::removeTask):
(WebCore::RangeResponseGenerator::giveResponseToTaskIfBytesInRangeReceived):
(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):

  • platform/network/cocoa/WebCoreNSURLSession.h:
  • platform/network/cocoa/WebCoreNSURLSession.mm:

(-[WebCoreNSURLSession initWithResourceLoader:delegate:delegateQueue:]):
(-[WebCoreNSURLSession rangeResponseGenerator]):
(-[WebCoreNSURLSessionDataTask _cancel]):
(-[WebCoreNSURLSessionDataTask resource:receivedResponse:completionHandler:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

8:27 PM Changeset in webkit [273060] by Lauro Moura
  • 2 edits in trunk/Tools

[GTK] Gardening most common EWS flakiness

Unreviewed test gardening.

Flakiness happening mostly on a single bot. Marking them temporarily
as flaky until investigation is performed.

  • TestWebKitAPI/glib/TestExpectations.json:
7:02 PM Changeset in webkit [273059] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

[Python-3] Child process environment on Windows can only contain strings
https://bugs.webkit.org/show_bug.cgi?id=222012
<rdar://problem/74437205>

Unreviewed test runner fix.

Use old Python 2 behavior of encoding when running with that version.

  • Scripts/webkitpy/common/system/executive.py:

(Executive.popen):

6:48 PM Changeset in webkit [273058] by mark.lam@apple.com
  • 4 edits in trunk/Source

Build fix for Debug builds using --force-opt=O3.

Not reviewed.

#include a needed Inlines.h.

Source/WebCore:

  • editing/markup.cpp:

Source/WebKit:

  • Platform/IPC/JSIPCBinding.cpp:
6:33 PM Changeset in webkit [273057] by don.olmstead@sony.com
  • 3 edits in trunk/Tools

_W3CTestConverter tests don't run on Windows
https://bugs.webkit.org/show_bug.cgi?id=221855

Reviewed by Jonathan Bedard.

In _W3CTestConverter it retrieves a relative path and then uses that to populate a
regular expression. On Windows the path separator is \ which causes a re.error due to
a bad escape. Normalize the path to use / in this code.

  • Scripts/webkitpy/w3c/test_converter.py:

(_W3CTestConverter.init):

  • Scripts/webkitpy/w3c/test_converter_unittest.py:

(W3CTestConverterTest.verify_test_harness_paths):

6:26 PM Changeset in webkit [273056] by Chris Dumez
  • 2 edits in trunk/Source/WTF

Unreviewed, address post-landing review comments from Darin Adler for r273046.

  • wtf/Forward.h:
5:57 PM Changeset in webkit [273055] by Kate Cheney
  • 4 edits in trunk/Source/WebKit

Add additions to LocalConnection.mm
https://bugs.webkit.org/show_bug.cgi?id=222029
<rdar://problem/69031303>

Reviewed by Jiewen Tan.

  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.h:
  • UIProcess/WebAuthentication/Cocoa/AuthenticationServicesCoreSoftLink.mm:
  • UIProcess/WebAuthentication/Cocoa/LocalConnection.mm:

(WebKit::LocalConnection::createCredentialPrivateKey const):

5:46 PM Changeset in webkit [273054] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r273019.

GTK port layout tests are timint out.

Reverted changeset:

"[CoordinatedGraphics] The whole content is unnecessarily
repainted by animations in non-AC mode pages"
https://bugs.webkit.org/show_bug.cgi?id=221391
https://commits.webkit.org/r273019

5:24 PM Changeset in webkit [273053] by Alan Coon
  • 1 copy in tags/Safari-611.1.19

Tag Safari-611.1.19.

5:21 PM Changeset in webkit [273052] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.20

5:19 PM Changeset in webkit [273051] by Alan Coon
  • 46 edits in branches/safari-611-branch

Cherry-pick r272345. rdar://problem/74195248

[WebAuthn] Allow one user gesture free prompt for each navigation
https://bugs.webkit.org/show_bug.cgi?id=220897
<rdar://problem/73541303>

Reviewed by Brent Fulgham.

Source/WebCore:

  • Modules/webauthn/AuthenticatorCoordinator.cpp: (WebCore::AuthenticatorCoordinator::resetUserGestureRequirement):
  • Modules/webauthn/AuthenticatorCoordinator.h:
  • Modules/webauthn/AuthenticatorCoordinatorClient.h:
  • page/Quirks.cpp:
  • page/Quirks.cpp.h:
  • replay/UserInputBridge.cpp: (WebCore::UserInputBridge::loadRequest): (WebCore::UserInputBridge::reloadFrame): Adds the ability to reset the user gesture requirement flag for user initiated reloads and quirks.

Source/WebKit:

This is a quirk that only allows certain websites.

Covered by existing tests.

  • UIProcess/WebAuthentication/AuthenticatorManager.cpp: (WebKit::AuthenticatorManager::filterTransports const): (WebKit::AuthenticatorManager::runPanel): (WebKit::AuthenticatorManager::runPresenter): Cancel the whole WebAuthn operation if no user gesture is indicated.
  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: (WebKit::WebAuthenticatorCoordinator::makeCredential): (WebKit::WebAuthenticatorCoordinator::getAssertion):
  • WebProcess/WebAuthentication/WebAuthenticatorCoordinator.h: Set a boolean to indicate a free coupon for each navigation.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST):

LayoutTests:

  • http/wpt/webauthn/ctap-hid-failure.https-expected.txt:
  • http/wpt/webauthn/ctap-hid-success.https-expected.txt:
  • http/wpt/webauthn/ctap-nfc-failure.https-expected.txt:
  • http/wpt/webauthn/idl.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-hid-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-local-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-u2f-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure-u2f.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-create-success-u2f.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-hid-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-local-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-u2f-silent.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure-u2f.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-failure.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-hid.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-local.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-nfc.https-expected.txt:
  • http/wpt/webauthn/public-key-credential-get-success-u2f.https-expected.txt:

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

5:13 PM Changeset in webkit [273050] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

media/track/track-in-band-style.html needs to be rebaselined after changes in r272055
https://bugs.webkit.org/show_bug.cgi?id=221835

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-17

  • media/track/track-in-band-style-expected.txt: rebaseline
5:10 PM Changeset in webkit [273049] by Aditya Keerthi
  • 22 edits
    5 adds in trunk

[iOS][FCR] Add new datalist dropdown for text inputs
https://bugs.webkit.org/show_bug.cgi?id=222008
<rdar://problem/74410513>

Reviewed by Wenson Hsieh.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

Add missing file to project.

  • css/formControlsIOS.css:

(input::-webkit-list-button):

Slightly reduce the size of the button.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::isFocusingWithDataListDropdown const):

  • html/HTMLInputElement.h:
  • html/InputType.h:

(WebCore::InputType::isFocusingWithDataListDropdown const):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::shouldOnlyShowDataListDropdownButtonWhenFocusedOrEdited const):

The new datalist appearance always has the dropdown button visible.

(WebCore::TextFieldInputType::dataListButtonElementWasClicked):

Ensure clicking the datalist button sets the selection to end of the
input. Set the isFocusingWithDataListDropdown flag so that the keyboard
view can be suppressed when showing the dropdown.

(WebCore::TextFieldInputType::isFocusingWithDataListDropdown const):

  • html/TextFieldInputType.h:

Source/WebKit:

The new datalist dropdown appears as a popover on both iPhones and iPads.
Previously, iPhones displayed a UIPickerView when tapping on the datalist
button, while iPads displayed a popover. Furthermore, the datalist button
was only visible after focusing the field. Now, the button can be used at
any time.

If the dropdown is presented while the software keyboard is visible, the
keyboard will be dismissed to create space for the dropdown. On devices
with a hardware keyboard, the dropdown is updated as characters are typed.

Tests: fast/forms/ios/form-control-refresh/datalist/datalist-show-hide.html

fast/forms/ios/form-control-refresh/datalist/datalist-textinput-suggestions-order.html

  • Platform/spi/ios/UIKitSPI.h:

Added SPI declarations to configure the presentation of the presented
dropdown and to check whether the keyboard is visible.

  • Shared/FocusedElementInformation.cpp:

(WebKit::FocusedElementInformation::encode const):
(WebKit::FocusedElementInformation::decode):

  • Shared/FocusedElementInformation.h:

Added the isFocusingWithDataListDropdown member to control the presentation
of the keyboard when presenting a datalist dropdown.

  • UIProcess/API/ios/WKWebViewPrivateForTestingIOS.h:
  • UIProcess/API/ios/WKWebViewTestingIOS.mm:

(-[WKWebView _selectDataListOption:]):

Added a testing hook to select an option from the presented dropdown.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView shouldShowAutomaticKeyboardUI]):

Do not show the keyboard when a datalist dropdown is visible, unless a
hardware keyboard is attached.

(-[WKContentView updateFocusedElementFocusedWithDataListDropdown:]):

Toggle keyboard visibility depending on the visibility of the dropdown.

(-[WKContentView _selectDataListOption:]):
(-[WKContentView _setDataListSuggestionsControl:]):

  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.h:
  • UIProcess/ios/WebDataListSuggestionsDropdownIOS.mm:

(WebKit::WebDataListSuggestionsDropdownIOS::show):
(-[WKDataListSuggestionsControl initWithInformation:inView:]):
(-[WKDataListSuggestionsViewController reloadData]):
(-[WKDataListSuggestionsDropdown initWithInformation:inView:]):
(-[WKDataListSuggestionsDropdown updateWithInformation:]):
(-[WKDataListSuggestionsDropdown showSuggestionsDropdown:activationType:]):
(-[WKDataListSuggestionsDropdown invalidate]):
(-[WKDataListSuggestionsDropdown didSelectOptionAtIndex:]):
(-[WKDataListSuggestionsDropdown dealloc]):
(-[WKDataListSuggestionsDropdown _displayWithActivationType:]):
(-[WKDataListSuggestionsDropdown _showSuggestions]):
(-[WKDataListSuggestionsDropdown _presentSuggestionsViewController]):
(-[WKDataListSuggestionsDropdown _updateTextSuggestions]):
(-[WKDataListSuggestionsDropdown _removeKeyboardDismissalObserver]):
(-[WKDataListSuggestionsDropdown presentationControllerDidDismiss:]):
(-[WKDataListSuggestionsDropdown adaptivePresentationStyleForPresentationController:traitCollection:]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getFocusedElementInformation):

Tools:

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::activateDataListSuggestion):

Implemented this method to enable testing selection of datalist options
on iOS.

(WTR::UIScriptControllerIOS::isShowingDataListSuggestions const):

The new appearance does not use a UIPickerView, check for the presence
of the new view controller instead.

LayoutTests:

Modified two tests from fast/forms/datalist to work with the new
dropdown. These tests will replace the old ones once the form control
refresh is enabled by default.

  • fast/forms/ios/form-control-refresh/datalist/datalist-show-hide-expected.txt: Added.
  • fast/forms/ios/form-control-refresh/datalist/datalist-show-hide.html: Added.
  • fast/forms/ios/form-control-refresh/datalist/datalist-textinput-suggestions-order-expected.txt: Added.
  • fast/forms/ios/form-control-refresh/datalist/datalist-textinput-suggestions-order.html: Added.
4:40 PM Changeset in webkit [273048] by Brent Fulgham
  • 4 edits in trunk

Follow-up fix after r273023.
https://bugs.webkit.org/show_bug.cgi?id=221641
<rdar://problem/74166568>

Reviewed by Chris Dumez.

Source/WebKit:

Tested by TestWebKitAPI.

Resource loading expects the passed ResourceResponse to have a certificateInfo object.
This patch ensures that one exists.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadSimulatedRequest): Ensure certificate info is included.

Tools:

Correct the string comparison for the back/forward list test.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm:
4:32 PM Changeset in webkit [273047] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[Mac] imported/w3c/web-platform-tests/webaudio/the-audio-api/the-audioworklet-interface/audioworkletnode-channel-count.https.html flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=221100

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-17

  • platform/mac/TestExpectations:
4:24 PM Changeset in webkit [273046] by Chris Dumez
  • 6 edits in trunk

DumpRenderTree's createWebViewAndOffscreenWindow() should return a RetainPtr
https://bugs.webkit.org/show_bug.cgi?id=222068

Reviewed by Sam Weinig.

Source/WTF:

  • wtf/Forward.h:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(createWebViewAndOffscreenWindow):
(createGlobalWebViewAndOffscreenWindow):

  • DumpRenderTree/mac/DumpRenderTreeMac.h:
  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate webView:createWebViewWithRequest:]):

4:22 PM Changeset in webkit [273045] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ BigSur ] imported/w3c/web-platform-tests/media-source/mediasource-config-change-webm-v-framesize.html is flakey failing
https://bugs.webkit.org/show_bug.cgi?id=221218

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-17

  • platform/mac/TestExpectations:
4:19 PM Changeset in webkit [273044] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Use a smart pointer for s_exception in objc_instance.mm
https://bugs.webkit.org/show_bug.cgi?id=222070

Reviewed by Geoffrey Garen.

  • bridge/objc/objc_instance.mm:

(globalException):
(ObjcInstance::setGlobalException):
(ObjcInstance::moveGlobalExceptionToExecState):

4:03 PM Changeset in webkit [273043] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ BigSur WK1] media/video-multiple-concurrent-playback.html is flakey text failing
https://bugs.webkit.org/show_bug.cgi?id=221368

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-17

  • platform/mac-wk1/TestExpectations:
3:54 PM Changeset in webkit [273042] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ MacOS Wk2 ] inspector/model/remote-object/array-large.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=221849

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-17

  • platform/mac-wk2/TestExpectations:
3:43 PM Changeset in webkit [273041] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ MacOS Wk2 ] inspector/debugger/stepping/stepInto.html is a flakey timeout
https://bugs.webkit.org/show_bug.cgi?id=221853

Unreviewed test gardneing.

Patch by Robert Jenner <Robert Jenner> on 2021-02-17

  • platform/mac-wk2/TestExpectations:
3:42 PM Changeset in webkit [273040] by Megan Gardner
  • 3 edits in trunk/Source/WebKit

Add SPI to allow apps to initiate highlight creation.
https://bugs.webkit.org/show_bug.cgi?id=222063

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _addAppHighlight]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
3:31 PM Changeset in webkit [273039] by youenn@apple.com
  • 2 edits in trunk/Source/WebCore

Use VTIsHardwareDecodeSupported to test VP9 decoder availability on IOS
https://bugs.webkit.org/show_bug.cgi?id=222040

Reviewed by Eric Carlson.

VTIsHardwareDecodeSupported is simpler to use than VTSelectAndCreateVideoDecoderInstance
and we want to restrict decoding for regular streaming to hardware anyway.
Manually tested.

  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::isVP9DecoderAvailable):

3:31 PM Changeset in webkit [273038] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS ] media/webaudio-background-playback.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=221935

Ureviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-17

  • platform/mac/TestExpectations:
3:30 PM Changeset in webkit [273037] by stephan.szabo@sony.com
  • 2 edits in trunk/Source/WebCore

[PlayStation] Fix build break after r272948
https://bugs.webkit.org/show_bug.cgi?id=222061

Reviewed by Don Olmstead.

  • inspector/InspectorOverlay.cpp:
3:14 PM Changeset in webkit [273036] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[iOS] Remove access to the IOKIt class AGXDeviceUserClient in the WebContent process
https://bugs.webkit.org/show_bug.cgi?id=219733
<rdar://problem/70628137>

Reviewed by Brent Fulgham.

Remove access to the IOKIt class AGXDeviceUserClient in the WebContent process on iOS when the GPU process is enabled, since this is
not needed when allowing access to IOGPU. The IOGPU class is the superclass of AGXDeviceUserClient, and is the preferred IOKit
reference to use according to the Sandbox team.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
3:04 PM Changeset in webkit [273035] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ macOS Wk2 ] fast/selectors/text-field-selection-window-inactive-text-shadow.html is a flakey image failure
https://bugs.webkit.org/show_bug.cgi?id=221857

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-17

  • platform/mac-wk2/TestExpectations:
2:58 PM Changeset in webkit [273034] by ysuzuki@apple.com
  • 6 edits in trunk/Source

[JSC] Rename entitlements for JITCage
https://bugs.webkit.org/show_bug.cgi?id=222077
<rdar://problem/74451093>

Reviewed by Mark Lam.

  • Scripts/process-entitlements.sh:

Source/JavaScriptCore:

  • entitlements.plist:
  • runtime/Options.cpp:

(JSC::canUseJITCage):

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

Effectively revert r272908
https://bugs.webkit.org/show_bug.cgi?id=221072

Source/WebCore:

That revision has some issues, causing bug 222067 among others.
This effectively reverts it without pulling out all the infrastructure changes from that patch.
This will make it easier to see what changes when I fix it.

  • platform/network/cocoa/RangeResponseGenerator.mm:

(WebCore::RangeResponseGenerator::willSynthesizeRangeResponses):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::runVideoTest):
(TestWebKitAPI::TEST):

2:41 PM Changeset in webkit [273032] by dino@apple.com
  • 2 edits in trunk/Source/ThirdParty/ANGLE

Metal-Angle on IOS fails in ValidateCreatePbufferFromClientBuffer
https://bugs.webkit.org/show_bug.cgi?id=222069

Reviewed by Simon Fraser.

Due to the differences between OpenGL and OpenGLES, WebCore
binds its IOSurfaces to a different texture target on macOS and iOS.
This isn't really needed with the Metal-ANGLE backend, but while we're
still supporting the OpenGL backend it is easier to have the Metal backend
use both targets.

  • src/libANGLE/renderer/metal/DisplayMtl.mm:

(rx::DisplayMtl::generateConfigs): Look for EGL_TEXTURE_2D on iOS. Note
we don't have to worry about the weird "iOS App on macOS" situation since
that only applies to using OpenGLES on macOS. Yay for Metal!

2:38 PM Changeset in webkit [273031] by Truitt Savell
  • 2 edits in trunk/LayoutTests

REGRESSION (r272842): [ BigSur Wk2 ] imported/w3c/web-platform-tests/media-source/mediasource-seekable.html is a flakey text failure
https://bugs.webkit.org/show_bug.cgi?id=221965

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-17

  • platform/mac-wk2/TestExpectations:
1:53 PM Changeset in webkit [273030] by commit-queue@webkit.org
  • 22 edits
    1 copy in trunk/Tools

Add deprecation notices to believed-unused commands in webkit-patch
https://bugs.webkit.org/show_bug.cgi?id=222058

Patch by Sam Sneddon <Sam Sneddon> on 2021-02-17
Reviewed by Jonathan Bedard.

This only adds notices, asking any users of the commands to comment on
https://bugs.webkit.org/show_bug.cgi?id=221991; it doesn't in any way break the commands,
and the deprecation is easily undone.

  • Scripts/webkitpy/tool/commands/adduserstogroups.py:
  • Scripts/webkitpy/tool/commands/analyzechangelog.py:
  • Scripts/webkitpy/tool/commands/applywatchlistlocal.py:
  • Scripts/webkitpy/tool/commands/bugfortest.py:
  • Scripts/webkitpy/tool/commands/bugsearch.py:
  • Scripts/webkitpy/tool/commands/commandtest.py:

(CommandsTest.assert_execute_outputs): Strip the warnings from unittest output to avoid changing every test
(CommandsTest._remove_deprecated_warning):

  • Scripts/webkitpy/tool/commands/deprecatedcommand.py: Added. Class decorator for Commands output notice.
  • Scripts/webkitpy/tool/commands/download.py:
  • Scripts/webkitpy/tool/commands/earlywarningsystem.py:
  • Scripts/webkitpy/tool/commands/findusers.py:
  • Scripts/webkitpy/tool/commands/gardenomatic.py:
  • Scripts/webkitpy/tool/commands/openbugs.py:
  • Scripts/webkitpy/tool/commands/queries.py:
  • Scripts/webkitpy/tool/commands/rebaseline.py:
  • Scripts/webkitpy/tool/commands/rebaseline_unittest.py:
  • Scripts/webkitpy/tool/commands/rebaselineserver.py:
  • Scripts/webkitpy/tool/commands/setupgitclone.py:
  • Scripts/webkitpy/tool/commands/suggestnominations.py:
  • Scripts/webkitpy/tool/commands/upload.py:
  • Scripts/webkitpy/tool/steps/runtests.py:

(RunTests.run): Deprecate running tests through webkit-patch, even indirectly.

  • Scripts/webkitpy/tool/steps/runtests_unittest.py:

(RunTestsTest.test_webkit_run_unit_tests):

  • Scripts/webkitpy/tool/steps/steps_unittest.py:

(StepsTest.test_runtests_args):

1:51 PM Changeset in webkit [273029] by Truitt Savell
  • 15 edits in trunk/Source/WebKit

Unreviewed, reverting r272905.

caused
TestWebKitAPI.WebKit2.CrashGPUProcessWhileCapturingAndCalling
to timeout

Reverted changeset:

"ThreadMessageReceiverRefCounted subclasses are accessed in
non-thread-safe way"
https://bugs.webkit.org/show_bug.cgi?id=221891
https://commits.webkit.org/r272905

1:47 PM Changeset in webkit [273028] by commit-queue@webkit.org
  • 2 edits
    1 add
    1 delete in trunk/LayoutTests

[LayoutTests] Convert http/tests/preconnect convert PHP to Python
https://bugs.webkit.org/show_bug.cgi?id=221980
<rdar://problem/74399549>

Patch by Chris Gambrell <Chris Gambrell> on 2021-02-17
Reviewed by Jonathan Bedard.

  • http/tests/preconnect/link-header-rel-preconnect-http.html:
  • http/tests/preconnect/resources/header-preconnect.php: Removed.
  • http/tests/preconnect/resources/header-preconnect.py: Added.
1:46 PM Changeset in webkit [273027] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed attempt to fix GTK build after r273023.

  • UIProcess/API/APINavigation.cpp:
1:39 PM Changeset in webkit [273026] by Devin Rousso
  • 9 edits
    1 delete in trunk/Source/WebCore

[iOS] update media controls to use new SF Symbols
https://bugs.webkit.org/show_bug.cgi?id=222023

Reviewed by Eric Carlson.

  • Modules/modern-media-controls/images/iOS/Airplay.svg:
  • Modules/modern-media-controls/images/iOS/EnterFullscreen.svg:
  • Modules/modern-media-controls/images/iOS/MediaSelector.svg:
  • Modules/modern-media-controls/images/iOS/MiniPipIn.svg: Removed.
  • Modules/modern-media-controls/images/iOS/Pause.svg:
  • Modules/modern-media-controls/images/iOS/PipIn.svg:
  • Modules/modern-media-controls/images/iOS/Play.svg:
  • Modules/modern-media-controls/images/iOS/SkipBack15.svg:
  • Modules/modern-media-controls/images/iOS/SkipForward15.svg:
1:38 PM Changeset in webkit [273025] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

Remove missing files from WebKit Xcode project
<https://webkit.org/b/222054>

Reviewed by Youenn Fablet.

Found using tidy-Xcode-project-file --missing (see Bug
188754).

  • WebKit.xcodeproj/project.pbxproj:

(ConcreteShareableImageBuffer.h):

  • Remove references to this missing file. This regressed in r270470 when the file was removed.

(ImageDataReference.h):

  • Remove references to this missing file. This regressed in r272786 when the file was removed.

(NetworkCacheFileSystemCocoa.mm):

  • Remove references to this missing file. This regressed in r244921 when the file was removed.

(Recovered References):

  • Remove "Recovered References" folder and missing com.apple.WebKit.GPU.sb file that regressed in r253098. The file was added back separately in r253131.

(WebRTCSocket.h):
(WebRTCSocket.cpp):
(WebRTCNetwork.messages.in):

  • Remove references to these missing files. This apparently regressed in r261163 when the files were renamed to have a "Lib" prefix, but the old references were not removed.
1:36 PM Changeset in webkit [273024] by Devin Rousso
  • 7 edits in trunk/Source/WebCore

[iOS] the tracks button should be emphasized while the media controls context menu is showing
https://bugs.webkit.org/show_bug.cgi?id=221938

Reviewed by Eric Carlson.

  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::~MediaControlsHost): Added.
(WebCore::MediaControlsHost::showMediaControlsContextMenu):
Modify MediaControlsHost::showMediaControlsContextMenu to return a bool indicating
whether the media controls contextmenu was able to be shown and also accept a VoidCallback
that's invoked when the media controls contextmenu is dismissed. Also keep track of whether
a media controls contextmenu is already showing so that the media controls don't attempt to
show another media controls contextmenu until the existing one has been dismissed.

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype.get canShowMediaControlsContextMenu): Added.
(MediaController.prototype.showMediaControlsContextMenu): Added.
Add helper functions for querying whether the media controls contextmenu can be shown and
for actually showing the media controls contextmenu (based on the given Button's element
and contextMenuOptions) which will emphasize (.on = true) if showing the media controls
contextmenu was successful and de-emphasize (.on = false) once the media controls
contextmenu is dismissed.

  • Modules/modern-media-controls/media/overflow-support.js:

(OverflowSupport.prototype.buttonWasPressed):
(OverflowSupport.prototype.syncControl):

  • Modules/modern-media-controls/media/tracks-support.js:

(TracksSupport.prototype.buttonWasPressed):
(TracksSupport.prototype.syncControl):
Use the MediaController helper functions instead of querying MediaControlsHost directly.

1:26 PM Changeset in webkit [273023] by Brent Fulgham
  • 13 edits in trunk

Expand stubs to thread actual NSURLRequest/NSURLResponse for the new simulated-request API
https://bugs.webkit.org/show_bug.cgi?id=221641
<rdar://problem/74166568>

Reviewed by Chris Dumez.

Source/WebKit:

Tested by new API Test LoadSimulatedRequestUpdatesBackForwardList.

This bug builds on the stubs created in Bug 221430 to use actual Request and
Response objects for simulated loads:

  1. Thread the NSURLRequest and NSURLResponse objects to the loading layer when handling loads for HTML strings and data.
  2. Loads via the simulated request API should cause entries to be added to the back/forward list.
  3. Create a new API Test to confirm the back/forward list works as expected.
  • UIProcess/API/APINavigation.cpp:

(API::SubstituteData::SubstituteData): New convenience constructor accepting a ResourceResponse.
(API::Navigation::Navigation): Ditto.

  • UIProcess/API/APINavigation.h:

(API::Navigation::create): Added.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView loadSimulatedRequest:withResponse:responseData:]): Switch from using the plain 'loadData'
method to the new 'loadSimulatedRequest' implementation.

  • UIProcess/WebNavigationState.cpp:

(WebKit::WebNavigationState::createSimulatedLoadWithDataNavigation): Added.

  • UIProcess/WebNavigationState.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::loadSimulatedRequest): New method to support the loadSimulatedRequest WKWebView API.

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadSimulatedRequestAndResponse): Added message handler to perform a simulated load using
ResourceRequest and ResourceResponse objects.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Added LoadSimulatedRequestAndResponse IPC message.

Tools:

Add a new test to confirm that simulated loads work and are properly added to the
back-forward list.

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm:

(TEST):

1:15 PM Changeset in webkit [273022] by Chris Dumez
  • 3 edits in trunk/Tools

Use smart pointer for WebView ownership in DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=222009

Reviewed by Geoffrey Garen.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(globalWebView):
(createWebViewAndOffscreenWindow):
(destroyGlobalWebViewAndOffscreenWindow):
(createGlobalWebViewAndOffscreenWindow):
(dumpRenderTree):
(runTest):
(destroyWebViewAndOffscreenWindow): Deleted.

  • DumpRenderTree/mac/UIDelegate.mm:

(-[UIDelegate webView:createWebViewWithRequest:]):

12:33 PM Changeset in webkit [273021] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

[Python-3] UnicodeDecodeError when checking for an interpreter on Windows
https://bugs.webkit.org/show_bug.cgi?id=222059

Reviewed by Jonathan Bedard.

When calling open to determine which interpreter should be used Python 3 was throwing a
UnicodeDecodeError. On Python 3 an encoding of cp437 is specified since all characters are
defined in it. Python 2 does not have this problem and throws with a TypeError if an
encoding argument is passed.

  • Scripts/webkitpy/common/system/executive.py:

(Executive.popen):

12:31 PM Changeset in webkit [273020] by dino@apple.com
  • 2 edits in trunk/Source/WTF

Use element fullscreen for video on some configurations
https://bugs.webkit.org/show_bug.cgi?id=222048
<rdar://problem/74439214>

Reviewed by Sam Weinig.

  • wtf/PlatformEnableCocoa.h:
12:11 PM Changeset in webkit [273019] by Fujii Hironori
  • 4 edits in trunk

[CoordinatedGraphics] The whole content is unnecessarily repainted by animations in non-AC mode pages
https://bugs.webkit.org/show_bug.cgi?id=221391
Source/WebKit:

Reviewed by Carlos Garcia Campos.

When triggerRenderingUpdate was called back, it added the whole
view area into the dirty region to repaint in non-AC mode pages.
This caused a problem that the whole content was unnecessarily
repainted by animations in non-AC mode pages

If triggerRenderingUpdate is called back,
DrawingAreaCoordinatedGraphics::display should be called to ensure
WebPage::updateRendering() called even if m_dirtyRegion is empty.

  • WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:

(WebKit::DrawingAreaCoordinatedGraphics::triggerRenderingUpdate):
Call scheduleDisplay() instead of setNeedsDisplay().
(WebKit::DrawingAreaCoordinatedGraphics::didUpdate):
(WebKit::DrawingAreaCoordinatedGraphics::scheduleDisplay): Don't
return early even if m_dirtyRegion is empty.
(WebKit::DrawingAreaCoordinatedGraphics::display()): Ditto.
(WebKit::DrawingAreaCoordinatedGraphics::display(UpdateInfo&)):
Return early if m_dirtyRegion is empty.

LayoutTests:

<rdar://problem/74207093>

Reviewed by Carlos Garcia Campos.

  • platform/gtk/TestExpectations: Unmarked tests for Bug 222026.
11:57 AM Changeset in webkit [273018] by lingho@apple.com
  • 2 edits in trunk/Websites/webkit.org

WebKit nighly archives page not working for Big Sur
https://bugs.webkit.org/show_bug.cgi?id=222016
<rdar://problem/74037376>

Reviewed by Alexey Proskuryakov.

  • wp-content/themes/webkit/build-archives.php:
11:55 AM Changeset in webkit [273017] by don.olmstead@sony.com
  • 2 edits in trunk/Tools

[Python-3] Catch winerror.ERROR_INVALID_FUNCTION in ServerProcess
https://bugs.webkit.org/show_bug.cgi?id=222047

Reviewed by Jonathan Bedard.

The catch statement in _non_blocking_read_win32 throws a TypeError because the 'error'
object is not subscriptable. The block assumed a pywintypes.error so it was modified
to catch that exception. Using the proper type stopped that occurance but surfaced
additional issues.

When shutting down the server process the call to win32pipe.PeekNamedPipe can throw a
winerror.ERROR_INVALID_FUNCTION. There isn't really any documentation on MSDN pointing to
why this error would be thrown. ERROR_INVALID_FUNCTION seems to be around device driver
issues so the best guess is that the handle is no longer valid at this point of execution.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess._non_blocking_read_win32):

11:23 AM Changeset in webkit [273016] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION (r272625): Fix missing headers in Xcode project
<https://webkit.org/b/222052>

Reviewed by Eric Carlson.

  • WebKit.xcodeproj/project.pbxproj:
  • Manually reconstruct missing PBXBuildFile entries for Xcode project.
11:09 AM Changeset in webkit [273015] by Jonathan Bedard
  • 2 edits in trunk/Tools

[git-webkit] Failure to retrieve commit in EWS (Investigation)
https://bugs.webkit.org/show_bug.cgi?id=222050
<rdar://problem/74439957>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

(GitHub.request): Increase logging.

11:01 AM Changeset in webkit [273014] by Aditya Keerthi
  • 3 edits in trunk/Source/WebCore

[iOS][FCR] Add new look for input type=date
https://bugs.webkit.org/show_bug.cgi?id=222013
<rdar://problem/74415329>

Reviewed by Wenson Hsieh.

The new appearance is based on UIDatePicker.

  • css/formControlsIOS.css:

(input:matches([type="date"], [type="time"], [type="datetime-local"], [type="month"], [type="week"])):
(input::-webkit-date-and-time-value):

  • rendering/RenderThemeIOS.mm:

(WebCore::adjustInputElementButtonStyle):

No additional padding is neccessary for the new appearance.

(WebCore::RenderThemeIOS::paintMenuListButtonDecorationsWithFormControlRefresh):

Do not paint any additional glyphs.

10:38 AM Changeset in webkit [273013] by Megan Gardner
  • 11 edits
    3 copies in trunk/Source

Change App Highlight delegate to pass more information about the highlight for display.
https://bugs.webkit.org/show_bug.cgi?id=222014

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _storeAppHighlight:]):

  • UIProcess/API/Cocoa/_WKAppHighlightDelegate.h:
  • WebKit.xcodeproj/project.pbxproj:
10:22 AM Changeset in webkit [273012] by Truitt Savell
  • 2 edits in trunk/LayoutTests

[ BigSur ] platform/mac-bigsur/media/media-webm-no-duration.html is constantly text failing
https://bugs.webkit.org/show_bug.cgi?id=221973

Unreviewed test gardening.

Patch by Robert Jenner <Robert Jenner> on 2021-02-17

  • platform/mac/TestExpectations:
9:58 AM Changeset in webkit [273011] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/LayoutTests

Add a test to exercise CSS scroll snap in an independently scrollable body
https://bugs.webkit.org/show_bug.cgi?id=222031

Patch by Martin Robinson <mrobinson@igalia.com> on 2021-02-17
Reviewed by Simon Fraser.

  • css3/scroll-snap/scroll-snap-on-independently-scrollable-body-expected.txt: Added.
  • css3/scroll-snap/scroll-snap-on-independently-scrollable-body.html: Added.
9:53 AM Changeset in webkit [273010] by Alan Coon
  • 1 copy in tags/Safari-611.1.18

Tag Safari-611.1.18.

9:50 AM Changeset in webkit [273009] by Alan Coon
  • 8 edits in branches/safari-611-branch/Source

Versioning.

WebKit-7611.1.19

9:39 AM Changeset in webkit [273008] by don.olmstead@sony.com
  • 3 edits in trunk/Tools

[Python-3] Child process environment on Windows can only contain strings
https://bugs.webkit.org/show_bug.cgi?id=222012

Reviewed by Jonathan Bedard.

When running Python 3 on Windows a 'TypeError: environment can only contain strings' is
thrown during execution of run-webkit-tests. If the Executive is running on native Windows
it converts the keys and values of the environment dictionary into strings and passes them
into the popen call.

In ServerProcess it was modifying the environment as well. This code was removed so
Executive is the only place that handles this issue.

  • Scripts/webkitpy/common/system/executive.py:

(Executive.popen):

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess.init):

9:36 AM Changeset in webkit [273007] by Devin Rousso
  • 3 edits in trunk/Source/WebKit

[iOS] Add support for additional accessibility image extraction contextmenu actions
https://bugs.webkit.org/show_bug.cgi?id=222022
<rdar://problem/74157750>

Reviewed by Tim Horton.

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView continueContextMenuInteraction:]):
(-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]):

9:35 AM Changeset in webkit [273006] by Devin Rousso
  • 6 edits in trunk

[iOS] don't "promote" media controls contextmenu items if they are the only item being shown
https://bugs.webkit.org/show_bug.cgi?id=221939

Reviewed by Eric Carlson.

Source/WebKit:

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant showMediaControlsContextMenu:items:completionHandler:]):

LayoutTests:

  • media/modern-media-controls/tracks-support/ios/tracks-support-click-track-in-contextmenu.html:
  • media/modern-media-controls/tracks-support/ios/tracks-support-text-track-selected-via-media-api.html:
  • media/modern-media-controls/tracks-support/ios/tracks-support-text-track-selected-via-media-api-expected.txt:
9:33 AM Changeset in webkit [273005] by Jonathan Bedard
  • 4 edits in trunk/Tools

[git-webkit] Support unicode when printing changelogs
https://bugs.webkit.org/show_bug.cgi?id=222044
<rdar://problem/74435276>

Reviewed by Aakash Jain.

  • Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Scripts/libraries/webkitscmpy/webkitscmpy/program/find.py:

(Find.main): Explicitly print unicode.

9:32 AM Changeset in webkit [273004] by Devin Rousso
  • 22 edits
    1 copy
    3 adds in trunk

[iOS] Add an overflow button that's shown when controls are dropped so that it's still possible to trigger the dropped button's actions
https://bugs.webkit.org/show_bug.cgi?id=221937
<rdar://problem/20968078>

Reviewed by Eric Carlson.

Source/WebCore:

  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/mediacontrols/MediaControlsHost.cpp:
  • Modules/mediacontrols/MediaControlsHost.h:

(WebCore::MediaControlsHost::showMediaControlsContextMenu):
Use a JSON options argument instead of a defined dictionary so that it's easier to add
new values and is more flexible with the types of values.

  • Modules/modern-media-controls/controls/overflow-button.js: Added.

(OverflowButton):
(OverflowButton.prototype.get visible):
(OverflowButton.prototype.set visible):
(OverflowButton.prototype.get contextMenuOptions):
(OverflowButton.prototype.addContextMenuOptions):
(OverflowButton.prototype.clearContextMenuOptions):
(OverflowButton.prototype.set defaultContextMenuOptions):

  • Modules/modern-media-controls/media/overflow-support.js: Copied from Source/WebCore/Modules/modern-media-controls/controls/tracks-button.js.

(OverflowSupport.prototype.get mediaEvents):
(OverflowSupport.prototype.get control):
(OverflowSupport.prototype.buttonWasPressed):
(OverflowSupport.prototype.syncControl):

  • Modules/modern-media-controls/controls/inline-media-controls.js:

(InlineMediaControls.prototype.layout):
(InlineMediaControls.prototype._rightContainerButtons):
(InlineMediaControls.prototype._droppableButtons):
Create an OverflowButton that mainains a JSON object of contextMenuOptions which are
passed to MediaControlsHost::showMediaControlsContextMenu. Whenever a Button is dropped,
add its get contextMenuOptions to the OverflowButton's contextMenuOptions so that when
the OverflowButton is pressed it shows a contextmenu with actions for all dropped buttons.

  • Modules/modern-media-controls/controls/button.js:

(Button.prototype.get contextMenuOptions): Added.

  • Modules/modern-media-controls/controls/tracks-button.js:

(TracksButton.prototype.get contextMenuOptions): Added.

  • Modules/modern-media-controls/media/tracks-support.js:

(TracksSupport.prototype.buttonWasPressed):
Add a get contextMenuOptions to the base Button class so that all buttons are able to
be merged into OverflowButton.

  • Modules/modern-media-controls/controls/media-controls.js:

(MediaControls):

  • Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype._supportingObjectClasses):

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::mediaControlsScript):

  • en.lproj/modern-media-controls-localized-strings.js:
  • Modules/modern-media-controls/controls/icon-service.js:
  • Modules/modern-media-controls/images/iOS/Overflow.svg: Added.
  • Modules/modern-media-controls/images/macOS/Overflow.svg: Added.
  • Modules/modern-media-controls/js-files:
  • WebCore.xcodeproj/project.pbxproj:

Add new files, icons, and text.

LayoutTests:

  • media/modern-media-controls/audio/audio-controls-buttons.html:
  • media/modern-media-controls/audio/audio-controls-buttons-expected.txt:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout.html:
  • media/modern-media-controls/ios-inline-media-controls/ios-inline-media-controls-layout-expected.txt:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html:
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout-expected.txt:
9:27 AM Changeset in webkit [273003] by Antti Koivisto
  • 5 edits
    2 adds in trunk

Animated keyframe style needs to go through full style adjuster
https://bugs.webkit.org/show_bug.cgi?id=222036
rdar://72421747

Reviewed by Zalan Bujtas.

Source/WebCore:

We can create unadjusted styles via keyframe animations and those may cause problems in rendering.

Test: fast/animation/animation-position-crash.html

  • style/StyleAdjuster.cpp:

(WebCore::Style::Adjuster::adjustAnimatedStyle):

Make this a member function and invoke Adjuster::adjust.
Simplify the z-index adjustment since it is mostly handled by adjust.

  • style/StyleAdjuster.h:
  • style/StyleTreeResolver.cpp:

Always use style adjuster for keyframe animation.

(WebCore::Style::TreeResolver::createAnimatedElementUpdate):

LayoutTests:

  • fast/animation/animation-position-crash-expected.html: Added.
  • fast/animation/animation-position-crash.html: Added.
9:10 AM Changeset in webkit [273002] by Philippe Normand
  • 3 edits in trunk/LayoutTests

Unreviewed, GLib/GTK test expectations gardening

  • platform/glib/TestExpectations: These tests are expected to fail with GPU process and on

Mac, but pass on GTK and WPE

  • platform/gtk/TestExpectations: Unflag

http/tests/inspector/network/intercept-request-properties.html passing since r272582.

8:50 AM Changeset in webkit [273001] by graouts@webkit.org
  • 17 edits in trunk

CSS properties that disallow negative values should not animate to negative values
https://bugs.webkit.org/show_bug.cgi?id=222034

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Mark WPT progressions.

  • web-platform-tests/css/css-box/animation/padding-bottom-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-interpolation-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-left-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-right-composition-expected.txt:
  • web-platform-tests/css/css-box/animation/padding-top-composition-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-margin-composition-expected.txt:
  • web-platform-tests/css/css-shapes/animation/shape-margin-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-height-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-height-interpolation-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-width-composition-expected.txt:
  • web-platform-tests/css/css-sizing/animation/min-width-interpolation-expected.txt:

Source/WebCore:

Some CSS properties disallow negative values, but the blending code used for animations allows them.
We now add a new animation wrapper for those values, NonNegativeLengthPropertyWrapper, which will clamp
the blended value to 0 if negative. This new wrapper is used for the padding properties, width, height,
min-width, min-height and shape-margin.

  • animation/CSSPropertyAnimation.cpp:

(WebCore::NonNegativeLengthPropertyWrapper::NonNegativeLengthPropertyWrapper):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

LayoutTests:

Mark WPT output changes for a couple tests with platform-specific results.

  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-box/animation/padding-bottom-composition-expected.txt:
  • platform/ios-wk2/imported/w3c/web-platform-tests/css/css-box/animation/padding-top-composition-expected.txt:
8:23 AM Changeset in webkit [273000] by aakash_jain@apple.com
  • 3 edits in trunk/Tools

commit-queue should retry when it fails to commit
https://bugs.webkit.org/show_bug.cgi?id=222038

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps.py:

(PushCommitToWebKitRepo):
(PushCommitToWebKitRepo.evaluateCommand):

  • CISupport/ews-build/steps_unittest.py:
8:16 AM Changeset in webkit [272999] by pvollan@apple.com
  • 11 edits in trunk/Source

[macOS] Deny mach-lookup to the fonts service
https://bugs.webkit.org/show_bug.cgi?id=221610
<rdar://problem/69168609>

Reviewed by Brent Fulgham.

Source/WebCore:

Disable global font prewarming when the platform has a static font registry. Font prewarming will attempt to communicate with the font daemon. Since this usually
will take place before the first page load where the decision about using the static registry is made, and this change by default blocks access to the font daemon,
the system will automatically choose to use the static registry. This might be the wrong choice, and it is currently not possible to switch to not use the static
registry at a later point.

No new tests, covered by existing tests.

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::prewarmGlobally):

Source/WebKit:

This change will by default block access to the font daemon when the platform has support for a static font registry. When the client prefers
to allow user installed fonts, or Safari Reader configuration has been customized, access to the font daemon will still be allowed by issuing
an extension to the font daemon.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::customizedReaderConfiguration):
(WebKit::WebPageProxy::creationParameters):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::m_limitsNavigationsToAppBoundDomains):
(WebKit::WebPage::~WebPage):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/com.apple.WebProcess.sb.in:

Source/WTF:

Add HAVE define for platform static font registry.

  • wtf/PlatformHave.h:
7:56 AM Changeset in webkit [272998] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, silence -Wimplicit-fallthrough warning
https://bugs.webkit.org/show_bug.cgi?id=222010
<rdar://problem/74422474>

Normally I use RELEASE_ASSERT_NOT_REACHED() for this, but in this massive switch we have
previously used ASSERT_NOT_REACHED() plus return nullptr, so let's do that instead.

Patch by Michael Catanzaro <Michael Catanzaro> on 2021-02-17

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):

7:49 AM Changeset in webkit [272997] by Wenson Hsieh
  • 24 edits in trunk

[macOS] Introduce a new context menu item to preview images
https://bugs.webkit.org/show_bug.cgi?id=221917
<rdar://problem/74363578>

Reviewed by Darin Adler and Tim Horton.

Source/WebCore:

Add plumbing for a new context menu tag, ContextMenuItemTagRevealImage, which will be used to invoke a special
type of QuickLook preview for extracted images when the relevant accessibility features are enabled.

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::populate):
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

  • platform/ContextMenuItem.cpp:

(WebCore::isValidContextMenuAction):

  • platform/ContextMenuItem.h:
  • platform/LocalizedStrings.h:
  • platform/cocoa/LocalizedStringsCocoa.mm:

(WebCore::contextMenuItemTagRevealImage):

Source/WebKit:

Add plumbing to support the ContextMenuItemTagRevealImage action, as well as some WebKitAdditions extension
points. See below for more details. This patch was mostly written by Devin Rousso, with some adjustments from
me.

  • Configurations/WebKit.xcconfig:

Link against UniformTypeIdentifiers.

  • Shared/API/c/WKContextMenuItemTypes.h:
  • Shared/API/c/WKSharedAPICast.h:

(WebKit::toAPI):
(WebKit::toImpl):

Add kWKContextMenuItemTagRevealImage, and add helpers to convert from WebCore::ContextMenuItemTagRevealImage
to kWKContextMenuItemTagRevealImage and vice versa.

  • Shared/ContextMenuContextData.h:

(WebKit::ContextMenuContextData::webHitTestResultData):

Add a non-const version of webHitTestResultData(), so that we can generate a CGImage using
WebHitTestResultData's bitmap data.

  • UIProcess/API/Cocoa/WKMenuItemIdentifiers.mm:
  • UIProcess/API/Cocoa/WKMenuItemIdentifiersPrivate.h:
  • UIProcess/API/Cocoa/_WKElementAction.mm:

(+[_WKElementAction _elementActionWithType:customTitle:assistant:]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::handleContextMenuRevealImage):

Add a helper method, handleContextMenuRevealImage, to handle the new context menu action; additionally,
introduce another helper method, revealExtractedImageInPreviewPanel, to handle the Mac-specific
QLPreviewPanel logic when invoking the new item. See WebKitAdditions changes for more detail.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::contextMenuItemSelected):

  • UIProcess/WebPageProxy.h:
  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::menuItemIdentifier):

Source/WebKitLegacy/mac:

Legacy WebKit won't be supporting this new context menu action; see other ChangeLog entries for more details.

  • WebView/WebHTMLView.mm:

(toTag):

Source/WTF:

Add a new soft-linking macro to optionally link against an umbrella framework.

  • wtf/cocoa/SoftLinking.h:

Tools:

Rebaseline an existing API test, since ContextMenuItemTagRevealImage is now the last valid enum.

  • TestWebKitAPI/Tests/WebCore/ContextMenuAction.cpp:

(TestWebKitAPI::TEST):

6:16 AM Changeset in webkit [272996] by Diego Pino Garcia
  • 2 edits in trunk/Tools

[Flatpak SDK] Script 'webkit-flatpak-run-nightly' expects different format for a built product name
https://bugs.webkit.org/show_bug.cgi?id=221950

Reviewed by Philippe Normand.

The name format for uploaded built products for WPE and GTK has
changed. Now the format is: '[release|debug]_rXXXXXX.zip'. The script
is still expecting the former name format, so it needs to be updated.

  • Scripts/webkit-flatpak-run-nightly:
5:53 AM Changeset in webkit [272995] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Deny access to unused IOKit classes
https://bugs.webkit.org/show_bug.cgi?id=221969
<rdar://problem/74395400>

Reviewed by Brent Fulgham.

Deny access to the IOKit classes AppleIntelMEUserClient and AppleSNBFBUserClient when the GPU process is enabled.

  • WebProcess/com.apple.WebProcess.sb.in:
5:52 AM Changeset in webkit [272994] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

RemoteMediaPlayerManager does not need to support media stream code path
https://bugs.webkit.org/show_bug.cgi?id=221956

Reviewed by Eric Carlson.

RemoteMediaPlayerManager does not support isMediaStream code path so it is simpler to return IsNotSupported instead of MaybeSupported.

  • WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:

(WebKit::RemoteMediaPlayerManager::supportsTypeAndCodecs):

5:00 AM Changeset in webkit [272993] by Andres Gonzalez
  • 15 edits
    2 adds in trunk

Support aria-errormessage on iOS.
https://bugs.webkit.org/show_bug.cgi?id=221975
<rdar://problem/74397704>

Reviewed by Chris Fleizach.

Source/WebCore:

Test: accessibility/aria-errormessage.html

  • Added the method accessibilityErrorMessageElements to the WebAccessibilityObjectWrapper

interface on iOS.

  • Some code cleanup.
  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::elementsFromAttribute const): Minor code cleanup.

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper accessibilityErrorMessageElements]): Added.

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(convertToNSArray): Minor code cleanup.

Tools:

  • Added AccessibilityUIElement::errorMessageElements on iOS and MacOS,

which is used in the new test.

  • For completion, added implementation for ariaErrorMessageElementAtIndex

on iOS, which is not in use at the moment.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::errorMessageElements const):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::errorMessageElements const): Added.
(WTR::AccessibilityUIElement::ariaDetailsElementAtIndex): Added.
(WTR::AccessibilityUIElement::ariaErrorMessageElementAtIndex): Added.

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::errorMessageElements const): Added.

LayoutTests:

  • accessibility/aria-errormessage-expected.txt: Added.
  • accessibility/aria-errormessage.html: Added.
  • platform/gtk/TestExpectations: Skip.
  • platform/ios/TestExpectations: Pass.
  • platform/mac-wk1/TestExpectations: Skip.
  • platform/win/TestExpectations: Skip.
2:37 AM Changeset in webkit [272992] by commit-queue@webkit.org
  • 4 edits in trunk

Improve percentage height in shouldComputeLogicalWidthFromAspectRatio
https://bugs.webkit.org/show_bug.cgi?id=221405

Patch by Rob Buis <rbuis@igalia.com> on 2021-02-17
Reviewed by Simon Fraser.

Source/WebCore:

When checking whether the percentage logical height can be used to
calculate the logical width, we need to also check that it is resolvable.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::shouldComputeLogicalWidthFromAspectRatio const):

LayoutTests:

Enable some tests that pass now.

2:20 AM Changeset in webkit [272991] by Carlos Garcia Campos
  • 9 edits in trunk

REGRESSION(r272636) [GTK] Crash and failures in API test /WebKit2Gtk/TestResources
https://bugs.webkit.org/show_bug.cgi?id=221672

Reviewed by Michael Catanzaro.

Source/WebKit:

Since r272636 it's no longer possible to differentiate between async reply being cancelled or data just being
empty for WebPageProxy data completion handlers. Use Optional to indicate that the reply was canlled when its
data is nullopt, and ensure we always provide a valid API::Data object when data is not nullopt.

  • Scripts/webkit/messages.py: Handle the special case of SharedBufferDataReference as Optional.
  • UIProcess/API/glib/WebKitWebResource.cpp:

(resourceDataCallback): Bring back the cancellation error handling.

  • UIProcess/WebPageProxy.cpp:

(WebKit::CompletionHandler<void):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::getSelectionAsWebArchiveData):
(WebKit::WebPage::getMainResourceDataOfFrame):
(WebKit::WebPage::getResourceDataFromFrame):
(WebKit::WebPage::getWebArchiveOfFrame):

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

Tools:

  • TestWebKitAPI/glib/TestExpectations.json:
1:38 AM Changeset in webkit [272990] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Regression(r268097): Calling processDidTerminate delegate asynchronously is risky compatibility-wise
https://bugs.webkit.org/show_bug.cgi?id=222011

Reviewed by Carlos Garcia Campos.

Calling processDidTerminate delegate asynchronously like we did in r268097 is risky compatibility-wise.
This caused breakage in at least 2 client applications. While this can be dealt with on the client side,
it would be better to fix what r268097 was trying to fix without making the delegate call asynchronous.
The reason calling the delegate asynchronously is risky is because some view state may have time to get
reset by the time the client gets notified on the crash, potentially confusing the crash handling logic
in the client.

No new tests, covered by WKNavigation.ReloadRelatedViewsInProcessDidTerminate API test that is
still passing even though the delegate call is no longer asynchronous.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::commitProvisionalPage):
(WebKit::WebPageProxy::resetStateAfterProcessTermination):
(WebKit::WebPageProxy::dispatchProcessDidTerminate):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::processDidTerminateOrFailedToLaunch):
(WebKit::WebProcessProxy::requestTermination):

1:22 AM Changeset in webkit [272989] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Build fix for non MEDIA_STREAM enabled ports after r272858
https://bugs.webkit.org/show_bug.cgi?id=222030

Unreviewed.

  • WebProcess/GPU/webrtc/MediaRecorderProvider.h:

(WebKit::MediaRecorderProvider::MediaRecorderProvider):
Do not declare m_webPage in configs that do not use it.

Note: See TracTimeline for information about the timeline view.