Timeline



Mar 30, 2022:

11:04 PM Changeset in webkit [292143] by Simon Fraser
  • 2 edits in trunk/Source/WebKit

Crash the WebContent process if the RemoteRenderingBackend::PrepareBuffersForDisplay IPC fails
https://bugs.webkit.org/show_bug.cgi?id=238569

Reviewed by Kimmo Kinnunen.

We can't sensibly recover from RemoteRenderingBackend::PrepareBuffersForDisplay IPC failing,
which can happen when the GPU process crashes, so just crash the WebContent process.

  • WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::prepareBuffersForDisplay):

11:02 PM Changeset in webkit [292142] by Andres Gonzalez
  • 4 edits in trunk/Source/WebCore

Split streaming of AX trees from the class AXLogger.
https://bugs.webkit.org/show_bug.cgi?id=238550
<rdar://problem/91041921>

Reviewed by Chris Fleizach.

AXLogger functionality is debug only. We need to stream the content of
the AX trees both in debug and release builds. This patch splits
streaming of the AX trees from the AXLogger class, which remains a debug
only utility.
In addition, added a mechanism to control what is streamed via the
AXStreamOptions enumeration.

  • accessibility/AXLogger.cpp:

(WebCore::shouldLog):
(WebCore::operator<<):
(WebCore::streamIsolatedSubtreeOnMainThread):
Streams a snapshot of the hierarchy of AXIsolatedObjects on the main
thread, limiting the properties of the AXIsolatedObject that can be
accessed using AXStreamOptions.

(WebCore::streamAXCoreObject):
(WebCore::streamSubtree):
(WebCore::AXLogger::add): Replaced with streamSubtree.

  • accessibility/AXLogger.h:
  • accessibility/isolatedtree/AXIsolatedTree.h:
10:08 PM Changeset in webkit [292141] by sihui_liu@apple.com
  • 4 edits in trunk

Regression: WebsiteDataStore fails to read experimental feature values from NSUserDefaults
https://bugs.webkit.org/show_bug.cgi?id=238486

Reviewed by Alex Christensen.

Source/WebKit:

From rdar://46352542, Safari no longer uses "Experimental" as prefix for experimental features.

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::internalFeatureEnabled):
(WebKit::experimentalFeatureEnabled):
(WebKit::WebsiteDataStore::thirdPartyCookieBlockingMode const):
(WebKit::WebsiteDataStore::platformSetNetworkParameters):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WebsiteDataStoreCustomPaths.mm:

(TEST):

9:22 PM Changeset in webkit [292140] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

Add explanation as to why contain-size-button-001.html/002.html WPT tests fail.

Unreviewed.

8:45 PM Changeset in webkit [292139] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

[Cocoa] Ensure correct isAppInitiated state when creating URLRequests from URL
https://bugs.webkit.org/show_bug.cgi?id=238159
<rdar://problem/88490742>

Reviewed by Kate Cheney.

Update various load operations to ensure AppInitiated state is properly handled.

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleLocationChange): The ScheduledPageBlock
load did not propagating the value of the driving document's AppInitiated state.

  • loader/ThreadableLoader.cpp:

(WebCore::ThreadableLoader::create): Reflect the AppInitiated state in the load.

  • page/DragController.cpp:

(WebCore::DragController::performDragOperation): A page load triggered by the user
dragging content into the view is never AppInitiated.

8:24 PM Changeset in webkit [292138] by mmaxfield@apple.com
  • 8 edits in trunk

[Cocoa] Link WebCore with WebGPU.framework 🎉
https://bugs.webkit.org/show_bug.cgi?id=236751

Reviewed by Dean Jackson.

Source/WebCore:

Apple's build system has been configured, so it's now safe to
link WebCore.framework and WebGPU.framework.

We correctly handle the situation where the framework isn't present
at runtime.

  • Configurations/WebCore.xcconfig:

Source/WTF:

Apple's build system has been configured, so it's now safe to
link WebCore.framework and WebGPU.framework.

We correctly handle the situation where the framework isn't present
at runtime.

  • wtf/PlatformHave.h:

LayoutTests:

Once we enable WebGPU, the WebGPU tests will start crashing all over the place.
Let's temporarily mark them as skip until the crashing stops.

  • platform/ios-device-wk1/TestExpectations:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
7:36 PM Changeset in webkit [292137] by don.olmstead@sony.com
  • 5 edits in trunk

Turn DEVELOPER_MODE ON for all non-Apple ports in build-webkit
https://bugs.webkit.org/show_bug.cgi?id=238556

Reviewed by Alex Christensen.

.:

Use DEVELOPER_MODE to determine what the defaults of ENABLE_API_TESTS and
ENABLE_MINIBROWSER should be. Make ENABLE_WEBKIT the default of ENABLE_MINIBROWSER.

  • Source/cmake/OptionsPlayStation.cmake:

Tools:

Add DEVELOPER_MODE=ON to the CMake argument list for all non-Apple ports in build-webkit.
Use ENABLE_MINIBROWSER to determine whether to build the executable on PlayStation.

  • PlatformPlayStation.cmake:
  • Scripts/webkitdirs.pm:

(generateBuildSystemFromCMakeProject):

7:10 PM Changeset in webkit [292136] by ysuzuki@apple.com
  • 3 edits in trunk/JSTests

Remove useProbeOSRExit=1 flag from tests
https://bugs.webkit.org/show_bug.cgi?id=238571

Reviewed by Saam Barati.

This flag no longer exists.

  • stress/out-of-frame-stack-accesses-due-to-probe-based-osr-exits.js:
  • stress/sampling-profiler-should-not-sample-beyond-stack-bounds.js:
6:52 PM Changeset in webkit [292135] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION(r291797): [ wk1 ] 5 imported/w3c/web-platform-tests/css/css-sizing/contain-intrinsic-size* tests are constant text failures
https://bugs.webkit.org/show_bug.cgi?id=238584

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk1/TestExpectations:
6:48 PM Changeset in webkit [292134] by Kate Cheney
  • 27 edits
    111 adds in trunk

Migrate manifest version content security policy filtering for extensions into WebKit
https://bugs.webkit.org/show_bug.cgi?id=238230
<rdar://problem/60081492>

Reviewed by Timothy Hatcher.

Source/WebCore:

Currently Safari handles parsing CSP for extensions depending on the manifest version. This patch moves
parsing to WebKit to align with existing CSP implementation.

There are two current versions of the manifest, v2 and v3. The rules for V2 affect the script-src and default-src
directives and the rules are:

  1. Standalone wildcards are prohibited.
  2. Wildcards with only a tld (e.g. *.com) are prohibited.
  3. Only full https:// urls are allowed as sources, with the exception of the blob: scheme.
  4. The 'unsafe-inline' source expression is prohibited.

The rules for V3 affect the script-src, worker-src, object-src and default-src directives and the rules are:

  1. Wildcards are prohibited.
  2. External sources are prohibited.
  3. The 'self' and 'none' keywords are allowed. All others are prohibited.

Tests: http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-blob-scheme-allowed.html

http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-insecure-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-missing-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-scheme-only.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-unsafe-eval-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-unsafe-inline-blocked.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-wildcard-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-wildcard-prohibited.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-host-only-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-scheme-only-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-wildcard-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-blob-scheme-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-hash-source-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-insecure-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-missing-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-scheme-only.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-unsafe-eval-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-unsafe-inline-blocked.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-wildcard-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-wildcard-blocked.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-block-non-https-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-block-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-can-load-insecure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-can-load-secure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-self.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-host-only-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-scheme-only-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-wildcard-allowed.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-non-https-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-partial-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-can-load-insecure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-can-load-secure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-self.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-non-https-scheme.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-partial-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-blockes-nonces.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-blocks-hashes.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-can-load-insecure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-can-load-secure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-self.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/style-src/manifest-v3-style-src-allows-keywords.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-block-partial-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-block-wildcard.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-can-load-insecure-loopback-ip.html
http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-self.html

  • WebCore.xcodeproj/project.pbxproj:
  • page/Page.cpp:

(WebCore::m_contentSecurityPolicyModeForExtension):
(WebCore::m_attachmentElementClient): Deleted.

  • page/Page.h:

(WebCore::Page::contentSecurityPolicyModeForExtension const):

  • page/PageConfiguration.h:
  • page/csp/ContentSecurityPolicy.cpp:

Planning on fixing the non-document case in a followup, this patch was big enough.

  • page/csp/ContentSecurityPolicy.h:

(WebCore::ContentSecurityPolicy::contentSecurityPolicyModeForExtension const):

  • page/csp/ContentSecurityPolicySourceList.cpp:

(WebCore::ContentSecurityPolicySourceList::ContentSecurityPolicySourceList):
(WebCore::schemeIsInHttpFamily):
(WebCore::isRestrictedDirectiveForMode):
This function returns the specific directives that have rules applied to them
in each manifest version. It can be used for blocking wildcards and unsafe-inline
for both versions, and all other keywords for manifest v3.

(WebCore::ContentSecurityPolicySourceList::isValidSourceForExtensionMode):
This function checks a given source against the rules for a specific version.

(WebCore::extensionModeAllowsKeywordsForDirective):
Most keywords (aside from unsafe-inline) are allowed in manifest v2, but only
'self' and 'none' are allowed in v3.

(WebCore::ContentSecurityPolicySourceList::parse):
(WebCore::ContentSecurityPolicySourceList::parseSource):
(WebCore::ContentSecurityPolicySourceList::parseNonceSource):
(WebCore::ContentSecurityPolicySourceList::parseHashSource):
Nonces and hashes are not allowed for specified v3 directives.

  • page/csp/ContentSecurityPolicySourceList.h:

Source/WebKit:

Add an SPI for Safari to specify when we are loading a WebView for an extension,
and which manifest version the extension has.

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/APIPageConfiguration.cpp:

(API::PageConfiguration::copy const):

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::setContentSecurityPolicyModeForExtension):
(API::PageConfiguration::contentSecurityPolicyModeForExtension const):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration _setContentSecurityPolicyModeForExtension:]):
(-[WKWebViewConfiguration _contentSecurityPolicyModeForExtension]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/Cocoa/CSPExtensionUtilities.h: Added.
  • UIProcess/Cocoa/CSPExtensionUtilities.mm: Added.

(WebKit::toWKContentSecurityPolicyModeForExtension):
(WebKit::toContentSecurityPolicyModeForExtension):

  • UIProcess/Cocoa/WebProcessProxyCocoa.mm:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

Tools:

  • WebKitTestRunner/TestOptions.cpp:

(WTR::TestOptions::defaults):
(WTR::TestOptions::keyTypeMapping):

  • WebKitTestRunner/TestOptions.h:

(WTR::TestOptions::contentSecurityPolicyExtensionMode const):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateWebView):

LayoutTests:

Layout test coverage. We don’t allow loading of hosts
other than localhost and 127.0.0.1 in our test infrastructure,
so that made it difficult to write a test for remote sources
being blocked in manifest V3, and for blocked TLDs with wildcards
for manifest v2. We have existing unit test coverage for our isPublicSuffix
function.

  • TestExpectations:
  • platform/wk2/TestExpectations:
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-blob-scheme-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-blob-scheme-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-insecure-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-insecure-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-missing-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-missing-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-scheme-only-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-scheme-only.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-unsafe-eval-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-unsafe-eval-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-unsafe-inline-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-unsafe-inline-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-wildcard-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-wildcard-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-wildcard-prohibited-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/default-src/manifest-v2-default-src-wildcard-prohibited.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-host-only-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-host-only-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-scheme-only-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-scheme-only-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-wildcard-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/img-src/manifest-v2-img-src-wildcard-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-blob-scheme-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-blob-scheme-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-hash-source-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-hash-source-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-insecure-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-insecure-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-missing-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-missing-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-scheme-only-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-scheme-only.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-unsafe-eval-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-unsafe-eval-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-unsafe-inline-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-unsafe-inline-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-wildcard-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-wildcard-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-wildcard-blocked-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v2/script-src/manifest-v2-script-src-wildcard-blocked.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-block-non-https-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-block-non-https-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-block-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-block-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-can-load-insecure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-can-load-insecure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-can-load-secure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-can-load-secure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-self-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/default-src/manifest-v3-default-src-self.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-host-only-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-host-only-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-scheme-only-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-scheme-only-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-wildcard-allowed-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/img-src/manifest-v3-img-src-wildcard-allowed.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-non-https-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-non-https-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-partial-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-partial-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-block-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-can-load-insecure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-can-load-insecure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-can-load-secure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-can-load-secure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-self-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/object-src/manifest-v3-object-src-self.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/resources/check-style.js: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/resources/load-blob.js: Added.

(script.onload):
(script.onerror):

  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-non-https-scheme-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-non-https-scheme.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-partial-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-partial-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-block-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-blockes-nonces-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-blockes-nonces.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-blocks-hashes-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-blocks-hashes.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-can-load-insecure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-can-load-insecure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-can-load-secure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-can-load-secure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-self-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/script-src/manifest-v3-script-src-self.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/style-src/manifest-v3-style-src-allows-keywords-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/style-src/manifest-v3-style-src-allows-keywords.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-block-partial-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-block-partial-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-block-wildcard-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-block-wildcard.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-can-load-insecure-loopback-ip-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-can-load-insecure-loopback-ip.html: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-self-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/extensions/manifest-v3/worker-src/manifest-v3-worker-src-self.html: Added.
5:48 PM Changeset in webkit [292133] by Matteo Flores
  • 3 edits in trunk/LayoutTests

[ Mac , iOS Debug ] imported/w3c/web-platform-tests/html/cross-origin-opener-policy/resource-popup.https.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=228127

Unreviewed test gardening.

  • LayoutTests/platform/ios-wk2/TestExpectations:
  • LayoutTests/platform/mac-wk2/TestExpectations:
5:06 PM Changeset in webkit [292132] by commit-queue@webkit.org
  • 14 edits in trunk/Tools

[webkitbugspy] Get and set issue component data
https://bugs.webkit.org/show_bug.cgi?id=238514
<rdar://problem/90994542>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:

(Tracker.populate): Populate project, component and version.
(Tracker.set): Set project, component and version.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker.request): github.Tracker has no Exception member. Use RuntimeError instead.
(Tracker.populate): Populate labels and then extract component and version.
(Tracker.set): Set labels associated with components and versions.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py:

(Issue.init): Set _labels, _project, _component and _version values.
(Issue.labels): Populate and return labels.
(Issue.set_labels): Set labels associated with issue.
(Issue.project): Populate and return project.
(Issue.component): Populate and return component.
(Issue.version): Populate and return version.
(Issue.set_component): Set the project, component and version of an issue.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/bugzilla.py:

(Bugzilla._issue): Mock setting and returning project, component and version.
(Bugzilla._create): Populate project, component and version on creation.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/data.py: Set values for

project, component and version.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py:

(GitHub._labels_for_issue): Given an issue, return a list of labels. Take into
consideration component and version.
(GitHub._issue): Mock label editing and returning.
(GitHub._create): Ditto.
(GitHub.request): Support request to update labels.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/radar.py:

(RadarModel.init): Set component.
(RadarModel.commit_changes): Commit component changes.
(RadarClient.find_components): Implement version filter.
(RadarClient.create_radar): Create radar with component details.
(Radar.Component.get): Implement dict-like API.
(Radar.Component.getitem): Ditto.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py:

(Tracker.populate): Get project, component and version.
(Tracker.set): Set component information.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:

(TestBugzilla.test_create):
(TestBugzilla.test_create_prompt):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:

(TestGitHub.test_projects):
(TestGitHub.test_create_projects):

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py:

(TestRadar.test_create):
(TestRadar.test_create_prompt):

Canonical link: https://commits.webkit.org/249039@main

4:54 PM Changeset in webkit [292131] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.0.2

Tag Safari-613.2.4.0.2.

4:50 PM Changeset in webkit [292130] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.1.2

Tag Safari-613.2.4.1.2.

4:44 PM Changeset in webkit [292129] by Alan Coon
  • 4 edits in branches/safari-613-branch

Cherry-pick r290371. rdar://problem/88652375

Call WKNavigationDelegate.didFailProvisionalNavigation even after a cross-origin navigation with COOP
https://bugs.webkit.org/show_bug.cgi?id=237071
<rdar://88652375>

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

Source/WebKit:

There was an assumption that this callback wasn't needed in this case, but it is.
Covered by an API test that verifies the callback is received.

  • UIProcess/ProvisionalPageProxy.cpp: (WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm: (TEST):

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

4:33 PM Changeset in webkit [292128] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Use dispatch_source_create(DISPATCH_SOURCE_TYPE_SIGNAL, SIGTERM) in setOSTransaction()
https://bugs.webkit.org/show_bug.cgi?id=238559

Reviewed by Darin Adler.

Use dispatch_source_create(DISPATCH_SOURCE_TYPE_SIGNAL, SIGTERM) in setOSTransaction() instead of a
low-level signal(SIGTERM) handler, as recommended by the XPC team.

This is better becomes it has less limitations about what you can do in the handler. It is also
possible to set several handlers this way, in different parts of the code (i.e. also not worry about
some other code overriding our handler).

  • Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::setOSTransaction):

4:23 PM Changeset in webkit [292127] by Alan Bujtas
  • 5 edits in trunk

[CSS contain] Containment disables the special handling of the HTML body element for overflow viewport propagation.
https://bugs.webkit.org/show_bug.cgi?id=238526

Reviewed by Simon Fraser.

Source/WebCore:

https://www.w3.org/TR/css-overflow-3/#overflow-propagation

"...UAs must apply the overflow-* values set on the root element to the viewport when the root element’s display value is not none.
However, when the root element is an html element whose overflow value is visible, and that element has as a
child a body element whose display value is also not none, user agents must instead apply the
overflow-* values of the first such child element to the viewport.
The element from which the value is propagated must then have a used overflow value of visible.

Note: Using containment disables this special handling of the HTML body element..."

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateFromStyle):

LayoutTests:

  • TestExpectations:
  • fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping-expected.html:
  • fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html:
4:19 PM Changeset in webkit [292126] by sihui_liu@apple.com
  • 6 edits in trunk

Remove -[WKWebsiteDataStore _indexedDBDatabaseDirectory]
https://bugs.webkit.org/show_bug.cgi?id=238487

Reviewed by Alex Christensen.

Source/WebKit:

This is not used by SPI clients, and we have -[_WKWebsiteDataStoreConfiguration _indexedDBDatabaseDirectory].

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _indexedDBDatabaseDirectory]): Deleted.

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:

(createDirectories):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBUserDelete.mm:

(TEST):

3:59 PM Changeset in webkit [292125] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.3.1

Tag Safari-613.2.4.3.1.

3:59 PM Changeset in webkit [292124] by Alan Coon
  • 1 delete in tags/Safari-613.2.4.3.1

Delete tag.

3:56 PM Changeset in webkit [292123] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.3.1

Tag Safari-613.2.4.3.1.

2:56 PM Changeset in webkit [292122] by Jonathan Bedard
  • 3 edits in trunk/Tools

[Merge-Queue] Add http credential helper
https://bugs.webkit.org/show_bug.cgi?id=238553
<rdar://problem/91044821>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(CheckOutPullRequest.run): Add credential helper that pulls http credentials
from environment variables.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: https://commits.webkit.org/249035@main

2:07 PM Changeset in webkit [292121] by Jonathan Bedard
  • 2 edits in trunk/Tools

[Merge-Queue] Add Reviewers to commit message (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=238354
<rdar://problem/90800671>

Reviewed by Aakash Jain.

  • Tools/CISupport/ews-build/steps.py:

(AddReviewerMixin.gitCommitEnvironment) Renamed from environment:
(AddReviewerToCommitMessage.start):
(AddReviewerToChangeLog.run):
(AddReviewerMixin.environment): Renamed to gitCommitEnvironment.

Canonical link: https://commits.webkit.org/249034@main

1:55 PM Changeset in webkit [292120] by Devin Rousso
  • 26 edits in trunk/Source

Web Inspector: Sources: the mapped file URL of a Response Local Override should be clickable
https://bugs.webkit.org/show_bug.cgi?id=238533

Reviewed by Patrick Angle.

Source/WebCore:

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

(WebCore::InspectorFrontendHost::revealFileExternally): Added.
Add a helper for selecting a file in the system file explorer.

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.h:

(WebCore::InspectorFrontendClientLocal::revealFileExternally): Added.
Do nothing in tests (and WK1) as there is no way to check for another app being opened.

Source/WebInspectorUI:

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype._handleMappedFilePathChanged):
Instead of showing the mapped file path as basic text, linkify it such that it is shown in
the system file explorer when clicked.

  • UserInterface/Base/Main.js:

(WI.createMessageTextView):
Allow the message to be a Node (in addition to a String).

Source/WebKit:

  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::revealFileExternally): Added.

  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::revealFileExternally): Added.

  • UIProcess/Inspector/WebInspectorUIProxy.messages.in:
  • UIProcess/Inspector/WebInspectorUIProxy.h:
  • UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::revealFileExternally): Added.
(WebKit::WebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.mm:

(WebKit::WebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/win/WebInspectorUIProxyWin.mm:

(WebKit::WebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/RemoteWebInspectorUIProxy.messages.in:
  • UIProcess/Inspector/RemoteWebInspectorUIProxy.h:
  • UIProcess/Inspector/RemoteWebInspectorUIProxy.cpp:

(WebKit::RemoteWebInspectorUIProxy::revealFileExternally): Added.
(WebKit::RemoteWebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm:

(WebKit::RemoteWebInspectorUIProxy::platformRevealFileExternally): Added.

  • UIProcess/Inspector/win/RemoteWebInspectorUIProxyWin.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformRevealFileExternally): Added.
Add a helper for selecting a file in the system file explorer.

1:51 PM Changeset in webkit [292119] by sihui_liu@apple.com
  • 5 edits in trunk

Avoid initializing default WKWebsiteDataStore in -[WKWebViewConfiguration copyWithZone]
https://bugs.webkit.org/show_bug.cgi?id=238531
rdar://90628101

Reviewed by Tim Horton.

Source/WebKit:

API test: WKWebsiteDataStore.DoNotCreateDefaultDataStore

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration copyWithZone:]):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:

(TestWebKitAPI::TEST):

1:41 PM Changeset in webkit [292118] by Chris Dumez
  • 74 edits in trunk/Source

Optimize the construction of a JSC::Identifier from an ASCIILiteral
https://bugs.webkit.org/show_bug.cgi?id=238552

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

There are two ways to construct a JSC::Identifier from a string literal and both
were sub-optimal:

  • template<unsigned charactersCount> static Identifier fromString(VM&, const char (&characters)[charactersCount]): Even though it knows the charactersCount at compile time, it doesn't leverage this information at all. Also, it ends up calling AtomStringImpl::add() instead of AtomStringImpl::addLiteral() which means we lose the knowledge that it was a string literal and the optimization that come with it (e.g. not copying the characters over). In this patch, I am deprecating this function in favor of fromString(ASCIILiteral) which is now more efficient. I'll remove it in a follow up.
  • static Identifier fromString(VM&, ASCIILiteral): It ended up calling the Identifier(VM&, String) constructor which meant that we were potentially constructing a String/StringImpl unnecessarily before atomizing it since the string may already be in the AtomString table. We also failed to use the smallStrings cache for literals whose length is 1, which would happen when calling fromString(VM&, const char (&characters)[charactersCount]).

In this patch, I optimized fromString(VM&, ASCIILiteral) to leverage the smallStrings cache
when necessary and call AtomStringImpl::addLiteral() instead of AtomStringImpl::add(). I also
made sure to mark fromString(VM&, ASCIILiteral) and Identifier(VM&, ASCIILiteral) as
ALWAYS_INLINE to make sure the compiler can optimize out the strlen() calls.

According to A/B bots, this is a 1-1.5% progression on Speedometer and and a 1.3% progression on
JetStream on iMac 20,1 (Intel). Sadly, this is perf-neutral on those two benchmarks on Apple
Silicon.

  • API/JSAPIGlobalObject.mm:

(JSC::JSAPIGlobalObject::moduleLoaderCreateImportMetaProperties):

  • API/JSBase.cpp:

(JSGetMemoryUsageStatistics):

  • API/JSObjectRef.cpp:

(JSObjectMakeFunction):

  • builtins/BuiltinNames.cpp:

(JSC::BuiltinNames::BuiltinNames):

  • builtins/BuiltinUtils.h:
  • dynbench.cpp:
  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::functionDetails):
(Inspector::constructInternalProperty):
(Inspector::JSInjectedScriptHost::weakMapEntries):
(Inspector::JSInjectedScriptHost::weakSetEntries):
(Inspector::JSInjectedScriptHost::iteratorEntries):

  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::valueForScopeLocation):
(Inspector::JSJavaScriptCallFrame::scopeDescriptions):

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::extractSourceInformationFromException):

  • inspector/agents/InspectorAuditAgent.cpp:

(Inspector::InspectorAuditAgent::populateAuditObject):

  • jsc.cpp:

(GlobalObject::moduleLoaderCreateImportMetaProperties):
(JSC_DEFINE_HOST_FUNCTION):
(dumpException):

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::hostResolveImportedModule):

  • runtime/AtomicsObject.cpp:

(JSC::AtomicsObject::finishCreation):

  • runtime/CommonIdentifiers.cpp:

(JSC::CommonIdentifiers::CommonIdentifiers):

  • runtime/FinalizationRegistryPrototype.cpp:

(JSC::FinalizationRegistryPrototype::finishCreation):

  • runtime/Identifier.cpp:

(JSC::Identifier::addLiteral):

  • runtime/Identifier.h:

(JSC::Identifier::Identifier):

  • runtime/IdentifierInlines.h:

(JSC::Identifier::fromString):

  • runtime/IntlLocale.cpp:

(JSC::IntlLocale::textInfo):
(JSC::IntlLocale::weekInfo):

  • runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::initializeNumberFormat):
(JSC::IntlNumberFormat::resolvedOptions const):
(JSC::IntlNumberFormat::formatToPartsInternal):

  • runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::resolvedOptions const):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::exposeDollarVM):

  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::finishCreation):

  • runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

  • runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):

  • runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):

  • runtime/SymbolConstructor.cpp:
  • tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSDollarVM::finishCreation):

  • wasm/js/JSWebAssemblyGlobal.cpp:

(JSC::JSWebAssemblyGlobal::type):

  • wasm/js/JSWebAssemblyMemory.cpp:

(JSC::JSWebAssemblyMemory::type):

  • wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::type):

  • wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyMemoryConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • wasm/js/WebAssemblyTagPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

Source/WebCore:

Adopt the JSC::Identifier constructor from an ASCIILiteral more widely.

  • Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.cpp:

(WebCore::ApplePayAMSUIPaymentHandler::finishSession):

  • Modules/encryptedmedia/legacy/LegacyCDMSessionClearKey.cpp:

(WebCore::CDMSessionClearKey::update):

  • Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::registerProcessor):

  • Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::AudioWorkletProcessor::process):

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::JSCustomElementRegistry::define):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::DialogHandler::dialogCreated):
(WebCore::DialogHandler::returnValue const):
(WebCore::JSDOMWindow::setOpener):
(WebCore::JSDOMWindow::setOpenDatabase):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSImageDataCustom.cpp:

(WebCore::toJSNewlyCreated):

  • bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::createImportMetaProperties):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDictionaryImplementationContent):
(addUnscopableProperties):
(GenerateImplementation):
(GenerateAttributeSetterBodyDefinition):
(GenerateDefaultToJSONOperationDefinition):
(GenerateCallbackImplementationContent):
(GenerateConstructorHelperMethods):

  • bindings/scripts/test/JS/JSExposedStar.cpp:

(WebCore::JSExposedStarPrototype::finishCreation):

  • bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:

(WebCore::convertDictionary<ExposedToWorkerAndWindow::Dict>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::setJSTestCEReactions_stringifierAttributeSetter):
(WebCore::setJSTestCEReactions_stringifierAttributeNotNeededSetter):

  • bindings/scripts/test/JS/JSTestCallbackInterface.cpp:

(WebCore::convertDictionary<TestCallbackInterface::Dictionary>):
(WebCore::JSTestCallbackInterface::callbackWithNoParam):
(WebCore::JSTestCallbackInterface::callbackWithArrayParam):
(WebCore::JSTestCallbackInterface::callbackWithSerializedScriptValueParam):
(WebCore::JSTestCallbackInterface::callbackWithStringList):
(WebCore::JSTestCallbackInterface::callbackWithBoolean):
(WebCore::JSTestCallbackInterface::callbackRequiresThisToPass):
(WebCore::JSTestCallbackInterface::callbackWithAReturnValue):
(WebCore::JSTestCallbackInterface::callbackThatRethrowsExceptions):
(WebCore::JSTestCallbackInterface::callbackWithThisObject):

  • bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:

(WebCore::JSTestConditionalIncludesDOMConstructor::initializeProperties):
(WebCore::JSTestConditionalIncludesPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:

(WebCore::JSTestConditionallyReadWritePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:

(WebCore::JSTestDefaultToJSONPrototype::finishCreation):
(WebCore::jsTestDefaultToJSONPrototypeFunction_toJSONBody):

  • bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:

(WebCore::JSTestDefaultToJSONFilteredByExposedPrototype::finishCreation):
(WebCore::jsTestDefaultToJSONFilteredByExposedPrototypeFunction_toJSONBody):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:

(WebCore::jsTestDefaultToJSONInheritPrototypeFunction_toJSONBody):

  • bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:

(WebCore::jsTestDefaultToJSONInheritFinalPrototypeFunction_toJSONBody):

  • bindings/scripts/test/JS/JSTestDerivedDictionary.cpp:

(WebCore::convertDictionary<TestDerivedDictionary>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestDerivedDictionary2.cpp:

(WebCore::convertDictionary<TestDerivedDictionary2>):
(WebCore::convertDictionaryToJS):
(WebCore::convertDictionary<TestDerivedDictionary2::Dictionary>):

  • bindings/scripts/test/JS/JSTestDictionary.cpp:

(WebCore::convertDictionary<TestDictionary>):

  • bindings/scripts/test/JS/JSTestDictionaryWithOnlyConditionalMembers.cpp:

(WebCore::convertDictionary<TestDictionaryWithOnlyConditionalMembers>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySettingDOMConstructor::initializeProperties):
(WebCore::JSTestEnabledBySettingPrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::convertDictionary<TestEventConstructor::Init>):

  • bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachablePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestInheritedDictionary.cpp:

(WebCore::convertDictionary<TestInheritedDictionary>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestInheritedDictionary2.cpp:

(WebCore::convertDictionary<TestInheritedDictionary2>):
(WebCore::convertDictionaryToJS):

  • bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterfacePrototype::finishCreation):

  • bindings/scripts/test/JS/JSTestNamespaceObject.cpp:

(WebCore::JSTestNamespaceObjectDOMConstructor::initializeProperties):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNodePrototype::finishCreation):
(WebCore::jsTestNodePrototypeFunction_toJSONBody):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::convertDictionary<TestObj::Dictionary>):
(WebCore::convertDictionaryToJS):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldNotTolerateNull>):
(WebCore::convertDictionary<TestObj::DictionaryThatShouldTolerateNull>):
(WebCore::convertDictionary<AlternateDictionaryName>):
(WebCore::convertDictionary<TestObj::ParentDictionary>):
(WebCore::convertDictionary<TestObj::ChildDictionary>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryA>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryB>):
(WebCore::convertDictionary<TestObj::ConditionalDictionaryC>):
(WebCore::JSTestObjDOMConstructor::initializeProperties):
(WebCore::JSTestObjPrototype::finishCreation):
(WebCore::setJSTestObj_putForwardsAttributeSetter):
(WebCore::setJSTestObj_putForwardsNullableAttributeSetter):

  • bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:

(WebCore::convertDictionary<TestPromiseRejectionEvent::Init>):

  • bindings/scripts/test/JS/JSTestStandaloneDictionary.cpp:

(WebCore::convertDictionary<DictionaryImplName>):
(WebCore::convertDictionaryToJS):

  • html/HTMLMediaElement.cpp:

(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::updateCaptionContainer):
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):

1:20 PM Changeset in webkit [292117] by Antti Koivisto
  • 7 edits in trunk

[CSS Container Queries] Keep colon syntax when serializing container condition
https://bugs.webkit.org/show_bug.cgi?id=238542

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/at-container-serialization-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/at-container-serialization.html:

Source/WebCore:

Don't switch to the range syntax when serializing (min-width: 100px) and similar.

  • css/ContainerQuery.cpp:

(WebCore::CQ::serialize):

Add an enum that remembers the syntax used and use it when deciding how to serialize.

  • css/ContainerQuery.h:
  • css/ContainerQueryParser.cpp:

(WebCore::consumeFeatureName):
(WebCore::ContainerQueryParser::consumePlainSizeFeature):

Also fix a bug where plain size feature names were not lowercased.

(WebCore::ContainerQueryParser::consumeRangeSizeFeature):

12:14 PM Changeset in webkit [292116] by Alan Coon
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Revert "Versioning."

This reverts r292115.

12:07 PM Changeset in webkit [292115] by Alan Coon
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.15

11:46 AM Changeset in webkit [292114] by Alan Coon
  • 12 edits in branches/safari-613.2.4.1-branch/Source/WebKit

Revert r289292. rdar://90113314

This reverts r289292.

11:46 AM Changeset in webkit [292113] by Alan Coon
  • 14 edits
    2 adds in branches/safari-613.2.4.1-branch

Revert r290708. rdar://90113314

This reverts r290708.

11:44 AM Changeset in webkit [292112] by Alan Coon
  • 12 edits in branches/safari-613.2.4.0-branch/Source/WebKit

Revert r289292. rdar://90113314

This reverts r289292.

11:44 AM Changeset in webkit [292111] by Alan Coon
  • 14 edits
    2 adds in branches/safari-613.2.4.0-branch

Revert r290708. rdar://90113314

This reverts r290708.

11:40 AM Changeset in webkit [292110] by youenn@apple.com
  • 38 edits
    1 copy in trunk

Implement persistent notification handling
https://bugs.webkit.org/show_bug.cgi?id=238498

Reviewed by Brady Eidson.

Source/WebCore:

Before the patch, we were directly going from UIProcess to service worker process.
This works if the service worker is running but does not otherwise.
To make sure we now go to NetworkProcess.
To implement https://notifications.spec.whatwg.org/#persistent-notification,
we add a service worker registration URL to NotficationData.
We remove the notfication handling going through NotificationEvent and make it Document specific.
Instead, we go through ServiceWorkerThreadProxy.
Make sure SWServer treats notification events as functional events.
Covered by updated test.

  • Headers.cmake:
  • Modules/notifications/Notification.cpp:

(WebCore::Notification::create):
(WebCore::Notification::dispatchClickEvent):
(WebCore::Notification::dispatchCloseEvent):
(WebCore::Notification::data const):

  • Modules/notifications/Notification.h:
  • Modules/notifications/NotificationData.cpp:

(WebCore::NotificationData::isolatedCopy const):
(WebCore::NotificationData::isolatedCopy):

  • Modules/notifications/NotificationData.h:

(WebCore::NotificationData::encode const):
(WebCore::NotificationData::decode):

  • Modules/notifications/NotificationEvent.h:
  • Modules/notifications/NotificationEventType.h: Added.
  • WebCore.xcodeproj/project.pbxproj:
  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::postTaskToFireNotificationEvent): Deleted.

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/context/SWContextManager.cpp:

(WebCore::SWContextManager::fireNotificationEvent):

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

(WebCore::ServiceWorkerThread::queueTaskToFirePushSubscriptionChangeEvent):
(WebCore::ServiceWorkerThread::queueTaskToFireNotificationEvent):
(WebCore::ServiceWorkerThread::startFunctionalEventMonitoring):
(WebCore::ServiceWorkerThread::heartBeatTimerFired):
(WebCore::ServiceWorkerThread::startPushEventMonitoring): Deleted.

  • workers/service/context/ServiceWorkerThread.h:

(WebCore::ServiceWorkerThread::stopFunctionalEventMonitoring):
(WebCore::ServiceWorkerThread::stopPushEventMonitoring): Deleted.

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::~ServiceWorkerThreadProxy):
(WebCore::ServiceWorkerThreadProxy::firePushEvent):
(WebCore::ServiceWorkerThreadProxy::fireNotificationEvent):

  • workers/service/context/ServiceWorkerThreadProxy.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::processPushMessage):
(WebCore::SWServer::processNotificationEvent):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerToContextConnection.h:
  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::decrementFunctionalEventCounter):
(WebCore::SWServerWorker::terminateIfPossible):
(WebCore::SWServerWorker::decrementPushEventCounter): Deleted.

  • workers/service/server/SWServerWorker.h:

(WebCore::SWServerWorker::incrementFunctionalEventCounter):
(WebCore::SWServerWorker::shouldContinue const):
(WebCore::SWServerWorker::incrementPushEventCounter): Deleted.

Source/WebKit:

When receiving an update for a notification, check if the notification is tied to a service worker registration.
If so, go to network process to fire a functional event, as per https://notifications.spec.whatwg.org/#activating-a-notification
and https://notifications.spec.whatwg.org/#ref-for-fire-a-service-worker-notification-event①
UIProcess sends the corresponding NotficationData to NetworkProcess.
NetworkProcess gets the service worker registration, runs the service worker as needed and fires the functional event.
Add IPC plumbing code to support this flow.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::processNotificationEvent):
(WebKit::NetworkProcess::processPushMessage):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::firePushEvent):
(WebKit::WebSWServerToContextConnection::fireNotificationEvent):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::processNotificationEvent):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Notifications/WebNotification.cpp:

(WebKit::WebNotification::WebNotification):

  • UIProcess/Notifications/WebNotification.h:

(WebKit::WebNotification::title const):
(WebKit::WebNotification::body const):
(WebKit::WebNotification::iconURL const):
(WebKit::WebNotification::tag const):
(WebKit::WebNotification::lang const):
(WebKit::WebNotification::dir const):
(WebKit::WebNotification::coreNotificationID const):
(WebKit::WebNotification::sessionID const):
(WebKit::WebNotification::data const):
(WebKit::WebNotification::isPersistentNotification const):
(WebKit::WebNotification::notificationID const):

  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:

(WebKit::dispatchDidClickNotification):
(WebKit::WebNotificationManagerProxy::providerDidCloseNotifications):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::fireNotificationEvent):

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

LayoutTests:

  • http/tests/workers/service/shownotification-allowed.html:
11:39 AM Changeset in webkit [292109] by clopez@igalia.com
  • 8 edits
    4 adds in trunk

[GTK][WPE] generate-bundle: self-contained bundle for the MiniBrowser that can work on any distro
https://bugs.webkit.org/show_bug.cgi?id=237107

Rubber-stamped by Philippe Normand.

Source/WebCore:

No new tests, no change in behaviour.

  • platform/network/soup/SoupNetworkSession.cpp:

(WebCore::SoupNetworkSession::SoupNetworkSession): Allow to load the TLS database specified on the
environment variable WEBKIT_TLS_CAFILE_PEM when DEVELOPER_MODE is enabled

  • platform/network/soup/SoupVersioning.h:

(soup_session_set_tls_database):

Tools:

This implements in the generate-bundle script the support to generate a bundle self-contained that can work on any distro.
To achieve that the bundle contains all the required system libraries inside the bundle (even the graphics drivers).
It also contains the required system resources: icons (for gtk), fontconfig files and fonts, etc.
A custom dlopenwrap library is also added and preloaded. The purpose of this library is to wrap all dlopen() calls
and rewrite the paths to ensure that only libraries inside the bundle are loaded.

The bundle has been tested to be generated with the flatpak build and executed on a range of very different distributions
with sucess: Fedora, Ubuntu, Debian, Alpine, CentOS (different versions of each)

  • Scripts/bundle-binary:
  • Scripts/generate-bundle:
  • Scripts/webkitpy/binary_bundling/bundle.py:

(BinaryBundler):
(BinaryBundler.init):
(BinaryBundler._is_system_dep):
(BinaryBundler.set_use_sys_lib_directory):
(BinaryBundler.copy_and_maybe_strip_patchelf):
(BinaryBundler.destination_dir):
(BinaryBundler.generate_wrapper_script):
(BinaryBundler.copy_and_remove_rpath): Deleted.

  • Scripts/webkitpy/binary_bundling/dlopenwrap/Makefile: Added.
  • Scripts/webkitpy/binary_bundling/dlopenwrap/README.txt: Added.
  • Scripts/webkitpy/binary_bundling/dlopenwrap/dlopenwrap.c: Added.

(dlopen_wrapper_path_join):
(is_dir):
(dlopen_wrapper_recursive_find):
(dlopen_wrapper_get_path_for_file_under_dir):
(dlopen_wrapper_find_library_on_libpath):
(dlopen):
(dlmopen):
(dlerror):

  • Scripts/webkitpy/style/checker.py:
10:38 AM Changeset in webkit [292108] by Russell Epstein
  • 1 copy in tags/Safari-614.1.7.4

Tag Safari-614.1.7.4.

10:01 AM Changeset in webkit [292107] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Unreviewed, fix test after r285521 and r271735

  • http/tests/paymentrequest/updateWith-shippingOptions.https.html:

Remove a duplicate assert_equals added in r271735 (which should've been removed in r285521).
Drive-by: Also check that the selected of each provided shipping method/option matches.

8:08 AM WebKitGTK/2.36.x edited by Michael Catanzaro
(diff)
7:56 AM Changeset in webkit [292106] by Chris Dumez
  • 20 edits in trunk/Source

Add HashTranslator for ASCIILiteral for faster lookup in HashMaps / HashSets
https://bugs.webkit.org/show_bug.cgi?id=238521

Reviewed by Geoffrey Garen.

Add HashTranslator for ASCIILiteral for faster lookup in HashMaps / HashSets using an ASCIILiteral,
without the need for allocating a String.

Source/WebCore:

  • Modules/fetch/FetchBodyConsumer.cpp:

(WebCore::FetchBodyConsumer::packageFormData):

  • Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::YouTubePluginReplacement::installReplacement):

  • Modules/websockets/WebSocketDeflateFramer.cpp:

(WebCore::WebSocketExtensionDeflateFrame::processResponse):

  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const):
(WebCore::CrossOriginPreflightResultCacheItem::validateCrossOriginHeaders const):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::filter):
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):

Source/WebKit:

  • Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::getUserDirectorySuffix):

  • UIProcess/AuxiliaryProcessProxy.cpp:

(WebKit::AuxiliaryProcessProxy::getLaunchOptions):

  • UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::getLaunchOptions):

  • UIProcess/glib/WebProcessProxyGLib.cpp:

(WebKit::WebProcessProxy::platformGetLaunchOptions):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeProcess):

Source/WTF:

  • wtf/text/StringImpl.h:
  • wtf/text/WTFString.h:

(WTF::HashTranslatorASCIILiteral::hash):
(WTF::HashTranslatorASCIILiteral::equal):
(WTF::HashTranslatorASCIILiteral::translate):

6:28 AM Changeset in webkit [292105] by youenn@apple.com
  • 18 edits in trunk

Implement ServiceWorker WindowClient.ancestorOrigins
https://bugs.webkit.org/show_bug.cgi?id=238441

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/idlharness.https.any.serviceworker-expected.txt:

Source/WebCore:

Add ancestorOrigins to ServiceWorkerClientData.
Migrate client map to UniqueRef since ServiceWorkerClientData size goes above 128.

Covered by updated tests.

  • workers/service/ServiceWorkerClientData.cpp:
  • workers/service/ServiceWorkerClientData.h:
  • workers/service/ServiceWorkerWindowClient.h:
  • workers/service/ServiceWorkerWindowClient.idl:
  • workers/service/server/SWServer.cpp:
  • workers/service/server/SWServer.h:

Source/WebKit:

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::controlClient):

Source/WTF:

Update UniqueRef and HashTraits to not use a private constructor when creating empty values.

  • wtf/HashTraits.h:
  • wtf/UniqueRef.h:

LayoutTests:

  • http/wpt/service-workers/resources/third-party-worker.js:
  • http/wpt/service-workers/third-party-registration.html:
5:58 AM Changeset in webkit [292104] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

Slim down ANGLEHeaders.h
https://bugs.webkit.org/show_bug.cgi?id=238539

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-30
Reviewed by Adrian Perez de Castro.

Define the EGL_NO_PLATFORM_SPECIFIC_TYPES macro in ANGLEHeaders.h before
including the ANGLE entrypoint headers. These will subsequently include
EGL's platform headers, but the macro prevents including additional
platform-specific headers (e.g. X11 development headers) that often
bring in additional generically-named identifiers and macros that end up
colliding with WebCore and WebKit types. The libepoxy header inclusion
is also removed, it should be done where necessary and not everywhere
ANGLEHeaders.h ends up included.

  • platform/graphics/angle/ANGLEHeaders.h:
  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h:
5:04 AM Changeset in webkit [292103] by commit-queue@webkit.org
  • 2 edits
    2 adds
    1 delete in trunk/Tools/buildstream

[Flatpak SDK] Bump to Meson 0.62.
https://bugs.webkit.org/show_bug.cgi?id=238454

Patch by Philippe Normand <pnormand@igalia.com> on 2022-03-30
Reviewed by Adrian Perez de Castro.

Needed for meson devenv --dump support in local dependencies builds.

  • elements/freedesktop-sdk.bst:
  • patches/fdo-0001-gobject-introspection-Bump-to-1.72.patch: Added.
  • patches/fdo-0001-meson-Bump-to-0.60.3.patch: Removed.
  • patches/fdo-0002-meson-Bump-to-1.62.patch: Added.
2:48 AM Changeset in webkit [292102] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebKit

Move AuxiliaryProcess::createIPCConnectionPair to IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=238504

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-30
Reviewed by Chris Dumez.

Move connection port/socket/pipe pair creation function from AuxiliaryProcess
to IPC::Connection. This way other components than AuxiliaryProcess subclasses
can create and send new connections.

No new tests, refactor.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::createGPUConnectionToWebProcess):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):

  • Platform/IPC/Connection.cpp:

(IPC::Connection::createConnectionIdentifierPair):

  • Platform/IPC/Connection.h:
  • Platform/IPC/cocoa/ConnectionCocoa.mm:

(IPC::Connection::createConnectionIdentifierPair):

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::createConnectionIdentifierPair):

  • Platform/IPC/win/ConnectionWin.cpp:

(IPC::Connection::createConnectionIdentifierPair):

  • Shared/AuxiliaryProcess.cpp:
  • Shared/AuxiliaryProcess.h:
  • WebAuthnProcess/WebAuthnProcess.cpp:

(WebKit::WebAuthnProcess::createWebAuthnConnectionToWebProcess):

  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::updateConnection):

1:32 AM Changeset in webkit [292101] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Remove obsolete --useProbeOSRExit option.
https://bugs.webkit.org/show_bug.cgi?id=238534

Reviewed by Saam Barati.

  • dfg/DFGJITCompiler.cpp:

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

  • runtime/Options.cpp:

(JSC::Options::recomputeDependentOptions):

  • runtime/OptionsList.h:
1:19 AM Changeset in webkit [292100] by Lauro Moura
  • 8 edits in trunk/Source/WebCore

Unreviewed, non-unified build fixes
https://bugs.webkit.org/show_bug.cgi?id=238536

  • contentextensions/ContentExtensionError.cpp:
  • contentextensions/ContentExtensionError.h:
  • css/ContainerQuery.cpp:
  • html/HTMLTextFormControlElement.cpp:
  • inspector/InspectorFrontendHost.cpp:
  • page/Page.cpp:
  • page/csp/ContentSecurityPolicyDirectiveNames.cpp:
12:41 AM Changeset in webkit [292099] by Pablo Saavedra
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Exit cleanly if Connection to UIProcess severed. Regression (r214307)
https://bugs.webkit.org/show_bug.cgi?id=235224

This patch reverts the WPE and GTK specific code removed in '[WK2] Make
establishing a connection between the WebProcess and the Network process more
robust' (r12345):

GTK+ and WPE ports don't exit on send sync message failure. In those particular
cases, the network process can be terminated by the UI process while the
Web process is still initializing, so we always want to exit instead of crashing. This can
happen when the WebView is created and then destroyed quickly.
See https://bugs.webkit.org/show_bug.cgi?id=183348.

Reviewed by Carlos Garcia Campos.

  • WebProcess/WebProcess.cpp:

(WebKit::getNetworkProcessConnection):
(WebKit::WebProcess::getGPUProcessConnection):
(WebKit::getWebAuthnProcessConnection):

12:22 AM Changeset in webkit [292098] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebGPU

[WebGPU] Refactor isDepthOrStencilFormat() for upcoming data transfer patches
https://bugs.webkit.org/show_bug.cgi?id=238427

Reviewed by Kimmo Kinnunen.

This exposes isDepthOrStencilFormat() outside of Texture.mm, and changes its implementation
to use depthSpecificFormat() and stencilSpecificFormat(), which will become useful in the
implementation of subsequent data transfer patches.

  • WebGPU/Texture.h:
  • WebGPU/Texture.mm:

(WebGPU::depthSpecificFormat):
(WebGPU::stencilSpecificFormat):
(WebGPU::Texture::containsDepthAspect):
(WebGPU::Texture::containsStencilAspect):
(WebGPU::Texture::isDepthOrStencilFormat):
(WebGPU::Device::validateCreateTexture):
(WebGPU::isDepthOrStencilFormat): Deleted.

12:03 AM Changeset in webkit [292097] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebKit

Window is too small after entering and exiting video/element fullscreen
https://bugs.webkit.org/show_bug.cgi?id=238488
rdar://89363964

Reviewed by Tim Horton.

Don't change the size of the window to the size of the element.

  • UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:

(-[WKFullScreenWindowController beganEnterFullScreenWithInitialFrame:finalFrame:]):

Mar 29, 2022:

11:37 PM Changeset in webkit [292096] by Fujii Hironori
  • 3 edits
    1 delete in trunk/LayoutTests

[WinCairo] Unreviewed test gardening

  • platform/wincairo-wk1/TestExpectations:
  • platform/wincairo/TestExpectations:
  • platform/wincairo/fast/text/softHyphen-expected.txt: Removed.
11:12 PM Changeset in webkit [292095] by Brandon
  • 2 edits in trunk/Source/WebCore

Ensure m_layerRulesBeforeImportRules is properly copied during StyleSheetContents instantiation
https://bugs.webkit.org/show_bug.cgi?id=238537

Reviewed by Antti Koivisto.

During the instantiation of the StyleSheetContents the m_layerRulesBeforeImportRules was not being
properly copied.

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::StyleSheetContents):

6:57 PM Changeset in webkit [292094] by Diego Pino Garcia
  • 2 edits in trunk/Source/WebCore

[GCC] Ubuntu LTS build broken after r291956
https://bugs.webkit.org/show_bug.cgi?id=238481

Reviewed by Darin Adler.

Default comparisons by value (P1946R0) is only supported since GCC10.
https://en.cppreference.com/w/cpp/compiler_support/20

  • rendering/style/StyleGridData.h:

(WebCore::GridTrackEntrySubgrid::operator== const):
(WebCore::GridTrackEntryRepeat::operator== const):
(WebCore::GridTrackEntryAutoRepeat::operator== const):

6:36 PM Changeset in webkit [292093] by Alan Coon
  • 87 edits
    3 deletes in branches/safari-613-branch

Apply patch. rdar://problem/89997669

6:36 PM Changeset in webkit [292092] by Alan Coon
  • 3 edits in branches/safari-613-branch

Apply patch. rdar://problem/89997669

6:35 PM Changeset in webkit [292091] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick r291494. rdar://problem/90957324

Keep a strong reference to session in [WebCoreNSURLSessionDataTask _restart]
https://bugs.webkit.org/show_bug.cgi?id=238061
<rdar://88242622>

Patch by Alex Christensen <achristensen@webkit.org> on 2022-03-18
Reviewed by Eric Carlson.

_session is a WeakObjCPtr<WebCoreNSURLSession> and since we're not using ARC self.session
returns a raw pointer to an object that may be deallocated and null out its loader on a different thread.
To prevent null crashes, keep a strong reference to the session when using it.

  • platform/network/cocoa/WebCoreNSURLSession.mm: (-[WebCoreNSURLSession dealloc]): (-[WebCoreNSURLSessionDataTask _restart]):

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

6:35 PM Changeset in webkit [292090] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick r290840. rdar://problem/90957274

[WebAuthn] Don't use decidePolicyForLocalAuthenticator for Web Authentication Modern
https://bugs.webkit.org/show_bug.cgi?id=225646
rdar://78147681

Reviewed by Brent Fulgham.

decidePolicyForLocalAuthenticator is not implemented for the _WKWebAuthenticationPanelDelegate
used for modern because the prompt to allow Touch/FaceID comes earlier in the process.

  • UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: (WebKit::LocalAuthenticator::makeCredential):

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

6:35 PM Changeset in webkit [292089] by Alan Coon
  • 3 edits in branches/safari-613-branch

Cherry-pick r290392. rdar://problem/90957261

[WebAuthn] Improve error message for missing pubKeyCredParams
https://bugs.webkit.org/show_bug.cgi?id=235421
rdar://87884875

Reviewed by Brent Fulgham.

Source/WebCore:

We have seen confusion from library authors around the language
used in this error not indicating enough information about what
the problem is. This patch adds additional information, useful
to developers seeing this error.

  • Modules/webauthn/AuthenticatorCoordinator.cpp: (WebCore::AuthenticatorCoordinator::create const):

LayoutTests:

Update test to reflect new error message.

  • http/wpt/webauthn/public-key-credential-create-failure.https.html:

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

6:27 PM Changeset in webkit [292088] by Alan Coon
  • 9 edits in branches/safari-613.2.4.1-branch/Source

Versioning.

WebKit-7613.2.4.1.2

6:23 PM Changeset in webkit [292087] by Alan Coon
  • 9 edits in branches/safari-613.2.4.0-branch/Source

Versioning.

WebKit-7613.2.4.0.2

5:34 PM Changeset in webkit [292086] by Tyler Wilcock
  • 10 edits
    3 adds in trunk

AX: Don't detach children in AXIsolatedTree::applyPendingChanges for nodes being updated (removed and added)
https://bugs.webkit.org/show_bug.cgi?id=238460

Reviewed by Chris Fleizach and Andres Gonzalez.

Source/WebCore:

In AXIsolatedTree::updateNode, we perform the update by queuing the node to be
removed, and then queueing it to be added. When performing the removal in
AXIsolatedTree::applyPendingChanges, we call AXCoreObject::detach, which unconditionally
calls AXCoreObject::detachRemoteParts. Specifically, AXIsolatedObject::detachRemoteParts
detaches all the object's children from the itself (by setting their m_parentID to zero).
Then, when we start applying m_pendingAppends, we re-add the object, but never re-attach
the children, resulting in a broken tree.

This patch fixes this by storing the reason (AccessibilityDetachmentType) the node is
being removed in m_pendingNodeRemovals, and not detaching children if the type is
AccessibilityDetachmentType::ElementChanged, as in the case of a node update.

This patch also removes AXIsolatedObject::setParent. It's never called, and
its existence is therefore confusing.

Test: accessibility/search-traversal-after-role-change.html.
This test exercises the behavior in this patch because changing an
object's role triggers AXIsolatedTree::updateNode.

  • accessibility/AccessibilityObjectInterface.h:

(WebCore::AXCoreObject::detach):

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::setParent): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
  • accessibility/isolatedtree/AXIsolatedTree.cpp:

(WebCore::AXIsolatedTree::updateNode):
(WebCore::AXIsolatedTree::applyPendingChanges):

  • accessibility/isolatedtree/AXIsolatedTree.h:

LayoutTests:

  • accessibility/search-traversal-after-role-change-expected.txt: Added.
  • accessibility/search-traversal-after-role-change.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/ios/accessibility/search-traversal-after-role-change-expected.txt: Added.
  • platform/win/TestExpectations: Skip new test.
5:32 PM Changeset in webkit [292085] by Tyler Wilcock
  • 3 edits in trunk/Source/WebCore

AXIsolatedObject::isAccessibilityObject should not be ASSERT_NOT_REACHED
https://bugs.webkit.org/show_bug.cgi?id=238511

Reviewed by Chris Fleizach.

We try to downcast AXCoreObjects to AccessibilityObjects here in AXLogger's TextStream& operator<<(TextStream&, const AXCoreObject&):

if (auto* axObject = dynamicDowncast<AccessibilityObject>(&object); axObject && axObject->hasDisplayContents())

stream.dumpProperty("hasDisplayContents", true);

So this should not ASSERT_NOT_REACHED in AXIsolatedObject.

  • accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::isAccessibilityObject const): Deleted.

  • accessibility/isolatedtree/AXIsolatedObject.h:
5:12 PM Changeset in webkit [292084] by Devin Rousso
  • 44 edits
    1 copy
    3 adds in trunk

Web Inspector: Sources: allow Response Local Overrides to map to a file on disk
https://bugs.webkit.org/show_bug.cgi?id=238236
<rdar://problem/59009154>

Reviewed by Patrick Angle.

Source/WebCore:

This makes Response Local Overrides even more powerful by allowing developers to map the
contents of the (Local Override) resource to a file on disk (e.g. a local copy of the file),
meaning that they can use their preferred editor of choice (and all the tools that may come
with it) to make changes instead of having to stay within Web Inspector.

Test: http/tests/inspector/network/local-resource-override-mapped-to-file.html

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

(WebCore::InspectorFrontendHost::canLoad): Added.
(WebCore::InspectorFrontendHost::load): Added.
(WebCore::InspectorFrontendHost::getPath): Added.
Add helpers for loading the contents of a file on disk and getting the full path of a File.

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.h:

(WebCore::InspectorFrontendClientLocal::canLoad): Added.
(WebCore::InspectorFrontendClientLocal::load): Added.
Do not allow file mapping in tests (and WK1).

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

(WebCore::Internals::createTemporaryFile): Added.
Add a way for tests to create a temporary file with given contents.

Source/WebInspectorUI:

This makes Response Local Overrides even more powerful by allowing developers to map the
contents of the (Local Override) resource to a file on disk (e.g. a local copy of the file),
meaning that they can use their preferred editor of choice (and all the tools that may come
with it) to make changes instead of having to stay within Web Inspector.

  • UserInterface/Models/LocalResource.js:

(WI.LocalResource):
(WI.LocalResource.canMapToFile): Added.
(WI.LocalResource.prototype.toJSON):
(WI.LocalResource.prototype.get mappedFilePath): Added.
(WI.LocalResource.prototype.set mappedFilePath): Added.
(WI.LocalResource.prototype.async requestContent):
(WI.LocalResource.prototype.async _loadFromFileSystem): Added.

  • UserInterface/Models/LocalResourceOverride.js:

(WI.LocalResourceOverride.prototype.get canMapToFile): Added.
Save the given local file path as a member variable and use InspectorFrontendHost.load to
grab its contents (saving it inside the WI.LocalResource so that it can still be used in
case the file is moved/deleted) whenever anyone requestContent.

  • UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView):
(WI.ResourceContentView.prototype.get navigationItems):
(WI.ResourceContentView.prototype.showMessage):
(WI.ResourceContentView.prototype.addIssue):
(WI.ResourceContentView.prototype._contentAvailable):
(WI.ResourceContentView.prototype.async _handleMapLocalResourceOverrideToFile): Added.
(WI.ResourceContentView.prototype._handleMappedFilePathChanged): Added.
Add a new "[Disk.svg] Map to File" navigation item when viewing Response Local Overrides. If
the Response Local Override has already been mapped to a file, show the path of the file
instead of the contents of the resource. This allows us to not have to monitor the file for
changes, instead only grabbing the current contents when necessary (i.e. when replacing the
response of an intercepted network request).

  • UserInterface/Views/ResourceContentView.css: Added.

(.content-view.resource > .local-resource-override-label-view + .message-text-view):
Still show the Local Override banner if the Local Override has been mapped to a file.

  • UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype._contentWillPopulate):
Don't show the WI.SourceCodeTextEditor if there's already something else being shown.

  • UserInterface/Controllers/NetworkManager.js:

(WI.NetworkManager.prototype.async requestIntercepted):
(WI.NetworkManager.prototype.async responseIntercepted):
Make sure to requestContent before using the currentRevision so that any file-mapped
WI.LocalResource have a chance to load from disk before handling the interception.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:
  • UserInterface/Images/Disk.svg: Added.

Source/WebKit:

This makes Response Local Overrides even more powerful by allowing developers to map the
contents of the (Local Override) resource to a file on disk (e.g. a local copy of the file),
meaning that they can use their preferred editor of choice (and all the tools that may come
with it) to make changes instead of having to stay within Web Inspector.

  • WebProcess/Inspector/WebInspectorUI.h:
  • WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::load): Added.
(WebKit::WebInspectorUI::canLoad): Added.

  • WebProcess/Inspector/gtk/WebInspectorUIGtk.cpp:

(WebKit::WebInspectorUI::canLoad): Added.

  • WebProcess/Inspector/mac/WebInspectorUIMac.mm:

(WebKit::WebInspectorUI::canLoad): Added.

  • WebProcess/Inspector/win/WebInspectorUIWin.cpp:

(WebKit::WebInspectorUI::canLoad): Added.

  • WebProcess/Inspector/RemoteWebInspectorUI.h:
  • WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::load): Added.

  • UIProcess/Inspector/WebInspectorUIProxy.messages.in:
  • UIProcess/Inspector/WebInspectorUIProxy.h:
  • UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::load): Added.
(WebKit::WebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp:

(WebKit::WebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp:

(WebKit::WebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/RemoteWebInspectorUIProxy.messages.in:
  • UIProcess/Inspector/RemoteWebInspectorUIProxy.h:
  • UIProcess/Inspector/RemoteWebInspectorUIProxy.cpp:

(WebKit::RemoteWebInspectorUIProxy::initialize): Renamed from load.
(WebKit::RemoteWebInspectorUIProxy::reopen):
(WebKit::RemoteWebInspectorUIProxy::load): Added.
(WebKit::RemoteWebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm:

(WebKit::RemoteWebInspectorUIProxy::platformLoad): Added.

  • UIProcess/Inspector/win/RemoteWebInspectorUIProxyWin.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformLoad): Added.
Add helpers for loading the contents of a file on disk.

  • UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:

(-[_WKRemoteWebInspectorViewController loadForDebuggable:backendCommandsURL:]):

  • UIProcess/Inspector/glib/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorProxy::initialize): Renamed from load.
(WebKit::RemoteInspectorClient::inspect):

  • UIProcess/Inspector/socket/RemoteInspectorClient.cpp:

(WebKit::RemoteInspectorProxy::initialize): Renamed from load.
(WebKit::RemoteInspectorClient::inspect):
Use renamed WebKit::RemoteWebInspectorUIProxy::initialize.

LayoutTests:

  • http/tests/inspector/network/local-resource-override-mapped-to-file.html: Added.
  • http/tests/inspector/network/local-resource-override-mapped-to-file-expected.txt: Added.
  • TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:

Skip this test everywhere except mac-wk2.

5:08 PM Changeset in webkit [292083] by ysuzuki@apple.com
  • 9 edits
    1 delete in trunk/Source/JavaScriptCore

[JSC] Use constants buffer to load JSGlobalObject in BaselineJIT thunks
https://bugs.webkit.org/show_bug.cgi?id=238414

Reviewed by Saam Barati.

Since these thunks are only called from BaselineJIT, we can assume constants
buffer register. And since we are always using 0 index for JSGlobalObject,
we can encode this into these shared thunks directly instead of loading
CodeBlock pointer from the stack.

We also fix using OBJECT_OFFSETOF for JSGlobalObject directly. We should use
it as JSGlobalObject::offsetOfXXX to make it clean and make it annotated that
these fields are accessed by JIT.

This patch also removes UnusedPointer.h since it is no longer used.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • jit/JIT.cpp:

(JSC::JIT::JIT):
(JSC::JIT::emitVarReadOnlyCheck):

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

(JSC::JIT::loadConstant):
(JSC::JIT::loadGlobalObject):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_overrides_has_instance):
(JSC::JIT::valueIsFalseyGenerator):
(JSC::JIT::valueIsTruthyGenerator):
(JSC::JIT::op_throw_handlerGenerator):
(JSC::JIT::op_check_traps_handlerGenerator):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::slow_op_get_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_private_name_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_private_name_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_del_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_del_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_get_by_id_with_this_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::slow_op_put_by_id_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::generateOpResolveScopeThunk):
(JSC::JIT::generateOpGetFromScopeThunk):
(JSC::JIT::emitVarInjectionCheck):

  • jit/UnusedPointer.h: Removed.
  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::offsetOfVarInjectionWatchpoint):
(JSC::JSGlobalObject::offsetOfVarReadOnlyWatchpoint):
(JSC::JSGlobalObject::offsetOfFunctionProtoHasInstanceSymbolFunction):

5:00 PM Changeset in webkit [292082] by rniwa@webkit.org
  • 2 edits in trunk

Add descriptions on how to start WPT and http test servers to Introduction.md
https://bugs.webkit.org/show_bug.cgi?id=238523

Reviewed by Chris Dumez.

  • Introduction.md:
4:58 PM Changeset in webkit [292081] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[Playstation] Fix build break after r292041 when ENABLE_SERVICE_WORKER is off
https://bugs.webkit.org/show_bug.cgi?id=238520

Patch by Jigen Zhou <jigen.zhou@sony.com> on 2022-03-29
Reviewed by Darin Adler.

Unreviewed build fix after r292041 / r291979 for Playsation platform builds.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:
4:21 PM Changeset in webkit [292080] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

[JSC][ARMv7] Cleanup GPR numbering
https://bugs.webkit.org/show_bug.cgi?id=235027

Patch by Geza Lore <Geza Lore> on 2022-03-29
Reviewed by Yusuke Suzuki.

  • Make the the lower order callee save register be regCS0/llint csr0.

Some of the CSR store/restore code relies on this and using a
numbering scheme consistent with other targets (that is: regCS<N> maps
to a lower number machine register than regCS<N+1>) eliminates some
ifdefs in LLInt, and hopefully will prevent hard to find issues due to
the mismatch from other targets that all follow this rule.

  • In the Thumb-2 instruction set, use of r0-r7 can often be encoded

using a shorter, 16-bit instruction. Swap regT4/regT5 with
regT7/regT6, so lower order temporaries (which are usually used first)
map to the lower order registers that can yield denser code. This
then simplifies BaselineJITRegisters.h, and also saves about ~1% DFG
code size.

  • In offlineasm, prefer low order registers for temporaries.
  • Also clean up baseline instanceof op implementation.
  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initializeFromUnlinkedStructureStubInfo):

  • jit/BaselineJITRegisters.h:
  • jit/GPRInfo.h:

(JSC::GPRInfo::toIndex):
(JSC::PreferredArgumentImpl::preferredArgumentJSR):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitSlow_op_put_by_val):
(JSC::JIT::slow_op_put_by_val_callSlowOperationThenCheckExceptionGenerator):
(JSC::JIT::emit_op_put_private_name):
(JSC::JIT::emitSlow_op_put_private_name):
(JSC::JIT::slow_op_put_private_name_callSlowOperationThenCheckExceptionGenerator):

  • llint/LowLevelInterpreter.asm:
  • offlineasm/arm.rb:
4:04 PM Changeset in webkit [292079] by Matt Woodrow
  • 8 edits
    2 adds in trunk

Don't mutate children during RenderGrid::computeIntrinsicLogicalWidths unless we're about to re-layout.
https://bugs.webkit.org/show_bug.cgi?id=237732

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/css-grid-layout/compute-intrinsic-logical-widths-should-not-mutate-children.html

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::gridAreaBreadthForChild const):
(WebCore::GridTrackSizingAlgorithm::advanceNextState):
(WebCore::GridTrackSizingAlgorithm::isValidTransition const):

  • rendering/GridTrackSizingAlgorithm.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths const):

  • rendering/RenderGrid.h:

computeIntrinsicLogicalWidths can re-layout children (via performGridItemsPreLayout, as well as during
the track sizing algorithm), and does so using the estimated track sizes. This can be incorrect, and if
we're not about to do a full layout on this RenderGrid, it can leave the children in an invalid state.

This caches the intrinsic sizes when we do a full layout, so that we can use these values instead when
we just want to query the RenderGrid without mutating anything.

LayoutTests:

Don't mutate children during computeIntrinsicWidth

  • TestExpectations:
  • fast/css-grid-layout/compute-intrinsic-logical-widths-should-not-mutate-children-expected.html: Added.
  • fast/css-grid-layout/compute-intrinsic-logical-widths-should-not-mutate-children.html: Added.
  • platform/ios/TestExpectations:

Marked existing WPT as passing on MacOS (since we run layout multiple times there).
Added new test for this implementation-specific bug.

3:54 PM Changeset in webkit [292078] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Use spoolers in FTL OSR exit thunk
https://bugs.webkit.org/show_bug.cgi?id=238444

Reviewed by Mark Lam.

We deploy spoolers in FTL OSR exit thunk to reduce generated code size.
This change reduces FTLOSRExit code size in JetStream2 by 35%.

Before:

FTLOSRExit: 803564 (784.730469 KB) count 363 avg size 2213

After:

FTLOSRExit: 516432 (504.328125 KB) count 362 avg size 1426

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::compileExit):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):

3:22 PM Changeset in webkit [292077] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.0.1

Tag Safari-613.2.4.0.1.

3:22 PM Changeset in webkit [292076] by Alan Coon
  • 1 delete in tags/Safari-613.2.4.0.1

Delete tag.

3:10 PM Changeset in webkit [292075] by Patrick Angle
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Add check for null entryScope in JSC::Debugger::detach
https://bugs.webkit.org/show_bug.cgi?id=238518

Reviewed by Devin Rousso.

A virtual machine may not always have an entryScope, which can occur if a JSGlobalObject is being destructed
(which will call into JSC::Debugger::Detach) before a VMEntryScope is created or after a VMEntryScope has
fallen out of scope, causing the VM's entryScope to be null again. In the original internal issue that led to
finding this, this most commonly occurred in conjunction with page refresh while the debugger was paused.

Because it is possible that we were previously paused in the VM that now has no entryScope, we should go ahead
and unpause.

  • debugger/Debugger.cpp:

(JSC::Debugger::detach):

2:57 PM Changeset in webkit [292074] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.1.1

Tag Safari-613.2.4.1.1.

2:57 PM Changeset in webkit [292073] by Alan Coon
  • 1 delete in tags/Safari-613.2.4.1.1

Delete tag.

2:49 PM Changeset in webkit [292072] by mmaxfield@apple.com
  • 8 edits
    2 adds in trunk

[Cocoa] Automatically relayout the page when new fonts are installed
https://bugs.webkit.org/show_bug.cgi?id=238483
<rdar://problem/80544133>

Reviewed by Chris Dumez.

Source/WebCore:

This patch simply calls setNeedsRecalcStyleInAllFrames on every Page when we receive a
kCTFontManagerRegisteredFontsChangedNotification.

FontCache::invalidateAllFontCaches() can't do this directly because it's in platform/ and
therefore isn't allowed to know what Pages are. Instead, this patch takes a process-global
callback and calls that instead. This callback is set at initialization time.

Test: fast/text/install-font-style-recalc.html

  • page/Page.cpp:

(WebCore::m_attachmentElementClient):

  • platform/graphics/FontCache.cpp:

(WebCore::Function<void):
(WebCore::FontCache::registerFontCacheInvalidationCallback):
(WebCore::FontCache::invalidateAllFontCaches):

  • platform/graphics/FontCache.h:

LayoutTests:

  • fast/text/install-font-style-recalc-expected.txt: Added.
  • fast/text/install-font-style-recalc.html: Added.
2:37 PM Changeset in webkit [292071] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.1.1

Tag Safari-613.2.4.1.1.

2:36 PM Changeset in webkit [292070] by Alan Coon
  • 1 copy in tags/Safari-613.2.4.0.1

Tag Safari-613.2.4.0.1.

2:01 PM Changeset in webkit [292069] by commit-queue@webkit.org
  • 14 edits in trunk/LayoutTests

[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=238506

Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-03-29

  • platform/glib/TestExpectations:
  • platform/glib/css2.1/t0505-c16-descendant-01-e-expected.txt:
  • platform/glib/fast/lists/002-expected.txt:
  • platform/gtk/css1/box_properties/margin_right-expected.txt:
  • platform/gtk/css1/box_properties/padding_right-expected.txt:
  • platform/gtk/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/gtk/fast/inline/emptyInlinesWithinLists-expected.txt:
  • platform/gtk/fast/lists/003-expected.txt:
  • platform/wpe/css1/box_properties/margin_right-expected.txt:
  • platform/wpe/css1/box_properties/padding_right-expected.txt:
  • platform/wpe/fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element-expected.txt:
  • platform/wpe/fast/inline/emptyInlinesWithinLists-expected.txt:
  • platform/wpe/fast/lists/003-expected.txt:
1:57 PM Changeset in webkit [292068] by achristensen@apple.com
  • 19 edits in trunk

Don't create directories on iOS if we are only using ephemeral storages
https://bugs.webkit.org/show_bug.cgi?id=238402
Source/WebKit:

<rdar://79639418>

Reviewed by Chris Dumez.

Since we have been giving access to those directories as long as WebKit2 has been on iOS,
this is a conservative change to only give access to the directories when using persistent storage.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::addWebsiteDataStore):

  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • Shared/WebsiteDataStoreParameters.cpp:

(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):

  • Shared/WebsiteDataStoreParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformResolvePathsForSandboxExtensions):
(WebKit::WebProcessPool::platformInitializeWebProcess):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::sendCreationParametersToNewProcess):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::parameters):

Tools:

Reviewed by Chris Dumez.

  • TestWebKitAPI/Tests/WebKitCocoa/NSAttributedStringWebKitAdditions.mm:

(TEST):

1:55 PM Changeset in webkit [292067] by achristensen@apple.com
  • 4 edits in trunk/Source

Navigation Timing data is corrupt in WebView (UIWebView/WKWebView)
https://bugs.webkit.org/show_bug.cgi?id=186919
<rdar://41393423>

Reviewed by Simon Fraser.

Source/WebCore:

Sometimes the observed requestStart time is after the observed responseStart time.
This may be due to the device's clock changing. It may be due to something else,
but currently CFNetwork does not use a monotonic timer to gather the data.
When this happens, use the later of the two times for responseStart.

  • platform/network/cocoa/NetworkLoadMetrics.mm:

(WebCore::packageTimingData):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):

1:53 PM Changeset in webkit [292066] by achristensen@apple.com
  • 4 edits in branches/safari-613-branch/Source

Revert r292055

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

Source/WebCore:

I accidentally put it on a branch.

  • platform/network/cocoa/NetworkLoadMetrics.mm:

(WebCore::packageTimingData):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):

1:39 PM Changeset in webkit [292065] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Add Captive Portal alert to WKWebView
https://bugs.webkit.org/show_bug.cgi?id=238326

Patch by C Lopez <clopez1@apple.com> on 2022-03-29
Reviewed by Geoffrey Garen and Brent Fulgham

When WkWebView on iOS is initialized, we call _presentCaptivePortalModeAlertIfNeeded which checks whether an alert needs to be presented or not.

  • UIProcess/API/ios/WKWebViewIOS.h:
  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _presentCaptivePortalModeAlertIfNeeded]):
(-[WKWebView didMoveToWindow]):

1:24 PM Changeset in webkit [292064] by don.olmstead@sony.com
  • 6 edits in trunk

[LibWPE] Guard libxkbcommon code with WPE_ENABLE_XKB
https://bugs.webkit.org/show_bug.cgi?id=238510

Reviewed by Adrian Perez de Castro.

.:

Post v1.12.0 introduces the WPE_ENABLE_XKB definition to libwpe. For v1.12.0 and earlier
the define is added to the WPE::libwpe target's compile options. For later versions the
pkg-config for the library will determine the presence of this definition.

  • Source/cmake/FindWPE.cmake:

Source/WebKit:

Guard libwpe xkb code with WPE_ENABLE_XKB.

  • UIProcess/Automation/libwpe/WebAutomationSessionLibWPE.cpp:

(WebKit::doKeyStrokeEvent):

Tools:

Guard libwpe xkb code with WPE_ENABLE_XKB.

  • WebKitTestRunner/libwpe/EventSenderProxyLibWPE.cpp:

(WTR::EventSenderProxy::keyDown):

1:22 PM Changeset in webkit [292063] by Brandon
  • 1 edit
    1 move in trunk/Source/bmalloc

Rename Libpas README to README.md
https://bugs.webkit.org/show_bug.cgi?id=238517

Reviewed by Yusuke Suzuki.

Libpas README does not correctly display markdown output on github.com
without .md file extension.

  • libpas/ReadMe.md: Renamed from Source/bmalloc/libpas/README.
1:18 PM Changeset in webkit [292062] by Russell Epstein
  • 9 edits in branches/safari-614.1.7-branch/Source

Versioning.

WebKit-7614.1.7.4

1:15 PM Changeset in webkit [292061] by Matteo Flores
  • 2 edits in trunk/LayoutTests

REGRESSION(r290898?): [ iOS ] animations/shadow-host-child-change.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=238519

Unreviewed test gardening.

  • platform/ios/TestExpectations:
1:06 PM Changeset in webkit [292060] by Jonathan Bedard
  • 5 edits in trunk/Tools

[Merge-Queue] Canonicalize commit
https://bugs.webkit.org/show_bug.cgi?id=238453
<rdar://problem/90921217>

Reviewed by Dewei Zhu.

Before pushing to Subversion, we want to include the canonical
link in the commit message.

  • Tools/CISupport/ews-build/factories.py:

(MergeQueueFactory.init): Add Canonicalize step.

  • Tools/CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps): Ditto.

  • Tools/CISupport/ews-build/steps.py:

(Canonicalize):
(Canonicalize.init):
(Canonicalize.doStepIf): Only canonicalize pull requests.
(Canonicalize.hideStepIf): Hide step if we aren't doing it.
(Canonicalize.run): Update the base branch, rebase the source branch
then move the base branch to the tip of the source branch. Finally,
canonicalize the new commit.
(Canonicalize.getResultSummary):

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: https://commits.webkit.org/248995@main

12:49 PM Changeset in webkit [292059] by Fujii Hironori
  • 5 edits
    4 adds in trunk

drop-shadow filter doesn't work correctly in tiled backing layer
https://bugs.webkit.org/show_bug.cgi?id=236800
<rdar://problem/89382612>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/filter-effects/filters-drop-shadow-003-expected.html: Added.
  • web-platform-tests/css/filter-effects/filters-drop-shadow-003.html: Added.

Source/WebCore:

If an element with drop-shadow filter wasn't placed in the
painting rect, the drop-shadow wasn't rendered correctly. This
issue tended to be observed in tiled backing layers becuase each
tile is painted separately. But, not necessary. If an element with
drop-shadow filter was placed in the outside of view, this issue
could arise.

Tests: css3/filters/drop-shadow-in-tiled-backing.html

imported/w3c/web-platform-tests/css/filter-effects/filters-drop-shadow-003.html

  • rendering/RenderLayerFilters.cpp:

(WebCore::RenderLayerFilters::beginFilterEffect): If the
drop-shadow is cast to the right direction, dirtyRect needs to be
extended to left direction to calculate targetBoundingBox.

LayoutTests:

  • css3/filters/drop-shadow-in-tiled-backing-expected.html: Added.
  • css3/filters/drop-shadow-in-tiled-backing.html: Added.
  • platform/ios-wk2/TestExpectations:
12:46 PM Changeset in webkit [292058] by Russell Epstein
  • 5 edits in branches/safari-614.1.8-branch/Source

Cherry-pick r292042. rdar://problem/90999175

Unreviewed, fix UAF after r291980

Source/WebCore:

  • page/FrameView.h: (WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSSmallViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSLargeViewportUnits): Added.
  • page/FrameView.cpp: (WebCore::FrameView::setSizeForCSSDefaultViewportUnits): (WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSDefaultViewportUnits): Renamed from overrideSizeForCSSDefaultViewportUnits. (WebCore::FrameView::setSizeForCSSSmallViewportUnits): (WebCore::FrameView::overrideWidthForCSSSmallViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSSmallViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSSmallViewportUnits): Renamed from overrideSizeForCSSSmallViewportUnits. (WebCore::FrameView::setSizeForCSSLargeViewportUnits): (WebCore::FrameView::overrideWidthForCSSLargeViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSLargeViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSLargeViewportUnits): Renamed from overrideSizeForCSSLargeViewportUnits. (WebCore::FrameView::copyCSSViewportSizeOverrides): Deleted. Expose OverrideViewportSize so that we can copy those members specifically instead of having to keep alive the old FrameView when transitioning to a new page.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Expose OverrideViewportSize so that we can copy those members specifically instead of having to keep alive the old FrameView when transitioning to a new page.

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

12:23 PM Changeset in webkit [292057] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Use "UTF-8"_s instead of PAL::UTF8Encoding().domName()
https://bugs.webkit.org/show_bug.cgi?id=238508

Reviewed by Geoffrey Garen.

Use "UTF-8"_s instead of PAL::UTF8Encoding().domName() as it is equivalent and more efficient.

  • dom/Document.cpp:

(WebCore::Document::characterSetWithUTF8Fallback const):
(WebCore::Document::defaultCharsetForLegacyBindings const):

12:17 PM Changeset in webkit [292056] by Jonathan Bedard
  • 5 edits in trunk/Tools

[Merge-Queue] Add Reviewers to ChangeLog files
https://bugs.webkit.org/show_bug.cgi?id=238396
<rdar://problem/90860335>

Reviewed by Dewei Zhu.

  • Tools/CISupport/ews-build/factories.py:

(MergeQueueFactory.init): Add AddReviewerToChangeLog.

  • Tools/CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps): Ditto.

  • Tools/CISupport/ews-build/steps.py:

(AddReviewerToChangeLog.init):
(AddReviewerToChangeLog._files): List files in the pull-request.
(AddReviewerToChangeLog.run): Replace "NOBODY" with reviewers.
(AddReviewerToChangeLog.getResultSummary):
(AddReviewerToChangeLog.doStepIf): Skip step if patch or if reviewers are undefined.
(AddReviewerToChangeLog.hideStepIf): Hide step if skipped.

  • Tools/CISupport/ews-build/steps_unittest.py:

Canonical link: https://commits.webkit.org/248992@main

12:15 PM Changeset in webkit [292055] by achristensen@apple.com
  • 4 edits in branches/safari-613-branch/Source

Navigation Timing data is corrupt in WebView (UIWebView/WKWebView)
https://bugs.webkit.org/show_bug.cgi?id=186919
<rdar://41393423>

Reviewed by Simon Fraser.

Source/WebCore:

Sometimes the observed requestStart time is after the observed responseStart time.
This may be due to the device's clock changing. It may be due to something else,
but currently CFNetwork does not use a monotonic timer to gather the data.
When this happens, use the later of the two times for responseStart.

  • platform/network/cocoa/NetworkLoadMetrics.mm:

(WebCore::packageTimingData):

Source/WebKit:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):

12:10 PM Changeset in webkit [292054] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

WebCore::LegacyRootInlineBox::lineSnapAdjustment should bail out on grid line height < 1
https://bugs.webkit.org/show_bug.cgi?id=238465
<rdar://80630664>

Reviewed by Antti Koivisto.

The !gridLineHeight check was added to avoid division by zero but the integral roundToInt() may also produce a 0 value for
gridLineHeight.

  • rendering/LegacyRootInlineBox.cpp:

(WebCore::LegacyRootInlineBox::lineSnapAdjustment const):

12:08 PM Changeset in webkit [292053] by commit-queue@webkit.org
  • 3 edits in trunk/Source/ThirdParty/ANGLE

Handle pkg_config and declare_args statements in gni-to-cmake.py
https://bugs.webkit.org/show_bug.cgi?id=238490

Remove these statements, since they currently must be deleted from
the resulting CMake files by hand.

Regenerate the CMake files from current ANGLE sources, to minimize
changes during the next roll.

Patch by Kenneth Russell <kbr@chromium.org> on 2022-03-29
Reviewed by Dean Jackson.

  • GL.cmake:
  • gni-to-cmake.py:
12:07 PM Changeset in webkit [292052] by Matteo Flores
  • 3 edits in trunk/LayoutTests

[ iOS Mac ] imported/w3c/web-platform-tests/fetch/metadata/download.https.sub.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=238469

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
11:33 AM Changeset in webkit [292051] by sihui_liu@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed test fix after r292024.
https://bugs.webkit.org/show_bug.cgi?id=238082
<rdar://problem/90844775>

Correcting an if condition.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::processDidResume):

11:31 AM Changeset in webkit [292050] by Jonathan Bedard
  • 5 edits in trunk/Tools

[Merge-Queue] Add Reviewers to commit message
https://bugs.webkit.org/show_bug.cgi?id=238354
<rdar://problem/90800671>

Reviewed by Dewei Zhu.

When a PR has been reviewed, Merge-Queue should insert those
reviewers into the commit message.

  • Tools/CISupport/ews-build/factories.py:

(MergeQueueFactory.init): Add AddReviewerToCommitMessage and ValidateCommitMessage steps.

  • Tools/CISupport/ews-build/factories_unittest.py:

(TestExpectedBuildSteps): Ditto.

  • Tools/CISupport/ews-build/steps.py:

(AddReviewerMixin):
(AddReviewerMixin.environment): Set committer to action owner.
(AddReviewerMixin.reviewers): Return a combined string of all reviewers.
(AddReviewerToCommitMessage.init):
(AddReviewerToCommitMessage.start): Insert reviewer string into commit message.
(AddReviewerToCommitMessage.getResultSummary):
(AddReviewerToCommitMessage.doStepIf): Skip step if patch or if reviewers are undefined.
(AddReviewerToCommitMessage.hideStepIf): Hide step if skipped.
(ValidateCommitMessage.init):
(ValidateCommitMessage.start): List commit message for commit.
(ValidateCommitMessage.getResultSummary):
(ValidateCommitMessage.evaluateCommand):
(ValidateCommitMessage.doStepIf): Skip step if patch.
(ValidateCommitMessage.hideStepIf): Hide step if skipped.

  • Tools/CISupport/ews-build/steps_unittest.py:

(mock_load_contributors): Share with multiple functions.

Canonical link: https://commits.webkit.org/248986@main

11:30 AM Changeset in webkit [292049] by eric.carlson@apple.com
  • 11 edits
    2 adds in trunk

[macOS] Muted video is sometimes paused when entering fullscreen
https://bugs.webkit.org/show_bug.cgi?id=238462
rdar://89104216

Reviewed by Jer Noble.

Source/WebCore:

Test: media/fullscreen-when-muted.html

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::didMoveToNewDocument): Add logging.
(WebCore::HTMLMediaElement::elementIsHidden const): Consider both element fullscreen
and video fullscreen.
(WebCore::HTMLMediaElement::visibilityStateChanged): Use elementIsHidden.
(WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const): Add
logging for the one case that didn't have it.
(WebCore::HTMLMediaElement::updateMediaPlayer): New, wrap MediaPlayer functions
that are called frequently by RenderVideo so we can only call them when necessary.

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::elementIsHidden const): Deleted.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::visibilityChanged): Just use elementIsHidden, it
already accounts for fullscreen.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setVisibleInViewport): Do nothing when visibility is not changing.

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

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setPageIsVisible): Add logging.

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::updatePlayer): Call HTMLMediaElement::updateMediaPlayer instead
of calling MediaPlayer directly.

Source/WebKit:

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::setPageIsVisible): Track visibility and do
nothing when it doesn't change.
(WebKit::MediaPlayerPrivateRemote::setShouldMaintainAspectRatio): Ditto for aspect
ratio.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

LayoutTests:

  • media/fullscreen-when-muted-expected.txt: Added.
  • media/fullscreen-when-muted.html: Added.
11:21 AM Changeset in webkit [292048] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source

Cherry-pick r292042. rdar://problem/89434696

Unreviewed, fix UAF after r291980

Source/WebCore:

  • page/FrameView.h: (WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSSmallViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSLargeViewportUnits): Added.
  • page/FrameView.cpp: (WebCore::FrameView::setSizeForCSSDefaultViewportUnits): (WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSDefaultViewportUnits): Renamed from overrideSizeForCSSDefaultViewportUnits. (WebCore::FrameView::setSizeForCSSSmallViewportUnits): (WebCore::FrameView::overrideWidthForCSSSmallViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSSmallViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSSmallViewportUnits): Renamed from overrideSizeForCSSSmallViewportUnits. (WebCore::FrameView::setSizeForCSSLargeViewportUnits): (WebCore::FrameView::overrideWidthForCSSLargeViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSLargeViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSLargeViewportUnits): Renamed from overrideSizeForCSSLargeViewportUnits. (WebCore::FrameView::copyCSSViewportSizeOverrides): Deleted. Expose OverrideViewportSize so that we can copy those members specifically instead of having to keep alive the old FrameView when transitioning to a new page.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Expose OverrideViewportSize so that we can copy those members specifically instead of having to keep alive the old FrameView when transitioning to a new page.

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

11:21 AM Changeset in webkit [292047] by Alan Coon
  • 5 edits in branches/safari-613.2.4.0-branch/Source

Cherry-pick r292042. rdar://problem/89434696

Unreviewed, fix UAF after r291980

Source/WebCore:

  • page/FrameView.h: (WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSSmallViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSLargeViewportUnits): Added.
  • page/FrameView.cpp: (WebCore::FrameView::setSizeForCSSDefaultViewportUnits): (WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSDefaultViewportUnits): Renamed from overrideSizeForCSSDefaultViewportUnits. (WebCore::FrameView::setSizeForCSSSmallViewportUnits): (WebCore::FrameView::overrideWidthForCSSSmallViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSSmallViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSSmallViewportUnits): Renamed from overrideSizeForCSSSmallViewportUnits. (WebCore::FrameView::setSizeForCSSLargeViewportUnits): (WebCore::FrameView::overrideWidthForCSSLargeViewportUnits): (WebCore::FrameView::resetOverriddenWidthForCSSLargeViewportUnits): (WebCore::FrameView::setOverrideSizeForCSSLargeViewportUnits): Renamed from overrideSizeForCSSLargeViewportUnits. (WebCore::FrameView::copyCSSViewportSizeOverrides): Deleted. Expose OverrideViewportSize so that we can copy those members specifically instead of having to keep alive the old FrameView when transitioning to a new page.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Expose OverrideViewportSize so that we can copy those members specifically instead of having to keep alive the old FrameView when transitioning to a new page.

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

11:21 AM Changeset in webkit [292046] by Alan Coon
  • 20 edits in branches/safari-613-branch

Cherry-pick r291980. rdar://problem/89434696

[iOS] Add WKWebView API to control CSS "small viewport" sv* and "large viewport" lv* units
https://bugs.webkit.org/show_bug.cgi?id=237979
<rdar://problem/89434696>

Reviewed by Tim Horton.

Source/WebCore:

Tests: CSSViewportUnits.NegativeMinimumViewportInset

CSSViewportUnits.NegativeMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanFrame
CSSViewportUnits.MaximumViewportInsetLargerThanFrame
CSSViewportUnits.MinimumViewportInset
CSSViewportUnits.MaximumViewportInset
CSSViewportUnits.MinimumViewportInsetWithZoom
CSSViewportUnits.MaximumViewportInsetWithZoom
CSSViewportUnits.MinimumViewportInsetWithWritingMode
CSSViewportUnits.MaximumViewportInsetWithWritingMode
CSSViewportUnits.MinimumViewportInsetWithFrame
CSSViewportUnits.MaximumViewportInsetWithFrame
CSSViewportUnits.MinimumViewportInsetWithBounds
CSSViewportUnits.MaximumViewportInsetWithBounds
CSSViewportUnits.MinimumViewportInsetWithContentInset
CSSViewportUnits.MaximumViewportInsetWithContentInset
CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets
CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets
CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI

  • page/FrameView.h:
  • page/FrameView.cpp: (WebCore::FrameView::performSizeToContentAutoSize): (WebCore::FrameView::enableAutoSizeMode): (WebCore::FrameView::clearSizeOverrideForCSSDefaultViewportUnits): Added. (WebCore::FrameView::setSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits): Added. (WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::sizeForCSSDefaultViewportUnits const): Renamed from sizeForCSSDefaultViewportUnits. (WebCore::FrameView::copyCSSViewportUnits const): Added. Add all the various methods for getting/setting/overriding/clearing an override value for CSS "default viewport" v* units. This allows for WKWebView clients to preserve existing behavior (where CSS "default viewport" v* units match the size of the WKWebView) while adding supporting CSS "small viewport" sv* units and CSS "large viewport" lv* units.

Source/WebKit:

Recently the W3C CSS working group added [some new unit types to CSS](https://drafts.csswg.org/css-values-4/#viewport-variants)
with the goal of helping web developers better deal with browsers that have dynamic UI
elements that change apperance/size/etc. based on user actions (e.g. the URL bar
collapsing/"squishing" and expanding/"unsquishing" depending on whether the user has most
recently scrolled/swiped down the page).

These new units come in three categories:

  • the "large viewport" units (lvw, lvh, etc.) each represent 1% of one dimension of the size of the visual area of the page when all browser UI elements are in their smallest state (e.g. when the URL bar is collapsed/"squished")
  • the "small viewport" units (svw, svh, etc.) each represent 1% of one dimension of the size of the visual area of the page when all browser UI elements are in their largest state (e.g. when the URL bar is expanded/"unsquished")
  • the "dynamic viewport" units (dvw, dvh, etc.) each represent 1% of one dimension of the size of the current visual area of the page, which depends on the current state of all browser UI elements

This way, developer could use 100svh to ensure that no matter what state the browser UI
elements are in the entire element will always be visible on the screen, or use 100dvh to
respond to browser UI element changes by automatically resizing various elements to always
fully take advantage of the available space.

Nothing needs to be added to support "dynamic viewport" dv* units as there already exists
other methods to adjust the visual area of the WKWebView without adjusting its frame
(e.g. -[WKWebView setBounds:], -[UIScrollView setContentInset:], etc.).

But for "small viewport" sv* units and "large viewport" lv* units, however, there is
unfortunately no way to tell a WKWebView anything like "this is the smallest/largest that
this WKWebView will ever be", so there's no way to know ahead of time what the size of the
visual area would be when all browser UI elements are in their smallest/largest state. As
such, this patch adds a new API to allow for WKWebView clients to tell WebKit this
information ahead of time.

Note that there already exists the concept of "default viewport" units (vw, vh, etc.)
that each represent 1% of one dimension of the size of the visual area of the page when all
browser UI elements are in their default state. The behavior of these units remain the same,
and the value can be changed via the existing -[WKWebView setFrame:].

Tests: CSSViewportUnits.NegativeMinimumViewportInset

CSSViewportUnits.NegativeMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanFrame
CSSViewportUnits.MaximumViewportInsetLargerThanFrame
CSSViewportUnits.MinimumViewportInset
CSSViewportUnits.MaximumViewportInset
CSSViewportUnits.MinimumViewportInsetWithZoom
CSSViewportUnits.MaximumViewportInsetWithZoom
CSSViewportUnits.MinimumViewportInsetWithWritingMode
CSSViewportUnits.MaximumViewportInsetWithWritingMode
CSSViewportUnits.MinimumViewportInsetWithFrame
CSSViewportUnits.MaximumViewportInsetWithFrame
CSSViewportUnits.MinimumViewportInsetWithBounds
CSSViewportUnits.MaximumViewportInsetWithBounds
CSSViewportUnits.MinimumViewportInsetWithContentInset
CSSViewportUnits.MaximumViewportInsetWithContentInset
CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets
CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets
CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _recalculateViewportSizesWithMinimumViewportInset:maximumViewportInset:throwOnInvalidInput:]): Added. (-[WKWebView setMinimumViewportInset:maximumViewportInset:]): Added.
  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _processWillSwapOrDidExit]): (-[WKWebView _frameOrBoundsChanged]): (-[WKWebView _didCompleteAnimatedResize]): (-[WKWebView _setMinimumUnobscuredSizeOverride:]): (-[WKWebView _setMaximumUnobscuredSizeOverride:]): (-[WKWebView _beginAnimatedResizeWithUpdates:]): (-[WKWebView _dispatchSetMinimumUnobscuredSize:]): Deleted. (-[WKWebView _dispatchSetMaximumUnobscuredSize:]): Deleted. Recalculate the size for CSS "small viewport" sv* units whenever the frame changes. Also move the deduplication logic that prevents the same value from being sent to the WebProcess more than once to the setter methods on WebPageProxy so that it can be used by more than just iOS-only codepaths.
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setDefaultUnobscuredSize): Added. (WebKit::WebPageProxy::setMinimumUnobscuredSize): Added. (WebKit::WebPageProxy::setMaximumUnobscuredSize): Added. (WebKit::WebPageProxy::creationParameters):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::dynamicViewportSizeUpdate): (WebKit::WebPageProxy::setMinimumUnobscuredSize): Deleted. (WebKit::WebPageProxy::setMaximumUnobscuredSize): Deleted.
  • Shared/WebPageCreationParameters.h:
  • Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode const): (WebKit::WebPageCreationParameters::decode):
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::setViewportSizeForCSSViewportUnits): (WebKit::WebPage::setDefaultUnobscuredSize): Added. (WebKit::WebPage::setMinimumUnobscuredSize): Added. (WebKit::WebPage::setMaximumUnobscuredSize): Added. (WebKit::WebPage::updateSizeForCSSDefaultViewportUnits): Added. (WebKit::WebPage::updateSizeForCSSSmallViewportUnits): Added. (WebKit::WebPage::updateSizeForCSSLargeViewportUnits): Added.
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::viewportConfigurationChanged): (WebKit::WebPage::setMinimumUnobscuredSize): Deleted. (WebKit::WebPage::setMaximumUnobscuredSize): Deleted. (WebKit::WebPage::updateViewportSizeForCSSViewportUnits): Deleted. Add all the various methods for getting/setting/overriding/clearing an override value for CSS "default viewport" v* units. This allows for WKWebView clients to preserve existing behavior (where CSS "default viewport" v* units match the size of the WKWebView) while adding supporting CSS "small viewport" sv* units and CSS "large viewport" lv* units. Move iOS-only code to be for all platforms.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Propagate all viewport size overrides when a new FrameView is created.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm: (TEST.CSSViewportUnits.NegativeMinimumViewportInset): Added. (TEST.CSSViewportUnits.NegativeMaximumViewportInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetLargerThanFrame): Added. (TEST.CSSViewportUnits.MaximumViewportInsetLargerThanFrame): Added. (TEST.CSSViewportUnits.MinimumViewportInset): Added. (TEST.CSSViewportUnits.MaximumViewportInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithZoom): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithZoom): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithWritingMode): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithWritingMode): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithFrame): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithFrame): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithBounds): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithBounds): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithContentInset): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithContentInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets): Added. (TEST.CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI): Added.

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

11:19 AM Changeset in webkit [292045] by Antti Koivisto
  • 16 edits
    4 adds in trunk

[CSS Container Queries] Support CSSOM
https://bugs.webkit.org/show_bug.cgi?id=238500

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-contain/container-queries/at-container-serialization-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/idlharness-expected.txt:

Source/WebCore:

Add CSSContainerRule interface.

https://drafts.csswg.org/css-contain-3/#the-csscontainerrule-interface

  • DerivedSources-input.xcfilelist:
  • DerivedSources-output.xcfilelist:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCSSRuleCustom.cpp:

(WebCore::toJSNewlyCreated):

  • css/CSSContainerRule.cpp: Added.

(WebCore::CSSContainerRule::CSSContainerRule):
(WebCore::CSSContainerRule::create):
(WebCore::CSSContainerRule::styleRuleContainer const):
(WebCore::CSSContainerRule::cssText const):
(WebCore::CSSContainerRule::conditionText const):

Implementation, the only real functionality is serialization.

  • css/CSSContainerRule.h: Added.
  • css/CSSContainerRule.idl: Added.

Interface.

  • css/ContainerQuery.cpp:

(WebCore::CQ::serialize):
(WebCore::serialize):

Query syntax serialization support.

  • css/ContainerQuery.h:
  • css/ContainerQueryParser.cpp:

(WebCore::ContainerQueryParser::consumeContainerQuery):

Remember the text of unknown queries.

  • css/StyleRule.cpp:

(WebCore::StyleRuleBase::createCSSOMWrapper const):

LayoutTests:

11:15 AM Changeset in webkit [292044] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebKit

Don't send sync RemoteMediaPlayerProxy messages that we know will fail
https://bugs.webkit.org/show_bug.cgi?id=238467
rdar://86662565

Reviewed by Jer Noble.

  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:

(WebKit::MediaPlayerPrivateRemote::videoFrameForCurrentTime): Return early if
readyState is less than HaveCurrentData, or if the first frame is not available.

  • WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:

(WebKit::MediaPlayerPrivateRemote::nativeImageForCurrentTime): Ditto.
(WebKit::MediaPlayerPrivateRemote::colorSpace): Ditto.

10:55 AM Changeset in webkit [292043] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

RenderText::width should call FontCascade directly on single space characters
https://bugs.webkit.org/show_bug.cgi?id=238484

Reviewed by Antti Koivisto.

Some "text and inline box" heavy pages (e.g. wikipedia) have the pattern of leaving one space
gap between adjacent inline boxes (<span>some content</span> <span>and some more</span>).
This patch ensures that we don't construct redundant TextRun objects (and measure their widths)
for such simple cases when applicable.

  • rendering/RenderText.cpp:

(WebCore::RenderText::width const):

10:37 AM Changeset in webkit [292042] by Devin Rousso
  • 5 edits in trunk/Source

Unreviewed, fix UAF after r291980

Source/WebCore:

  • page/FrameView.h:

(WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added.
(WebCore::FrameView::overrideSizeForCSSSmallViewportUnits): Added.
(WebCore::FrameView::overrideSizeForCSSLargeViewportUnits): Added.

  • page/FrameView.cpp:

(WebCore::FrameView::setSizeForCSSDefaultViewportUnits):
(WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits):
(WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits):
(WebCore::FrameView::setOverrideSizeForCSSDefaultViewportUnits): Renamed from overrideSizeForCSSDefaultViewportUnits.
(WebCore::FrameView::setSizeForCSSSmallViewportUnits):
(WebCore::FrameView::overrideWidthForCSSSmallViewportUnits):
(WebCore::FrameView::resetOverriddenWidthForCSSSmallViewportUnits):
(WebCore::FrameView::setOverrideSizeForCSSSmallViewportUnits): Renamed from overrideSizeForCSSSmallViewportUnits.
(WebCore::FrameView::setSizeForCSSLargeViewportUnits):
(WebCore::FrameView::overrideWidthForCSSLargeViewportUnits):
(WebCore::FrameView::resetOverriddenWidthForCSSLargeViewportUnits):
(WebCore::FrameView::setOverrideSizeForCSSLargeViewportUnits): Renamed from overrideSizeForCSSLargeViewportUnits.
(WebCore::FrameView::copyCSSViewportSizeOverrides): Deleted.
Expose OverrideViewportSize so that we can copy those members specifically instead of
having to keep alive the old FrameView when transitioning to a new page.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
Expose OverrideViewportSize so that we can copy those members specifically instead of
having to keep alive the old FrameView when transitioning to a new page.

10:30 AM Changeset in webkit [292041] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[Playstation] Fix build break after r291979 if ENABLE_SERVICE_WORKER is off
https://bugs.webkit.org/show_bug.cgi?id=238471

Patch by Jigen Zhou <jigen.zhou@sony.com> on 2022-03-29
Reviewed by Don Olmstead.

Build fix for playstation platform after r291979 to support ServiceWorkerClients.openWindow.
This patch resolves compiling errors occurs in WebPageProxy::callLoadCompletionHandlersIfNecessary
if ENABLE_SERVICE_WORKER is off.

  • UIProcess/WebPageProxy.cpp:
10:29 AM Changeset in webkit [292040] by Russell Epstein
  • 7 edits in branches/safari-614.1.8-branch/Source

Cherry-pick r292035. rdar://problem/88717577

[iOS GPUProcess] Image decoding should not trigger IOSurface usage in the web process
https://bugs.webkit.org/show_bug.cgi?id=238489
<rdar://88717577>

Reviewed by Per Arne Vollan.

Source/WebCore:

When hardwareAcceleratedDecodingDisabled() has been called, turn off hardware acceleration
for image decoding.

  • platform/graphics/cg/ImageDecoderCG.cpp: (WebCore::createImageSourceOptions): (WebCore::ImageDecoderCG::disableHardwareAcceleratedDecoding): (WebCore::ImageDecoderCG::hardwareAcceleratedDecodingDisabled):
  • platform/graphics/cg/ImageDecoderCG.h:

Source/WebCore/PAL:

Expose kCGImageSourceUseHardwareAcceleration.

  • pal/spi/cg/ImageIOSPI.h:

Source/WebKit:

When useGPUProcessForDOMRendering is true, disable hardware image decoding since
we need to avoid IOSurface access in the web process.

  • WebProcess/WebProcess.cpp: (WebKit::WebProcess::setUseGPUProcessForDOMRendering):

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

10:29 AM Changeset in webkit [292039] by Russell Epstein
  • 4 edits in branches/safari-614.1.8-branch/Source/WebCore

Cherry-pick r292026. rdar://problem/90941790

REGRESSION(r291771): [ iOS ] Text sometimes draw with incorrect color
https://bugs.webkit.org/show_bug.cgi?id=238466
rdar://90941790

Reviewed by Simon Fraser.

r291771 uncovers this bug: TextBoxPainter::paintForeground() records the
glyphs to a DisplayList before settings the destination GraphicsContext.

The fix is to apply all the changes to the GraphicsContext before calling
TextPainter::setGlyphDisplayListIfNeeded().

Delete TextPainter::paint() because it is not used.

Initialize TextPainter with a reference to FontCascade.

  • rendering/TextBoxPainter.cpp: (WebCore::TextBoxPainter::paintForeground):
  • rendering/TextPainter.cpp: (WebCore::TextPainter::TextPainter): (WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded): (WebCore::TextPainter::paintRange): (WebCore::TextPainter::paint): Deleted.
  • rendering/TextPainter.h: (WebCore::TextPainter::setShadowColorFilter): (WebCore::TextPainter::setGlyphDisplayListIfNeeded): (WebCore::TextPainter::setFont): Deleted.

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

10:29 AM Changeset in webkit [292038] by Russell Epstein
  • 8 edits in branches/safari-614.1.8-branch/Source

Cherry-pick r292010. rdar://problem/89559929

Disable custom storage paths for IndexedDB and LocalStorage by default
https://bugs.webkit.org/show_bug.cgi?id=236977
<rdar://problem/89559929>

Reviewed by Geoffrey Garen.

Source/WebKit:

Developers can enable them by disabling "general directory for storage" via internal debug feature or system
feature flag.

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::internalFeatureEnabled): (WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths):

Source/WTF:

Add an internal debug feature for using genreal directory for storage.

  • Scripts/Preferences/WebPreferencesInternal.yaml:

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

10:26 AM Changeset in webkit [292037] by Patrick Angle
  • 16 edits in trunk/Source

Web Inspector: [Cocoa] Indicate a request was sent through proxy/private relay in Network tab
https://bugs.webkit.org/show_bug.cgi?id=233202

Reviewed by Devin Rousso.

Source/JavaScriptCore:

Add new isProxyConnection property to network metrics protocol object.

  • inspector/protocol/Network.json:

Source/WebCore:

Add plumbing for the new isProxyConnection network metric.

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::buildObjectForMetrics):

  • platform/network/NetworkLoadMetrics.cpp:

(WebCore::AdditionalNetworkLoadMetricsForWebInspector::isolatedCopy):

  • platform/network/NetworkLoadMetrics.h:

(WebCore::AdditionalNetworkLoadMetricsForWebInspector::encode const):
(WebCore::AdditionalNetworkLoadMetricsForWebInspector::decode):

Source/WebInspectorUI:

For resources that are sent through a proxy or relay (like iCloud Private Relay), the remoteAddress will be that
of the proxy or relay server, not the server that provided the page to the proxy or relay. To indicate this, we
now append (Proxy) to these remote IP addresses in Web Inspector so that it is clearer what server the remote
address actually represents in these cases.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Models/LocalResource.js:
  • UserInterface/Models/Resource.js:

(WI.Resource.prototype.get displayRemoteAddress):

  • Similar to displayName and displayURL which provide user-facing strings, add a displayRemoteAddress that

will denote the address is a proxy if applicable.

(WI.Resource.prototype.updateWithMetrics):

  • UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView.prototype._entryForResource):

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WI.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):

  • UserInterface/Views/ResourceHeadersContentView.js:

(WI.ResourceHeadersContentView.prototype._refreshSummarySection):

  • UserInterface/Views/ResourceTimelineDataGridNode.js:

(WI.ResourceTimelineDataGridNode.prototype.get data):

Source/WebKit:

Add plumbing for the new isProxyConnection network metric.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:didFinishCollectingMetrics:]):

10:21 AM Changeset in webkit [292036] by Brandon
  • 3 edits in trunk/Source/WebCore

Need to add ISO annotations to GPUUncapturedErrorEvent
https://bugs.webkit.org/show_bug.cgi?id=238512

Reviewed by Yusuke Suzuki.

ISO annotations are required in GPUUncapturedErrorEvent for proper initialization.

  • Modules/WebGPU/GPUUncapturedErrorEvent.cpp:
  • Modules/WebGPU/GPUUncapturedErrorEvent.h:

(WebCore::GPUUncapturedErrorEvent::create): Deleted.
(WebCore::GPUUncapturedErrorEvent::backing): Deleted.
(WebCore::GPUUncapturedErrorEvent::backing const): Deleted.
(WebCore::GPUUncapturedErrorEvent::GPUUncapturedErrorEvent): Deleted.

10:05 AM Changeset in webkit [292035] by Simon Fraser
  • 7 edits in trunk/Source

[iOS GPUProcess] Image decoding should not trigger IOSurface usage in the web process
https://bugs.webkit.org/show_bug.cgi?id=238489
<rdar://88717577>

Reviewed by Per Arne Vollan.

Source/WebCore:

When hardwareAcceleratedDecodingDisabled() has been called, turn off hardware acceleration
for image decoding.

  • platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::createImageSourceOptions):
(WebCore::ImageDecoderCG::disableHardwareAcceleratedDecoding):
(WebCore::ImageDecoderCG::hardwareAcceleratedDecodingDisabled):

  • platform/graphics/cg/ImageDecoderCG.h:

Source/WebCore/PAL:

Expose kCGImageSourceUseHardwareAcceleration.

  • pal/spi/cg/ImageIOSPI.h:

Source/WebKit:

When useGPUProcessForDOMRendering is true, disable hardware image decoding since
we need to avoid IOSurface access in the web process.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::setUseGPUProcessForDOMRendering):

8:54 AM Changeset in webkit [292034] by Brandon
  • 2 edits in trunk/Source/WebCore

Check page exists before trying to access authenticatorCoordinator
https://bugs.webkit.org/show_bug.cgi?id=238507

Reviewed by Brent Fulgham.

Check we have a valid page before trying to access the authenticatorCoordinator.

  • Modules/webauthn/PublicKeyCredential.cpp:

(WebCore::PublicKeyCredential::isUserVerifyingPlatformAuthenticatorAvailable):

8:54 AM Changeset in webkit [292033] by Sam Sneddon
  • 6 edits
    116 copies
    131 adds
    1 delete in trunk/LayoutTests

Re-import web-platform-tests/css/css-conditional
https://bugs.webkit.org/show_bug.cgi?id=237896

Reviewed by Tim Nguyen.

This used to be web-platform-tests/css/conditional, so this also
combines the rename, but is ultimately this is just an update.

LayoutTests/imported/w3c:

  • resources/import-expectations.json:
  • resources/resource-files.json:
  • web-platform-tests/css/conditional/LICENSE: Removed.
  • web-platform-tests/css/conditional/at-supports-001-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-002-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-003-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-004-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-005-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-006-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-007-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-008-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-009-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-010-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-011-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-012-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-013-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-014-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-015-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-016-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-017-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-018-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-019-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-020-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-021-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-022-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-023-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-024-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-025-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-026-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-027-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-028-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-029-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-030-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-031-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-032-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-033-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-034-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-035-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-036-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-037-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-038-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-039-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-040-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-041-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-042-expected.html: Removed.
  • web-platform-tests/css/conditional/at-supports-043-expected.html: Removed.
  • web-platform-tests/css/conditional/reference/background-lime.html: Removed.
  • web-platform-tests/css/conditional/test_group_insertRule-expected.txt: Removed.
  • web-platform-tests/css/conditional/test_group_insertRule.html: Removed.
  • web-platform-tests/css/css-conditional/META.yml: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/META.yml.
  • web-platform-tests/css/css-conditional/at-media-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-001.html: Added.
  • web-platform-tests/css/css-conditional/at-media-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-002.html: Added.
  • web-platform-tests/css/css-conditional/at-media-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-003.html: Added.
  • web-platform-tests/css/css-conditional/at-media-content-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-content-001.html: Added.
  • web-platform-tests/css/css-conditional/at-media-content-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-content-002.html: Added.
  • web-platform-tests/css/css-conditional/at-media-content-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-content-003.html: Added.
  • web-platform-tests/css/css-conditional/at-media-content-004-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-content-004.html: Added.
  • web-platform-tests/css/css-conditional/at-media-dynamic-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-media-dynamic-001.html: Added.
  • web-platform-tests/css/css-conditional/at-media-whitespace-optional-001-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-media-whitespace-optional-001-expected.html.
  • web-platform-tests/css/css-conditional/at-media-whitespace-optional-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-media-whitespace-optional-001.html.
  • web-platform-tests/css/css-conditional/at-media-whitespace-optional-002-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-media-whitespace-optional-002-expected.html.
  • web-platform-tests/css/css-conditional/at-media-whitespace-optional-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-media-whitespace-optional-002.html.
  • web-platform-tests/css/css-conditional/at-supports-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-001-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-001.html.
  • web-platform-tests/css/css-conditional/at-supports-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-006.html.
  • web-platform-tests/css/css-conditional/at-supports-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-002.html.
  • web-platform-tests/css/css-conditional/at-supports-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-003.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-004-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-004.html.
  • web-platform-tests/css/css-conditional/at-supports-005-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-005.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-005.html.
  • web-platform-tests/css/css-conditional/at-supports-006-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-006.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-006.html.
  • web-platform-tests/css/css-conditional/at-supports-007-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-007.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-007.html.
  • web-platform-tests/css/css-conditional/at-supports-008-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-008.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-008.html.
  • web-platform-tests/css/css-conditional/at-supports-009-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-009.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-009.html.
  • web-platform-tests/css/css-conditional/at-supports-010-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-010.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-010.html.
  • web-platform-tests/css/css-conditional/at-supports-011-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-011.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-011.html.
  • web-platform-tests/css/css-conditional/at-supports-012-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-012.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-012.html.
  • web-platform-tests/css/css-conditional/at-supports-013-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-013.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-013.html.
  • web-platform-tests/css/css-conditional/at-supports-014-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-014.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-014.html.
  • web-platform-tests/css/css-conditional/at-supports-015-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-015.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-015.html.
  • web-platform-tests/css/css-conditional/at-supports-016-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-016.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-016.html.
  • web-platform-tests/css/css-conditional/at-supports-017-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-017.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-017.html.
  • web-platform-tests/css/css-conditional/at-supports-018-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-018.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-018.html.
  • web-platform-tests/css/css-conditional/at-supports-019-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-019.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-019.html.
  • web-platform-tests/css/css-conditional/at-supports-020-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-020.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-020.html.
  • web-platform-tests/css/css-conditional/at-supports-021-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-021.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-021.html.
  • web-platform-tests/css/css-conditional/at-supports-022-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-022.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-022.html.
  • web-platform-tests/css/css-conditional/at-supports-023-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-023.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-023.html.
  • web-platform-tests/css/css-conditional/at-supports-024-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-024.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-024.html.
  • web-platform-tests/css/css-conditional/at-supports-025-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-025.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-025.html.
  • web-platform-tests/css/css-conditional/at-supports-026-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-026.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-026.html.
  • web-platform-tests/css/css-conditional/at-supports-027-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-027.html.
  • web-platform-tests/css/css-conditional/at-supports-027-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-027.html.
  • web-platform-tests/css/css-conditional/at-supports-027.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-027.html.
  • web-platform-tests/css/css-conditional/at-supports-028-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-028.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-028.html.
  • web-platform-tests/css/css-conditional/at-supports-029-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-027.html.
  • web-platform-tests/css/css-conditional/at-supports-029.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-029.html.
  • web-platform-tests/css/css-conditional/at-supports-030-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-030.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-030.html.
  • web-platform-tests/css/css-conditional/at-supports-031-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-031.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-031.html.
  • web-platform-tests/css/css-conditional/at-supports-032-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-032.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-032.html.
  • web-platform-tests/css/css-conditional/at-supports-033-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-033.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-033.html.
  • web-platform-tests/css/css-conditional/at-supports-034-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-034.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-034.html.
  • web-platform-tests/css/css-conditional/at-supports-035-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-035.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-035.html.
  • web-platform-tests/css/css-conditional/at-supports-036-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-036.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-036.html.
  • web-platform-tests/css/css-conditional/at-supports-037-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-037.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-037.html.
  • web-platform-tests/css/css-conditional/at-supports-038-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-038.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-038.html.
  • web-platform-tests/css/css-conditional/at-supports-039-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-039.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-039.html.
  • web-platform-tests/css/css-conditional/at-supports-043-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-043.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-043.html.
  • web-platform-tests/css/css-conditional/at-supports-044-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-044.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-045-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-045.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-046-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-046.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-content-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-content-001.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-content-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-content-002.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-content-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-content-003.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-content-004-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-content-004.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-namespace-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-namespace-001.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-namespace-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-namespace-002.html: Added.
  • web-platform-tests/css/css-conditional/at-supports-selector-001-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-001.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-040.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-002-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-040.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-003-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-003.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-041.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-004-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-003.html.
  • web-platform-tests/css/css-conditional/at-supports-selector-004.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/at-supports-042.html.
  • web-platform-tests/css/css-conditional/css-supports-001-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-001.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-002-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-002.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-003-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-003.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-004-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-004.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-005-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-005.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-006-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-006.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-007-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-007.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-008-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-008.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-009-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-009.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-010-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-010.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-011-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-011.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-012-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-012.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-013-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-013.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-014-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-014.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-015-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-015.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-016-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-016.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-017-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-017.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-018-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-018.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-019-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-019.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-020-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-020.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-021-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-021.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-022-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-022.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-023-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-023.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-024-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-024.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-025-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-025.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-026-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-026.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-029-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-029.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-030-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-030.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-031-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-031.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-032-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-032.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-033-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-033.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-034-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-034.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-035-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-035.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-036-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-036.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-037-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-037.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-038-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-038.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-039-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-039.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-040-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-040.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-041-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-041.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-042-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-042.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-043-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-043.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-044-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-044.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-045-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-045.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-046-expected.xht: Added.
  • web-platform-tests/css/css-conditional/css-supports-046.xht: Added.
  • web-platform-tests/css/css-conditional/idlharness-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/idlharness-expected.txt.
  • web-platform-tests/css/css-conditional/idlharness.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/idlharness.html.
  • web-platform-tests/css/css-conditional/js/001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/js/001-expected.txt.
  • web-platform-tests/css/css-conditional/js/001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/conditional/js/001.html.
  • web-platform-tests/css/css-conditional/js/CSS-supports-CSSStyleDeclaration-expected.txt: Added.
  • web-platform-tests/css/css-conditional/js/CSS-supports-CSSStyleDeclaration.html: Added.
  • web-platform-tests/css/css-conditional/js/CSS-supports-L3-expected.txt: Added.
  • web-platform-tests/css/css-conditional/js/CSS-supports-L3.html: Added.
  • web-platform-tests/css/css-conditional/js/CSS-supports-L4-expected.txt: Added.
  • web-platform-tests/css/css-conditional/js/CSS-supports-L4.html: Added.
  • web-platform-tests/css/css-conditional/js/conditional-CSSGroupingRule-expected.txt: Added.
  • web-platform-tests/css/css-conditional/js/conditional-CSSGroupingRule.html: Added.
  • web-platform-tests/css/css-conditional/js/w3c-import.log: Added.
  • web-platform-tests/css/css-conditional/support/at-media-dynamic-001-inner.html: Added.
  • web-platform-tests/css/css-conditional/support/fail.css: Added.

(*):

  • web-platform-tests/css/css-conditional/support/pass.xht: Added.
  • web-platform-tests/css/css-conditional/support/w3c-import.log: Added.
  • web-platform-tests/css/css-conditional/w3c-import.log: Added.

LayoutTests:

8:48 AM Changeset in webkit [292032] by Wenson Hsieh
  • 8 edits in trunk

HTMLAttachmentElement.getAttachmentIdentifier() should propagate attachment data to the client
https://bugs.webkit.org/show_bug.cgi?id=238473
rdar://90938796

Reviewed by Devin Rousso.

Source/WebCore:

In the case where a WebKit client that has enabled the attachment element uses
HTMLAttachmentElement.getAttachmentIdentifier on an image element to create a new attachment-backed image, we
currently propagate an empty _WKAttachment to the UI delegate in the UI process, even in the case where the
image element has a visible image that has been loaded.

To support plain-text editing mode, Mail needs to be able to call getAttachmentIdentifier to create attachment
elements for images that already contain images with blob sources, but are inserted into the document via
JavaScript (as opposed to native editing code).

To make this work, we plumb the image element itself through the registerAttachmentIdentifier method that
currently only takes a single attachment identifier, and use it to send the image data, image name, and MIME
type to the attachment client if the image has a loaded image; otherwise, we fall back to creating and surfacing
an empty _WKAttachment to the client.

Test: WKAttachmentTests.CreateAttachmentsFromExistingImage

  • dom/Document.cpp:

(WebCore::Document::registerAttachmentIdentifier):

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

(WebCore::Editor::registerAttachmentIdentifier):

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

(WebCore::HTMLAttachmentElement::getAttachmentIdentifier):

Tools:

Add a new API test to exercise the fix.

  • TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:

(TestWebKitAPI::TEST):

8:17 AM WebKitGTK/2.36.x edited by magomez@igalia.com
(diff)
7:31 AM Changeset in webkit [292031] by don.olmstead@sony.com
  • 3 edits
    1 copy
    1 add
    1 delete in trunk/Source/WebKit

Share WebAutomationSession among USE(LIBWPE) ports
https://bugs.webkit.org/show_bug.cgi?id=238470

Reviewed by Adrian Perez de Castro.

Rename WebAutomationSessionWPE.cpp to WebAutomationSessionLibWPE since its just using the
libWPE API. Remove glib specific code in WebAutomationSession::platformSimulateKeySequence
to use a StringView::codePoints. The same code was in GTK so replace that as well.

  • SourcesWPE.txt:
  • UIProcess/Automation/gtk/WebAutomationSessionGtk.cpp:

(WebKit::WebAutomationSession::platformSimulateKeySequence):

  • UIProcess/Automation/libwpe/WebAutomationSessionLibWPE.cpp: Renamed from Source/WebKit/UIProcess/Automation/wpe/WebAutomationSessionWPE.cpp.

(WebKit::WebAutomationSession::platformSimulateKeySequence):

7:23 AM Changeset in webkit [292030] by Alan Bujtas
  • 3 edits in trunk/LayoutTests

Make fast/repaint/list-item-equal-style-change-no-repaint.html less prone to flakiness
https://bugs.webkit.org/show_bug.cgi?id=238480

Reviewed by Simon Fraser.

Use Internals::layoutCount to check whether animation triggers layout.

  • fast/repaint/list-item-equal-style-change-no-repaint-expected.txt:
  • fast/repaint/list-item-equal-style-change-no-repaint.html:
5:24 AM Changeset in webkit [292029] by ntim@apple.com
  • 4 edits in trunk

Use Canvas/CanvasText system colors for <dialog> default styling
https://bugs.webkit.org/show_bug.cgi?id=238425

Reviewed by Antti Koivisto.

Per HTML spec change: https://github.com/whatwg/html/commit/22154a4c1d426dddf187fb12c05fbcb8816c94a5
Main change is that the colors now adapt to dark mode by default.

LayoutTests/imported/w3c:

Updated test result to pass.

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color-expected.txt:

Source/WebCore:

Test: LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color.html

  • css/dialog.css:

(dialog):

5:21 AM Changeset in webkit [292028] by ntim@apple.com
  • 4 edits
    40 moves
    4 adds in trunk/LayoutTests

Re-import inert and <dialog> WPT
https://bugs.webkit.org/show_bug.cgi?id=238502

Reviewed by Antti Koivisto.

Upstream commit: https://github.com/web-platform-tests/wpt/commit/46e50fc357127c76c898675cd30ae34090a2268d

Main changes:

  • Removes .tentative.html suffix from inert tests
  • Adds default-color.html test for <dialog>

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/default-color.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert.tentative-expected.txt.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-inert.tentative.html.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection-expected.txt: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-selection.html: Added.
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/w3c-import.log:
  • web-platform-tests/inert/dynamic-inert-on-focused-element-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/dynamic-inert-on-focused-element.tentative-expected.txt.
  • web-platform-tests/inert/dynamic-inert-on-focused-element.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/dynamic-inert-on-focused-element.tentative.html.
  • web-platform-tests/inert/inert-and-contenteditable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-and-contenteditable.tentative-expected.txt.
  • web-platform-tests/inert/inert-and-contenteditable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-and-contenteditable.tentative.html.
  • web-platform-tests/inert/inert-canvas-fallback-content-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-canvas-fallback-content.tentative-expected.txt.
  • web-platform-tests/inert/inert-canvas-fallback-content.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-canvas-fallback-content.tentative.html.
  • web-platform-tests/inert/inert-does-not-match-disabled-selector-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative-expected.txt.
  • web-platform-tests/inert/inert-does-not-match-disabled-selector.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-does-not-match-disabled-selector.tentative.html.
  • web-platform-tests/inert/inert-iframe-hittest-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt.
  • web-platform-tests/inert/inert-iframe-hittest.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative.html.
  • web-platform-tests/inert/inert-iframe-tabbing-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt.
  • web-platform-tests/inert/inert-iframe-tabbing.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative.html.
  • web-platform-tests/inert/inert-in-shadow-dom-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-in-shadow-dom.tentative-expected.txt.
  • web-platform-tests/inert/inert-in-shadow-dom.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-in-shadow-dom.tentative.html.
  • web-platform-tests/inert/inert-inlines-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-inlines.tentative-expected.txt.
  • web-platform-tests/inert/inert-inlines.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-inlines.tentative.html.
  • web-platform-tests/inert/inert-label-focus-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-label-focus.tentative-expected.txt.
  • web-platform-tests/inert/inert-label-focus.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-label-focus.tentative.html.
  • web-platform-tests/inert/inert-node-is-uneditable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt.
  • web-platform-tests/inert/inert-node-is-uneditable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative.html.
  • web-platform-tests/inert/inert-node-is-unfocusable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unfocusable.tentative-expected.txt.
  • web-platform-tests/inert/inert-node-is-unfocusable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unfocusable.tentative.html.
  • web-platform-tests/inert/inert-node-is-unselectable-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative-expected.txt.
  • web-platform-tests/inert/inert-node-is-unselectable.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-node-is-unselectable.tentative.html.
  • web-platform-tests/inert/inert-on-non-html-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-non-html.tentative-expected.txt.
  • web-platform-tests/inert/inert-on-non-html.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-non-html.tentative.html.
  • web-platform-tests/inert/inert-on-slots-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-slots.tentative-expected.txt.
  • web-platform-tests/inert/inert-on-slots.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-on-slots.tentative.html.
  • web-platform-tests/inert/inert-svg-hittest-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt.
  • web-platform-tests/inert/inert-svg-hittest.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative.html.
  • web-platform-tests/inert/inert-with-modal-dialog-001-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-001.tentative-expected.txt.
  • web-platform-tests/inert/inert-with-modal-dialog-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-001.tentative.html.
  • web-platform-tests/inert/inert-with-modal-dialog-002-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-002.tentative-expected.txt.
  • web-platform-tests/inert/inert-with-modal-dialog-002.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/inert/inert-with-modal-dialog-002.tentative.html.
  • web-platform-tests/inert/w3c-import.log:

LayoutTests:

  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-hittest.tentative-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-iframe-tabbing.tentative-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-node-is-uneditable.tentative-expected.txt.
  • platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-svg-hittest-expected.txt: Renamed from LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/inert/inert-svg-hittest.tentative-expected.txt.
4:40 AM Changeset in webkit [292027] by youenn@apple.com
  • 23 edits in trunk/Source

RealtimeMediaSource::Type::Video is misleading as it is actually referring to camera sources
https://bugs.webkit.org/show_bug.cgi?id=238449

Reviewed by Eric Carlson.

Source/WebCore:

Make RealtimeMediaSource::Type a boolean (audio or video) and use deviceType wherever more fine grained information is needed.
No change of behavior.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::getAudioTracks const):
(WebCore::MediaStream::getVideoTracks const):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::MediaStreamTrack):
(WebCore::MediaStreamTrack::~MediaStreamTrack):
(WebCore::MediaStreamTrack::kind const):
(WebCore::MediaStreamTrack::setContentHint):
(WebCore::updateVideoCaptureAccordingMicrophoneInterruption):
(WebCore::trackTypeForMediaProducerCaptureKind):
(WebCore::MediaStreamTrack::endCapture):
(WebCore::MediaStreamTrack::trackEnded):
(WebCore::MediaStreamTrack::isCapturingAudio const):

  • Modules/mediastream/MediaStreamTrack.h:

(WebCore::MediaStreamTrack::isVideo const):
(WebCore::MediaStreamTrack::isAudio const):
(WebCore::MediaStreamTrack::hasVideo const): Deleted.
(WebCore::MediaStreamTrack::hasAudio const): Deleted.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::mediaStreamDidFail): Deleted.

  • Modules/mediastream/UserMediaRequest.h:
  • Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addTrack):
(WebCore::LibWebRTCMediaEndpoint::createSourceAndRTCTrack):

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

(WebCore::updateTracksOfKind):

  • platform/mediarecorder/MediaRecorderPrivate.cpp:

(WebCore::MediaRecorderPrivate::selectTracks):

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::hasVideo const):
(WebCore::MediaStreamPrivate::hasAudio const):
(WebCore::MediaStreamPrivate::updateActiveVideoTrack):
(WebCore::MediaStreamPrivate::monitorOrientation):

  • platform/mediastream/MediaStreamTrackPrivate.cpp:

(WebCore::MediaStreamTrackPrivate::type const): Deleted.

  • platform/mediastream/MediaStreamTrackPrivate.h:
  • platform/mediastream/RealtimeMediaSource.cpp:

(WebCore::convertEnumerationToString):

  • platform/mediastream/RealtimeMediaSource.h:
  • platform/mediastream/cocoa/DisplayCaptureSourceCocoa.cpp:

(WebCore::DisplayCaptureSourceCocoa::DisplayCaptureSourceCocoa):
(WebCore::sourceTypeForDevice): Deleted.

  • platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
  • testing/Internals.cpp:

(WebCore::Internals::stopObservingRealtimeMediaSource):
(WebCore::Internals::observeMediaStreamTrack):

Source/WebKit:

  • Shared/WebCoreArgumentCoders.h:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:

(WebKit::UserMediaCaptureManagerProxy::SourceProxy::SourceProxy):
(WebKit::UserMediaCaptureManagerProxy::SourceProxy::~SourceProxy):

  • WebProcess/cocoa/RemoteRealtimeMediaSource.cpp:

(WebKit::toSourceType):

2:43 AM Changeset in webkit [292026] by Said Abou-Hallawa
  • 4 edits in trunk/Source/WebCore

REGRESSION(r291771): [ iOS ] Text sometimes draw with incorrect color
https://bugs.webkit.org/show_bug.cgi?id=238466
rdar://90941790

Reviewed by Simon Fraser.

r291771 uncovers this bug: TextBoxPainter::paintForeground() records the
glyphs to a DisplayList before settings the destination GraphicsContext.

The fix is to apply all the changes to the GraphicsContext before calling
TextPainter::setGlyphDisplayListIfNeeded().

Delete TextPainter::paint() because it is not used.

Initialize TextPainter with a reference to FontCascade.

  • rendering/TextBoxPainter.cpp:

(WebCore::TextBoxPainter::paintForeground):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::TextPainter):
(WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):
(WebCore::TextPainter::paintRange):
(WebCore::TextPainter::paint): Deleted.

  • rendering/TextPainter.h:

(WebCore::TextPainter::setShadowColorFilter):
(WebCore::TextPainter::setGlyphDisplayListIfNeeded):
(WebCore::TextPainter::setFont): Deleted.

12:59 AM Changeset in webkit [292025] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[GTK][WPE] Use GBMBufferSwapchain in GraphicsContextGLTextureMapperANGLE
https://bugs.webkit.org/show_bug.cgi?id=237883

Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-03-29
Reviewed by Alejandro G. Castro.

Use the generic GBMBufferSwapchain for managing dmabuf-based buffer
objects in GraphicsContextGLTextureMapperANGLE. This usage is guarded
behind the USE(TEXTURE_MAPPER_DMABUF) build guards.

When that build guard is enabled, we can avoid using additional textures
but instead have to manage a GBMBufferSwapchain instance from which we
can retrieve buffers that should be acting as backing for the different
draw operations.

This buffer setup is handled in the
GraphicsContextGLTextureMapperANGLE::makeContextCurrent() method. Once
called, if there's a swapchain available (after initial or each
subsequent backing reshaping) a buffer will be retrieved from that
swapchain, a corresponding EGLImage created and associated to the GL
texture that acts as the color attachment for the default buffer. All
subsequent drawing will be done onto this buffer object, all the way
to the prepareForDisplay() method where that buffer is moved into the
display-buffer position, waiting for the display to occur.

The display of this buffer is still handled in Nicosia::GCGLANGLELayer.
In the swapBuffersIfNeeded() method, if the pending buffer is detected,
the dmabuf information is pushed into the
TextureMapperPlatformLayerProxyDMABuf instance and prepared for
presentation.

No new tests -- covered by existing tests, where the ANGLE-backed
GraphicsContextGL continues to improve the overall state of WebGL tests.
Only problem is the software-backed rasterization in the WPE/GTK testing
tooling which disables a few features and to a degree breaks WebGL
content display, but this specific issue will be resolved later.

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp:

(Nicosia::GCGLANGLELayer::swapBuffersIfNeeded):
(Nicosia::GCGLANGLELayer::GCGLANGLELayer):

  • platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h:
  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::makeContextCurrent):
(WebCore::GraphicsContextGLTextureMapperANGLE::~GraphicsContextGLTextureMapperANGLE):
(WebCore::GraphicsContextGLTextureMapperANGLE::platformInitializeContext):
(WebCore::GraphicsContextGLTextureMapperANGLE::platformInitialize):
(WebCore::GraphicsContextGLTextureMapperANGLE::prepareTexture):
(WebCore::GraphicsContextGLTextureMapperANGLE::reshapeDisplayBufferBacking):
(WebCore::GraphicsContextGLTextureMapperANGLE::prepareForDisplay):
(WebCore::GraphicsContextGLTextureMapperANGLE::Swapchain::Swapchain):
(WebCore::GraphicsContextGLTextureMapperANGLE::Swapchain::~Swapchain):
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::EGLImageBacking): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::~EGLImageBacking): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::format const): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::stride const): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::releaseResources): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::isReleased): Deleted.
(WebCore::GraphicsContextGLTextureMapperANGLE::EGLImageBacking::reset): Deleted.

  • platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.h:

Mar 28, 2022:

10:54 PM Changeset in webkit [292024] by sihui_liu@apple.com
  • 20 edits in trunk/Source/WebKit

Add logging about process entering background to NetworkProcess::processDidResume
https://bugs.webkit.org/show_bug.cgi?id=238082
<rdar://problem/90844775>

Reviewed by Chris Dumez.

In rdar://82412733, we found network process can be suspended right after it receives processDidResume message.
For network process, processDidResume means process is not suspended and it is safe to perform database
operations. Let's add logging to check when and why processDidResume message is sent. If the logging confirms
that processDidResume message can be received when process is close to assertion timeout, we probably want to
ignore such message and resume database operations when application actually enters foreground.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::prepareToSuspend):
(WebKit::NetworkProcess::applicationDidEnterBackground):
(WebKit::NetworkProcess::applicationWillEnterForeground):
(WebKit::NetworkProcess::processDidResume):

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/ios/NetworkProcessIOS.mm:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm:

(-[WKWebView _processDidResumeForTesting]):

  • UIProcess/Cocoa/DownloadProxyMapCocoa.mm:

(WebKit::DownloadProxyMap::platformCreate):
(WebKit::DownloadProxyMap::platformDestroy):

  • UIProcess/Downloads/DownloadProxyMap.cpp:

(WebKit::DownloadProxyMap::applicationDidEnterBackground): Deleted.
(WebKit::DownloadProxyMap::applicationWillEnterForeground): Deleted.

  • UIProcess/Downloads/DownloadProxyMap.h:

(WebKit::DownloadProxyMap::isEmpty const):

  • UIProcess/GPU/GPUProcessProxy.cpp:

(WebKit::GPUProcessProxy::sendProcessDidResume):

  • UIProcess/GPU/GPUProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::NetworkProcessProxy):
(WebKit::NetworkProcessProxy::~NetworkProcessProxy):
(WebKit::NetworkProcessProxy::synthesizeAppIsBackground):
(WebKit::NetworkProcessProxy::sendProcessDidResume):
(WebKit::NetworkProcessProxy::applicationDidEnterBackground):
(WebKit::NetworkProcessProxy::applicationWillEnterForeground):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxyCocoa.mm:

(WebKit::NetworkProcessProxy::addBackgroundStateObservers):
(WebKit::NetworkProcessProxy::removeBackgroundStateObservers):

  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::updateAssertionIfNeeded):

  • UIProcess/ProcessThrottlerClient.h:
  • UIProcess/WebAuthentication/WebAuthnProcessProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::sendProcessDidResume):

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::sendNetworkProcessDidResume):

9:33 PM Changeset in webkit [292023] by Russell Epstein
  • 3 edits in branches/safari-614.1.8-branch/Source/WebKit

Cherry-pick r291982. rdar://problem/90927474

[iOS] Fix sandbox violation related to Network content filtering
https://bugs.webkit.org/show_bug.cgi?id=238458
<rdar://90927474>

Reviewed by Brent Fulgham.

After enabling Network content filtering in the Network process, a related sandbox rule should
be moved to the Network process' sandbox.

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

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

8:35 PM Changeset in webkit [292022] by Alan Bujtas
  • 4 edits in trunk

[ macOS & Win ] fast/repaint/list-item-equal-style-change-no-repaint.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=215723
<rdar://problem/67520729>

Reviewed by Simon Fraser.

Source/WebCore:

  • animation/KeyframeEffect.h:

LayoutTests:

  • platform/mac/TestExpectations:
8:06 PM Changeset in webkit [292021] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WebXR][Cocoa] Enable GL_OES_EGL_image extension when makeXRCompatible() is called on GL context
https://bugs.webkit.org/show_bug.cgi?id=238477

Patch by Ada Chan <adachan@apple.com> on 2022-03-28
Reviewed by Dean Jackson.

Without this extension, EGLImageTargetTexture2DOES() will fail
in GraphicsContextGLCocoa::attachIOSurfaceToSharedTexture().

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::makeXRCompatible):

7:04 PM Changeset in webkit [292020] by Lauro Moura
  • 2 edits in trunk/Source/WebCore

Unreviewed, non-unified buildfix after 248938@main
https://bugs.webkit.org/show_bug.cgi?id=238478

  • workers/service/server/SWServerToContextConnection.h:
6:20 PM Changeset in webkit [292019] by Lauro Moura
  • 5 edits
    1 add in trunk

[AT-SPI] accessibility/native-text-control-attributed-string.html is failing
https://bugs.webkit.org/show_bug.cgi?id=237821

Reviewed by Carlos Garcia Campos.

Tools:

  • WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::AccessibilityUIElement::attributedStringForRange): Check the
validity of the passed range.

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/gtk/accessibility/native-text-control-attributed-string-expected.txt: Added.
  • platform/wpe/TestExpectations:
6:16 PM Changeset in webkit [292018] by Nikos Mouchtaris
  • 4 edits in trunk

Clamp degenerate calc() values for <angle>
https://bugs.webkit.org/show_bug.cgi?id=238401

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-values/calc-infinity-nan-computed-expected.txt:

Source/WebCore:

Clamp nan, infinity and -infinity to zero for <angle>. Issue discussing this:
https://github.com/w3c/csswg-drafts/issues/6105.

  • css/calc/CSSCalcValue.cpp:

(WebCore::CSSCalcValue::clampToPermittedRange const):

6:14 PM Changeset in webkit [292017] by Russell Epstein
  • 7 edits in branches/safari-614.1.8-branch

Cherry-pick r292007. rdar://problem/90602918

[macOS] Add WKWebView API to control CSS "small viewport" sv* and "large viewport" lv* units
https://bugs.webkit.org/show_bug.cgi?id=238173
<rdar://problem/90602918>

Reviewed by Wenson Hsieh.

Source/WebKit:

See <https://webkit.org/b/237979> for information about this API. This change just also
enables it on macOS (the other change was iOS-only).

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/API/mac/WKWebViewMac.mm: (-[WKWebView setFrameSize:]): Remove the #if PLATFORM(IOS_FAMILY) around all things related to -[WKWebview setMinimumViewportInset:maximumViewportInset:].

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm: Enable tests for -[WKWebView setMinimumViewportInset:maximumViewportInset:] on macOS.

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

5:40 PM Changeset in webkit [292016] by Alan Coon
  • 1 copy in tags/Safari-613.1.17.0.9

Tag Safari-613.1.17.0.9.

5:26 PM Changeset in webkit [292015] by Alan Coon
  • 5 edits
    2 adds in branches/safari-613-branch

Cherry-pick r291622. rdar://problem/90935942

Fetching a Blob URL with an unbounded Range header do not generate a Content-Range response header
https://bugs.webkit.org/show_bug.cgi?id=238170

Reviewed by Eric Carlson.

Source/WebCore:

Test: fetch/fetch-blob-unbounded-range.html

Handle the case where the request contains an unbounded range, and property calculate the rangeEnd
to pass into ParsedContentRange.

  • platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::notifyResponseOnSuccess):

Source/WebKit:

Handle the case where the request contains an unbounded range, and property calculate the rangeEnd
to pass into ParsedContentRange.

  • NetworkProcess/NetworkDataTaskBlob.cpp: (WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):

LayoutTests:

  • fetch/fetch-blob-unbounded-range-expected.txt: Added.
  • fetch/fetch-blob-unbounded-range.html: Added.

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

5:23 PM Changeset in webkit [292014] by ysuzuki@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Clean up some 32bit load/store with 64bit load/store
https://bugs.webkit.org/show_bug.cgi?id=238440

Reviewed by Mark Lam.

  1. On OSR entry, we should copy values from scratch to stack via loadValue / storeValue instead of 32bit load/store.
  2. We should initialize tail-call's argumentCountIncludingThis slot via store64.
  • dfg/DFGThunks.cpp:

(JSC::DFG::osrEntryThunkGenerator):

  • jit/CallFrameShuffler.cpp:

(JSC::CallFrameShuffler::prepareAny):

5:22 PM Changeset in webkit [292013] by Matteo Flores
  • 2 edits in trunk/LayoutTests

[ iPadOS ] 3 svg/filters/* tests are constant image failures
https://bugs.webkit.org/show_bug.cgi?id=237689

Unreviewed test gardening.

  • platform/ipad/TestExpectations:
5:14 PM Changeset in webkit [292012] by Alan Coon
  • 5 edits
    2 adds in branches/safari-613.2.4.0-branch

Cherry-pick r291622. rdar://problem/90935942

Fetching a Blob URL with an unbounded Range header do not generate a Content-Range response header
https://bugs.webkit.org/show_bug.cgi?id=238170

Reviewed by Eric Carlson.

Source/WebCore:

Test: fetch/fetch-blob-unbounded-range.html

Handle the case where the request contains an unbounded range, and property calculate the rangeEnd
to pass into ParsedContentRange.

  • platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::notifyResponseOnSuccess):

Source/WebKit:

Handle the case where the request contains an unbounded range, and property calculate the rangeEnd
to pass into ParsedContentRange.

  • NetworkProcess/NetworkDataTaskBlob.cpp: (WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):

LayoutTests:

  • fetch/fetch-blob-unbounded-range-expected.txt: Added.
  • fetch/fetch-blob-unbounded-range.html: Added.

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

5:13 PM Changeset in webkit [292011] by Alan Coon
  • 5 edits
    2 adds in branches/safari-613.2.4.1-branch

Cherry-pick r291622. rdar://problem/90935942

Fetching a Blob URL with an unbounded Range header do not generate a Content-Range response header
https://bugs.webkit.org/show_bug.cgi?id=238170

Reviewed by Eric Carlson.

Source/WebCore:

Test: fetch/fetch-blob-unbounded-range.html

Handle the case where the request contains an unbounded range, and property calculate the rangeEnd
to pass into ParsedContentRange.

  • platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::notifyResponseOnSuccess):

Source/WebKit:

Handle the case where the request contains an unbounded range, and property calculate the rangeEnd
to pass into ParsedContentRange.

  • NetworkProcess/NetworkDataTaskBlob.cpp: (WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):

LayoutTests:

  • fetch/fetch-blob-unbounded-range-expected.txt: Added.
  • fetch/fetch-blob-unbounded-range.html: Added.

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

5:00 PM Changeset in webkit [292010] by sihui_liu@apple.com
  • 8 edits in trunk/Source

Disable custom storage paths for IndexedDB and LocalStorage by default
https://bugs.webkit.org/show_bug.cgi?id=236977
<rdar://problem/89559929>

Reviewed by Geoffrey Garen.

Source/WebKit:

Developers can enable them by disabling "general directory for storage" via internal debug feature or system
feature flag.

  • FeatureFlags/WebKit-appletvos.plist:
  • FeatureFlags/WebKit-ios.plist:
  • FeatureFlags/WebKit-macos.plist:
  • FeatureFlags/WebKit-watchos.plist:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::internalFeatureEnabled):
(WebKit::WebsiteDataStore::defaultShouldUseCustomStoragePaths):

Source/WTF:

Add an internal debug feature for using genreal directory for storage.

  • Scripts/Preferences/WebPreferencesInternal.yaml:
4:48 PM Changeset in webkit [292009] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

The lazy symbolObjectStructure should be realized before we allocate a SymbolObject.
https://bugs.webkit.org/show_bug.cgi?id=238474
<rdar://problem/90918765>

Reviewed by Yusuke Suzuki and Saam Barati.

We should not be allocating the symbolObjectStructure while in the middle of
initializing a SymbolObject.

  • runtime/Symbol.cpp:

(JSC::Symbol::toObject const):
(JSC::SymbolObject::create): Deleted.

  • runtime/SymbolObject.h:
4:31 PM Changeset in webkit [292008] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Unreviewed, reverting r291728.
https://bugs.webkit.org/show_bug.cgi?id=238476

causing crashes in tests

Reverted changeset:

"Expand autocorrect context for more accurate results."
https://bugs.webkit.org/show_bug.cgi?id=237990
https://commits.webkit.org/r291728

4:28 PM Changeset in webkit [292007] by Devin Rousso
  • 7 edits in trunk

[macOS] Add WKWebView API to control CSS "small viewport" sv* and "large viewport" lv* units
https://bugs.webkit.org/show_bug.cgi?id=238173
<rdar://problem/90602918>

Reviewed by Wenson Hsieh.

Source/WebKit:

See <https://webkit.org/b/237979> for information about this API. This change just also
enables it on macOS (the other change was iOS-only).

  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/API/mac/WKWebViewMac.mm:

(-[WKWebView setFrameSize:]):
Remove the #if PLATFORM(IOS_FAMILY) around all things related to -[WKWebview setMinimumViewportInset:maximumViewportInset:].

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm:

Enable tests for -[WKWebView setMinimumViewportInset:maximumViewportInset:] on macOS.

4:27 PM Changeset in webkit [292006] by Alan Coon
  • 20 edits in branches/safari-613.2.4.0-branch

Cherry-pick r291980. rdar://problem/89434696

[iOS] Add WKWebView API to control CSS "small viewport" sv* and "large viewport" lv* units
https://bugs.webkit.org/show_bug.cgi?id=237979
<rdar://problem/89434696>

Reviewed by Tim Horton.

Source/WebCore:

Tests: CSSViewportUnits.NegativeMinimumViewportInset

CSSViewportUnits.NegativeMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanFrame
CSSViewportUnits.MaximumViewportInsetLargerThanFrame
CSSViewportUnits.MinimumViewportInset
CSSViewportUnits.MaximumViewportInset
CSSViewportUnits.MinimumViewportInsetWithZoom
CSSViewportUnits.MaximumViewportInsetWithZoom
CSSViewportUnits.MinimumViewportInsetWithWritingMode
CSSViewportUnits.MaximumViewportInsetWithWritingMode
CSSViewportUnits.MinimumViewportInsetWithFrame
CSSViewportUnits.MaximumViewportInsetWithFrame
CSSViewportUnits.MinimumViewportInsetWithBounds
CSSViewportUnits.MaximumViewportInsetWithBounds
CSSViewportUnits.MinimumViewportInsetWithContentInset
CSSViewportUnits.MaximumViewportInsetWithContentInset
CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets
CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets
CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI

  • page/FrameView.h:
  • page/FrameView.cpp: (WebCore::FrameView::performSizeToContentAutoSize): (WebCore::FrameView::enableAutoSizeMode): (WebCore::FrameView::clearSizeOverrideForCSSDefaultViewportUnits): Added. (WebCore::FrameView::setSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits): Added. (WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::sizeForCSSDefaultViewportUnits const): Renamed from sizeForCSSDefaultViewportUnits. (WebCore::FrameView::copyCSSViewportUnits const): Added. Add all the various methods for getting/setting/overriding/clearing an override value for CSS "default viewport" v* units. This allows for WKWebView clients to preserve existing behavior (where CSS "default viewport" v* units match the size of the WKWebView) while adding supporting CSS "small viewport" sv* units and CSS "large viewport" lv* units.

Source/WebKit:

Recently the W3C CSS working group added [some new unit types to CSS](https://drafts.csswg.org/css-values-4/#viewport-variants)
with the goal of helping web developers better deal with browsers that have dynamic UI
elements that change apperance/size/etc. based on user actions (e.g. the URL bar
collapsing/"squishing" and expanding/"unsquishing" depending on whether the user has most
recently scrolled/swiped down the page).

These new units come in three categories:

  • the "large viewport" units (lvw, lvh, etc.) each represent 1% of one dimension of the size of the visual area of the page when all browser UI elements are in their smallest state (e.g. when the URL bar is collapsed/"squished")
  • the "small viewport" units (svw, svh, etc.) each represent 1% of one dimension of the size of the visual area of the page when all browser UI elements are in their largest state (e.g. when the URL bar is expanded/"unsquished")
  • the "dynamic viewport" units (dvw, dvh, etc.) each represent 1% of one dimension of the size of the current visual area of the page, which depends on the current state of all browser UI elements

This way, developer could use 100svh to ensure that no matter what state the browser UI
elements are in the entire element will always be visible on the screen, or use 100dvh to
respond to browser UI element changes by automatically resizing various elements to always
fully take advantage of the available space.

Nothing needs to be added to support "dynamic viewport" dv* units as there already exists
other methods to adjust the visual area of the WKWebView without adjusting its frame
(e.g. -[WKWebView setBounds:], -[UIScrollView setContentInset:], etc.).

But for "small viewport" sv* units and "large viewport" lv* units, however, there is
unfortunately no way to tell a WKWebView anything like "this is the smallest/largest that
this WKWebView will ever be", so there's no way to know ahead of time what the size of the
visual area would be when all browser UI elements are in their smallest/largest state. As
such, this patch adds a new API to allow for WKWebView clients to tell WebKit this
information ahead of time.

Note that there already exists the concept of "default viewport" units (vw, vh, etc.)
that each represent 1% of one dimension of the size of the visual area of the page when all
browser UI elements are in their default state. The behavior of these units remain the same,
and the value can be changed via the existing -[WKWebView setFrame:].

Tests: CSSViewportUnits.NegativeMinimumViewportInset

CSSViewportUnits.NegativeMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanFrame
CSSViewportUnits.MaximumViewportInsetLargerThanFrame
CSSViewportUnits.MinimumViewportInset
CSSViewportUnits.MaximumViewportInset
CSSViewportUnits.MinimumViewportInsetWithZoom
CSSViewportUnits.MaximumViewportInsetWithZoom
CSSViewportUnits.MinimumViewportInsetWithWritingMode
CSSViewportUnits.MaximumViewportInsetWithWritingMode
CSSViewportUnits.MinimumViewportInsetWithFrame
CSSViewportUnits.MaximumViewportInsetWithFrame
CSSViewportUnits.MinimumViewportInsetWithBounds
CSSViewportUnits.MaximumViewportInsetWithBounds
CSSViewportUnits.MinimumViewportInsetWithContentInset
CSSViewportUnits.MaximumViewportInsetWithContentInset
CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets
CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets
CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _recalculateViewportSizesWithMinimumViewportInset:maximumViewportInset:throwOnInvalidInput:]): Added. (-[WKWebView setMinimumViewportInset:maximumViewportInset:]): Added.
  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _processWillSwapOrDidExit]): (-[WKWebView _frameOrBoundsChanged]): (-[WKWebView _didCompleteAnimatedResize]): (-[WKWebView _setMinimumUnobscuredSizeOverride:]): (-[WKWebView _setMaximumUnobscuredSizeOverride:]): (-[WKWebView _beginAnimatedResizeWithUpdates:]): (-[WKWebView _dispatchSetMinimumUnobscuredSize:]): Deleted. (-[WKWebView _dispatchSetMaximumUnobscuredSize:]): Deleted. Recalculate the size for CSS "small viewport" sv* units whenever the frame changes. Also move the deduplication logic that prevents the same value from being sent to the WebProcess more than once to the setter methods on WebPageProxy so that it can be used by more than just iOS-only codepaths.
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setDefaultUnobscuredSize): Added. (WebKit::WebPageProxy::setMinimumUnobscuredSize): Added. (WebKit::WebPageProxy::setMaximumUnobscuredSize): Added. (WebKit::WebPageProxy::creationParameters):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::dynamicViewportSizeUpdate): (WebKit::WebPageProxy::setMinimumUnobscuredSize): Deleted. (WebKit::WebPageProxy::setMaximumUnobscuredSize): Deleted.
  • Shared/WebPageCreationParameters.h:
  • Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode const): (WebKit::WebPageCreationParameters::decode):
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::setViewportSizeForCSSViewportUnits): (WebKit::WebPage::setDefaultUnobscuredSize): Added. (WebKit::WebPage::setMinimumUnobscuredSize): Added. (WebKit::WebPage::setMaximumUnobscuredSize): Added. (WebKit::WebPage::updateSizeForCSSDefaultViewportUnits): Added. (WebKit::WebPage::updateSizeForCSSSmallViewportUnits): Added. (WebKit::WebPage::updateSizeForCSSLargeViewportUnits): Added.
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::viewportConfigurationChanged): (WebKit::WebPage::setMinimumUnobscuredSize): Deleted. (WebKit::WebPage::setMaximumUnobscuredSize): Deleted. (WebKit::WebPage::updateViewportSizeForCSSViewportUnits): Deleted. Add all the various methods for getting/setting/overriding/clearing an override value for CSS "default viewport" v* units. This allows for WKWebView clients to preserve existing behavior (where CSS "default viewport" v* units match the size of the WKWebView) while adding supporting CSS "small viewport" sv* units and CSS "large viewport" lv* units. Move iOS-only code to be for all platforms.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Propagate all viewport size overrides when a new FrameView is created.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm: (TEST.CSSViewportUnits.NegativeMinimumViewportInset): Added. (TEST.CSSViewportUnits.NegativeMaximumViewportInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetLargerThanFrame): Added. (TEST.CSSViewportUnits.MaximumViewportInsetLargerThanFrame): Added. (TEST.CSSViewportUnits.MinimumViewportInset): Added. (TEST.CSSViewportUnits.MaximumViewportInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithZoom): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithZoom): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithWritingMode): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithWritingMode): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithFrame): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithFrame): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithBounds): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithBounds): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithContentInset): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithContentInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets): Added. (TEST.CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI): Added.

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

4:23 PM Changeset in webkit [292005] by Wenson Hsieh
  • 4 edits in trunk

REGRESSION (r290794): [ iOS Debug ] 4 editing/selection/* tests are constant timeouts
https://bugs.webkit.org/show_bug.cgi?id=238155
rdar://90593957

Reviewed by Aditya Keerthi.

Source/WebKit:

After the changes in r290794, we now preemptively compute and send an excessive amount of autocorrection
contexts to the UI process when an element gains focus, such that the UI process is capable of immediately
responding to calls to -requestAutocorrectionContextWithCompletionHandler: without relying on synchronous IPC
to the web process. This made several (already-fairly-slow) tests in editing/selection time out, due to WebKit
computing and sending an excessive amount of this contextual information.

To mitigate this, only perform this preemptive autocorrection context computation if the focused element is
actually changing (i.e., we're not refocusing the same element). Covered by removing several [ Slow ] test
expectations that should no longer be needed.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::elementDidFocus):

LayoutTests:

Unmark several tests that no longer need to be marked as [ Slow ].

  • platform/ios/TestExpectations:
4:04 PM Changeset in webkit [292004] by Alan Coon
  • 2 edits in branches/safari-613.2.4.1-branch/Source/JavaScriptCore

Cherry-pick r291891. rdar://problem/90935489

AI should not set the structure for ObjectCreate
https://bugs.webkit.org/show_bug.cgi?id=238349

Patch by Justin Michaud <Justin Michaud> on 2022-03-24
Reviewed by Saam Barati and Yusuke Suzuki.

The AbstractInterpreter should not set the structure for ObjectCreate because it might change by
the time the constant folding phase runs if the structure cache is cleared.

  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

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

4:03 PM Changeset in webkit [292003] by pvollan@apple.com
  • 2 edits in trunk/Source/WebKit

[macOS] Block access to IOKit class
https://bugs.webkit.org/show_bug.cgi?id=238457

Reviewed by Geoffrey Garen.

Block access to IOKit class AGPMClient on macOS. We already block all messages for this class.

  • WebProcess/com.apple.WebProcess.sb.in:
3:52 PM Changeset in webkit [292002] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Check for re-entrancy in stopForBackForwardCache
https://bugs.webkit.org/show_bug.cgi?id=223536

Patch by Rob Buis <rbuis@igalia.com> on 2022-03-28
Reviewed by Darin Adler.

Check for re-entrancy in stopForBackForwardCache.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopForBackForwardCache):

3:51 PM Changeset in webkit [292001] by Alan Coon
  • 9 edits in branches/safari-613.2.4.1-branch/Source

Versioning.

WebKit-7613.2.4.1.1

3:44 PM Changeset in webkit [292000] by Alan Coon
  • 2 edits in branches/safari-613.2.4.3-branch/Source/JavaScriptCore

Cherry-pick r291891. rdar://problem/90935489

AI should not set the structure for ObjectCreate
https://bugs.webkit.org/show_bug.cgi?id=238349

Patch by Justin Michaud <Justin Michaud> on 2022-03-24
Reviewed by Saam Barati and Yusuke Suzuki.

The AbstractInterpreter should not set the structure for ObjectCreate because it might change by
the time the constant folding phase runs if the structure cache is cleared.

  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

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

3:39 PM Changeset in webkit [291999] by Alan Coon
  • 9 edits in branches/safari-613.2.4.3-branch/Source

Versioning.

WebKit-7613.2.4.3.1

3:35 PM Changeset in webkit [291998] by Cameron McCormack
  • 15 edits
    5 adds in trunk

Remove the 1ms minimum for setTimeout
https://bugs.webkit.org/show_bug.cgi?id=221124
<rdar://problem/73852354>

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

  • web-platform-tests/html/webappapis/timers/zero-settimeout.any-expected.txt:
  • web-platform-tests/html/webappapis/timers/zero-settimeout.any.html:
  • web-platform-tests/html/webappapis/timers/zero-settimeout.any.js:

(async_test):

  • web-platform-tests/html/webappapis/timers/zero-settimeout.any.worker-expected.txt:
  • web-platform-tests/html/webappapis/timers/zero-settimeout.any.worker.html:

New test checking that 0ms and 1ms timeouts are called in the right
order.

  • web-platform-tests/FileAPI/file/File-constructor.any.worker-expected.txt:
  • web-platform-tests/html/webappapis/microtask-queuing/queue-microtask-exceptions.any.worker-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-cross-origin.sub.any.worker-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-redirect-to-cross-origin.sub.any.worker-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-same-origin.sub.any.worker-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-setTimeout-cross-origin.sub.any.worker-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-setTimeout-redirect-to-cross-origin.sub.any.worker-expected.txt:
  • web-platform-tests/workers/interfaces/WorkerUtils/importScripts/report-error-setTimeout-same-origin.sub.any.worker-expected.txt:

Disable console output in some worker tests where the reduced timeout
would cause intemittent failures due to the console message sometimes
not making it to the test output in time.

Source/WebCore:

This patch removes the 1ms minimum for setTimeout. The HTML spec makes
no mention of such a minimum, and Firefox and Chrome do not enforce
this minimum. Removing this for setTimeout results in a 0.7-2.1%
improvement on Speedometer, depending on platform and hardware.

The WPT added here demonstrates how this change can affect pages: if a
page schedules a 1ms and then a 0ms timeout in the same turn of the
event loop, then with this patch they will now be fired in the reverse
order. Since Firefox and Chrome do not impose a 1ms minimum, this
reduces the risk of this being a compatbility problem.

Scheduling a 0ms timeout will cause its callback to be called the next
time around the event loop. Other, non-timer queued tasks, will be
pre-empted. This behavior is permitted by the HTML spec, since the
event loop processing model[1] states that the implementation can
choose which task source to service, and timer callbacks are
dispatched using their own task source. Due to the way the SharedTimer
is called, we don't need to literally dispatch a task with a new
TaskSource::Timer source. (If we decided later to make a different
about whether to service timer callbacks before tasks from all other
task sources, we might need to.)

Not addressing the setTimeout 1ms minimum here, which should likely also
be removed.

While we're here, settle on "one shot" rather rather than "single
shot" as the term for timers that fire once.

[1] https://html.spec.whatwg.org/#event-loop-processing-model

Tests: imported/w3c/web-platform-tests/html/webappapis/timers/zero-settimeout.any.html

imported/w3c/web-platform-tests/html/webappapis/timers/zero-settimeout.any.worker.html

  • page/DOMTimer.h:
  • page/DOMTimer.cpp:

(WebCore::DOMTimer::DOMTimer):
(WebCore::DOMTimer::install):
(WebCore::DOMTimer::fired):
(WebCore::DOMTimer::updateTimerIntervalIfNecessary):
(WebCore::DOMTimer::intervalClampedToMinimum const):

LayoutTests:

the reduced timeout would cause intemittent failures due to the
console message sometimes not making it to the test output in time.

  • js/script-tests/weakref-finalizationregistry.js:

(turnEventLoop): Use a timeout of 1ms instead of 0ms so that
the deferred work task that calls the JS FinalizationRegistry
callback gets a chance to run before we continue on to the
assertion that it was run.

3:23 PM Changeset in webkit [291997] by Chris Dumez
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, address post-landing review comment from Darin after r291972.

  • yarr/YarrJIT.cpp:
3:20 PM Changeset in webkit [291996] by Alan Coon
  • 2 edits in branches/safari-613.2.4.0-branch/Source/JavaScriptCore

Cherry-pick r291891. rdar://problem/90935489

AI should not set the structure for ObjectCreate
https://bugs.webkit.org/show_bug.cgi?id=238349

Patch by Justin Michaud <Justin Michaud> on 2022-03-24
Reviewed by Saam Barati and Yusuke Suzuki.

The AbstractInterpreter should not set the structure for ObjectCreate because it might change by
the time the constant folding phase runs if the structure cache is cleared.

  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

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

3:18 PM Changeset in webkit [291995] by Alan Coon
  • 9 edits in branches/safari-613.2.4.0-branch/Source

Versioning.

WebKit-7613.2.4.0.1

3:02 PM Changeset in webkit [291994] by Fujii Hironori
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after 291979 for WinCairo and PlayStation Debug builds
https://bugs.webkit.org/show_bug.cgi?id=238400

WebNotificationManager.cpp(153): error C2027: use of undefined type 'WebCore::Notification'

  • WebProcess/Notifications/WebNotificationManager.cpp:

(WebKit::WebNotificationManager::show): Guarded the LOG with ENABLE(NOTIFICATIONS).

2:53 PM Changeset in webkit [291993] by Antti Koivisto
  • 11 edits
    20 moves
    15 adds in trunk/LayoutTests

[CSS Container Queries] Another WPT import
https://bugs.webkit.org/show_bug.cgi?id=238459

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

  • resources/resource-files.json:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/at-container-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/at-container-serialization-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/at-container-serialization.html: Added.
  • web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-computed.html:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
  • web-platform-tests/css/css-contain/container-queries/container-name-parsing.html:
  • web-platform-tests/css/css-contain/container-queries/crashtests/canvas-as-container-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/crashtests/chrome-bug-1289718-000-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/crashtests/chrome-bug-1289718-001-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/crashtests/columns-in-table-001-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/crashtests/container-type-change-chrome-legacy-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-type-change-chrome-legacy-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/flex-in-columns-000-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/flex-in-columns-000-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/flex-in-columns-001-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/flex-in-columns-001-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/flex-in-columns-002-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/flex-in-columns-002-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/flex-in-columns-003-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/flex-in-columns-003-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/focus-inside-content-visibility-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/focus-inside-content-visibility-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/grid-in-columns-000-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/grid-in-columns-000-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/grid-in-columns-001-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/grid-in-columns-001-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/grid-in-columns-002-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/grid-in-columns-002-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/grid-in-columns-003-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/grid-in-columns-003-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/inline-multicol-inside-container-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/inline-multicol-inside-container-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/inline-with-columns-000-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/inline-with-columns-000-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/inline-with-columns-001-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/inline-with-columns-001-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/input-column-group-container-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/input-column-group-container-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/input-placeholder-inline-size-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/crashtests/math-block-container-child-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/crashtests/pseudo-container-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-container-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/svg-layout-root-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/svg-layout-root-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/svg-text-crash.html: Added.
  • web-platform-tests/css/css-contain/container-queries/crashtests/table-in-columns-000-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/table-in-columns-000-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/table-in-columns-001-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/table-in-columns-001-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/table-in-columns-002-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/table-in-columns-002-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/table-in-columns-003-crash.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/table-in-columns-003-crash.html.
  • web-platform-tests/css/css-contain/container-queries/crashtests/w3c-import.log: Added.
  • web-platform-tests/css/css-contain/container-queries/idlharness-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/idlharness.html: Added.
  • web-platform-tests/css/css-contain/container-queries/layout-dependent-focus-expected.txt: Added.
  • web-platform-tests/css/css-contain/container-queries/layout-dependent-focus.html: Added.
  • web-platform-tests/css/css-contain/container-queries/w3c-import.log:

LayoutTests:

2:20 PM Changeset in webkit [291992] by Chris Dumez
  • 307 edits in trunk/Source

Prepare WebCore for making the String(const char*) constructor explicit
https://bugs.webkit.org/show_bug.cgi?id=238408

Reviewed by Geoff Garen.

Prepare WebCore for making the String(const char*) constructor explicit.
Making this constructor explicit helps findings cases where a String is constructed
from a literal without the ""_s suffix.

Source/WebCore:

  • Scripts/SettingsTemplates/Settings.cpp.erb:
  • contentextensions/ContentExtensionError.cpp:
  • contentextensions/ContentExtensionError.h:
  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::mediaAttributeMatches):

  • dom/BroadcastChannel.cpp:

(WebCore::BroadcastChannel::postMessage):

  • dom/DataTransfer.cpp:

(WebCore::normalizeType):
(WebCore::IEOpFromDragOp):

  • dom/Document.cpp:

(WebCore::Document::compatMode const):
(WebCore::Document::characterSetWithUTF8Fallback const):
(WebCore::Document::processMetaHttpEquiv):
(WebCore::Document::setDomain):
(WebCore::Document::execCommand):
(WebCore::Document::queryCommandEnabled):
(WebCore::Document::queryCommandIndeterm):
(WebCore::Document::queryCommandState):
(WebCore::Document::queryCommandSupported):
(WebCore::Document::queryCommandValue):
(WebCore::Document::updateResizeObservations):

  • dom/Element.cpp:

(WebCore::Element::setOuterHTML):
(WebCore::Element::animate):

  • dom/ImageOverlay.cpp:

(WebCore::ImageOverlay::updateWithTextRecognitionResult):

  • dom/Node.cpp:

(WebCore::Node::showTreeForThisAcrossFrame const):

  • dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet):

  • dom/ViewportArguments.cpp:

(WebCore::viewportErrorMessageTemplate):
(WebCore::viewportErrorMessage):

  • editing/Editor.cpp:

(WebCore::Editor::toggleBold):
(WebCore::Editor::toggleUnderline):
(WebCore::Editor::setBaseWritingDirection):

  • editing/EditorCommand.cpp:

(WebCore::isStylePresent):
(WebCore::executeToggleStyle):
(WebCore::stateStyle):
(WebCore::textDecorationChangeForToggling):

  • editing/InsertLineBreakCommand.cpp:

(WebCore::InsertLineBreakCommand::doApply):

  • editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::insertTab):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
(WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace):

  • editing/TextManipulationController.cpp:

(WebCore::TextManipulationController::observeParagraphs):

  • editing/TypingCommand.cpp:

(WebCore::TypingCommand::insertLineBreakAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorAndNotifyAccessibility):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContentAndNotifyAccessibility):

  • editing/markup.cpp:

(WebCore::createPageForSanitizingWebContent):

  • fileapi/BlobURL.cpp:

(WebCore::BlobURL::createInternalURL):

  • fileapi/FileReaderLoader.cpp:

(WebCore::FileReaderLoader::start):
(WebCore::FileReaderLoader::convertToText):
(WebCore::FileReaderLoader::convertToDataURL):

  • history/BackForwardCache.cpp:

(WebCore::BackForwardCache::BackForwardCache):

  • html/EmailInputType.cpp:
  • html/EnterKeyHint.cpp:

(WebCore::attributeValueForEnterKeyHint):

  • html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::createBasicDocument):

  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

  • html/HTMLFrameElementBase.cpp:

(WebCore::HTMLFrameElementBase::parseAttribute):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
(WebCore::HTMLImageElement::evaluateDynamicMediaQueryDependencies):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::showPicker):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::play):
(WebCore::HTMLMediaElement::selectNextSourceChild):
(WebCore::HTMLMediaElement::updateSleepDisabling):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::parametersForPlugin):

  • html/ImageBitmap.cpp:

(WebCore::ImageBitmap::createPromise):
(WebCore::croppedSourceRectangleWithFormatting):
(WebCore::ImageBitmap::createFromBuffer):

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::createDocumentStructure):

  • html/MediaFragmentURIParser.cpp:

(WebCore::MediaFragmentURIParser::parseFragments):

  • html/PDFDocument.cpp:

(WebCore::PDFDocument::sendPDFArrayBuffer):

  • html/canvas/ANGLEInstancedArrays.cpp:

(WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays):
(WebCore::ANGLEInstancedArrays::supported):

  • html/canvas/EXTTextureCompressionRGTC.cpp:

(WebCore::EXTTextureCompressionRGTC::EXTTextureCompressionRGTC):

  • html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::initializeShaderExtensions):

  • html/canvas/WebGLCompressedTextureATC.cpp:

(WebCore::WebGLCompressedTextureATC::WebGLCompressedTextureATC):
(WebCore::WebGLCompressedTextureATC::supported):

  • html/canvas/WebGLCompressedTextureETC.cpp:

(WebCore::WebGLCompressedTextureETC::WebGLCompressedTextureETC):
(WebCore::WebGLCompressedTextureETC::supported):

  • html/canvas/WebGLCompressedTextureETC1.cpp:

(WebCore::WebGLCompressedTextureETC1::WebGLCompressedTextureETC1):
(WebCore::WebGLCompressedTextureETC1::supported):

  • html/canvas/WebGLCompressedTexturePVRTC.cpp:

(WebCore::WebGLCompressedTexturePVRTC::WebGLCompressedTexturePVRTC):
(WebCore::WebGLCompressedTexturePVRTC::supported):

  • html/canvas/WebGLCompressedTextureS3TC.cpp:

(WebCore::WebGLCompressedTextureS3TC::WebGLCompressedTextureS3TC):
(WebCore::WebGLCompressedTextureS3TC::supported):

  • html/canvas/WebGLCompressedTextureS3TCsRGB.cpp:

(WebCore::WebGLCompressedTextureS3TCsRGB::WebGLCompressedTextureS3TCsRGB):
(WebCore::WebGLCompressedTextureS3TCsRGB::supported):

  • html/canvas/WebGLDebugShaders.cpp:

(WebCore::WebGLDebugShaders::WebGLDebugShaders):

  • html/canvas/WebGLDepthTexture.cpp:

(WebCore::WebGLDepthTexture::WebGLDepthTexture):
(WebCore::WebGLDepthTexture::supported):

  • html/canvas/WebGLDrawBuffers.cpp:

(WebCore::WebGLDrawBuffers::WebGLDrawBuffers):
(WebCore::WebGLDrawBuffers::supported):
(WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create):
(WebCore::WebGLRenderingContextBase::setupFlags):
(WebCore::WebGLRenderingContextBase::getActiveUniform):
(WebCore::WebGLRenderingContextBase::addExtensionSupportedFormatsAndTypes):
(WebCore::WebGLRenderingContextBase::loseContextImpl):
(WebCore::WebGLRenderingContextBase::printToConsole):
(WebCore::WebGLRenderingContextBase::maybeRestoreContext):
(WebCore::WebGLRenderingContextBase::recycleContext):

  • html/parser/CSSPreloadScanner.cpp:

(WebCore::CSSPreloadScanner::emitRule):

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::serializeForNumberType):

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::initiatorFor):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):

  • html/parser/HTMLPreloadScanner.h:
  • html/parser/HTMLResourcePreloader.h:

(WebCore::PreloadRequest::PreloadRequest):

  • html/track/TextTrackCue.cpp:

(WebCore::TextTrackCue::create):

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):

  • html/track/VTTCue.cpp:

(WebCore::VTTCueBox::applyCSSProperties):

  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTParser::WebVTTParser):
(WebCore::WebVTTTreeBuilder::constructTreeFromToken):

  • inspector/InspectorAuditAccessibilityObject.cpp:

(WebCore::InspectorAuditAccessibilityObject::getComputedProperties):

  • inspector/InspectorCanvas.cpp:

(WebCore::InspectorCanvas::indexForData):
(WebCore::InspectorCanvas::buildArrayForCanvasPattern):

  • inspector/InspectorFrontendClientLocal.cpp:
  • inspector/InspectorFrontendHost.cpp:
  • inspector/InspectorOverlay.cpp:

(WebCore::InspectorOverlay::setGridOverlayForNode):
(WebCore::InspectorOverlay::clearGridOverlayForNode):
(WebCore::InspectorOverlay::setFlexOverlayForNode):
(WebCore::InspectorOverlay::clearFlexOverlayForNode):

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyle::buildObjectForStyle const):
(WebCore::InspectorStyle::styleWithProperties const):
(WebCore::selectorsFromSource):

  • inspector/agents/InspectorAnimationAgent.cpp:

(WebCore::InspectorAnimationAgent::resolveAnimation):

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getFontDataForNode):
(WebCore::InspectorCSSAgent::getStyleSheet):
(WebCore::InspectorCSSAgent::setRuleSelector):
(WebCore::InspectorCSSAgent::addRule):

  • inspector/agents/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::resolveContext):

  • inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::getSupportedEventNames):
(WebCore::InspectorDOMAgent::showGridOverlay):
(WebCore::InspectorDOMAgent::showFlexOverlay):

  • inspector/agents/InspectorDOMDebuggerAgent.cpp:

(WebCore::InspectorDOMDebuggerAgent::setEventBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::removeEventBreakpoint):
(WebCore::InspectorDOMDebuggerAgent::breakOnURLIfNeeded):

  • inspector/agents/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::findStorageArea):

  • inspector/agents/InspectorDatabaseAgent.cpp:

(WebCore::InspectorDatabaseAgent::executeSQL):

  • inspector/agents/InspectorIndexedDBAgent.cpp:

(WebCore::Inspector::ExecutableWithDatabase::start):

  • inspector/agents/InspectorLayerTreeAgent.cpp:

(WebCore::InspectorLayerTreeAgent::buildObjectForLayer):

  • inspector/agents/InspectorNetworkAgent.cpp:

(WebCore::InspectorNetworkAgent::resolveWebSocket):

  • inspector/agents/InspectorPageAgent.cpp:

(WebCore::parseCookieObject):

  • inspector/agents/page/PageDOMDebuggerAgent.cpp:

(WebCore::PageDOMDebuggerAgent::setDOMBreakpoint):
(WebCore::PageDOMDebuggerAgent::removeDOMBreakpoint):
(WebCore::PageDOMDebuggerAgent::willInsertDOMNode):
(WebCore::PageDOMDebuggerAgent::willRemoveDOMNode):
(WebCore::PageDOMDebuggerAgent::buildPauseDataForDOMBreakpoint):

  • layout/Verification.cpp:

(WebCore::Layout::outputMismatchingBlockBoxInformationIfNeeded):

  • layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):

  • loader/ContentFilter.h:

(WebCore::ContentFilter::urlScheme):

  • loader/CrossOriginAccessControl.cpp:

(WebCore::createAccessControlPreflightRequest):

  • loader/CrossOriginPreflightResultCache.cpp:

(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod const):
(WebCore::CrossOriginPreflightResultCacheItem::validateCrossOriginHeaders const):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::maybeLoadEmpty):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::checkURLSchemeAsCORSEnabled):
(WebCore::DocumentThreadableLoader::cancel):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/FormSubmission.cpp:

(WebCore::FormSubmission::create):
(WebCore::FormSubmission::populateFrameLoadRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::updateRequestAndAddExtraFields):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::loadDifferentDocumentItem):

  • loader/ImageLoader.cpp:

(WebCore::rejectPromises):
(WebCore::ImageLoader::rejectDecodePromises):
(WebCore::ImageLoader::notifyFinished):
(WebCore::ImageLoader::decode):

  • loader/ImageLoader.h:
  • loader/MixedContentChecker.cpp:

(WebCore::logWarning):
(WebCore::MixedContentChecker::canDisplayInsecureContent):
(WebCore::MixedContentChecker::canRunInsecureContent):

  • loader/PingLoader.cpp:

(WebCore::PingLoader::sendPing):

  • loader/ResourceLoadStatistics.cpp:

(WebCore::encodeFontHashSet):
(WebCore::encodeCanvasActivityRecord):
(WebCore::ResourceLoadStatistics::encode const):
(WebCore::decodeHashCountedSet):
(WebCore::decodeFontHashSet):
(WebCore::decodeCanvasActivityRecord):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::ResourceLoadStatistics::toString const):

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::start):
(WebCore::ResourceLoader::loadDataURL):

  • loader/ServerTimingParser.cpp:

(WebCore::ServerTimingParser::parseServerTiming):

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse):

  • loader/TextResourceDecoder.cpp:

(WebCore::TextResourceDecoder::textFromUTF8):

  • loader/archive/cf/LegacyWebArchive.cpp:

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

  • loader/cache/CachedApplicationManifest.cpp:

(WebCore::CachedApplicationManifest::CachedApplicationManifest):
(WebCore::CachedApplicationManifest::encoding const):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
(WebCore::CachedCSSStyleSheet::didAddClient):
(WebCore::CachedCSSStyleSheet::encoding const):
(WebCore::CachedCSSStyleSheet::checkNotify):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::load):

  • loader/cache/CachedSVGDocument.cpp:

(WebCore::CachedSVGDocument::CachedSVGDocument):
(WebCore::CachedSVGDocument::encoding const):

  • loader/cache/CachedSVGFont.cpp:

(WebCore::CachedSVGFont::ensureCustomFontData):

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::encoding const):

  • loader/cache/CachedXSLStyleSheet.cpp:

(WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
(WebCore::CachedXSLStyleSheet::encoding const):

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::MemoryCache):
(WebCore::MemoryCache::originsWithCache const):

  • mathml/MathMLElement.cpp:

(WebCore::convertMathSizeIfNeeded):

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::captionsTextEdgeCSS const):

  • page/Chrome.cpp:

(WebCore::Chrome::print):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::contextMenuItemSelected):
(WebCore::ContextMenuController::checkOrEnableIfNeeded const):

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::extend):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::print):
(WebCore::DOMWindow::alert):
(WebCore::DOMWindow::confirmForBindings):
(WebCore::DOMWindow::prompt):
(WebCore::DOMWindow::showModalDialog):

  • page/EventHandler.cpp:

(WebCore::handleKeyboardSelectionMovement):

  • page/EventSource.cpp:

(WebCore::EventSource::connect):

  • page/Frame.cpp:

(WebCore::createRegExpForLabels):
(WebCore::matchLabelsAgainstString):

  • page/FrameView.cpp:

(WebCore::FrameView::adjustMediaTypeForPrinting):

  • page/IntersectionObserver.cpp:

(WebCore::parseRootMargin):
(WebCore::IntersectionObserver::create):

  • page/LoggedInStatus.cpp:

(WebCore::LoggedInStatus::create):

  • page/NavigatorBase.cpp:
  • page/Page.cpp:

(WebCore::Page::userStyleSheet const):

  • page/Quirks.cpp:

(WebCore::Quirks::triggerOptionalStorageAccessQuirk const):

  • page/WindowFeatures.cpp:

(WebCore::parseDialogFeatures):
(WebCore::boolFeature):
(WebCore::floatFeature):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::consoleMessageForViolation):
(WebCore::ContentSecurityPolicy::allowEval const):
(WebCore::ContentSecurityPolicy::reportInvalidPluginTypes const):

  • page/csp/ContentSecurityPolicyDirectiveList.cpp:

(WebCore::ContentSecurityPolicyDirectiveList::shouldReportSample const):

  • page/csp/ContentSecurityPolicyDirectiveNames.cpp:
  • page/csp/ContentSecurityPolicyDirectiveNames.h:
  • platform/LegacySchemeRegistry.cpp:

(WebCore::allBuiltinSchemes):

  • platform/LocalizedStrings.cpp:

(WebCore::AXMenuListPopupActionVerb):
(WebCore::AXMenuListActionVerb):
(WebCore::AXListItemActionVerb):

  • platform/SleepDisabler.cpp:

(WebCore::SleepDisabler::SleepDisabler):

  • platform/SleepDisabler.h:
  • platform/audio/HRTFDatabase.cpp:

(WebCore::HRTFDatabase::HRTFDatabase):

  • platform/encryptedmedia/CDMPrivate.cpp:

(WebCore::CDMPrivate::getSupportedCapabilitiesForAudioVideoType):

  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::parseLicenseFormat):
(WebCore::parseLicenseReleaseAcknowledgementFormat):
(WebCore::extractKeyidsFromCencInitData):
(WebCore::extractKeyIdFromWebMInitData):
(WebCore::CDMInstanceSessionClearKey::removeSessionData):

  • platform/graphics/Font.cpp:

(WebCore::Font::description const):

  • platform/graphics/GraphicsTypes.cpp:
  • platform/graphics/InbandGenericCue.cpp:

(WebCore::InbandGenericCue::toJSONString const):

  • platform/graphics/MediaPlayer.cpp:
  • platform/graphics/avfoundation/FormatDescriptionUtilities.cpp:

(WebCore::codecFromFormatDescription):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateAnimations):

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::filenameExtension const):

  • platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::createVideoInfoFromVP9HeaderParser):
(WebCore::createVideoInfoFromVP8Header):

  • platform/graphics/cocoa/VideoTrackPrivateWebM.cpp:

(WebCore::VideoTrackPrivateWebM::codec const):

  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::externalRepresentation const):

  • platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::validateDepthStencil):

  • platform/ios/QuickLook.h:
  • platform/ios/QuickLook.mm:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::hashStringWithSalt):

  • platform/mock/RTCNotifiersMock.cpp:

(WebCore::RemoteDataChannelNotifier::fire):

  • platform/mock/ScrollbarsControllerMock.cpp:

(WebCore::ScrollbarsControllerMock::mouseEnteredContentArea):
(WebCore::ScrollbarsControllerMock::mouseMovedInContentArea):
(WebCore::ScrollbarsControllerMock::mouseExitedContentArea):

  • platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::mimeTypeCache):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::loadResourceSynchronously):
(WebCore::BlobResourceHandle::notifyResponseOnError):

  • platform/network/DataURLDecoder.cpp:

(WebCore::DataURLDecoder::DecodeTask::process):

  • platform/network/HTTPParsers.cpp:

(WebCore::parseStructuredFieldValue):
(WebCore::parseHTTPHeader):

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::storageAccessQuirks):

  • platform/network/ParsedContentType.cpp:

(WebCore::ParsedContentType::charset const):

  • platform/network/ResourceResponseBase.cpp:

(WebCore::ResourceResponseBase::filter):

  • platform/network/cf/DNSResolveQueueCFNet.cpp:

(WebCore::DNSResolveQueueCFNet::updateIsUsingProxy):

  • platform/network/cf/SocketStreamHandleImplCFNet.cpp:

(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::addCONNECTCredentials):
(WebCore::SocketStreamHandleImpl::readStreamCallback):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::authorizerFunction):

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

(WebCore::RenderBlock::renderName const):

  • rendering/RenderBlock.h:
  • rendering/RenderButton.h:
  • rendering/RenderCombineText.h:
  • rendering/RenderCounter.cpp:

(WebCore::RenderCounter::renderName const):

  • rendering/RenderCounter.h:
  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::renderName const):

  • rendering/RenderDeprecatedFlexibleBox.h:
  • rendering/RenderDetailsMarker.h:
  • rendering/RenderEmbeddedObject.h:
  • rendering/RenderFileUploadControl.h:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::renderName const):

  • rendering/RenderFlexibleBox.h:
  • rendering/RenderFragmentContainer.h:
  • rendering/RenderFragmentContainerSet.h:
  • rendering/RenderFragmentedFlow.h:
  • rendering/RenderFrame.h:
  • rendering/RenderFrameSet.h:
  • rendering/RenderFullScreen.h:
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::renderName const):

  • rendering/RenderGrid.h:
  • rendering/RenderHTMLCanvas.h:
  • rendering/RenderIFrame.h:
  • rendering/RenderImage.h:
  • rendering/RenderInline.cpp:

(WebCore::RenderInline::renderName const):

  • rendering/RenderInline.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
(WebCore::RenderLayerBacking::ensureClippingStackLayers):
(WebCore::RenderLayerBacking::updateDescendantClippingLayer):
(WebCore::RenderLayerBacking::updateOverflowControlsLayers):
(WebCore::RenderLayerBacking::updateMaskingLayer):
(WebCore::RenderLayerBacking::updateChildClippingStrategy):
(WebCore::RenderLayerBacking::updateScrollingLayers):

  • rendering/RenderLineBreak.h:
  • rendering/RenderListBox.h:
  • rendering/RenderListItem.h:
  • rendering/RenderListMarker.h:
  • rendering/RenderMedia.h:
  • rendering/RenderMenuList.h:
  • rendering/RenderMeter.h:
  • rendering/RenderModel.h:
  • rendering/RenderMultiColumnFlow.cpp:

(WebCore::RenderMultiColumnFlow::renderName const):

  • rendering/RenderMultiColumnFlow.h:
  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::renderName const):

  • rendering/RenderMultiColumnSet.h:
  • rendering/RenderMultiColumnSpannerPlaceholder.cpp:

(WebCore::RenderMultiColumnSpannerPlaceholder::renderName const):

  • rendering/RenderMultiColumnSpannerPlaceholder.h:
  • rendering/RenderObject.cpp:

(WebCore::RenderObject::outputRenderObject const):

  • rendering/RenderObject.h:
  • rendering/RenderProgress.h:
  • rendering/RenderQuote.h:
  • rendering/RenderReplaced.h:
  • rendering/RenderReplica.h:
  • rendering/RenderRuby.h:
  • rendering/RenderRubyBase.h:
  • rendering/RenderRubyRun.h:
  • rendering/RenderRubyText.h:
  • rendering/RenderScrollbarPart.h:
  • rendering/RenderSlider.h:
  • rendering/RenderTable.h:
  • rendering/RenderTableCell.h:
  • rendering/RenderTableCol.h:
  • rendering/RenderTableRow.h:
  • rendering/RenderTableSection.h:
  • rendering/RenderText.cpp:

(WebCore::RenderText::renderName const):

  • rendering/RenderText.h:
  • rendering/RenderTextControl.h:
  • rendering/RenderTreeAsText.cpp:

(WebCore::getTagName):
(WebCore::RenderTreeAsText::writeRenderObject):

  • rendering/RenderVideo.h:
  • rendering/RenderView.h:
  • rendering/mathml/RenderMathMLBlock.h:
  • rendering/mathml/RenderMathMLFenced.h:
  • rendering/mathml/RenderMathMLFraction.h:
  • rendering/mathml/RenderMathMLMath.h:
  • rendering/mathml/RenderMathMLMenclose.h:
  • rendering/mathml/RenderMathMLOperator.h:
  • rendering/mathml/RenderMathMLPadded.h:
  • rendering/mathml/RenderMathMLRoot.h:
  • rendering/mathml/RenderMathMLRow.h:
  • rendering/mathml/RenderMathMLScripts.h:
  • rendering/mathml/RenderMathMLSpace.h:
  • rendering/mathml/RenderMathMLToken.h:
  • rendering/mathml/RenderMathMLUnderOver.h:
  • rendering/shapes/ShapeOutsideInfo.cpp:

(WebCore::checkShapeImageOrigin):

  • rendering/style/GridPositionsResolver.cpp:

(WebCore::adjustGridPositionsFromStyle):

  • rendering/svg/LegacyRenderSVGContainer.h:
  • rendering/svg/LegacyRenderSVGRect.h:
  • rendering/svg/LegacyRenderSVGRoot.h:
  • rendering/svg/LegacyRenderSVGShape.h:
  • rendering/svg/RenderSVGContainer.h:
  • rendering/svg/RenderSVGEllipse.h:
  • rendering/svg/RenderSVGForeignObject.h:
  • rendering/svg/RenderSVGGradientStop.h:
  • rendering/svg/RenderSVGHiddenContainer.h:
  • rendering/svg/RenderSVGImage.h:
  • rendering/svg/RenderSVGInline.h:
  • rendering/svg/RenderSVGInlineText.h:
  • rendering/svg/RenderSVGPath.h:
  • rendering/svg/RenderSVGRect.h:
  • rendering/svg/RenderSVGResourceClipper.h:
  • rendering/svg/RenderSVGResourceFilter.h:
  • rendering/svg/RenderSVGResourceFilterPrimitive.h:
  • rendering/svg/RenderSVGResourceLinearGradient.h:
  • rendering/svg/RenderSVGResourceMarker.h:
  • rendering/svg/RenderSVGResourceMasker.h:
  • rendering/svg/RenderSVGResourcePattern.h:
  • rendering/svg/RenderSVGResourceRadialGradient.h:
  • rendering/svg/RenderSVGRoot.h:
  • rendering/svg/RenderSVGShape.h:
  • rendering/svg/RenderSVGTSpan.h:
  • rendering/svg/RenderSVGText.h:
  • rendering/svg/RenderSVGTextPath.h:
  • rendering/svg/RenderSVGViewportContainer.h:
  • rendering/svg/SVGContainerLayout.cpp:

(WebCore::SVGContainerLayout::verifyLayoutLocationConsistency):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::TextStreamSeparator::TextStreamSeparator):
(WebCore::writeSVGFillPaintingResource):
(WebCore::writeSVGStrokePaintingResource):
(WebCore::writeStandardPrefix):

  • svg/LinearGradientAttributes.h:

(WebCore::LinearGradientAttributes::LinearGradientAttributes):

  • svg/RadialGradientAttributes.h:

(WebCore::RadialGradientAttributes::RadialGradientAttributes):

  • svg/SVGFitToViewBox.cpp:

(WebCore::SVGFitToViewBox::parseViewBoxGeneric):

  • svg/SVGGeometryElement.cpp:

(WebCore::SVGGeometryElement::parseAttribute):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::dataChanged):

  • testing/Internals.cpp:

(WebCore::styleValidityToToString):
(WebCore::responseSourceToString):
(WebCore::Internals::openDummyInspectorFrontend):
(WebCore::Internals::elementBufferingPolicy):
(WebCore::Internals::createSleepDisabler):
(WebCore::Internals::loadArtworkImage):

  • testing/InternalsMapLike.cpp:

(WebCore::InternalsMapLike::InternalsMapLike):

  • testing/MockMediaSessionCoordinator.cpp:

(WebCore::MockMediaSessionCoordinator::positionStateChanged):
(WebCore::MockMediaSessionCoordinator::readyStateChanged):
(WebCore::MockMediaSessionCoordinator::playbackStateChanged):
(WebCore::MockMediaSessionCoordinator::trackIdentifierChanged):

  • testing/MockMediaSessionCoordinator.h:
  • testing/MockPageOverlayClient.cpp:

(WebCore::MockPageOverlayClient::layerTreeAsText):

  • testing/MockPaymentCoordinator.cpp:
  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::notifyError):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):

  • workers/service/server/RegistrationDatabase.cpp:

(WebCore::RegistrationDatabase::ensureValidRecordsTable):
(WebCore::updateViaCacheToString):
(WebCore::workerTypeToString):
(WebCore::RegistrationDatabase::doPushChanges):

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::scheduleJob):

  • workers/shared/SharedWorker.cpp:

(WebCore::SharedWorker::create):

  • worklets/PaintWorkletGlobalScope.cpp:

(WebCore::PaintWorkletGlobalScope::registerPaint):

  • worklets/WorkletGlobalScope.cpp:

(WebCore::WorkletGlobalScope::userAgent const):

  • xml/XMLErrors.cpp:

(WebCore::XMLErrors::handleError):
(WebCore::XMLErrors::appendErrorMessage):

  • xml/XMLErrors.h:
  • xml/XMLHttpRequest.cpp:

(WebCore::replaceCharsetInMediaTypeIfNeeded):
(WebCore::XMLHttpRequest::setTimeout):
(WebCore::XMLHttpRequest::setResponseType):
(WebCore::XMLHttpRequest::open):
(WebCore::XMLHttpRequest::createDecoder const):

  • xml/XPathParser.cpp:

(WebCore::XPath::Parser::nextTokenInternal):

  • xml/XSLTProcessor.cpp:

(WebCore::XSLTProcessor::transformToFragment):

  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::XSLTProcessor::parseErrorFunc):
(WebCore::docLoaderFunc):
(WebCore::resultMIMEType):
(WebCore::XSLTProcessor::transformToString):

  • xml/parser/XMLDocumentParser.cpp:

(WebCore::XMLDocumentParser::createLeafTextNode):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::openFunc):

Source/WebCore/PAL:

  • pal/Logging.cpp:

(PAL::registerNotifyCallback):

  • pal/Logging.h:
  • pal/system/SleepDisabler.cpp:

(PAL::SleepDisabler::create):
(PAL::SleepDisabler::SleepDisabler):

  • pal/system/SleepDisabler.h:
  • pal/system/cocoa/SleepDisablerCocoa.cpp:

(PAL::SleepDisabler::create):
(PAL::SleepDisablerCocoa::SleepDisablerCocoa):

  • pal/system/cocoa/SleepDisablerCocoa.h:
  • pal/system/glib/SleepDisablerGLib.cpp:

(PAL::SleepDisabler::create):
(PAL::SleepDisablerGLib::SleepDisablerGLib):
(PAL::SleepDisablerGLib::acquireInhibitor):

  • pal/system/glib/SleepDisablerGLib.h:

Source/WebKit:

  • NetworkProcess/NetworkDataTaskBlob.cpp:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didCreateSleepDisabler):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

Source/WTF:

  • wtf/text/WTFString.h:

(WTF::equalIgnoringASCIICase):

2:20 PM Changeset in webkit [291991] by Alan Coon
  • 9 edits in branches/safari-613.1.17.1-branch/Source

Versioning.

WebKit-7613.1.17.1.14

2:11 PM Changeset in webkit [291990] by Ziran Sun
  • 7 edits in trunk

[selection] Fire Select event when selection extent or direction changes
https://bugs.webkit.org/show_bug.cgi?id=238142

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

Update test expectations as more sub-tests are now passing.

  • web-platform-tests/html/semantics/forms/textfieldselection/selection-start-end-expected.txt:
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setRangeText-expected.txt:
  • web-platform-tests/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange-expected.txt:

Source/WebCore:

As per step 6 at [1], if either extent or direction of the text control to be modified,
we need to queue an element task on the user interaction task source given the element
to fire an select event with the bubbles attribute initialized to true.

[1] https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#set-the-selection-range

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setSelectionRange):
(WebCore::HTMLTextFormControlElement::cacheSelection):
(WebCore::HTMLTextFormControlElement::restoreCachedSelection):
(WebCore::HTMLTextFormControlElement::scheduleSelectEvent):

  • html/HTMLTextFormControlElement.h:

(WebCore::HTMLTextFormControlElement::cacheSelection): Deleted.

2:02 PM Changeset in webkit [291989] by Jonathan Bedard
  • 6 edits in trunk/Tools

[webkitbugspy] Support component and version in GitHub
https://bugs.webkit.org/show_bug.cgi?id=238086
<rdar://problem/90495776>

Reviewed by Dewei Zhu.

GitHub issues do not have the concept of "component" and "version." However,
we can use label colors to divide labels into types.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

(Tracker):
(Tracker.init): Add concept of color groups for version and components.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py:

(GitHub):
(GitHub.init):
(GitHub._labels): Sort labels and output project details as labels.

  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:

(TestGitHub.test_create):
(TestGitHub.test_create_projects):

Canonical link: https://commits.webkit.org/248946@main

1:58 PM Changeset in webkit [291988] by J Pascoe
  • 3 edits in trunk/Source/WebKit

Adopt ASCPublicKeyCredentialCreationOptions's residentKeyPreference
https://bugs.webkit.org/show_bug.cgi?id=238387
rdar://problem/90845393

Reviewed by Brent Fulgham.

This patch passes along the residentKeyPreference to ASA, so it can be passed
back via _WKAuthenticatorSelectionCriteria.residentKey.

  • Platform/spi/Cocoa/AuthenticationServicesCoreSPI.h:
  • UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:

(WebKit::toASCResidentKeyPreference):
(WebKit::configureRegistrationRequestContext):

1:43 PM Changeset in webkit [291987] by Jonathan Bedard
  • 5 edits in trunk/Tools

[git-webkit] Support —oneline in log command
https://bugs.webkit.org/show_bug.cgi?id=238209
<rdar://problem/90660142>

Reviewed by Dewei Zhu.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/command.py:

(FilteredCommand): Header lines don't always start with 'commit'
(FilteredCommand.main): Handle --online output

  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/log.py:

(Log):
(Log.parser): Add various git log options.
(Log.main): Forward git log options.

Canonical link: https://commits.webkit.org/248944@main

1:29 PM Changeset in webkit [291986] by Russell Epstein
  • 20 edits in branches/safari-614.1.8-branch

Cherry-pick r291980. rdar://problem/89434696

[iOS] Add WKWebView API to control CSS "small viewport" sv* and "large viewport" lv* units
https://bugs.webkit.org/show_bug.cgi?id=237979
<rdar://problem/89434696>

Reviewed by Tim Horton.

Source/WebCore:

Tests: CSSViewportUnits.NegativeMinimumViewportInset

CSSViewportUnits.NegativeMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanFrame
CSSViewportUnits.MaximumViewportInsetLargerThanFrame
CSSViewportUnits.MinimumViewportInset
CSSViewportUnits.MaximumViewportInset
CSSViewportUnits.MinimumViewportInsetWithZoom
CSSViewportUnits.MaximumViewportInsetWithZoom
CSSViewportUnits.MinimumViewportInsetWithWritingMode
CSSViewportUnits.MaximumViewportInsetWithWritingMode
CSSViewportUnits.MinimumViewportInsetWithFrame
CSSViewportUnits.MaximumViewportInsetWithFrame
CSSViewportUnits.MinimumViewportInsetWithBounds
CSSViewportUnits.MaximumViewportInsetWithBounds
CSSViewportUnits.MinimumViewportInsetWithContentInset
CSSViewportUnits.MaximumViewportInsetWithContentInset
CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets
CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets
CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI

  • page/FrameView.h:
  • page/FrameView.cpp: (WebCore::FrameView::performSizeToContentAutoSize): (WebCore::FrameView::enableAutoSizeMode): (WebCore::FrameView::clearSizeOverrideForCSSDefaultViewportUnits): Added. (WebCore::FrameView::setSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits): Added. (WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits): Added. (WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added. (WebCore::FrameView::sizeForCSSDefaultViewportUnits const): Renamed from sizeForCSSDefaultViewportUnits. (WebCore::FrameView::copyCSSViewportUnits const): Added. Add all the various methods for getting/setting/overriding/clearing an override value for CSS "default viewport" v* units. This allows for WKWebView clients to preserve existing behavior (where CSS "default viewport" v* units match the size of the WKWebView) while adding supporting CSS "small viewport" sv* units and CSS "large viewport" lv* units.

Source/WebKit:

Recently the W3C CSS working group added [some new unit types to CSS](https://drafts.csswg.org/css-values-4/#viewport-variants)
with the goal of helping web developers better deal with browsers that have dynamic UI
elements that change apperance/size/etc. based on user actions (e.g. the URL bar
collapsing/"squishing" and expanding/"unsquishing" depending on whether the user has most
recently scrolled/swiped down the page).

These new units come in three categories:

  • the "large viewport" units (lvw, lvh, etc.) each represent 1% of one dimension of the size of the visual area of the page when all browser UI elements are in their smallest state (e.g. when the URL bar is collapsed/"squished")
  • the "small viewport" units (svw, svh, etc.) each represent 1% of one dimension of the size of the visual area of the page when all browser UI elements are in their largest state (e.g. when the URL bar is expanded/"unsquished")
  • the "dynamic viewport" units (dvw, dvh, etc.) each represent 1% of one dimension of the size of the current visual area of the page, which depends on the current state of all browser UI elements

This way, developer could use 100svh to ensure that no matter what state the browser UI
elements are in the entire element will always be visible on the screen, or use 100dvh to
respond to browser UI element changes by automatically resizing various elements to always
fully take advantage of the available space.

Nothing needs to be added to support "dynamic viewport" dv* units as there already exists
other methods to adjust the visual area of the WKWebView without adjusting its frame
(e.g. -[WKWebView setBounds:], -[UIScrollView setContentInset:], etc.).

But for "small viewport" sv* units and "large viewport" lv* units, however, there is
unfortunately no way to tell a WKWebView anything like "this is the smallest/largest that
this WKWebView will ever be", so there's no way to know ahead of time what the size of the
visual area would be when all browser UI elements are in their smallest/largest state. As
such, this patch adds a new API to allow for WKWebView clients to tell WebKit this
information ahead of time.

Note that there already exists the concept of "default viewport" units (vw, vh, etc.)
that each represent 1% of one dimension of the size of the visual area of the page when all
browser UI elements are in their default state. The behavior of these units remain the same,
and the value can be changed via the existing -[WKWebView setFrame:].

Tests: CSSViewportUnits.NegativeMinimumViewportInset

CSSViewportUnits.NegativeMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanFrame
CSSViewportUnits.MaximumViewportInsetLargerThanFrame
CSSViewportUnits.MinimumViewportInset
CSSViewportUnits.MaximumViewportInset
CSSViewportUnits.MinimumViewportInsetWithZoom
CSSViewportUnits.MaximumViewportInsetWithZoom
CSSViewportUnits.MinimumViewportInsetWithWritingMode
CSSViewportUnits.MaximumViewportInsetWithWritingMode
CSSViewportUnits.MinimumViewportInsetWithFrame
CSSViewportUnits.MaximumViewportInsetWithFrame
CSSViewportUnits.MinimumViewportInsetWithBounds
CSSViewportUnits.MaximumViewportInsetWithBounds
CSSViewportUnits.MinimumViewportInsetWithContentInset
CSSViewportUnits.MaximumViewportInsetWithContentInset
CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets
CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets
CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/Cocoa/WKWebView.h:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _recalculateViewportSizesWithMinimumViewportInset:maximumViewportInset:throwOnInvalidInput:]): Added. (-[WKWebView setMinimumViewportInset:maximumViewportInset:]): Added.
  • UIProcess/API/ios/WKWebViewIOS.mm: (-[WKWebView _processWillSwapOrDidExit]): (-[WKWebView _frameOrBoundsChanged]): (-[WKWebView _didCompleteAnimatedResize]): (-[WKWebView _setMinimumUnobscuredSizeOverride:]): (-[WKWebView _setMaximumUnobscuredSizeOverride:]): (-[WKWebView _beginAnimatedResizeWithUpdates:]): (-[WKWebView _dispatchSetMinimumUnobscuredSize:]): Deleted. (-[WKWebView _dispatchSetMaximumUnobscuredSize:]): Deleted. Recalculate the size for CSS "small viewport" sv* units whenever the frame changes. Also move the deduplication logic that prevents the same value from being sent to the WebProcess more than once to the setter methods on WebPageProxy so that it can be used by more than just iOS-only codepaths.
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setDefaultUnobscuredSize): Added. (WebKit::WebPageProxy::setMinimumUnobscuredSize): Added. (WebKit::WebPageProxy::setMaximumUnobscuredSize): Added. (WebKit::WebPageProxy::creationParameters):
  • UIProcess/ios/WebPageProxyIOS.mm: (WebKit::WebPageProxy::dynamicViewportSizeUpdate): (WebKit::WebPageProxy::setMinimumUnobscuredSize): Deleted. (WebKit::WebPageProxy::setMaximumUnobscuredSize): Deleted.
  • Shared/WebPageCreationParameters.h:
  • Shared/WebPageCreationParameters.cpp: (WebKit::WebPageCreationParameters::encode const): (WebKit::WebPageCreationParameters::decode):
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::WebPage): (WebKit::WebPage::setViewportSizeForCSSViewportUnits): (WebKit::WebPage::setDefaultUnobscuredSize): Added. (WebKit::WebPage::setMinimumUnobscuredSize): Added. (WebKit::WebPage::setMaximumUnobscuredSize): Added. (WebKit::WebPage::updateSizeForCSSDefaultViewportUnits): Added. (WebKit::WebPage::updateSizeForCSSSmallViewportUnits): Added. (WebKit::WebPage::updateSizeForCSSLargeViewportUnits): Added.
  • WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::WebPage::viewportConfigurationChanged): (WebKit::WebPage::setMinimumUnobscuredSize): Deleted. (WebKit::WebPage::setMaximumUnobscuredSize): Deleted. (WebKit::WebPage::updateViewportSizeForCSSViewportUnits): Deleted. Add all the various methods for getting/setting/overriding/clearing an override value for CSS "default viewport" v* units. This allows for WKWebView clients to preserve existing behavior (where CSS "default viewport" v* units match the size of the WKWebView) while adding supporting CSS "small viewport" sv* units and CSS "large viewport" lv* units. Move iOS-only code to be for all platforms.
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp: (WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Propagate all viewport size overrides when a new FrameView is created.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm: (TEST.CSSViewportUnits.NegativeMinimumViewportInset): Added. (TEST.CSSViewportUnits.NegativeMaximumViewportInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetLargerThanFrame): Added. (TEST.CSSViewportUnits.MaximumViewportInsetLargerThanFrame): Added. (TEST.CSSViewportUnits.MinimumViewportInset): Added. (TEST.CSSViewportUnits.MaximumViewportInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithZoom): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithZoom): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithWritingMode): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithWritingMode): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithFrame): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithFrame): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithBounds): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithBounds): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithContentInset): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithContentInset): Added. (TEST.CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets): Added. (TEST.CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets): Added. (TEST.CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI): Added.

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

1:29 PM Changeset in webkit [291985] by Russell Epstein
  • 36 edits
    4 adds in branches/safari-614.1.8-branch

Cherry-pick r291979. rdar://problem/90616651

Support ServiceWorkerClients.openWindow.
<rdar://90616651> and https://bugs.webkit.org/show_bug.cgi?id=238400

Reviewed by Youenn Fablet.
Source/WebCore:

Test: http/tests/workers/service/openwindow-from-notification-click.html

  • dom/Document.cpp: (WebCore::Document::pageID const):
  • page/ClientOrigin.h: (WebCore::ClientOrigin::loggingString const):
  • workers/service/ServiceWorkerClientData.cpp: (WebCore::ServiceWorkerClientData::isolatedCopy const): (WebCore::ServiceWorkerClientData::isolatedCopy): (WebCore::ServiceWorkerClientData::from):
  • workers/service/ServiceWorkerClientData.h: (WebCore::ServiceWorkerClientData::encode const): (WebCore::ServiceWorkerClientData::decode):
  • workers/service/ServiceWorkerClients.cpp: (WebCore::matchWindowWithPageIdentifier): (WebCore::ServiceWorkerClients::openWindow):
  • workers/service/context/SWContextManager.h:
  • workers/service/server/SWServerToContextConnection.h:
  • workers/service/server/SWServerWorker.h:

Source/WebKit:

This API asks the browser to asynchronously open a new tab to a URL then resolve
a promise with the new WindowClient representing that tab.

From a WebCore/WebKit standpoint, implementing this was mostly straightforward.
1 - A plumbing exercise (thread hopping and IPC'ing the message and its reply around)
2 - Implmenting a new delegate method for the hosting app to create the requested WKWebView

The delegate method was interesting. Normally this is the type of thing that'd go to the
WKUIDelegate but that requires there to be a WKWebView, and service workers can be running
without any web views.

Fortunately we already had a WKWebsiteDataStore delegate SPI, and service workers *do* always
have an associated website data store they're running under.

Once the app gives the new web view back to WebKit, we record its PageIdentifier in the reply.

Once the reply makes its way all the way back to the ServiceWorker process and on the
ServiceWorker thread, we do a client match and cross check with that PageIdentifier to make
sure we're resolving the promise with the correct WindowClient.

If there's no matched clients, then the view is either already gone or it has navigated away
to a non-applicable URL.

Same if there are matched clients, but they don't match the specified PageIdentifier.

A straight forward layouttest completes the task.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp: (WebKit::WebSWServerConnection::controlClient):
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp: (WebKit::WebSWServerToContextConnection::openWindow):
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm: (-[WKWebsiteDataStore set_delegate:]):
  • UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp: (WebKit::NetworkProcessProxy::openWindowFromServiceWorker):
  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared): (WebKit::WebPageProxy::callLoadCompletionHandlersIfNecessary): (WebKit::WebPageProxy::didFinishLoadForFrame): (WebKit::WebPageProxy::didFailLoadForFrame): (WebKit::WebPageProxy::resetState): (WebKit::WebPageProxy::callServiceWorkerLaunchCompletionHandlerIfNecessary): Deleted.
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::openWindowFromServiceWorker):
  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/WebsiteData/WebsiteDataStoreClient.h: (WebKit::WebsiteDataStoreClient::openWindowFromServiceWorker):
  • WebProcess/Notifications/WebNotificationManager.cpp: (WebKit::WebNotificationManager::show): (WebKit::WebNotificationManager::didShowNotification): (WebKit::WebNotificationManager::didClickNotification):
  • WebProcess/Storage/WebSWContextManagerConnection.cpp: (WebKit::WebSWContextManagerConnection::openWindow):
  • WebProcess/Storage/WebSWContextManagerConnection.h:

Source/WTF:

  • wtf/HashTable.h: (WTF::KeyTraits>::inlineLookup): Relax this value size requirement for now. The required refactoring is best left as a seperate task with a seperate patch.

Tools:

Implement the new delegate to create the new view.

  • WebKitTestRunner/TestController.cpp: (WTR::TestController::createOtherPage): (WTR::TestController::createOtherPlatformWebView):
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::platformCreateOtherPage):
  • WebKitTestRunner/cocoa/TestWebsiteDataStoreDelegate.mm: (-[TestWebsiteDataStoreDelegate websiteDataStore:openWindow:fromServiceWorkerOrigin:completionHandler:]):

LayoutTests:

WKTR knows how to openWindow() now.

So test:

  • The success case
  • Failure due to a disallowed URL
  • Failure due to a lack of a related user gesture.
  • http/tests/workers/service/openwindow-from-notification-click-expected.txt: Added.
  • http/tests/workers/service/openwindow-from-notification-click.html: Added.
  • http/tests/workers/service/resources/openwindow-client.html: Added.
  • http/tests/workers/service/resources/shownotification-openwindow-worker.js: Added. (async const): (let.messageClients): (clients.openWindow.string_appeared_here.then.async client): (catch.async error): (async event): (async tryShow): (async getNotes):
  • platform/gtk/TestExpectations:

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

1:17 PM Changeset in webkit [291984] by Kate Cheney
  • 3 edits in trunk/LayoutTests

REGRESSION (r291587): [ iOS ] editing/deleting/insert-in-orphaned-selection-crash.html is a constant text failure (238282)
https://bugs.webkit.org/show_bug.cgi?id=238282
<rdar://problem/90720306>

Reviewed by Aditya Keerthi.

In r291587 we started dropping native appearance for non-form control elements with
specified author style. This is the correct behavior, but requires adjusting this
test which relies on the appearance of a table element in order to reproduce a
non-appearance related crash. This patch updates the test to add table data tags which
ensure the table element gets included in the selectAll() command to keep the test passing.

  • editing/deleting/insert-in-orphaned-selection-crash.html:
  • platform/ios-wk2/TestExpectations:
12:40 PM Changeset in webkit [291983] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Accessing WebGL content crashes in macOS Recovery OS, workaround 2
https://bugs.webkit.org/show_bug.cgi?id=238448

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-03-28
Reviewed by Dean Jackson.

Add a two new quick workarounds to try fix a recovery OS crash when
WebKit tries to use ANGLE that is not present in the OS image.
Compare explicitly against NULL as instructed in weak linking documentation.
Check for the EGL_GetPlatformDisplayEXT, this is nullptr in the
recovery OS.

Remove the previous workaround. The environment variable is
not available in WP or GPUP. The Metal symbol is not the problem.

  • platform/graphics/cocoa/GraphicsContextGLCocoa.mm:

(WebCore::platformSupportsMetal):
(WebCore::initializeEGLDisplay):

12:33 PM Changeset in webkit [291982] by pvollan@apple.com
  • 3 edits in trunk/Source/WebKit

[iOS] Fix sandbox violation related to Network content filtering
https://bugs.webkit.org/show_bug.cgi?id=238458
<rdar://90927474>

Reviewed by Brent Fulgham.

After enabling Network content filtering in the Network process, a related sandbox rule should
be moved to the Network process' sandbox.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
11:45 AM Changeset in webkit [291981] by Chris Dumez
  • 7 edits in trunk/Source/WebCore

Speed up Element::removedFromAncestor()
https://bugs.webkit.org/show_bug.cgi?id=238404

Reviewed by Geoffrey Garen.

Speed up Element::removedFromAncestor() by inlining some of the functions it is calling.
This is a confirmed 1.5-2% progression on Speedometer on iMac 20,1.

  • dom/Element.cpp:

(WebCore::Element::removedFromAncestor):
(WebCore::Element::clearBeforePseudoElementSlow):
(WebCore::Element::clearAfterPseudoElementSlow):
(WebCore::Element::setSavedLayerScrollPositionSlow):
(WebCore::Element::clearBeforePseudoElement): Deleted.
(WebCore::Element::clearAfterPseudoElement): Deleted.
(WebCore::Element::setSavedLayerScrollPosition): Deleted.

  • dom/Element.h:

(WebCore::Element::setSavedLayerScrollPosition):
(WebCore::Element::clearBeforePseudoElement):
(WebCore::Element::clearAfterPseudoElement):

  • page/PointerCaptureController.cpp:

(WebCore::PointerCaptureController::elementWasRemovedSlow):
(WebCore::PointerCaptureController::elementWasRemoved): Deleted.

  • page/PointerCaptureController.h:

(WebCore::PointerCaptureController::elementWasRemoved):

  • page/PointerLockController.cpp:

(WebCore::PointerLockController::elementWasRemovedInternal):
(WebCore::PointerLockController::elementWasRemoved): Deleted.

  • page/PointerLockController.h:

(WebCore::PointerLockController::elementWasRemoved):

11:18 AM Changeset in webkit [291980] by Devin Rousso
  • 20 edits in trunk

[iOS] Add WKWebView API to control CSS "small viewport" sv* and "large viewport" lv* units
https://bugs.webkit.org/show_bug.cgi?id=237979
<rdar://problem/89434696>

Reviewed by Tim Horton.

Source/WebCore:

Tests: CSSViewportUnits.NegativeMinimumViewportInset

CSSViewportUnits.NegativeMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanFrame
CSSViewportUnits.MaximumViewportInsetLargerThanFrame
CSSViewportUnits.MinimumViewportInset
CSSViewportUnits.MaximumViewportInset
CSSViewportUnits.MinimumViewportInsetWithZoom
CSSViewportUnits.MaximumViewportInsetWithZoom
CSSViewportUnits.MinimumViewportInsetWithWritingMode
CSSViewportUnits.MaximumViewportInsetWithWritingMode
CSSViewportUnits.MinimumViewportInsetWithFrame
CSSViewportUnits.MaximumViewportInsetWithFrame
CSSViewportUnits.MinimumViewportInsetWithBounds
CSSViewportUnits.MaximumViewportInsetWithBounds
CSSViewportUnits.MinimumViewportInsetWithContentInset
CSSViewportUnits.MaximumViewportInsetWithContentInset
CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets
CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets
CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI

  • page/FrameView.h:
  • page/FrameView.cpp:

(WebCore::FrameView::performSizeToContentAutoSize):
(WebCore::FrameView::enableAutoSizeMode):
(WebCore::FrameView::clearSizeOverrideForCSSDefaultViewportUnits): Added.
(WebCore::FrameView::setSizeForCSSDefaultViewportUnits): Added.
(WebCore::FrameView::overrideWidthForCSSDefaultViewportUnits): Added.
(WebCore::FrameView::resetOverriddenWidthForCSSDefaultViewportUnits): Added.
(WebCore::FrameView::overrideSizeForCSSDefaultViewportUnits): Added.
(WebCore::FrameView::sizeForCSSDefaultViewportUnits const): Renamed from sizeForCSSDefaultViewportUnits.
(WebCore::FrameView::copyCSSViewportUnits const): Added.
Add all the various methods for getting/setting/overriding/clearing an override value for
CSS "default viewport" v* units. This allows for WKWebView clients to preserve existing
behavior (where CSS "default viewport" v* units match the size of the WKWebView) while
adding supporting CSS "small viewport" sv* units and CSS "large viewport" lv* units.

Source/WebKit:

Recently the W3C CSS working group added [some new unit types to CSS](https://drafts.csswg.org/css-values-4/#viewport-variants)
with the goal of helping web developers better deal with browsers that have dynamic UI
elements that change apperance/size/etc. based on user actions (e.g. the URL bar
collapsing/"squishing" and expanding/"unsquishing" depending on whether the user has most
recently scrolled/swiped down the page).

These new units come in three categories:

  • the "large viewport" units (lvw, lvh, etc.) each represent 1% of one dimension of the size of the visual area of the page when all browser UI elements are in their smallest state (e.g. when the URL bar is collapsed/"squished")
  • the "small viewport" units (svw, svh, etc.) each represent 1% of one dimension of the size of the visual area of the page when all browser UI elements are in their largest state (e.g. when the URL bar is expanded/"unsquished")
  • the "dynamic viewport" units (dvw, dvh, etc.) each represent 1% of one dimension of the size of the current visual area of the page, which depends on the current state of all browser UI elements

This way, developer could use 100svh to ensure that no matter what state the browser UI
elements are in the entire element will always be visible on the screen, or use 100dvh to
respond to browser UI element changes by automatically resizing various elements to always
fully take advantage of the available space.

Nothing needs to be added to support "dynamic viewport" dv* units as there already exists
other methods to adjust the visual area of the WKWebView without adjusting its frame
(e.g. -[WKWebView setBounds:], -[UIScrollView setContentInset:], etc.).

But for "small viewport" sv* units and "large viewport" lv* units, however, there is
unfortunately no way to tell a WKWebView anything like "this is the smallest/largest that
this WKWebView will ever be", so there's no way to know ahead of time what the size of the
visual area would be when all browser UI elements are in their smallest/largest state. As
such, this patch adds a new API to allow for WKWebView clients to tell WebKit this
information ahead of time.

Note that there already exists the concept of "default viewport" units (vw, vh, etc.)
that each represent 1% of one dimension of the size of the visual area of the page when all
browser UI elements are in their default state. The behavior of these units remain the same,
and the value can be changed via the existing -[WKWebView setFrame:].

Tests: CSSViewportUnits.NegativeMinimumViewportInset

CSSViewportUnits.NegativeMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset
CSSViewportUnits.MinimumViewportInsetLargerThanFrame
CSSViewportUnits.MaximumViewportInsetLargerThanFrame
CSSViewportUnits.MinimumViewportInset
CSSViewportUnits.MaximumViewportInset
CSSViewportUnits.MinimumViewportInsetWithZoom
CSSViewportUnits.MaximumViewportInsetWithZoom
CSSViewportUnits.MinimumViewportInsetWithWritingMode
CSSViewportUnits.MaximumViewportInsetWithWritingMode
CSSViewportUnits.MinimumViewportInsetWithFrame
CSSViewportUnits.MaximumViewportInsetWithFrame
CSSViewportUnits.MinimumViewportInsetWithBounds
CSSViewportUnits.MaximumViewportInsetWithBounds
CSSViewportUnits.MinimumViewportInsetWithContentInset
CSSViewportUnits.MaximumViewportInsetWithContentInset
CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets
CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets
CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI

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

(-[WKWebView _recalculateViewportSizesWithMinimumViewportInset:maximumViewportInset:throwOnInvalidInput:]): Added.
(-[WKWebView setMinimumViewportInset:maximumViewportInset:]): Added.

  • UIProcess/API/ios/WKWebViewIOS.mm:

(-[WKWebView _processWillSwapOrDidExit]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _didCompleteAnimatedResize]):
(-[WKWebView _setMinimumUnobscuredSizeOverride:]):
(-[WKWebView _setMaximumUnobscuredSizeOverride:]):
(-[WKWebView _beginAnimatedResizeWithUpdates:]):
(-[WKWebView _dispatchSetMinimumUnobscuredSize:]): Deleted.
(-[WKWebView _dispatchSetMaximumUnobscuredSize:]): Deleted.
Recalculate the size for CSS "small viewport" sv* units whenever the frame changes. Also
move the deduplication logic that prevents the same value from being sent to the WebProcess
more than once to the setter methods on WebPageProxy so that it can be used by more than
just iOS-only codepaths.

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

(WebKit::WebPageProxy::setDefaultUnobscuredSize): Added.
(WebKit::WebPageProxy::setMinimumUnobscuredSize): Added.
(WebKit::WebPageProxy::setMaximumUnobscuredSize): Added.
(WebKit::WebPageProxy::creationParameters):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::dynamicViewportSizeUpdate):
(WebKit::WebPageProxy::setMinimumUnobscuredSize): Deleted.
(WebKit::WebPageProxy::setMaximumUnobscuredSize): Deleted.

  • Shared/WebPageCreationParameters.h:
  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode const):
(WebKit::WebPageCreationParameters::decode):

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

(WebKit::WebPage::WebPage):
(WebKit::WebPage::setViewportSizeForCSSViewportUnits):
(WebKit::WebPage::setDefaultUnobscuredSize): Added.
(WebKit::WebPage::setMinimumUnobscuredSize): Added.
(WebKit::WebPage::setMaximumUnobscuredSize): Added.
(WebKit::WebPage::updateSizeForCSSDefaultViewportUnits): Added.
(WebKit::WebPage::updateSizeForCSSSmallViewportUnits): Added.
(WebKit::WebPage::updateSizeForCSSLargeViewportUnits): Added.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::viewportConfigurationChanged):
(WebKit::WebPage::setMinimumUnobscuredSize): Deleted.
(WebKit::WebPage::setMaximumUnobscuredSize): Deleted.
(WebKit::WebPage::updateViewportSizeForCSSViewportUnits): Deleted.
Add all the various methods for getting/setting/overriding/clearing an override value for
CSS "default viewport" v* units. This allows for WKWebView clients to preserve existing
behavior (where CSS "default viewport" v* units match the size of the WKWebView) while
adding supporting CSS "small viewport" sv* units and CSS "large viewport" lv* units.
Move iOS-only code to be for all platforms.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):
Propagate all viewport size overrides when a new FrameView is created.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm:

(TEST.CSSViewportUnits.NegativeMinimumViewportInset): Added.
(TEST.CSSViewportUnits.NegativeMaximumViewportInset): Added.
(TEST.CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset): Added.
(TEST.CSSViewportUnits.MinimumViewportInsetLargerThanFrame): Added.
(TEST.CSSViewportUnits.MaximumViewportInsetLargerThanFrame): Added.
(TEST.CSSViewportUnits.MinimumViewportInset): Added.
(TEST.CSSViewportUnits.MaximumViewportInset): Added.
(TEST.CSSViewportUnits.MinimumViewportInsetWithZoom): Added.
(TEST.CSSViewportUnits.MaximumViewportInsetWithZoom): Added.
(TEST.CSSViewportUnits.MinimumViewportInsetWithWritingMode): Added.
(TEST.CSSViewportUnits.MaximumViewportInsetWithWritingMode): Added.
(TEST.CSSViewportUnits.MinimumViewportInsetWithFrame): Added.
(TEST.CSSViewportUnits.MaximumViewportInsetWithFrame): Added.
(TEST.CSSViewportUnits.MinimumViewportInsetWithBounds): Added.
(TEST.CSSViewportUnits.MaximumViewportInsetWithBounds): Added.
(TEST.CSSViewportUnits.MinimumViewportInsetWithContentInset): Added.
(TEST.CSSViewportUnits.MaximumViewportInsetWithContentInset): Added.
(TEST.CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets): Added.
(TEST.CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets): Added.
(TEST.CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInsetAPI): Added.

11:14 AM Changeset in webkit [291979] by beidson@apple.com
  • 36 edits
    4 adds in trunk

Support ServiceWorkerClients.openWindow.
<rdar://90616651> and https://bugs.webkit.org/show_bug.cgi?id=238400

Reviewed by Youenn Fablet.
Source/WebCore:

Test: http/tests/workers/service/openwindow-from-notification-click.html

  • dom/Document.cpp:

(WebCore::Document::pageID const):

  • page/ClientOrigin.h:

(WebCore::ClientOrigin::loggingString const):

  • workers/service/ServiceWorkerClientData.cpp:

(WebCore::ServiceWorkerClientData::isolatedCopy const):
(WebCore::ServiceWorkerClientData::isolatedCopy):
(WebCore::ServiceWorkerClientData::from):

  • workers/service/ServiceWorkerClientData.h:

(WebCore::ServiceWorkerClientData::encode const):
(WebCore::ServiceWorkerClientData::decode):

  • workers/service/ServiceWorkerClients.cpp:

(WebCore::matchWindowWithPageIdentifier):
(WebCore::ServiceWorkerClients::openWindow):

  • workers/service/context/SWContextManager.h:
  • workers/service/server/SWServerToContextConnection.h:
  • workers/service/server/SWServerWorker.h:

Source/WebKit:

This API asks the browser to asynchronously open a new tab to a URL then resolve
a promise with the new WindowClient representing that tab.

From a WebCore/WebKit standpoint, implementing this was mostly straightforward.
1 - A plumbing exercise (thread hopping and IPC'ing the message and its reply around)
2 - Implmenting a new delegate method for the hosting app to create the requested WKWebView

The delegate method was interesting. Normally this is the type of thing that'd go to the
WKUIDelegate but that requires there to be a WKWebView, and service workers can be running
without any web views.

Fortunately we already had a WKWebsiteDataStore delegate SPI, and service workers *do* always
have an associated website data store they're running under.

Once the app gives the new web view back to WebKit, we record its PageIdentifier in the reply.

Once the reply makes its way all the way back to the ServiceWorker process and on the
ServiceWorker thread, we do a client match and cross check with that PageIdentifier to make
sure we're resolving the promise with the correct WindowClient.

If there's no matched clients, then the view is either already gone or it has navigated away
to a non-applicable URL.

Same if there are matched clients, but they don't match the specified PageIdentifier.

A straight forward layouttest completes the task.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::controlClient):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::openWindow):

  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore set_delegate:]):

  • UIProcess/API/Cocoa/_WKWebsiteDataStoreDelegate.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::openWindowFromServiceWorker):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
(WebKit::WebPageProxy::callLoadCompletionHandlersIfNecessary):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::resetState):
(WebKit::WebPageProxy::callServiceWorkerLaunchCompletionHandlerIfNecessary): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::openWindowFromServiceWorker):

  • UIProcess/WebsiteData/WebsiteDataStore.h:
  • UIProcess/WebsiteData/WebsiteDataStoreClient.h:

(WebKit::WebsiteDataStoreClient::openWindowFromServiceWorker):

  • WebProcess/Notifications/WebNotificationManager.cpp:

(WebKit::WebNotificationManager::show):
(WebKit::WebNotificationManager::didShowNotification):
(WebKit::WebNotificationManager::didClickNotification):

  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::openWindow):

  • WebProcess/Storage/WebSWContextManagerConnection.h:

Source/WTF:

  • wtf/HashTable.h:

(WTF::KeyTraits>::inlineLookup): Relax this value size requirement for now.
The required refactoring is best left as a seperate task with a seperate patch.

Tools:

Implement the new delegate to create the new view.

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::createOtherPage):
(WTR::TestController::createOtherPlatformWebView):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::platformCreateOtherPage):

  • WebKitTestRunner/cocoa/TestWebsiteDataStoreDelegate.mm:

(-[TestWebsiteDataStoreDelegate websiteDataStore:openWindow:fromServiceWorkerOrigin:completionHandler:]):

LayoutTests:

WKTR knows how to openWindow() now.

So test:

  • The success case
  • Failure due to a disallowed URL
  • Failure due to a lack of a related user gesture.
  • http/tests/workers/service/openwindow-from-notification-click-expected.txt: Added.
  • http/tests/workers/service/openwindow-from-notification-click.html: Added.
  • http/tests/workers/service/resources/openwindow-client.html: Added.
  • http/tests/workers/service/resources/shownotification-openwindow-worker.js: Added.

(async const):
(let.messageClients):
(clients.openWindow.string_appeared_here.then.async client):
(catch.async error):
(async event):
(async tryShow):
(async getNotes):

  • platform/gtk/TestExpectations:
10:58 AM Changeset in webkit [291978] by commit-queue@webkit.org
  • 24 edits in trunk/Source

Some Apple internal clients fail to build due to redeclared AppKit types in WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=238368

Patch by Ian Anderson <iana@apple.com> on 2022-03-28
Reviewed by Jonathan Bedard.

Source/WebCore:

Some Apple internal Mac Catalyst clients need to use both AppKit and
WebKitLegacy. WebKitLegacy's redeclaration of AppKit types causes errors
for those clients. Copy AppKit's Apple internal logic for identifying
the special Mac Catalyst clients that are allowed to use the AppKit
types, and when such clients use WebKitLegacy, don't redeclare the
AppKit types.

  • platform/ios/KeyEventCodesIOS.h:
  • platform/ios/wak/WAKAppKitStubs.h:
  • platform/ios/wak/WAKView.h:
  • platform/ios/wak/WAKWindow.h:

Source/WebKitLegacy/ios:

WebKitLegacy can't always define NSView to WAKView in Mac Catalyst, but
views are always WAKView in Mac Catalyst. Switch on TARGET_OS_IPHONE to
declare WAKView explicitly.

  • WebView/WebUIKitDelegate.h:

Source/WebKitLegacy/mac:

WebKitLegacy can't always define NSClipView/NSView/NSScrollView/
NSWindow/NSResponder to their WAK counterparts in Mac Catalyst, but
those types are always the WAK ones in Mac Catalyst. Switch on
TARGET_OS_IPHONE to declare the WAK types explicitly.

  • Misc/WebDownload.h:
  • Misc/WebNSViewExtras.h:
  • Plugins/WebPluginDatabase.h:
  • WebView/WebDocument.h:
  • WebView/WebDocumentPrivate.h:
  • WebView/WebFramePrivate.h:
  • WebView/WebFrameView.h:

(WEBKIT_CLASS_DEPRECATED_MAC):

  • WebView/WebFrameViewPrivate.h:
  • WebView/WebHTMLRepresentation.h:
  • WebView/WebHTMLRepresentationPrivate.h:
  • WebView/WebHTMLView.h:
  • WebView/WebHTMLViewPrivate.h:
  • WebView/WebUIDelegate.h:
  • WebView/WebUIDelegatePrivate.h:
  • WebView/WebView.h:

(WEBKIT_CLASS_DEPRECATED_MAC):

  • WebView/WebViewPrivate.h:
10:42 AM Changeset in webkit [291977] by Alan Coon
  • 1 copy in branches/safari-613.2.4.3-branch

New branch.

10:42 AM Changeset in webkit [291976] by Alan Coon
  • 1 copy in branches/safari-613.2.4.2-branch

New branch.

10:42 AM Changeset in webkit [291975] by Alan Coon
  • 1 copy in branches/safari-613.2.4.1-branch

New branch.

10:42 AM Changeset in webkit [291974] by Alan Coon
  • 1 copy in branches/safari-613.2.4.0-branch

New branch.

10:29 AM Changeset in webkit [291973] by Alan Coon
  • 5 edits
    2 adds in branches/safari-613.1.17.0-branch

Cherry-pick r291622. rdar://problem/90501108

Fetching a Blob URL with an unbounded Range header do not generate a Content-Range response header
https://bugs.webkit.org/show_bug.cgi?id=238170

Reviewed by Eric Carlson.

Source/WebCore:

Test: fetch/fetch-blob-unbounded-range.html

Handle the case where the request contains an unbounded range, and property calculate the rangeEnd
to pass into ParsedContentRange.

  • platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::notifyResponseOnSuccess):

Source/WebKit:

Handle the case where the request contains an unbounded range, and property calculate the rangeEnd
to pass into ParsedContentRange.

  • NetworkProcess/NetworkDataTaskBlob.cpp: (WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):

LayoutTests:

  • fetch/fetch-blob-unbounded-range-expected.txt: Added.
  • fetch/fetch-blob-unbounded-range.html: Added.

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

10:25 AM Changeset in webkit [291972] by Chris Dumez
  • 16 edits in trunk/Source

Use StringView for Yarr / RegularExpression parsing
https://bugs.webkit.org/show_bug.cgi?id=238420

Reviewed by Sam Weinig.

Source/JavaScriptCore:

Use StringView for Yarr / RegularExpression parsing, to avoid unnecessary String construction
in some cases. It is not uncommon for the pattern to be a string literal.

  • yarr/RegularExpression.cpp:

(JSC::Yarr::RegularExpression::Private::create):
(JSC::Yarr::RegularExpression::Private::Private):
(JSC::Yarr::RegularExpression::Private::compile):
(JSC::Yarr::RegularExpression::RegularExpression):
(JSC::Yarr::RegularExpression::match const):
(JSC::Yarr::RegularExpression::searchRev const):
(JSC::Yarr::replace):

  • yarr/RegularExpression.h:
  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::interpret):

  • yarr/YarrInterpreter.h:
  • yarr/YarrJIT.cpp:

(JSC::Yarr::jitCompile):
(JSC::Yarr::jitCompileInlinedTest):

  • yarr/YarrJIT.h:
  • yarr/YarrParser.h:

(JSC::Yarr::Parser::Parser):
(JSC::Yarr::parse):

  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPattern::compile):
(JSC::Yarr::YarrPattern::YarrPattern):
(JSC::Yarr::YarrPattern::dumpPatternString):
(JSC::Yarr::YarrPattern::dumpPattern):

  • yarr/YarrPattern.h:
  • yarr/YarrSyntaxChecker.cpp:

(JSC::Yarr::checkSyntax):

  • yarr/YarrSyntaxChecker.h:

Source/WebCore:

  • platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:

(WebCore::CDMPrivateMediaSourceAVFObjC::parseKeySystem):

Source/WTF:

Add convenience characters() templated function to StringView, to match String and StringImpl.

  • wtf/text/StringView.h:

(WTF::StringView::characters<LChar> const):
(WTF::StringView::characters<UChar> const):

10:25 AM Changeset in webkit [291971] by Alan Coon
  • 9 edits in branches/safari-613.1.17.0-branch/Source

Versioning.

WebKit-7613.1.17.0.9

10:04 AM Changeset in webkit [291970] by Diego Pino Garcia
  • 3 edits in trunk/Source/WebCore

[GLIB] Fix build error 'not match operator !=' in Ubuntu LTS after r291696
https://bugs.webkit.org/show_bug.cgi?id=238443

Reviewed by Adrian Perez de Castro.

The error was also happening in build bots using GCC 8.3 like Debian
Stable.

  • platform/graphics/GraphicsTypes.h:

(WebCore::operator==):
(WebCore::operator!=):
(WebCore::CompositeMode::operator==): Deleted.

  • platform/graphics/SourceBrush.h:

(WebCore::operator!=):

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

ImageTransferSessionVT::setSize should properly create its buffer pool
https://bugs.webkit.org/show_bug.cgi?id=238455

Reviewed by Eric Carlson.

Covered by existing tests.

  • platform/graphics/cv/ImageTransferSessionVT.mm:

(WebCore::ImageTransferSessionVT::setSize):
We check the Expected, then move the RetainPtr if available.

9:28 AM Changeset in webkit [291968] by Tyler Wilcock
  • 2 edits in trunk/Source/WebCore

AccessibilityObject::listMarkerTextForNodeAndPosition should check for presence of list item before anything else
https://bugs.webkit.org/show_bug.cgi?id=238341

Reviewed by Andres Gonzalez.

The first thing AccessibilityObject::listMarkerTextForNodeAndPosition
does is check to see that the given range isStartOfLine. We
should instead check if there's an actual list item to work with
before doing this, since isStartOfLine can cause crashes.

Covered by test
accessibility/mac/attributed-string-with-listitem-multiple-lines.html.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):

9:24 AM Changeset in webkit [291967] by youenn@apple.com
  • 13 edits
    2 copies in trunk/Source

Share more code between RemoteRealtimeAudioSource and RemoteRealtimeVideoSource
https://bugs.webkit.org/show_bug.cgi?id=237704
<rdar://problem/90424679>

Reviewed by Eric Carlson.

Source/WebCore:

The remote video source is now correctly exposing whether it is camera, screen...
This was not well handled before in some places, we replace type == Video by hasVideo to handle all video types appropriately.

Covered by existing tests.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
  • platform/mediastream/MediaStreamPrivate.cpp:

Source/WebKit:

Introduce RemoteRealtimeMediaSource as a common class for RemoteRealtimeAudioSource and RemoteRealtimeVideoSource.

  • SourcesCocoa.txt:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:
  • WebProcess/cocoa/RemoteRealtimeAudioSource.h:
  • WebProcess/cocoa/RemoteRealtimeMediaSource.cpp: Added.
  • WebProcess/cocoa/RemoteRealtimeMediaSource.h: Added.
  • WebProcess/cocoa/RemoteRealtimeMediaSourceProxy.h:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:
  • WebProcess/cocoa/RemoteRealtimeVideoSource.h:
8:13 AM Changeset in webkit [291966] by Noam Rosenthal
  • 3 edits in trunk/Tools

Issues with WPT exporter
https://bugs.webkit.org/show_bug.cgi?id=238446

Also addresses https://bugs.webkit.org/show_bug.cgi?id=216330
and https://bugs.webkit.org/show_bug.cgi?id=216603

Reviewed by Youenn Fablet.

Fix issues with WPT exporter:

  • Ignore *-expected.html files
  • Perform a 3-way merge when applying patch
  • Add a newline at the end of the patch
  • Scripts/webkitpy/w3c/test_exporter.py:

(WebPlatformTestExporter._strip_ignored_files_from_diff):
(WebPlatformTestExporter.create_branch_with_patch):

7:51 AM Changeset in webkit [291965] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

[ews] Update contributors in ews unit tests
https://bugs.webkit.org/show_bug.cgi?id=238416

Reviewed by Jonathan Bedard.

  • CISupport/ews-build/steps_unittest.py: Use mocked info in unit-tests.
7:22 AM Changeset in webkit [291964] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Optimize toJS() for HTMLElements
https://bugs.webkit.org/show_bug.cgi?id=238426

Reviewed by Yusuke Suzuki.

Optimize toJS() for HTMLElements. Previously, the more generic Element's toJS() would be called,
which would have to do more checks.

This is a 0.6% progression on Speedometer 2.0 on MacBook Air 10,1 (AS).

  • bindings/js/JSHTMLElementCustom.cpp:

(WebCore::toJS):
(WebCore::toJSNewlyCreated):

  • html/HTMLElement.idl:
7:14 AM Changeset in webkit [291963] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop unnecessary isReachableFromDOM() function in JSNodeCustom.cpp
https://bugs.webkit.org/show_bug.cgi?id=238422

Reviewed by Peng Liu.

Drop unnecessary isReachableFromDOM() function in JSNodeCustom.cpp and inline its implementation in the only caller instead.

  • bindings/js/JSNodeCustom.cpp:

(WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
(WebCore::isReachableFromDOM): Deleted.

5:08 AM Changeset in webkit [291962] by Ziran Sun
  • 5 edits in trunk

[Forms] Alias appearance <compat-auto> keywords to 'auto' for button
https://bugs.webkit.org/show_bug.cgi?id=238252

Reviewed by Darin Adler.

Source/WebCore:

We need to alias appearance <compat-auto> keywords to 'auto'. This is to
handle some button related cases including button, push-button and square-button.
Also the slider-horizontal case has been addressed. We still have menulist and
textfield cases left to look into.

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustAppearanceForElement const):

LayoutTests:

Unskip the tests that are now passing.
-webkit-appearance: square-button doesnt work for ::-webkit-file-upload-button any more.
Replace it with -webkit-appearance: none in fast/forms/file/file-style-inheritance.html.
This is also in line with the change in Chromium.

1:27 AM Changeset in webkit [291961] by Cameron McCormack
  • 3 edits
    2 adds in trunk

Remove pending UA shadow tree state when an input element is removed from the document
https://bugs.webkit.org/show_bug.cgi?id=238429
<rdar://90682918>

Reviewed by Antti Koivisto.

Source/WebCore:

If an <input> element has a pending UA shadow tree, and the element is
removed from the document, we don't currently remove the element from
Document::m_elementsWithPendingUserAgentShadowTreeUpdates. Not only
does that means we may wastefully create the shadow tree if the
element is not inserted into the document again, but if the element is
then inserted into a different document, flushing style in the new
document won't correctly create the shadow tree.

Test: fast/forms/lazy-shadow-tree-creation-move-document-crash.html

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::removedFromAncestor):

LayoutTests:

  • fast/forms/lazy-shadow-tree-creation-move-document-crash-expected.txt: Added.
  • fast/forms/lazy-shadow-tree-creation-move-document-crash.html: Added.

Mar 27, 2022:

11:15 PM Changeset in webkit [291960] by Lauro Moura
  • 6 edits in trunk/Source

Unreviewed, non-unified buildfix
https://bugs.webkit.org/show_bug.cgi?id=238436

Source/JavaScriptCore:

  • dfg/DFGStrengthReductionPhase.cpp:

Source/WebCore:

  • workers/service/ServiceWorkerWindowClient.cpp:

Source/WebKit:

  • WebProcess/Storage/WebSWClientConnection.cpp:
9:37 PM Changeset in webkit [291959] by Russell Epstein
  • 9 edits in branches/safari-614.1.8-branch/Source

Versioning.

WebKit-7614.1.8

9:35 PM Changeset in webkit [291958] by Russell Epstein
  • 1 copy in branches/safari-614.1.8-branch

New branch.

9:34 PM Changeset in webkit [291957] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.9

9:18 PM Changeset in webkit [291956] by Matt Woodrow
  • 18 edits in trunk

Preserve repeat() notation for grid-templates
https://bugs.webkit.org/show_bug.cgi?id=202259

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/animation/grid-template-columns-interpolation-expected.txt:
  • web-platform-tests/css/css-grid/animation/grid-template-rows-interpolation-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-columns-computed-nogrid-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-rows-computed-nogrid-expected.txt:

Update expectations for existing WPT tests, now that we get the correct computed value for
grid-template-rows/columns.

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
(WebCore::GridTemplateTracksWrapper<ForColumns>::GridTemplateTracksWrapper): Deleted.
(WebCore::GridTemplateTracksWrapper<ForRows>::GridTemplateTracksWrapper): Deleted.

Replaces GridTemplateTracksWrapper with a simpler GridTemplatePropertyWrapper that just compares the
track lists. In the future we can iterate the two tracks lists in parallel and interpolate per-item,
in order to get animation correct per-spec.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::populateGridTrackList):
(WebCore::populateSubgridLineNameList):
(WebCore::valueForGridTrackList):
(WebCore::OrderedNamedLinesCollectorInsideRepeat::OrderedNamedLinesCollectorInsideRepeat): Deleted.
(WebCore::OrderedNamedLinesCollector::collectLineNamesForIndex const): Deleted.
(WebCore::OrderedNamedLinesCollectorInsideRepeat::collectLineNamesForIndex const): Deleted.

Implements getComputedStyle by iterating the track list and doing a 1:1 conversion to CSSValues, instead
of reconstructing from the processed hashtables.
This correctly preserves repeat() instances in the track list, which weren't retreivable from the processed
data.

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::gridColumns const):
(WebCore::RenderStyle::gridRows const):
(WebCore::RenderStyle::gridColumnList const):
(WebCore::RenderStyle::gridRowList const):
(WebCore::RenderStyle::gridAutoRepeatColumns const):
(WebCore::RenderStyle::gridAutoRepeatRows const):
(WebCore::RenderStyle::gridAutoRepeatColumnsInsertionPoint const):
(WebCore::RenderStyle::gridAutoRepeatRowsInsertionPoint const):
(WebCore::RenderStyle::gridAutoRepeatColumnsType const):
(WebCore::RenderStyle::gridAutoRepeatRowsType const):
(WebCore::RenderStyle::namedGridColumnLines const):
(WebCore::RenderStyle::namedGridRowLines const):
(WebCore::RenderStyle::orderedNamedGridColumnLines const):
(WebCore::RenderStyle::orderedNamedGridRowLines const):
(WebCore::RenderStyle::autoRepeatNamedGridColumnLines const):
(WebCore::RenderStyle::autoRepeatNamedGridRowLines const):
(WebCore::RenderStyle::autoRepeatOrderedNamedGridColumnLines const):
(WebCore::RenderStyle::autoRepeatOrderedNamedGridRowLines const):
(WebCore::RenderStyle::gridSubgridRows const):
(WebCore::RenderStyle::gridSubgridColumns const):
(WebCore::RenderStyle::setGridColumnList):
(WebCore::RenderStyle::setGridRowList):
(WebCore::RenderStyle::setGridAutoRows):
(WebCore::RenderStyle::setGridAutoFlow):
(WebCore::RenderStyle::setGridColumns): Deleted.
(WebCore::RenderStyle::setGridRows): Deleted.
(WebCore::RenderStyle::setGridAutoRepeatColumns): Deleted.
(WebCore::RenderStyle::setGridAutoRepeatRows): Deleted.
(WebCore::RenderStyle::setGridAutoRepeatColumnsInsertionPoint): Deleted.
(WebCore::RenderStyle::setGridAutoRepeatRowsInsertionPoint): Deleted.
(WebCore::RenderStyle::setGridAutoRepeatColumnsType): Deleted.
(WebCore::RenderStyle::setGridAutoRepeatRowsType): Deleted.
(WebCore::RenderStyle::setNamedGridColumnLines): Deleted.
(WebCore::RenderStyle::setNamedGridRowLines): Deleted.
(WebCore::RenderStyle::setOrderedNamedGridColumnLines): Deleted.
(WebCore::RenderStyle::setOrderedNamedGridRowLines): Deleted.
(WebCore::RenderStyle::setAutoRepeatNamedGridColumnLines): Deleted.
(WebCore::RenderStyle::setAutoRepeatNamedGridRowLines): Deleted.
(WebCore::RenderStyle::setAutoRepeatOrderedNamedGridColumnLines): Deleted.
(WebCore::RenderStyle::setAutoRepeatOrderedNamedGridRowLines): Deleted.
(WebCore::RenderStyle::setGridSubgridRows): Deleted.
(WebCore::RenderStyle::setGridSubgridColumns): Deleted.

  • rendering/style/StyleGridData.cpp:

(WebCore::StyleGridData::StyleGridData):
(WebCore::StyleGridData::setRows):
(WebCore::StyleGridData::setColumns):
(WebCore::createGridLineNamesList):
(WebCore::StyleGridData::computeCachedTrackData):
(WebCore::operator<<):

  • rendering/style/StyleGridData.h:

(WebCore::StyleGridData::operator== const):
(WebCore::StyleGridData::gridColumns const):
(WebCore::StyleGridData::gridRows const):
(WebCore::StyleGridData::namedGridColumnLines const):
(WebCore::StyleGridData::namedGridRowLines const):
(WebCore::StyleGridData::orderedNamedGridColumnLines const):
(WebCore::StyleGridData::orderedNamedGridRowLines const):
(WebCore::StyleGridData::autoRepeatNamedGridColumnLines const):
(WebCore::StyleGridData::autoRepeatNamedGridRowLines const):
(WebCore::StyleGridData::autoRepeatOrderedNamedGridColumnLines const):
(WebCore::StyleGridData::autoRepeatOrderedNamedGridRowLines const):
(WebCore::StyleGridData::gridAutoRepeatColumns const):
(WebCore::StyleGridData::gridAutoRepeatRows const):
(WebCore::StyleGridData::autoRepeatColumnsInsertionPoint const):
(WebCore::StyleGridData::autoRepeatRowsInsertionPoint const):
(WebCore::StyleGridData::autoRepeatColumnsType const):
(WebCore::StyleGridData::autoRepeatRowsType const):
(WebCore::StyleGridData::subgridRows const):
(WebCore::StyleGridData::subgridColumns const):
(WebCore::StyleGridData::columns const):
(WebCore::StyleGridData::rows const):

Stores the computed track lists directly on RenderGrid, while retaining storage of the processed data.
computeCachedTrackData should be logically identical to the old BuilderConverter::createGridTrackList, but
happens when we modify the StyleGridData so that we can run it during animations.

  • style/StyleBuilderConverter.h:

(WebCore::Style::BuilderConverter::createGridTrackList):
(WebCore::Style::createGridLineNamesList): Deleted.
(): Deleted.

  • style/StyleBuilderCustom.h:

(WebCore::Style::BuilderCustom::applyInitialGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyValueGridTemplateColumns):
(WebCore::Style::BuilderCustom::applyInitialGridTemplateRows):
(WebCore::Style::BuilderCustom::applyValueGridTemplateRows):

Rather than converting the track list into processed hashtables, just copies the data in the track list
format so that the StyleGridData can access the original data.

LayoutTests:

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

Update expected results to use repeat() notation.

8:03 PM Changeset in webkit [291955] by Matt Woodrow
  • 9 edits in trunk

Fix serialization of grid-template
https://bugs.webkit.org/show_bug.cgi?id=237868

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/parsing/grid-shorthand-valid-expected.txt:
  • web-platform-tests/css/css-grid/parsing/grid-template-shorthand-valid-expected.txt:

Update expectation files for newly passing tests.

Source/WebCore:

Existing WPT tests marked as passing.

  • css/CSSGridTemplateAreasValue.cpp:

(WebCore::CSSGridTemplateAreasValue::stringForRow):

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

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::isNoneValue):
(WebCore::isValueID):
(WebCore::StyleProperties::getGridTemplateValue const):
(WebCore::StyleProperties::getGridValue const):

  • css/StyleProperties.h:

Creates custom serialization for grid-template that handles the case
where no areas were specified (and omits trailing 'none' value), as well as handling
the case where areas are interleaved within the tracks definitions.

7:35 PM Changeset in webkit [291954] by commit-queue@webkit.org
  • 47 edits in trunk/Source/WebCore

Sort IDL extended attributes alphabetically
https://bugs.webkit.org/show_bug.cgi?id=235531
<rdar://problem/88284366>

Patch by Daniel Adams <msub2official@gmail.com> on 2022-03-27
Reviewed by Sam Weinig.

This just goes through and corrects the ordering of "Conditional" and
"EnabledBySetting" in all of the files mentioned in the report.

Test: Trivial change, no test changes required.

  • Modules/gamepad/Gamepad.idl:
  • Modules/gamepad/GamepadButton.idl:
  • Modules/webxr/Navigator+WebXR.idl:
  • Modules/webxr/WebXRBoundedReferenceSpace.idl:
  • Modules/webxr/WebXRFrame+HandInput.idl:
  • Modules/webxr/WebXRFrame.idl:
  • Modules/webxr/WebXRHand.idl:
  • Modules/webxr/WebXRInputSource+HandInput.idl:
  • Modules/webxr/WebXRInputSource.idl:
  • Modules/webxr/WebXRInputSourceArray.idl:
  • Modules/webxr/WebXRJointPose.idl:
  • Modules/webxr/WebXRJointSpace.idl:
  • Modules/webxr/WebXRLayer.idl:
  • Modules/webxr/WebXRPose.idl:
  • Modules/webxr/WebXRReferenceSpace.idl:
  • Modules/webxr/WebXRRenderState.idl:
  • Modules/webxr/WebXRRigidTransform.idl:
  • Modules/webxr/WebXRSession.idl:
  • Modules/webxr/WebXRSpace.idl:
  • Modules/webxr/WebXRView.idl:
  • Modules/webxr/WebXRViewerPose.idl:
  • Modules/webxr/WebXRViewport.idl:
  • Modules/webxr/WebXRWebGLLayer.idl:
  • Modules/webxr/XREnvironmentBlendMode.idl:
  • Modules/webxr/XREye.idl:
  • Modules/webxr/XRHandedness.idl:
  • Modules/webxr/XRInputSourceEvent.idl:
  • Modules/webxr/XRInputSourcesChangeEvent.idl:
  • Modules/webxr/XRInteractionMode.idl:
  • Modules/webxr/XRReferenceSpaceEvent.idl:
  • Modules/webxr/XRReferenceSpaceType.idl:
  • Modules/webxr/XRRenderStateInit.idl:
  • Modules/webxr/XRSessionEvent.idl:
  • Modules/webxr/XRSessionInit.idl:
  • Modules/webxr/XRSessionMode.idl:
  • Modules/webxr/XRTargetRayMode.idl:
  • Modules/webxr/XRVisibilityState.idl:
  • Modules/webxr/XRWebGLLayerInit.idl:
  • testing/FakeXRBoundsPoint.idl:
  • testing/FakeXRButtonStateInit.idl:
  • testing/FakeXRInputSourceInit.idl:
  • testing/FakeXRRigidTransformInit.idl:
  • testing/FakeXRViewInit.idl:
  • testing/WebFakeXRDevice.idl:
  • testing/WebFakeXRInputController.idl:
  • testing/WebXRTest.idl:
1:38 PM Changeset in webkit [291953] by Matt Woodrow
  • 4 edits in trunk

Use the sizing algorithm's available size to compute grid gap.
https://bugs.webkit.org/show_bug.cgi?id=236956

Reviewed by Tim Nguyen.

Source/WebCore:

Computing the grid gap for subgridded tracks happens during the sizing algorithm
(as part of copying the sizes from the parent, instead of computing new sizes). At
this point we should always have a definite size available (the size of the tracks in
the parent that the subgrid spans), but it may not yet be set on the subgrid's RenderElement.
This retreives the size from the track sizing algorithm instead, where it should always be
available by this point.

  • rendering/GridTrackSizingAlgorithm.cpp:

(WebCore::GridTrackSizingAlgorithm::copyUsedTrackSizesForSubgrid):

LayoutTests:

Existing subgrid tests marked as passing.

1:24 PM Changeset in webkit [291952] by Matt Woodrow
  • 6 edits
    1 add in trunk

Lazily allocate backing store for grid columns.
https://bugs.webkit.org/show_bug.cgi?id=212201

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/grid-definition/grid-limits-001-expected.txt: Added.

Add passing expectations file for previously skipped test.

Source/WebCore:

Existing WPT test grid-limits-001.html marked as passing.

  • rendering/Grid.cpp:

(WebCore::Grid::ensureGridSize):
(WebCore::Grid::ensureStorageForRow):
(WebCore::Grid::insert):
(WebCore::Grid::cell const):

Only grow the first row's column storage (since we use this
to remember the column count) and lazily grow the others when
we try write to them.

(WebCore::GridIterator::GridIterator):
(WebCore::GridIterator::nextGridItem):
(WebCore::GridIterator::isEmptyAreaEnough const):
(WebCore::GridIterator::nextEmptyGridArea):

  • rendering/Grid.h:

Changes GridIterator to use the Grid API rather than directly
accessing the inner Vector using 'friend'. This makes it easier to
ensure that we never access areas outside of our lazy allocations.

LayoutTests:

Remove skip annotation for test grid-limits-001 that now passes.

7:23 AM Changeset in webkit [291951] by Alan Bujtas
  • 3 edits
    2 adds in trunk

[LFC][IFC] ASSERTs in BoxGeometry when loading Twitter page
https://bugs.webkit.org/show_bug.cgi?id=238421
<rdar://89980547>

Reviewed by Antti Koivisto.

Source/WebCore:

Ensure that we set size/position on trailing, empty inline box(es) in bidi context.
e.g.
<div>some content<span> <-line breaks here</span></div>

where the first line has the following runs:

[some content]
[inline box start]

second line has:

[spanning inline box start]
[<-line breaks here]
[inline box end]

The first line's trailing (and empty, due to trailing whitespace trimming) [inline box start] run
needs computed geometry/display box so that when on the subsequent line we see the [spanning inline box start] run
we can properly compute the enclosing geometry for the <span> element.
(and that's where we currently assert as we don't find the associated box geometry for the inline box on the first line.)

See the comment in InlineDisplayContentBuilder::processBidiContent for details.
(Note that this change has no visual impact as these trailing inline boxes are always empty.)

Test: fast/inline/trailing-empty-bidi-inline-box.html

  • layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:

(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):

LayoutTests:

  • fast/inline/trailing-empty-bidi-inline-box-expected.txt: Added.
  • fast/inline/trailing-empty-bidi-inline-box.html: Added.
4:53 AM Changeset in webkit [291950] by Alexander Mikhaylenko
  • 8 edits in trunk

[GTK][WPE] Support CSS accent-color
https://bugs.webkit.org/show_bug.cgi?id=238398

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Add accent-color support for progress, range and entries.
Update check and radio styles so that they can use accent color as well.

  • platform/adwaita/ThemeAdwaita.cpp:

(WebCore::ThemeAdwaita::paint):
(WebCore::ThemeAdwaita::paintCheckbox):
(WebCore::ThemeAdwaita::paintRadio):

  • platform/adwaita/ThemeAdwaita.h:
  • rendering/RenderThemeAdwaita.cpp:

(WebCore::getSystemAccentColor):
(WebCore::getAccentColor):
(WebCore::RenderThemeAdwaita::platformActiveSelectionBackgroundColor const):
(WebCore::RenderThemeAdwaita::paintTextField):
(WebCore::RenderThemeAdwaita::paintProgressBar):
(WebCore::RenderThemeAdwaita::paintSliderTrack):
(WebCore::RenderThemeAdwaita::paintSliderThumb):

Source/WTF:

  • Scripts/Preferences/WebPreferencesExperimental.yaml: Enable accent-color for GTK and WPE.

LayoutTests:

  • platform/gtk/TestExpectations: Enable accent-color tests for GTK.

Mar 26, 2022:

11:33 PM Changeset in webkit [291949] by Noam Rosenthal
  • 7 edits
    82 adds in trunk/LayoutTests

Import clip-path W3C tests
https://bugs.webkit.org/show_bug.cgi?id=238373

Reviewed by Tim Nguyen.

LayoutTests/imported/w3c:

Imported css/css-masking/clip-path and css/css-masking/parsing
Upstream rev: f987e7440879b5446f135dca82239feacc9a9caf

  • resources/resource-files.json:
  • web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-filter-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-incompatible-shapes1-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-incompatible-shapes2-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-overflow-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-three-keyframes1-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/animations/clip-path-animation-three-keyframes2-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/animations/clip-path-transition-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/animations/w3c-import.log:
  • web-platform-tests/css/css-masking/clip-path/clip-path-blending-offset-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-borderBox-1a-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-borderBox-1a.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-borderBox-1b-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-borderBox-1b.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-borderBox-1c-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-borderBox-1c.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1a-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1a.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1b-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1b.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1c-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-contentBox-1c.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-fillBox-1a-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-fillBox-1a.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-filter-order-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-fixed-nested-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-fixed-scroll-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-geometryBox-1-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-geometryBox-2-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-geometryBox-2-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-geometryBox-2.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-inset-round-percent-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-localRef-1-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-localRef-1-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-localRef-1.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-marginBox-1a-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-marginBox-1a.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-mix-blend-mode-1-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-mix-blend-mode-1-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-mix-blend-mode-1.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1a-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1a.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1b-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1b.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1c-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-paddingBox-1c.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-rotated-will-change-transform-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-002-units-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-002-units.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-002.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-003-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-003.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-004-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-004.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-interpolation-001-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-interpolation-001.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-interpolation-002-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-shape-interpolation-002.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-strokeBox-1a-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-strokeBox-1a.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-strokeBox-1b-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-strokeBox-1b.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-svg-invalidate-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-svg-text-backdrop-filter-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1a-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1a.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1b-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1b.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1c-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/clip-path-viewBox-1c.html: Added.
  • web-platform-tests/css/css-masking/clip-path/svg-clip-path-circle-offset-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/svg-clip-path-circle-offset-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/svg-clip-path-circle-offset.html: Added.
  • web-platform-tests/css/css-masking/clip-path/svg-clip-path-ellipse-offset-expected.html: Added.
  • web-platform-tests/css/css-masking/clip-path/svg-clip-path-ellipse-offset-ref.html: Added.
  • web-platform-tests/css/css-masking/clip-path/svg-clip-path-ellipse-offset.html: Added.
  • web-platform-tests/css/css-masking/clip-path/w3c-import.log:
  • web-platform-tests/css/css-masking/parsing/clip-path-shape-parsing-expected.txt: Added.
  • web-platform-tests/css/css-masking/parsing/clip-path-shape-parsing.html: Added.
  • web-platform-tests/css/css-masking/parsing/support/parsing-testcommon.js: Added.

(test_valid_value):

  • web-platform-tests/css/css-masking/parsing/w3c-import.log:

LayoutTests:

Updated expectations for newly imported failing clip-path tests.

6:47 PM Changeset in webkit [291948] by mmaxfield@apple.com
  • 10 edits
    768 adds in trunk

[WebGPU] Import WebGPU Conformance Test Suite
https://bugs.webkit.org/show_bug.cgi?id=238123

Reviewed by Dean Jackson.

Tools:

  • Scripts/import-webgpu-cts: Added.

LayoutTests:

This patch imports the WebGPU Conformance Test Suite, from https://github.com/gpuweb/cts, as of
git commit 09f024e50e84f191ee4546ef4021707faa376096. Rather than the CTS having a bunch of HTML
files, one for each test, the CTS instead has a single HTML file which takes a query parameter
which describes the name of a test to run. Therefore, in order to make it work with our test
infrastructure (which requires a bunch of HTML files), we create a bunch of HTML files which just
redirect to the CTS test runner, accompanied by the relevant query parameter. There is a script
in Tools/Scripts which copies the contents of the CTS and generates these HTML files.

The WebGPU Conformance Test Suite:

  1. Is disabled by default
  2. Is enabled on macOS and iOS
  3. Is disabled on macOS-WK2 and iOS-WK2 (because of https://bugs.webkit.org/show_bug.cgi?id=233621)
  4. Each test individually fails, because we're still implementing our WebGPU implementation, so each test

is individually marked as [ Pass Failure ImageOnlyFailure Timeout ].

(export.SkipTestCase):
(export.UnexpectedPassError):
(export.Fixture):
(export.Fixture.prototype.get params):
(export.Fixture.prototype.async init):
(export.Fixture.prototype.async finalize):
(export.Fixture.prototype.doInit):
(export.Fixture.prototype.doFinalize):
(export.Fixture.prototype.trackForCleanup):
(export.Fixture.prototype.tryTrackForCleanup):
(export.Fixture.prototype.debug):
(export.Fixture.prototype.skip):
(export.Fixture.prototype.warn):
(export.Fixture.prototype.fail):
(export.Fixture.prototype.async immediateAsyncExpectation):
(export.Fixture.prototype.eventualAsyncExpectation):
(export.Fixture.prototype.expectErrorValue):
(export.Fixture.prototype.shouldResolve):
(export.Fixture.prototype.async shouldReject):
(export.Fixture.prototype.async shouldThrow):
(export.Fixture.prototype.expect):
(export.Fixture.prototype.expectOK):

  • http/tests/webgpu/common/framework/fixture.js.map: Added.
  • http/tests/webgpu/common/framework/params_builder.js: Added.

(export.ParamsBuilderBase):
(export.builderIterateCasesWithSubcases):
(export.CaseParamsBuilder.prototype.iterateCasesWithSubcases):
(export.CaseParamsBuilder.prototype.Symbol.iterator):
(export.CaseParamsBuilder.prototype.expandWithParams):
(export.CaseParamsBuilder.prototype.expand):
(export.CaseParamsBuilder.prototype.combineWithParams):
(export.CaseParamsBuilder.prototype.combine):
(export.CaseParamsBuilder.prototype.filter):
(export.CaseParamsBuilder.prototype.unless):
(export.CaseParamsBuilder.prototype.beginSubcases):
(export.CaseParamsBuilder):
(export.const.kUnitCaseParamsBuilder.new.CaseParamsBuilder):
(export.SubcaseParamsBuilder):
(export.SubcaseParamsBuilder.prototype.iterateCasesWithSubcases):
(export.SubcaseParamsBuilder.prototype.expandWithParams):
(export.SubcaseParamsBuilder.prototype.expand):
(export.SubcaseParamsBuilder.prototype.combineWithParams):
(export.SubcaseParamsBuilder.prototype.combine):
(export.SubcaseParamsBuilder.prototype.filter):
(export.SubcaseParamsBuilder.prototype.unless):
(filterGenerator):

  • http/tests/webgpu/common/framework/params_builder.js.map: Added.
  • http/tests/webgpu/common/framework/resources.js: Added.

(export.getResourcePath):
(export.setBaseResourcePath):

  • http/tests/webgpu/common/framework/resources.js.map: Added.
  • http/tests/webgpu/common/framework/test_group.js: Added.
  • http/tests/webgpu/common/framework/test_group.js.map: Added.
  • http/tests/webgpu/common/internal/file_loader.js: Added.

(export.TestFileLoader.prototype.importSpecFile):
(export.TestFileLoader.prototype.async loadTree):
(export.TestFileLoader.prototype.async loadCases):
(export.TestFileLoader):
(export.DefaultTestFileLoader.prototype.async listing):
(export.DefaultTestFileLoader.prototype.import):
(export.DefaultTestFileLoader):

  • http/tests/webgpu/common/internal/file_loader.js.map: Added.
  • http/tests/webgpu/common/internal/logging/log_message.js: Added.

(export.LogMessageWithStack):
(export.LogMessageWithStack.prototype.setStackHidden):
(export.LogMessageWithStack.prototype.toJSON):
(export.prettyPrintLog):

  • http/tests/webgpu/common/internal/logging/log_message.js.map: Added.
  • http/tests/webgpu/common/internal/logging/logger.js: Added.

(export.Logger):
(export.Logger.prototype.record):
(export.Logger.prototype.asJSON):

  • http/tests/webgpu/common/internal/logging/logger.js.map: Added.
  • http/tests/webgpu/common/internal/logging/result.js: Added.
  • http/tests/webgpu/common/internal/logging/result.js.map: Added.
  • http/tests/webgpu/common/internal/logging/test_case_recorder.js: Added.

(export.TestCaseRecorder):
(export.TestCaseRecorder.prototype.start):
(export.TestCaseRecorder.prototype.finish):
(export.TestCaseRecorder.prototype.beginSubCase):
(export.TestCaseRecorder.prototype.endSubCase):
(export.TestCaseRecorder.prototype.injectResult):
(export.TestCaseRecorder.prototype.debug):
(export.TestCaseRecorder.prototype.info):
(export.TestCaseRecorder.prototype.skipped):
(export.TestCaseRecorder.prototype.warn):
(export.TestCaseRecorder.prototype.expectationFailed):
(export.TestCaseRecorder.prototype.validationFailed):
(export.TestCaseRecorder.prototype.threw):
(export.TestCaseRecorder.prototype.logImpl):

  • http/tests/webgpu/common/internal/logging/test_case_recorder.js.map: Added.
  • http/tests/webgpu/common/internal/params_utils.js: Added.

(export.paramKeyIsPublic):
(export.extractPublicParams):
(export.publicParamsEquals):
(typeAssert):
(export.mergeParams):

  • http/tests/webgpu/common/internal/params_utils.js.map: Added.
  • http/tests/webgpu/common/internal/query/compare.js: Added.

(export.compareQueries):
(compareOneLevel):
(comparePaths):
(export.comparePublicParamsPaths):

  • http/tests/webgpu/common/internal/query/compare.js.map: Added.
  • http/tests/webgpu/common/internal/query/encode_selectively.js: Added.

(export.encodeURIComponentSelectively):

  • http/tests/webgpu/common/internal/query/encode_selectively.js.map: Added.
  • http/tests/webgpu/common/internal/query/json_param_value.js: Added.

(stringifyFilter):
(export.stringifyParamValue):
(export.stringifyParamValueUniquely):
(export.parseParamValue):

  • http/tests/webgpu/common/internal/query/json_param_value.js.map: Added.
  • http/tests/webgpu/common/internal/query/parseQuery.js: Added.

(export.parseQuery):
(parseQueryImpl):
(parseBigPart):
(parseSingleParam):
(parseSingleParamValue):

  • http/tests/webgpu/common/internal/query/parseQuery.js.map: Added.
  • http/tests/webgpu/common/internal/query/query.js: Added.

(export.TestQueryMultiFile):
(export.TestQueryMultiFile.prototype.get depthInLevel):
(export.TestQueryMultiFile.prototype.toString):
(export.TestQueryMultiFile.prototype.toStringHelper):
(export.TestQueryMultiTest):
(export.TestQueryMultiTest.prototype.get depthInLevel):
(export.TestQueryMultiTest.prototype.toStringHelper):
(export.TestQueryMultiCase):
(export.TestQueryMultiCase.prototype.get depthInLevel):
(export.TestQueryMultiCase.prototype.toStringHelper):
(export.TestQuerySingleCase.prototype.get depthInLevel):
(export.TestQuerySingleCase.prototype.toStringHelper):
(export.TestQuerySingleCase):
(export.parseExpectationsForTestQuery):
(export.relativeQueryString):

  • http/tests/webgpu/common/internal/query/query.js.map: Added.
  • http/tests/webgpu/common/internal/query/separators.js: Added.
  • http/tests/webgpu/common/internal/query/separators.js.map: Added.
  • http/tests/webgpu/common/internal/query/stringify_params.js: Added.

(export.stringifyPublicParams):
(export.stringifyPublicParamsUniquely):
(export.stringifySingleParam):
(stringifySingleParamUniquely):
(stringifySingleParamValue):

  • http/tests/webgpu/common/internal/query/stringify_params.js.map: Added.
  • http/tests/webgpu/common/internal/query/validQueryPart.js: Added.
  • http/tests/webgpu/common/internal/query/validQueryPart.js.map: Added.
  • http/tests/webgpu/common/internal/stack.js: Added.

(export.extractImportantStackTrace):

  • http/tests/webgpu/common/internal/stack.js.map: Added.
  • http/tests/webgpu/common/internal/test_group.js: Added.

(export.makeTestGroup):
(export.makeTestGroupForUnitTesting):
(export.TestGroup):
(export.TestGroup.prototype.iterate):
(export.TestGroup.prototype.checkName):
(export.TestGroup.prototype.test):
(export.TestGroup.prototype.validate):
(TestBuilder):
(TestBuilder.prototype.desc):
(TestBuilder.prototype.uniqueId):
(TestBuilder.prototype.specURL):
(TestBuilder.prototype.fn):
(TestBuilder.prototype.batch):
(TestBuilder.prototype.unimplemented):
(TestBuilder.prototype.validate):
(TestBuilder.prototype.params):
(TestBuilder.prototype.paramsSimple):
(TestBuilder.prototype.paramsSubcasesOnly):
(TestBuilder.prototype.iterate):
(prototype.async runTest):
(prototype.async run):

  • http/tests/webgpu/common/internal/test_group.js.map: Added.
  • http/tests/webgpu/common/internal/test_suite_listing.js: Added.
  • http/tests/webgpu/common/internal/test_suite_listing.js.map: Added.
  • http/tests/webgpu/common/internal/tree.js: Added.

(export.TestTree):
(export.TestTree.prototype.iterateCollapsedNodes):
(export.TestTree.prototype.iterateLeaves):
(export.TestTree.prototype.dissolveSingleChildTrees):
(export.TestTree.prototype.toString):
(export.TestTree.iterateSubtreeNodes):
(export.TestTree.iterateSubtreeLeaves):
(export.TestTree.propagateCounts):
(export.TestTree.countsToString):
(export.TestTree.subtreeToString):
(export.async loadTreeForQuery):
(setSubtreeDescriptionAndCountTODOs):
(makeTreeForSuite):
(addSubtreeForDirPath):
(addSubtreeForFilePath):
(addSubtreeForTestPath):
(getOrInsertSubtree):
(insertLeaf):
(dissolveSingleChildTrees):
(readableNameForCase):

  • http/tests/webgpu/common/internal/tree.js.map: Added.
  • http/tests/webgpu/common/internal/util.js: Added.

(export.StacklessError):

  • http/tests/webgpu/common/internal/util.js.map: Added.
  • http/tests/webgpu/common/internal/version.js: Added.
  • http/tests/webgpu/common/runtime/cmdline.js: Added.

(usage):
(i.a.startsWith):

  • http/tests/webgpu/common/runtime/cmdline.js.map: Added.
  • http/tests/webgpu/common/runtime/helper/options.js: Added.

(getWindowURL):
(export.optionEnabled):

  • http/tests/webgpu/common/runtime/helper/options.js.map: Added.
  • http/tests/webgpu/common/runtime/helper/sys.js: Added.

(node):
(deno.existsSync):
(deno):

  • http/tests/webgpu/common/runtime/helper/sys.js.map: Added.
  • http/tests/webgpu/common/runtime/helper/test_worker-worker.js: Added.

(self.onmessage.async ev):

  • http/tests/webgpu/common/runtime/helper/test_worker-worker.js.map: Added.
  • http/tests/webgpu/common/runtime/helper/test_worker.js: Added.

(export.TestWorker):
(export.TestWorker.prototype.async run):

  • http/tests/webgpu/common/runtime/helper/test_worker.js.map: Added.
  • http/tests/webgpu/common/runtime/server.js: Added.

(usage):

  • http/tests/webgpu/common/runtime/server.js.map: Added.
  • http/tests/webgpu/common/runtime/standalone.js: Added.

(window.onbeforeunload):
(emptySubtreeResult):
(mergeSubtreeResults):
(memoize):
(makeTreeNodeHTML):
(makeCaseHTML.const.runSubtree.async if):
(makeCaseHTML):
(const.runMySubtree.async if):
(makeSubtreeHTML):
(const.runMySubtree.async const):
(makeSubtreeChildrenHTML):
(consoleLogError):
(async appendTo):
(makeTreeNodeHeaderHTML):
(async const):
(qs.push):

  • http/tests/webgpu/common/runtime/standalone.js.map: Added.
  • http/tests/webgpu/common/runtime/wpt.js: Added.

(const.wpt_fn.async const):
(async const):

  • http/tests/webgpu/common/runtime/wpt.js.map: Added.
  • http/tests/webgpu/common/tools/checklist.js: Added.

(usage):
(async loadQueryListFromTextFile):
(checkForOverlappingQueries):
(async console):
(catch):

  • http/tests/webgpu/common/tools/checklist.js.map: Added.
  • http/tests/webgpu/common/tools/crawl.js: Added.

(async crawlFilesRecursively.async const):
(async crawlFilesRecursively):
(async export.async crawl):
(export.makeListing):

  • http/tests/webgpu/common/tools/crawl.js.map: Added.
  • http/tests/webgpu/common/tools/dev_server.js: Added.

(const.babelConfig.string_appeared_here):
(dirtyCompileCache):
(dirtyListingAndCompileCache):
(app.use):
(async req):
(port.const.iface.of.Object.values.os.networkInterfaces):

  • http/tests/webgpu/common/tools/dev_server.js.map: Added.
  • http/tests/webgpu/common/tools/gen_listings.js: Added.

(usage):
(argv.indexOf):
(async for):

  • http/tests/webgpu/common/tools/gen_listings.js.map: Added.
  • http/tests/webgpu/common/tools/gen_wpt_cts_html.js: Added.

(printUsageAndExit):
(async let):
(expLoop):
(const.prefix.of.argsPrefixes.of.tree.iterateCollapsedNodes):
(catch):
(async generateFile):

  • http/tests/webgpu/common/tools/gen_wpt_cts_html.js.map: Added.
  • http/tests/webgpu/common/tools/version.js: Added.
  • http/tests/webgpu/common/tools/version.js.map: Added.
  • http/tests/webgpu/common/util/collect_garbage.js: Added.

(export.async attemptGarbageCollection.gcRec):
(export.async attemptGarbageCollection):

  • http/tests/webgpu/common/util/collect_garbage.js.map: Added.
  • http/tests/webgpu/common/util/colors.js: Added.
  • http/tests/webgpu/common/util/colors.js.map: Added.
  • http/tests/webgpu/common/util/data_tables.js: Added.

(export.keysOf):
(export.numericKeysOf):
(export.makeTable):

  • http/tests/webgpu/common/util/data_tables.js.map: Added.
  • http/tests/webgpu/common/util/navigator_gpu.js: Added.

(defaultGPUProvider):
(export.setGPUProvider):
(export.getGPU):

  • http/tests/webgpu/common/util/navigator_gpu.js.map: Added.
  • http/tests/webgpu/common/util/preprocessor.js: Added.

(prototype.checkDepth):
(prototype.applyTo):
(Else.prototype.applyTo):
(Else):
(export.pp):

  • http/tests/webgpu/common/util/preprocessor.js.map: Added.
  • http/tests/webgpu/common/util/timeout.js: Added.
  • http/tests/webgpu/common/util/timeout.js.map: Added.
  • http/tests/webgpu/common/util/types.js: Added.

(export.assertTypeTrue):

  • http/tests/webgpu/common/util/types.js.map: Added.
  • http/tests/webgpu/common/util/util.js: Added.

(export.ErrorWithExtra):
(export.assert):
(export.assertOK):
(export.async assertReject):
(export.unreachable):
(export.now):
(export.resolveOnTimeout):
(export.PromiseTimeoutError):
(export.rejectOnTimeout):
(export.raceWithRejectOnTimeout):
(export.sortObjectByKey):
(export.objectEquals):
(export.range):
(export.iterRange):
(subarrayAsU8):

  • http/tests/webgpu/common/util/util.js.map: Added.
  • http/tests/webgpu/cts.https-expected.txt: Added.
  • http/tests/webgpu/cts.https.html: Added.
  • http/tests/webgpu/resources/Di-3d.png: Added.
  • http/tests/webgpu/resources/README.md: Added.
  • http/tests/webgpu/resources/red-green.bt601.vp9.webm: Added.
  • http/tests/webgpu/resources/red-green.mp4: Added.
  • http/tests/webgpu/resources/red-green.theora.ogv: Added.
  • http/tests/webgpu/resources/red-green.webmvp8.webm: Added.
  • http/tests/webgpu/webgpu/api/operation/adapter/requestDevice-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/adapter/requestDevice.html: Added.
  • http/tests/webgpu/webgpu/api/operation/adapter/requestDevice.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/adapter/requestDevice_limits-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/adapter/requestDevice_limits.html: Added.
  • http/tests/webgpu/webgpu/api/operation/adapter/requestDevice_limits.spec.js: Added.

(g.test.string_appeared_here.desc.Test.that.specifying.limits.that.aren.requestDevice.to.reject.fn.async t):
(string_appeared_here.fn.async t):
(65535.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/buffers/map-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/buffers/map.html: Added.
  • http/tests/webgpu/webgpu/api/operation/buffers/map.spec.js: Added.

(and.the.contents.of.buffers.returned.by.getMappedRange.on.buffers.are.mapped.read.mapped.write.mappedAtCreation.range.used.getMappedRange.mapRegion.used.mapAsync.mapRegionBoundModes.is.used.to.get mapRegion):
(getRegionForMap):

  • http/tests/webgpu/webgpu/api/operation/buffers/map_ArrayBuffer-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/buffers/map_ArrayBuffer.html: Added.
  • http/tests/webgpu/webgpu/api/operation/buffers/map_ArrayBuffer.spec.js: Added.

(string_appeared_here.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/buffers/map_detach-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/buffers/map_detach.html: Added.
  • http/tests/webgpu/webgpu/api/operation/buffers/map_detach.spec.js: Added.

(unless.p.p.mappedAtCreation.false.p.mapMode.undefined.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/buffers/map_oom-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/buffers/map_oom.html: Added.
  • http/tests/webgpu/webgpu/api/operation/buffers/map_oom.spec.js: Added.

(true.fn.async t):
(kBufferUsages.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/buffers/mapping_test.js: Added.

(export.MappingTest.prototype.checkMapWrite):
(export.MappingTest.prototype.checkMapWriteZeroed):
(export.MappingTest.prototype.expectZero):
(export.MappingTest):

  • http/tests/webgpu/webgpu/api/operation/buffers/threading-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/buffers/threading.html: Added.
  • http/tests/webgpu/webgpu/api/operation/buffers/threading.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/basic-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/basic.html: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/basic.spec.js: Added.

(g.test.string_appeared_here.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/command_buffer/clearBuffer-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/clearBuffer.html: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/clearBuffer.spec.js: Added.

(fn.async t):

  • http/tests/webgpu/webgpu/api/operation/command_buffer/copyBufferToBuffer-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/copyBufferToBuffer.html: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/copyBufferToBuffer.spec.js: Added.

(p.dstOffset.p.copySize.8.fn.async t):
(and.check.contents.of.both.fn.async t):
(then.checks.the.dst.buffer.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/command_buffer/copyTextureToTexture-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/copyTextureToTexture.html: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/copyTextureToTexture.spec.js: Added.

(F.prototype.GetInitialData):
(F.prototype.GetInitialDataPerMipLevel):
(F.prototype.GetInitialStencilDataPerMipLevel):
(F.prototype.DoCopyTextureToTextureTest):
(F.prototype.InitializeStencilAspect):
(F.prototype.VerifyStencilAspect):
(F.prototype.GetRenderPipelineForT2TCopyWithDepthTests):
(F.prototype.GetBindGroupLayoutForT2TCopyWithDepthTests):
(F.prototype.GetBindGroupForT2TCopyWithDepthTests):
(F.prototype.InitializeDepthAspect):
(F.prototype.VerifyDepthAspect):
(F):
(kRegularTextureFormats.filter):
(3.unless.p.p.dimension.string_appeared_here.p.srcCopyLevel.0.p.dstCopyLevel.0.fn.async t):
(kCompressedTextureFormats.filter):
(2.fn.async t):
(3.fn.async t):
(g.test.string_appeared_here.desc.Validate.the.correctness.of.copyTextureToTexture.with.depth.and.stencil.aspect.For.all.the.texture.formats.with.stencil.aspect.Initialize.the.stencil.aspect.of.the.source.texture.with.writeTexture.Copy.the.stencil.aspect.from.the.source.texture.into.the.destination.texture.Copy.the.stencil.aspect.of.the.destination.texture.into.another.staging.buffer.and.check.its.content.Test.the.copies.from.into.zero.non.zero.array.layer.mipmap.levels.Test.copying.multiple.array.layers.For.all.the.texture.formats.with.depth.aspect.Initialize.the.depth.aspect.of.the.source.texture.with.a.draw.call.Copy.the.depth.aspect.from.the.source.texture.into.the.destination.texture.Validate.the.content.in.the.destination.texture.with.the.depth.comparison.string_appeared_here):
(async fn):

  • http/tests/webgpu/webgpu/api/operation/command_buffer/image_copy-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/image_copy.html: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/image_copy.spec.js: Added.

(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.number.instead.of.GPUExtent3DDict.copy_various_mip_levels.test.that.copying.various.mip.levels.works.all.formats.Also.covers.special.code.paths.the.physical.size.of.the.subresource.is.not.equal.to.the.logical.size.bufferSize.offset.bytesPerImage.copyExtent.depthOrArrayLayers.and.copyExtent.needs.to.be.clamped.copy_with_no_image_or_slice_padding_and_undefined_values.test.that.when.copying.a.single.row.we.can.set any.bytesPerRow.value.and.when.copying.a.single.slice.we.can.set rowsPerImage):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.number.instead.of.GPUExtent3DDict.copy_various_mip_levels.test.that.copying.various.mip.levels.works.all.formats.Also.covers.special.code.paths.the.physical.size.of.the.subresource.is.not.equal.to.the.logical.size.bufferSize.offset.bytesPerImage.copyExtent.depthOrArrayLayers.and.copyExtent.needs.to.be.clamped.copy_with_no_image_or_slice_padding_and_undefined_values.test.that.when.copying.a.single.row.we.can.set any):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.getTexelOffsetInBytes):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.iterateBlockRows):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.generateData):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.undefDataLayoutIfNeeded):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.undefOrArrayCopyViewIfNeeded):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.arrayCopySizeIfNeeded):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.copyTextureToBufferWithAppliedArguments):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.uploadLinearTextureDataToTextureSubBox):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.copyPartialTextureToBufferAndCheckContents):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.copyWholeTextureToNewBuffer):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.updateLinearTextureDataSubBox):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.copyWholeTextureToBufferAndCheckContentsWithUpdatedData):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.async uploadTextureAndVerifyCopy):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.async DoUploadToStencilTest):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.async DoCopyFromStencilTest):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.async checkStencilTextureContent):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.initializeDepthAspectWithRendering):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest.prototype.DoCopyTextureToBufferWithDepthAspectTest):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.ImageCopyTest):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including.formatCanBeTested):
(0.and.is.isnstring_appeared_heret.power.of.2.values.also.including):

  • http/tests/webgpu/webgpu/api/operation/command_buffer/programmable/programmable_state_test.js: Added.

(export.ProgrammableStateTest.prototype.getBindGroupLayout):
(export.ProgrammableStateTest.prototype.getBindGroupLayouts):
(export.ProgrammableStateTest.prototype.createBindGroup):
(export.ProgrammableStateTest.prototype.setBindGroup):
(export.ProgrammableStateTest.prototype.createBindingStatePipeline):
(export.ProgrammableStateTest.prototype.setPipeline):
(export.ProgrammableStateTest.prototype.dispatchOrDraw):
(export.ProgrammableStateTest):

  • http/tests/webgpu/webgpu/api/operation/command_buffer/programmable/state_tracking-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/programmable/state_tracking.html: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/programmable/state_tracking.spec.js: Added.

(export.const.description.Ensure.state.is.set correctly):
(fn.async t):
(g.test.string_appeared_here.desc.Test.that.the.order.in.you.set the):

  • http/tests/webgpu/webgpu/api/operation/command_buffer/render/dynamic_state-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/render/dynamic_state.html: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/render/dynamic_state.spec.js: Added.

(Set.the.state.in.different.ways.to.make.sure.it.gets.the.correct.value.in.the.end.state.unset.default.state.explicitly.set once):
(set import):

  • http/tests/webgpu/webgpu/api/operation/command_buffer/render/state_tracking-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/render/state_tracking.html: Added.
  • http/tests/webgpu/webgpu/api/operation/command_buffer/render/state_tracking.spec.js: Added.

(export.const.description.Ensure.state.is.set correctly):
(VertexAndIndexStateTrackingTest.prototype.GetRenderPipelineForTest):
(VertexAndIndexStateTrackingTest):
(size.multiple.times.in.different.orders.still.keeps.the.correctness.of.each.draw.call.fn.async t):
(and.check.they.were.drawn.correctly.fn.async t):
(the.vertex.buffer.stride.is.part.of.SetVertexBuffer.instead.of.the.pipeline.fn.async t):
(The.test.verifies.both.of.these.two.draw.calls.work.correctly.fn.async t):
(g.test.string_appeared_here.desc.Test.that.setting.not.setting.the.index.buffer.does.not.impact.a.non.indexed.draw.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/compute/basic-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/compute/basic.html: Added.
  • http/tests/webgpu/webgpu/api/operation/compute/basic.spec.js: Added.

(g.test.string_appeared_here.fn.async t):
(kMaxComputeWorkgroupSize.p.largeDimension.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/compute_pipeline/entry_point_name-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/compute_pipeline/entry_point_name.html: Added.
  • http/tests/webgpu/webgpu/api/operation/compute_pipeline/entry_point_name.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/device/lost-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/device/lost.html: Added.
  • http/tests/webgpu/webgpu/api/operation/device/lost.spec.js: Added.

(DeviceLostTests.prototype.getDeviceLostWithTimeout):
(DeviceLostTests.prototype.expectDeviceDestroyed):
(DeviceLostTests):
(async export):

  • http/tests/webgpu/webgpu/api/operation/labels-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/labels.html: Added.
  • http/tests/webgpu/webgpu/api/operation/labels.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/buffer_sync_test.js: Added.

(export.BufferSyncTest.prototype.async createBufferWithValue):
(export.BufferSyncTest.prototype.async createTextureWithValue):
(export.BufferSyncTest.prototype.createBindGroup):
(export.BufferSyncTest.prototype.createStorageWriteComputePipeline):
(export.BufferSyncTest.prototype.createStorageWriteRenderPipeline):
(export.BufferSyncTest.prototype.beginSimpleRenderPass):
(export.BufferSyncTest.prototype.encodeWriteAsStorageBufferInRenderPass):
(export.BufferSyncTest.prototype.encodeWriteAsStorageBufferInComputePass):
(export.BufferSyncTest.prototype.async encodeWriteByB2BCopy):
(export.BufferSyncTest.prototype.async encodeWriteByT2BCopy):
(export.BufferSyncTest.prototype.writeByWriteBuffer):
(export.BufferSyncTest.prototype.async encodeWriteOp):
(export.BufferSyncTest.prototype.async createCommandBufferWithWriteOp):
(export.BufferSyncTest.prototype.async submitWriteOp):
(export.BufferSyncTest.prototype.verifyData):
(export.BufferSyncTest.prototype.verifyDataTwoValidValues):
(export.BufferSyncTest):

  • http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/rw_and_wr-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/rw_and_wr.html: Added.
  • http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/rw_and_wr.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/ww-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/ww.html: Added.
  • http/tests/webgpu/webgpu/api/operation/memory_sync/buffer/ww.spec.js: Added.

(kAllWriteOps.fn.async t):
(true.fn.async t):
(g.test.string_appeared_here.desc.Test.write.after.write.operations.in.the.same.render.bundle.The.first.write.will.write.1.into.a.storage.buffer.The.second.write.will.write.2.into.the.same.buffer.in.the.same.pass.Expected.data.in.buffer.is.either.1.or.2.fn.async t):
(g.test.string_appeared_here.desc.Test.write.after.write.operations.in.the.same.compute.pass.The.first.write.will.write.1.into.a.storage.buffer.The.second.write.will.write.2.into.the.same.buffer.in.the.same.pass.Expected.data.in.buffer.is.2.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/memory_sync/texture/same_subresource-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/memory_sync/texture/same_subresource.html: Added.
  • http/tests/webgpu/webgpu/api/operation/memory_sync/texture/same_subresource.spec.js: Added.

(TextureSyncTestHelper):
(TextureSyncTestHelper.prototype.performReadOp):
(TextureSyncTestHelper.prototype.performWriteOp):
(TextureSyncTestHelper.prototype.ensureSubmit):
(TextureSyncTestHelper.prototype.popContext):
(TextureSyncTestHelper.prototype.makeDummyAttachment):
(TextureSyncTestHelper.prototype.ensureContext):
(TextureSyncTestHelper.prototype.flushRenderBundles):
(TextureSyncTestHelper.prototype.flushCommandBuffers):
(TextureSyncTestHelper.prototype.ensureBoundary):
(p.kBoundaryInfo.p.boundary.contexts.expandWithParams):

  • http/tests/webgpu/webgpu/api/operation/memory_sync/texture/texture_sync_test.js: Added.

(combineContexts):
(export.checkOpsValidForContext):

  • http/tests/webgpu/webgpu/api/operation/onSubmittedWorkDone-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/onSubmittedWorkDone.html: Added.
  • http/tests/webgpu/webgpu/api/operation/onSubmittedWorkDone.spec.js: Added.

(g.test.string_appeared_here.desc.Await.onSubmittedWorkDone.once.without.having.submitted.any.work.fn.async t):
(g.test.string_appeared_here.desc.Await.onSubmittedWorkDone.once.after.submitting.some.work.writeBuffer.fn.async t):
(g.test.string_appeared_here.desc.Await.1000.onSubmittedWorkDone.calls.in.serial.fn.async t):
(g.test.string_appeared_here.desc.Await.1000.onSubmittedWorkDone.calls.in.parallel.with.Promise.all.fn.async t):
(g.test.string_appeared_here.desc.Issue.200.onSubmittedWorkDone.calls.and.make.sure.they.resolve.in.the.right.order.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/pipeline/default_layout-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/pipeline/default_layout.html: Added.
  • http/tests/webgpu/webgpu/api/operation/pipeline/default_layout.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/queue/writeBuffer-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/queue/writeBuffer.html: Added.
  • http/tests/webgpu/webgpu/api/operation/queue/writeBuffer.spec.js: Added.

(F.prototype.calculateRequiredBufferSize):
(F.prototype.testWriteBuffer):
(F):

  • http/tests/webgpu/webgpu/api/operation/render_pass/clear_value-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pass/clear_value.html: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pass/clear_value.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pass/resolve-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pass/resolve.html: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pass/resolve.spec.js: Added.

(some.with.and.some.without.a.resolveTarget.renderPass.storeOp.set to):
(1.fn.t.i.t.params.slotsToResolve.includes):

  • http/tests/webgpu/webgpu/api/operation/render_pass/storeOp-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pass/storeOp.html: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pass/storeOp.spec.js: Added.

(work.correctly.a.render.pass.with.a.color.attachment.All.renderable.color.formats.mip.level.set to):
(array.layer.set to):
(2D.textures.TODO.depth.slice.set to):
(work.correctly.a.render.pass.with.a.depth.stencil.attachment.All.renderable.depth.stencil.formats.mip.level.set to):
(2D.textures.TODO.test.depth24plus.and.depth24plus.stencil8.formats.TODO.test.that.depth.and.stencil.aspects.are.set separately.TODO.depth.slice.set to):
(2D.textures.TODO.test.depth24plus.and.depth24plus.stencil8.formats.TODO.test.that.depth.and.stencil.aspects.are.set separately):
(kStoreOps.fn.t.else):
(kEncodableTextureFormats.filter):
(kArrayLayers.fn.t.else):
(kNumColorAttachments.fn.t.i.else):

  • http/tests/webgpu/webgpu/api/operation/render_pass/storeop2-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pass/storeop2.html: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pass/storeop2.spec.js: Added.

(fn.async t):

  • http/tests/webgpu/webgpu/api/operation/render_pipeline/alpha_to_coverage-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/alpha_to_coverage.html: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/alpha_to_coverage.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/culling_tests-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/culling_tests.html: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/culling_tests.spec.js: Added.

(faceIsCulled):

  • http/tests/webgpu/webgpu/api/operation/render_pipeline/entry_point_name-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/entry_point_name.html: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/entry_point_name.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/pipeline_output_targets-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/pipeline_output_targets.html: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/pipeline_output_targets.spec.js: Added.

(F.prototype.getFragmentShaderCode):
(F):
(4.filter.x.x.componentCount.kTexelRepresentationInfo.x.format.componentOrder.length.fn.async t):
(filter.x.x.output.length.kTexelRepresentationInfo.x.format.componentOrder.length.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/render_pipeline/primitive_topology-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/primitive_topology.html: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/primitive_topology.spec.js: Added.

(v1.v3.v5.Topology.triangle.strip.4.triangles.v2.v4.v6.Triangle.list.locations.None.Center.of.two.triangle):
(Point2D):
(Point2D.prototype.toNDC):
(Point2D.getMidpoint):
(Point2D.getCentroid):
(getPointTestLocations):
(getLineTestLocations):
(getPrimitiveRestartLineTestLocations):
(getLineStripTestLocations):
(getTriangleListTestLocations):
(getTriangleStripTestLocations):
(getDefaultTestLocations):

  • http/tests/webgpu/webgpu/api/operation/render_pipeline/sample_mask-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/sample_mask.html: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/sample_mask.spec.js: Added.

(fragment.shader.output.mask):

  • http/tests/webgpu/webgpu/api/operation/render_pipeline/vertex_only_render_pipeline-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/vertex_only_render_pipeline.html: Added.
  • http/tests/webgpu/webgpu/api/operation/render_pipeline/vertex_only_render_pipeline.spec.js: Added.

(F):

  • http/tests/webgpu/webgpu/api/operation/rendering/basic-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/basic.html: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/basic.spec.js: Added.

(g.test.string_appeared_here.fn.async t):
(false.fn.async t.async const):
(false.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/rendering/blending-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/blending.html: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/blending.spec.js: Added.

(mapColor):
(computeBlendFactor):
(computeBlendOperation):
(fn.t.switch):

  • http/tests/webgpu/webgpu/api/operation/rendering/depth-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/depth.html: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/depth.spec.js: Added.

(g.test.string_appeared_here.desc.Tests.each.depth.compare.works):

  • http/tests/webgpu/webgpu/api/operation/rendering/depth_clip_clamp-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/depth_clip_clamp.html: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/depth_clip_clamp.spec.js: Added.

(fn.async t):

  • http/tests/webgpu/webgpu/api/operation/rendering/draw-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/draw.html: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/draw.spec.js: Added.

(and.base_vertex.is.used.to.select.the.second.set The):
(9.undefined.fn.async t):
(string_appeared_here.unless.p.p.vertex_attribute_count.p.vertex_buffer_count.unless.p.p.step_mode.string_appeared_here.p.vertex_buffer_count.1.fn.t.switch):
(string_appeared_here.unless.p.p.vertex_attribute_count.p.vertex_buffer_count.unless.p.p.step_mode.string_appeared_here.p.vertex_buffer_count.1.fn.t.b.switch):
(string_appeared_here.unless.p.p.vertex_attribute_count.p.vertex_buffer_count.unless.p.p.step_mode.string_appeared_here.p.vertex_buffer_count.1.fn.t.vertexIndex.instanceIndex.bufferLayouts.forEach):
(string_appeared_here.unless.p.p.vertex_attribute_count.p.vertex_buffer_count.unless.p.p.step_mode.string_appeared_here.p.vertex_buffer_count.1.fn.t.const.pipeline.t.device.createRenderPipeline.vertex.module.t.device.createShaderModule.stage.vertex.fn.main.input.Inputs.Outputs.join):
(string_appeared_here.unless.p.p.vertex_attribute_count.p.vertex_buffer_count.unless.p.p.step_mode.string_appeared_here.p.vertex_buffer_count.1.fn.t.const.pipeline.t.device.createRenderPipeline.fragment.module.t.device.createShaderModule.stage.fragment.fn.main):

  • http/tests/webgpu/webgpu/api/operation/rendering/indirect_draw-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/indirect_draw.html: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/indirect_draw.spec.js: Added.

(F.prototype.MakeIndexBuffer):
(F.prototype.MakeVertexBuffer):
(F.prototype.MakeIndirectBuffer):
(F):

  • http/tests/webgpu/webgpu/api/operation/rendering/robust_access_index-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/robust_access_index.html: Added.
  • http/tests/webgpu/webgpu/api/operation/rendering/robust_access_index.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/resource_init/buffer-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/resource_init/buffer.html: Added.
  • http/tests/webgpu/webgpu/api/operation/resource_init/buffer.spec.js: Added.

(F.prototype.GetBufferUsageFromMapMode):
(F.prototype.async CheckGPUBufferContent):
(F.prototype.TestBufferZeroInitInBindGroup):
(F.prototype.CreateRenderPipelineForTest):
(F.prototype.RecordInitializeTextureColor):
(F.prototype.CheckBufferAndOutputTexture):
(F):
(12.fn.async t):
(kMapModeOptions.fn.async t):
(16.fn.async t):
(kBufferUsagesForMappedAtCreationTests.fn.async t):
(the.contents.of.the.GPUBuffer.have.already.been.initialized.to.0.fn.async t):
(8.fn.async t):
(fn.async t):
(g.test.string_appeared_here.desc.Verify.when.we.resolve.a.query.set into):

  • http/tests/webgpu/webgpu/api/operation/resource_init/check_texture/by_copy.js: Added.

(export.const.checkContentsByBufferCopy):
(export.const.checkContentsByTextureCopy):

  • http/tests/webgpu/webgpu/api/operation/resource_init/check_texture/by_ds_test.js: Added.

(makeFullscreenVertexModule):
(const.checkContents):

  • http/tests/webgpu/webgpu/api/operation/resource_init/check_texture/by_sampling.js: Added.

(export.const.checkContentsBySampling):

  • http/tests/webgpu/webgpu/api/operation/resource_init/texture_zero-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/resource_init/texture_zero.html: Added.
  • http/tests/webgpu/webgpu/api/operation/resource_init/texture_zero.spec.js: Added.

(initializedStateAsColor):
(getRequiredTextureUsage):
(export.TextureZeroInitTest):
(export.TextureZeroInitTest.prototype.get textureWidth):
(export.TextureZeroInitTest.prototype.get textureHeight):
(export.TextureZeroInitTest.prototype.get textureDepth):
(export.TextureZeroInitTest.prototype.get textureDepthOrArrayLayers):
(export.TextureZeroInitTest.prototype.iterateUninitializedSubresources):
(export.TextureZeroInitTest.prototype.iterateInitializedSubresources):
(export.TextureZeroInitTest.prototype.generateTextureViewDescriptorsForRendering):
(export.TextureZeroInitTest.prototype.initializeWithStoreOp):
(export.TextureZeroInitTest.prototype.initializeWithCopy):
(export.TextureZeroInitTest.prototype.initializeTexture):
(export.TextureZeroInitTest.prototype.discardTexture):
(kTextureAspects.unless):
(kUninitializeMethods.unless):
(expandWithParams):
(sampleCount.1.layerCount.1.unless):
(true.filter):
(g.test.string_appeared_here.params.kTestParams.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/sampling/anisotropy-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/sampling/anisotropy.html: Added.
  • http/tests/webgpu/webgpu/api/operation/sampling/anisotropy.spec.js: Added.

(by.testing.how.many.unique.sample.values.come.out.of.the.sample.operation.Check.anisotropy.is.done.in.the.correct.direction.by.having.a.2D.gradient.and.checking.we.get more):
(SamplerAnisotropicFilteringSlantedPlaneTest.prototype.copyRenderTargetToBuffer):
(SamplerAnisotropicFilteringSlantedPlaneTest.prototype.async init):
(SamplerAnisotropicFilteringSlantedPlaneTest.prototype.drawSlantedPlane):
(SamplerAnisotropicFilteringSlantedPlaneTest):
(as.the.sampling.rate.is.different.We.will.also.check.those.large.maxAnisotropy.values.are.clamped.so.that.rendering.is.the.same.as.the.supported.upper.limit.say.16.A.similar.webgl.demo.is.at.https.fn.async t):
(fn.async t):

  • http/tests/webgpu/webgpu/api/operation/sampling/filter_mode-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/sampling/filter_mode.html: Added.
  • http/tests/webgpu/webgpu/api/operation/sampling/filter_mode.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/sampling/lod_clamp-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/sampling/lod_clamp.html: Added.
  • http/tests/webgpu/webgpu/api/operation/sampling/lod_clamp.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/shader_module/compilation_info-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/shader_module/compilation_info.html: Added.
  • http/tests/webgpu/webgpu/api/operation/shader_module/compilation_info.spec.js: Added.

(return.vec4.f32):
(return.unknown):
(g.test.string_appeared_here.desc.Test.that.compilationInfo.can.be.called.on.any.ShaderModule.Test.both.valid.and.invalid.shader.modules.Test.shader.modules.containing.only.ASCII.and.those.containing.unicode.characters.Test.that.the.compilation.info.valid.shader.modules.contains.no.errors.Test.that.the.compilation.info.invalid.shader.modules.contains.at.least.one.error.paramsSimple.kAllShaderSources.fn.async t):
(indicating.an.unknown.position.Test.invalid.shader.modules.containing.containing.at.least.one.error.Test.shader.modules.containing.only.ASCII.and.those.containing.unicode.characters.paramsSimple.kInvalidShaderSources.fn.async t):
(g.test.string_appeared_here.desc.Test.that.message.offsets.and.lengths.are.valid.and.align.with.any.reported.lineNum.and.linePos.Test.valid.and.invalid.shader.modules.Test.shader.modules.containing.only.ASCII.and.those.containing.unicode.characters.paramsSimple.kAllShaderSources.fn.async t):

  • http/tests/webgpu/webgpu/api/operation/texture_view/read-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/texture_view/read.html: Added.
  • http/tests/webgpu/webgpu/api/operation/texture_view/read.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/texture_view/write-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/texture_view/write.html: Added.
  • http/tests/webgpu/webgpu/api/operation/texture_view/write.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/uncapturederror-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/uncapturederror.html: Added.
  • http/tests/webgpu/webgpu/api/operation/uncapturederror.spec.js: Added.
  • http/tests/webgpu/webgpu/api/operation/vertex_state/correctness-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/vertex_state/correctness.html: Added.
  • http/tests/webgpu/webgpu/api/operation/vertex_state/correctness.spec.js: Added.

(mapBufferAttribs):
(mapStateAttribs):
(prototype.makeTestWGSL):
(prototype.makeTestPipeline):
(prototype.submitRenderPass):
(prototype.generateTestData):
(prototype.expandTestData):
(prototype.interleaveVertexDataInto):
(prototype.createTestAndPipelineData):
(prototype.createExpectedBG):
(prototype.createVertexBuffers):
(prototype.runTest):
(fn.t.i):

  • http/tests/webgpu/webgpu/api/operation/vertex_state/index_format-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/operation/vertex_state/index_format.html: Added.
  • http/tests/webgpu/webgpu/api/operation/vertex_state/index_format.spec.js: Added.

(IndexFormatTest.prototype.MakeRenderPipeline):
(IndexFormatTest.prototype.CreateIndexBuffer):
(IndexFormatTest.prototype.run):
(IndexFormatTest.prototype.CreateExpectedUint8Array):
(IndexFormatTest):
(in.the.case.of.incorrect.results.This.shows.the.expected.result.marked.string_appeared_here.is.different.from.what.you.would.get if):

  • http/tests/webgpu/webgpu/api/validation/attachment_compatibility-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/attachment_compatibility.html: Added.
  • http/tests/webgpu/webgpu/api/validation/attachment_compatibility.spec.js: Added.

(F.prototype.createAttachmentTextureView):
(F.prototype.createColorAttachment):
(F.prototype.createDepthAttachment):
(F.prototype.createRenderPipeline):
(F):
(kDepthStencilAttachmentFormats.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/buffer/create-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/buffer/create.html: Added.
  • http/tests/webgpu/webgpu/api/validation/buffer/create.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/buffer/destroy-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/buffer/destroy.html: Added.
  • http/tests/webgpu/webgpu/api/validation/buffer/destroy.spec.js: Added.

(kBufferUsages.fn.async t):
(g.test.string_appeared_here.desc.string_appeared_here.fn.async t):
(fn.async t):
(unless.p.p.mappedAtCreation.false.p.mapMode.undefined.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/buffer/mapping-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/buffer/mapping.html: Added.
  • http/tests/webgpu/webgpu/api/validation/buffer/mapping.spec.js: Added.

(F.prototype.async testMapAsyncCall):
(F.prototype.testGetMappedRangeCall):
(F.prototype.createMappableBuffer):
(F):
(kBufferUsages.fn.async t):
(kMapModeOptions.fn.async t):
(fn.async t):
(kSizeAlignment.2.fn.async t):
(validation.can.be.performed.asynchronously.in.the.GPU.process.so.the.Content.process.doesn.fn.async t):
(after.a.mapAsync.call.or.after.being.created.mapped.fn.async t):
(g.test.string_appeared_here.desc.Test.that.old.getMappedRange.returned.arraybuffer.does.not.exist.after.unmap.and.newly.returned.arraybuffer.after.new.map.has.correct.subrange.fn.async t):
(g.test.string_appeared_here.desc.string_appeared_here.fn.async t):
(or.after.mappedAtCreation.or.mapAsync.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/buffer/threading-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/buffer/threading.html: Added.
  • http/tests/webgpu/webgpu/api/validation/buffer/threading.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/capability_checks/features/depth_clip_control-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/capability_checks/features/depth_clip_control.html: Added.
  • http/tests/webgpu/webgpu/api/validation/capability_checks/features/depth_clip_control.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/capability_checks/features/query_types-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/capability_checks/features/query_types.html: Added.
  • http/tests/webgpu/webgpu/api/validation/capability_checks/features/query_types.spec.js: Added.

(g.test.string_appeared_here.desc.Tests.that.creating.query.set shouldn):
(true.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/capability_checks/features/texture_formats-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/capability_checks/features/texture_formats.html: Added.
  • http/tests/webgpu/webgpu/api/validation/capability_checks/features/texture_formats.spec.js: Added.

(false.fn.async t):
(fn.async t):

  • http/tests/webgpu/webgpu/api/validation/createBindGroup-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/createBindGroup.html: Added.
  • http/tests/webgpu/webgpu/api/validation/createBindGroup.spec.js: Added.

(clone):
(3.fn.async t):
(2.fn.async t):
(allBindingEntries.false.fn.t.switch):
(allBindingEntries.false.fn.t.t.expectValidationError):
(kTextureUsages.unless):
(fn.async t):
(string_appeared_here.fn.async t):
(kTextureViewDimensions.fn.async t):
(256.fn.t.t.expectValidationError):
(bufferBindingEntries.true.fn.t.t.expectValidationError):
(string_appeared_here.fn.t.t.expectValidationError):
(false.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/createBindGroupLayout-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/createBindGroupLayout.html: Added.
  • http/tests/webgpu/webgpu/api/validation/createBindGroupLayout.spec.js: Added.

(clone):
(fn.async t):
(allBindingEntries.false.fn.async t):
(kTextureViewDimensions.fn.async t):
(1.fn.async t):
(prototype.async g):

  • http/tests/webgpu/webgpu/api/validation/createComputePipeline-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/createComputePipeline.html: Added.
  • http/tests/webgpu/webgpu/api/validation/createComputePipeline.spec.js: Added.

(F.prototype.getShaderModule):
(F.prototype.getInvalidShaderModule):
(F.prototype.doCreateComputePipelineTest):
(F):
(fn.async t):
(making.sure.that.the.test.working):

  • http/tests/webgpu/webgpu/api/validation/createPipelineLayout-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/createPipelineLayout.html: Added.
  • http/tests/webgpu/webgpu/api/validation/createPipelineLayout.spec.js: Added.

(clone):
(kBufferBindingTypes.fn.async t):
(g.test.string_appeared_here.fn.async t):
(fn.async t):

  • http/tests/webgpu/webgpu/api/validation/createRenderPipeline-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/createRenderPipeline.html: Added.
  • http/tests/webgpu/webgpu/api/validation/createRenderPipeline.spec.js: Added.

(F.prototype.getFragmentShaderCode):
(F.prototype.getDescriptor):
(F.prototype.getPipelineLayout):
(F.prototype.createTexture):
(F.prototype.doCreateRenderPipelineTest):
(F):
(true.fn.async t):
(kTextureFormats.fn.async t):
(kCompareFunctions.fn.async t):
(kStencilOperations.fn.async t):
(fn.async t):
(4.fn.async t):
(kRenderableColorTextureFormats.fn.async t):
(kBlendOperations.fn.async t):
(false.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/createSampler-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/createSampler.html: Added.
  • http/tests/webgpu/webgpu/api/validation/createSampler.spec.js: Added.

(4e30.fn.async t):
(g.test.string_appeared_here.desc.string_appeared_here.params.u.u.beginSubcases.combineWithParams.u.combine):
(fn.async t):

  • http/tests/webgpu/webgpu/api/validation/createTexture-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/createTexture.html: Added.
  • http/tests/webgpu/webgpu/api/validation/createTexture.spec.js: Added.

(format.fn.async t):
(kTextureFormats.fn.async t):
(dimension.string_appeared_here.largestDimension.0.fn.async t):
(format.string_appeared_here.dimension.string_appeared_here.dimension.string_appeared_here.size.0.kTextureFormatInfo.format.blockWidth.0.size.1.kTextureFormatInfo.format.blockHeight.0.fn.async t):
(g.test.string_appeared_here.desc.Test.mip.level.count.bound.check.when.mipLevelCount.is.bigger.than.integer.bit.width.fn.async t):
(format.unless):
(fn.async t):
(2.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/createView-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/createView.html: Added.
  • http/tests/webgpu/webgpu/api/validation/createView.spec.js: Added.

(kTextureFormats.fn.async t):
(undefined.fn.t.t.expectValidationError):
(kTextureAspects.fn.async t):
(validateCreateViewLayersLevels):
(const.lastArrayLayer.of.new.Set):
(fn.t.t.expectValidationError):
(const.lastMipLevel.of.new.Set):
(fn.async t):
(kResourceStates.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/create_pipeline-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/create_pipeline.html: Added.
  • http/tests/webgpu/webgpu/api/validation/create_pipeline.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/beginRenderPass-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/beginRenderPass.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/beginRenderPass.spec.js: Added.

(fn.async t):
(false.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/buffer_texture_copies-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/buffer_texture_copies.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/buffer_texture_copies.spec.js: Added.

(ImageCopyTest.prototype.testCopyBufferToTexture):
(ImageCopyTest.prototype.testCopyTextureToBuffer):
(ImageCopyTest.prototype.testWriteTexture):
(ImageCopyTest):
(string_appeared_here.fn.async t):
(fn.async t):
(8.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/clearBuffer-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/clearBuffer.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/clearBuffer.spec.js: Added.

(F.prototype.TestClearBuffer):
(F):
(g.test.string_appeared_here.desc.Test.that.clearing.an.error.buffer.fails.fn.async t):
(fn.async t):
(kBufferUsages.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/compute_pass-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/compute_pass.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/compute_pass.spec.js: Added.

(F.prototype.createComputePipeline):
(F.prototype.createIndirectBuffer):
(F):
(1.fn.t.else):

  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/copyBufferToBuffer-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/copyBufferToBuffer.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/copyBufferToBuffer.spec.js: Added.

(F.prototype.TestCopyBufferToBuffer):
(F):
(g.test.string_appeared_here.fn.async t):
(kBufferUsages.fn.async t):
(fn.async t):

  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/copyTextureToTexture-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/copyTextureToTexture.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/copyTextureToTexture.spec.js: Added.

(F.prototype.TestCopyTextureToTexture):
(F.prototype.GetPhysicalSubresourceSize):
(F):
(kResourceStates.fn.async t):
(unless.p.p.dimension.string_appeared_here.p.srcLevelCount.1.p.dstLevelCount.1.fn.async t):
(kTextureUsages.fn.async t):
(4.fn.async t):
(8.fn.async t):
(kTextureFormats.fn.async t):
(1.fn.async t):
(3.unless.p.p.dimension.string_appeared_here.p.srcCopyLevel.0.p.dstCopyLevel.0.fn.async t):
(3.fn.async t):
(string_appeared_here.fn.async t):
(2.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/debug-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/debug.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/debug.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/index_access-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/index_access.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/index_access.spec.js: Added.

(F.prototype.createIndexBuffer):
(F.prototype.createRenderPipeline):
(F.prototype.beginRenderPass):
(F.prototype.drawIndexed):
(F):

  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/draw-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/draw.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/draw.spec.js: Added.

(callDrawIndexed):
(and.test.that.draw.and.drawIndexed.will.success.error.as.expected.Such.set of):

  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/dynamic_state-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/dynamic_state.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/dynamic_state.spec.js: Added.

(out.of.range.used.with.a.simple.pipeline.that.used.with.a.simple.pipeline.that.F.prototype.testViewportCall):
(out.of.range.used.with.a.simple.pipeline.that.used.with.a.simple.pipeline.that.F.prototype.testScissorCall):
(out.of.range.used.with.a.simple.pipeline.that.used.with.a.simple.pipeline.that.F.prototype.createDummyRenderPassEncoder):
(out.of.range.used.with.a.simple.pipeline.that.used.with.a.simple.pipeline.that.F):

  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/indirect_draw-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/indirect_draw.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/indirect_draw.spec.js: Added.

(F.prototype.makeIndexBuffer):
(F):

  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/render.js: Added.

(export.buildBufferOffsetAndSizeOOBTestParams):

  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setIndexBuffer-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setIndexBuffer.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setIndexBuffer.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setPipeline-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setPipeline.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setPipeline.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setVertexBuffer-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setVertexBuffer.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/setVertexBuffer.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/state_tracking-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/state_tracking.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render/state_tracking.spec.js: Added.

(F.prototype.getVertexBuffer):
(F.prototype.createRenderPipeline):
(F.prototype.beginRenderPass):
(F):
(g.test.string_appeared_here.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render_pass-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render_pass.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/render_pass.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/setBindGroup-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/setBindGroup.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/cmds/setBindGroup.spec.js: Added.

(F.prototype.encoderTypeToStageFlag):
(F.prototype.createBindingResourceWithState):
(F.prototype.createBindGroup):
(F):
(string_appeared_here.fn.async t.async runTest):
(string_appeared_here.fn.async t):
(kProgrammableEncoderTypes.fn.async t):
(true.fn.async t):
(fn.t.const.doSetBindGroup):

  • http/tests/webgpu/webgpu/api/validation/encoding/createRenderBundleEncoder-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/createRenderBundleEncoder.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/createRenderBundleEncoder.spec.js: Added.

(string_appeared_here.filter):
(fn.async t):
(string_appeared_here.fn.async t):
(true.fn.async t):
(g.test.string_appeared_here.desc.Tests.that.createRenderBundleEncoder.validation.of.depthReadOnly.and.stencilReadOnly.is.ignored.there.is.no.depthStencilFormat.set params):

  • http/tests/webgpu/webgpu/api/validation/encoding/encoder_state-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/encoder_state.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/encoder_state.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/programmable/pipeline_bind_group_compat.spec.js: Added.

(getTestCmds):
(F.prototype.getIndexBuffer):
(F.prototype.getIndirectBuffer):
(F.prototype.getBindingResourceType):
(F.prototype.createRenderPipelineWithLayout):
(F.prototype.createComputePipelineWithLayout):
(F.prototype.createBindGroupWithLayout):
(F.prototype.doCompute):
(F.prototype.doRender):
(F.prototype.createBindGroupLayoutEntry):
(F.prototype.runTest):
(F):
(g.test.string_appeared_here.desc.Tests.the.bind.groups.must.match.the.requirements.of.the.pipeline.layout.bind.groups.required.by.the.pipeline.layout.are.required.bind.groups.unused.by.the.pipeline.layout.can.be.set or):

  • http/tests/webgpu/webgpu/api/validation/encoding/queries/begin_end-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/queries/begin_end.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/queries/begin_end.spec.js: Added.

(fn.async t):
(true.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/encoding/queries/common.js: Added.

(export.createQuerySetWithType):
(export.beginRenderPassWithQuerySet):

  • http/tests/webgpu/webgpu/api/validation/encoding/queries/general-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/queries/general.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/queries/general.spec.js: Added.

(g.test.string_appeared_here.desc.Tests.that.set occlusion.query.set with):
(g.test.string_appeared_here.desc.Tests.that.set occlusion):
(fn.async t):
(g.test.string_appeared_here.desc.Tests.that.begin.occlusion.query.with.a.invalid.query.set that):
(occlusion.query.set in):
(g.test.string_appeared_here.desc.Tests.that.write.timestamp.to.all.types.of.query.set on):
(2.0.fn.async t):
(g.test.string_appeared_here.desc.Tests.that.write.timestamp.to.a.invalid.query.set that):
(string_appeared_here.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/encoding/queries/pipeline_statistics-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/queries/pipeline_statistics.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/queries/pipeline_statistics.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/queries/resolveQuerySet-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/queries/resolveQuerySet.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/queries/resolveQuerySet.spec.js: Added.

(g.test.string_appeared_here.desc.Tests.that.resolve.query.set with):
(fn.async t):

  • http/tests/webgpu/webgpu/api/validation/encoding/render_bundle-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/render_bundle.html: Added.
  • http/tests/webgpu/webgpu/api/validation/encoding/render_bundle.spec.js: Added.

(g.test.string_appeared_here.desc.Test.that.it.is.valid.to.execute.an.empty.list.of.render.bundles.fn.async t):
(fn.async t):

  • http/tests/webgpu/webgpu/api/validation/error_scope-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/error_scope.html: Added.
  • http/tests/webgpu/webgpu/api/validation/error_scope.spec.js: Added.

(F.prototype.get device):
(F.prototype.async init):
(F.prototype.createErrorBuffer):
(F.prototype.async expectUncapturedError):
(F):
(g.test.string_appeared_here.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/image_copy/buffer_related-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/image_copy/buffer_related.html: Added.
  • http/tests/webgpu/webgpu/api/validation/image_copy/buffer_related.spec.js: Added.

(kResourceStates.fn.async t):
(fn.async t):
(bytesPerRow.undefined.copyHeightInBlocks.1.bytesPerRow.undefined.bytesPerRow.kTextureFormatInfo.format.bytesPerBlock.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/image_copy/image_copy.js: Added.

(export.ImageCopyTest.prototype.testRun):
(export.ImageCopyTest.prototype.createAlignedTexture):
(export.ImageCopyTest.prototype.testBuffer):
(export.ImageCopyTest):
(valuesToTestDivisibilityBy):
(export.texelBlockAlignmentTestExpanderForOffset):

  • http/tests/webgpu/webgpu/api/validation/image_copy/layout_related-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/image_copy/layout_related.html: Added.
  • http/tests/webgpu/webgpu/api/validation/image_copy/layout_related.spec.js: Added.

(3.unless.p.p.dimension.string_appeared_here.p.copyHeightInBlocks.1.unless.p.p.copyDepth.p.size.2.fn.async t):
(fn.async t):
(filter):
(unless.p.p.dimension.string_appeared_here.p.copyHeightInBlocks.1.p.copyDepth.1.fn.async t):
(rowsPerImage.kTextureFormatInfo.format.blockHeight.fn.async t):
(texelBlockAlignmentTestExpanderForOffset.fn.async t):
(2.unless.p.p.dimension.string_appeared_here.p.copyHeightInBlocks.1.p.copyDepth.1.expandWithParams.p._success):
(2.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/image_copy/texture_related-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/image_copy/texture_related.html: Added.
  • http/tests/webgpu/webgpu/api/validation/image_copy/texture_related.spec.js: Added.

(fn.async t):
(4.fn.async t):
(1.0.fn.async t):
(texelBlockAlignmentTestExpanderForValueToCoordinate.fn.async t):
(2.unless.p.p.dimension.string_appeared_here.p.coordinateToTest.0.p.mipLevel.0.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/initialization/requestDevice-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/initialization/requestDevice.html: Added.
  • http/tests/webgpu/webgpu/api/validation/initialization/requestDevice.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/layout_shader_compat-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/layout_shader_compat.html: Added.
  • http/tests/webgpu/webgpu/api/validation/layout_shader_compat.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/query_set/create-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/query_set/create.html: Added.
  • http/tests/webgpu/webgpu/api/validation/query_set/create.spec.js: Added.

(g.test.string_appeared_here.desc.Tests.that.create.query.set with):
(kMaxQueryCount.1.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/query_set/destroy-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/query_set/destroy.html: Added.
  • http/tests/webgpu/webgpu/api/validation/query_set/destroy.spec.js: Added.

(export.const.description.Destroying.a.query.set more):
(g.test.string_appeared_here.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/queue/buffer_mapped-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/buffer_mapped.html: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/buffer_mapped.spec.js: Added.

(F.prototype.async runBufferDependencyTest):
(F):
(g.test.string_appeared_here.desc.Test.that.an.outstanding.mapping.will.prevent.writeBuffer.calls.fn.async t):
(both.when.used.as.the.source.and.destination.fn.async t):
(g.test.string_appeared_here.desc.Test.that.an.outstanding.mapping.will.prevent.copyBufferToTexture.commands.from.submitting.fn.async t):
(g.test.string_appeared_here.desc.Test.that.an.outstanding.mapping.will.prevent.copyTextureToBuffer.commands.from.submitting.fn.async t):
(fn.async t.const.steps.submit.async t):

  • http/tests/webgpu/webgpu/api/validation/queue/copyToTexture/CopyExternalImageToTexture-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/copyToTexture/CopyExternalImageToTexture.html: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/copyToTexture/CopyExternalImageToTexture.spec.js: Added.

(computeMipMapSize):
(generateCopySizeForSrcOOB):

  • http/tests/webgpu/webgpu/api/validation/queue/destroyed/buffer-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/destroyed/buffer.html: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/destroyed/buffer.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/destroyed/query_set-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/destroyed/query_set.html: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/destroyed/query_set.spec.js: Added.

(export.const.description.Tests.using.a.destroyed.query.set on):
(g.test.string_appeared_here.desc.Tests.that.use.a.destroyed.query.set in):
(string_appeared_here.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/queue/submit-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/submit.html: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/submit.spec.js: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/writeBuffer-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/writeBuffer.html: Added.
  • http/tests/webgpu/webgpu/api/validation/queue/writeBuffer.spec.js: Added.

(g.test.string_appeared_here.desc.Tests.that.the.data.ranges.given.to.GPUQueue.writeBuffer.are.properly.validated.Tests.calling.writeBuffer.with.both.TypedArrays.and.ArrayBuffers.and.checks.that.the.data.offset.and.size.is.interpreted.correctly.both.When.passing.a.TypedArray.the.data.offset.and.size.is.given.in.elements.When.passing.an.ArrayBuffer.the.data.offset.and.size.is.given.in.bytes.Also.verifies.that.the.specified.data.range.Describes.a.valid.range.of.the.destination.buffer.and.source.buffer.Fits.fully.within.the.destination.buffer.Has.a.byte.size.is.a.multiple.of.4.fn.async t.runTest):
(g.test.string_appeared_here.desc.Tests.that.the.data.ranges.given.to.GPUQueue.writeBuffer.are.properly.validated.Tests.calling.writeBuffer.with.both.TypedArrays.and.ArrayBuffers.and.checks.that.the.data.offset.and.size.is.interpreted.correctly.both.When.passing.a.TypedArray.the.data.offset.and.size.is.given.in.elements.When.passing.an.ArrayBuffer.the.data.offset.and.size.is.given.in.bytes.Also.verifies.that.the.specified.data.range.Describes.a.valid.range.of.the.destination.buffer.and.source.buffer.Fits.fully.within.the.destination.buffer.Has.a.byte.size.is.a.multiple.of.4.fn.async t):
(fn.async t):

  • http/tests/webgpu/webgpu/api/validation/render_pass/resolve-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/render_pass/resolve.html: Added.
  • http/tests/webgpu/webgpu/api/validation/render_pass/resolve.spec.js: Added.

(fn.async t):

  • http/tests/webgpu/webgpu/api/validation/render_pass/storeOp-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/render_pass/storeOp.html: Added.
  • http/tests/webgpu/webgpu/api/validation/render_pass/storeOp.spec.js: Added.

(fn.async t):

  • http/tests/webgpu/webgpu/api/validation/render_pass_descriptor-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/render_pass_descriptor.html: Added.
  • http/tests/webgpu/webgpu/api/validation/render_pass_descriptor.spec.js: Added.

(F.prototype.createTexture):
(F.prototype.getColorAttachment):
(F.prototype.getDepthStencilAttachment):
(F.prototype.async tryRenderPass):
(F):
(fn.async t):
(g.test.string_appeared_here.fn.async t):
(kRenderableColorTextureFormats.filter.t.kTextureFormatInfo.t.format.multisample.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_pass_encoder-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_pass_encoder.html: Added.
  • http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_pass_encoder.spec.js: Added.

(TextureUsageTracking.prototype.createTexture):
(TextureUsageTracking.prototype.createBindGroupLayout):
(TextureUsageTracking.prototype.createBindGroup):
(TextureUsageTracking.prototype.createAndExecuteBundle):
(TextureUsageTracking.prototype.beginSimpleRenderPass):
(TextureUsageTracking.prototype.testValidationScope):
(TextureUsageTracking.prototype.setPipeline):
(TextureUsageTracking.prototype.issueDrawOrDispatch):
(TextureUsageTracking.prototype.setComputePipelineAndCallDispatch):
(TextureUsageTracking):
(unless.p.p.type0.string_appeared_here.p.levelCount0.1.p.layerCount0.1.p.type1.string_appeared_here.p.levelCount1.1.p.layerCount1.1.p.type0.string_appeared_here.p.type1.string_appeared_here.p.baseLevel1.BASE_LEVEL.fn.async t):
(unless.p.kTextureFormatInfo.p.format.depth.kTextureFormatInfo.p.format.stencil.p.aspect0.string_appeared_here.p.type0.string_appeared_here.p.aspect1.string_appeared_here.p.type1.string_appeared_here.unless.p.p.binding1InBundle.p.type1.string_appeared_here.unless.p.p.compute.p.binding0InBundle.p.binding1InBundle.p.type1.string_appeared_here.fn.async t):
(kShaderStages.unless.p.p.compute.Boolean.p.writeVisibility.GPUConst.ShaderStage.VERTEX.fn.async t):
(fn.async t):
(true.expandWithParams):
(unless.p.p.binding0InBundle.p.type0.string_appeared_here.p.binding1InBundle.p.type1.string_appeared_here.p.binding0InBundle.p.binding1InBundle.p._sampleCount.undefined.p._sampleCount.1.p._usage0.string_appeared_here.p._usage1.string_appeared_here.p.type0.string_appeared_here.p.type1.string_appeared_here.p.type0.string_appeared_here.p.type1.string_appeared_here.fn.async t):
(true.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_common-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_common.html: Added.
  • http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_common.spec.js: Added.

(F.prototype.getColorAttachment):
(F):
(false.unless.t.t.inSamePass.t.baseLevel0.t.baseLevel1.fn.async t):
(false.fn.async t):

  • http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_misc-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_misc.html: Added.
  • http/tests/webgpu/webgpu/api/validation/resource_usages/texture/in_render_misc.spec.js: Added.

(or.different.subresources.of.the.same.texture.texture.usages.in.copies.and.in.render.pass.consecutively.set bind):

  • http/tests/webgpu/webgpu/api/validation/texture/destroy-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/texture/destroy.html: Added.
  • http/tests/webgpu/webgpu/api/validation/texture/destroy.spec.js: Added.

(fn.async t):

  • http/tests/webgpu/webgpu/api/validation/validation_test.js: Added.

(export.ValidationTest.prototype.createTextureWithState):
(export.ValidationTest.prototype.createBufferWithState):
(export.ValidationTest.prototype.createQuerySetWithState):
(export.ValidationTest.prototype.getStorageBuffer):
(export.ValidationTest.prototype.getUniformBuffer):
(export.ValidationTest.prototype.getErrorBuffer):
(export.ValidationTest.prototype.getErrorSampler):
(export.ValidationTest.prototype.getSampledTexture):
(export.ValidationTest.prototype.getStorageTexture):
(export.ValidationTest.prototype.getRenderTexture):
(export.ValidationTest.prototype.getErrorTexture):
(export.ValidationTest.prototype.getErrorTextureView):
(export.ValidationTest.prototype.getBindingResource):
(export.ValidationTest.prototype.getDeviceMismatchedStorageBuffer):
(export.ValidationTest.prototype.getDeviceMismatchedUniformBuffer):
(export.ValidationTest.prototype.getDeviceMismatchedTexture):
(export.ValidationTest.prototype.getDeviceMismatchedSampledTexture):
(export.ValidationTest.prototype.getDeviceMismatchedStorageTexture):
(export.ValidationTest.prototype.getDeviceMismatchedRenderTexture):
(export.ValidationTest.prototype.getDeviceMismatchedBindingResource):
(export.ValidationTest.prototype.createRenderPipelineWithState):
(export.ValidationTest.prototype.createNoOpRenderPipeline):
(export.ValidationTest.prototype.createErrorRenderPipeline):
(export.ValidationTest.prototype.createNoOpComputePipeline):
(export.ValidationTest.prototype.createErrorComputePipeline):
(export.ValidationTest):

  • http/tests/webgpu/webgpu/api/validation/vertex_state-expected.txt: Added.
  • http/tests/webgpu/webgpu/api/validation/vertex_state.html: Added.
  • http/tests/webgpu/webgpu/api/validation/vertex_state.spec.js: Added.

(addTestAttributes):

  • http/tests/webgpu/webgpu/capability_info.js: Added.

(export.depthStencilFormatCopyableAspects):
(export.depthStencilBufferTextureCopySupported):
(export.depthStencilFormatAspectSize):
(export.textureDimensionAndFormatCompatible):
(export.bufferBindingTypeInfo):
(export.samplerBindingTypeInfo):
(export.sampledTextureBindingTypeInfo):
(export.storageTextureBindingTypeInfo):
(export.texBindingTypeInfo):
(export.bindingTypeInfo):
(export.bufferBindingEntries):
(export.samplerBindingEntries):
(export.textureBindingEntries):
(export.storageTextureBindingEntries):
(export.sampledAndStorageBindingEntries):
(export.allBindingEntries):

  • http/tests/webgpu/webgpu/constants.js: Added.

(checkType):

  • http/tests/webgpu/webgpu/examples-expected.txt: Added.
  • http/tests/webgpu/webgpu/examples.html: Added.
  • http/tests/webgpu/webgpu/examples.spec.js: Added.

(g.test.string_appeared_here.fn.async t):
(async g):

  • http/tests/webgpu/webgpu/gpu_test.js: Added.

(export.initUncanonicalizedDeviceDescriptor):
(export.GPUTest.prototype.get device):
(export.GPUTest.prototype.get mismatchedDevice):
(export.GPUTest.prototype.async selectMismatchedDeviceOrSkipTestCase):
(export.GPUTest.prototype.get queue):
(export.GPUTest.prototype.async init):
(export.GPUTest.prototype.async finalize):
(export.GPUTest.prototype.async selectDeviceOrSkipTestCase):
(export.GPUTest.prototype.async selectDeviceForTextureFormatOrSkipTestCase):
(export.GPUTest.prototype.async selectDeviceForQueryTypeOrSkipTestCase):
(export.GPUTest.prototype.createCopyForMapRead):
(export.GPUTest.prototype.createAlignedCopyForMapRead):
(export.GPUTest.prototype.async readGPUBufferRangeTyped):
(export.GPUTest.prototype.expectGPUBufferValuesPassCheck):
(export.GPUTest.prototype.async expectGPUBufferValuesEqual):
(export.GPUTest.prototype.expectGPUBufferRepeatsSingleValue):
(export.GPUTest.prototype.expectSingleColor):
(export.GPUTest.prototype.readSinglePixelFrom2DTexture):
(export.GPUTest.prototype.expectSinglePixelIn2DTexture):
(export.GPUTest.prototype.expectSinglePixelBetweenTwoValuesFloat16In2DTexture):
(export.GPUTest.prototype.expectGPUError.async return):
(export.GPUTest.prototype.expectGPUError):
(export.GPUTest.prototype.async makeBufferWithContents):
(export.GPUTest.prototype.createTexture2DWithMipmaps):
(export.GPUTest.prototype.createEncoder):
(export.GPUTest):

  • http/tests/webgpu/webgpu/idl/constants/flags-expected.txt: Added.
  • http/tests/webgpu/webgpu/idl/constants/flags.html: Added.
  • http/tests/webgpu/webgpu/idl/constants/flags.spec.js: Added.
  • http/tests/webgpu/webgpu/idl/exposed.html.js: Added.
  • http/tests/webgpu/webgpu/idl/exposed.http-expected.txt: Added.
  • http/tests/webgpu/webgpu/idl/exposed.http.html: Added.
  • http/tests/webgpu/webgpu/idl/exposed.https-expected.txt: Added.
  • http/tests/webgpu/webgpu/idl/exposed.https.html: Added.
  • http/tests/webgpu/webgpu/idl/idl_test.js: Added.

(export.IDLTest.prototype.async init):
(export.IDLTest.prototype.assertMember):
(export.IDLTest.prototype.assertMemberCount):
(export.IDLTest):

  • http/tests/webgpu/webgpu/listing.js: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/binary/binary.js: Added.

(export.binary):

  • http/tests/webgpu/webgpu/shader/execution/expression/binary/bitwise-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/binary/bitwise.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/binary/bitwise.spec.js: Added.

(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/binary/f32_arithmetic-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/binary/f32_arithmetic.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/binary/f32_arithmetic.spec.js: Added.

(fullNumericRange):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/abs-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/abs.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/abs.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/all-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/all.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/all.spec.js: Added.

(import):
(string_appeared_here.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/any-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/any.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/any.spec.js: Added.

(import):
(string_appeared_here.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan2-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan2.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/atan2.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/builtin.js: Added.

(export.builtin):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ceil-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ceil.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ceil.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/clamp-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/clamp.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/clamp.spec.js: Added.

(import):
(generateTestCases):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/cos-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/cos.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/cos.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countLeadingZeros-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countLeadingZeros.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countLeadingZeros.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countOneBits-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countOneBits.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countOneBits.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countTrailingZeros-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countTrailingZeros.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/countTrailingZeros.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/extractBits-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/extractBits.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/extractBits.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstLeadingBit-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstLeadingBit.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstLeadingBit.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstTrailingBit-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstTrailingBit.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/firstTrailingBit.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/float_built_functions-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/float_built_functions.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/float_built_functions.spec.js: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/floor-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/floor.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/floor.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/fract-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/fract.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/fract.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/insertBits-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/insertBits.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/insertBits.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/inversesqrt-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/inversesqrt.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/inversesqrt.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ldexp-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ldexp.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/ldexp.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log.spec.js: Added.

(import):
(string_appeared_here.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log2-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log2.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/log2.spec.js: Added.

(import):
(string_appeared_here.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/logical_built_in_functions-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/logical_built_in_functions.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/logical_built_in_functions.spec.js: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/max-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/max.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/max.spec.js: Added.

(import):
(generateTestCases):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/min-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/min.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/min.spec.js: Added.

(import):
(generateTestCases):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/reverseBits-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/reverseBits.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/reverseBits.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/select-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/select.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/select.spec.js: Added.

(makeBool):
(string_appeared_here.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/sin-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/sin.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/sin.spec.js: Added.

(import):
(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/value_testing_built_in_functions-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/value_testing_built_in_functions.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/call/builtin/value_testing_built_in_functions.spec.js: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/expression.js: Added.

(toComparator):
(storageType):
(fromStorage):
(toStorage):
(export.run):

  • http/tests/webgpu/webgpu/shader/execution/expression/unary/f32_arithmetic-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/unary/f32_arithmetic.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/expression/unary/f32_arithmetic.spec.js: Added.

(4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/expression/unary/unary.js: Added.

(export.unary):

  • http/tests/webgpu/webgpu/shader/execution/memory_model/atomicity-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/memory_model/atomicity.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/memory_model/atomicity.spec.js: Added.

(const.resultCode):
(else):
(fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/memory_model/barrier-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/memory_model/barrier.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/memory_model/barrier.spec.js: Added.

(fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/memory_model/coherence-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/memory_model/coherence.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/memory_model/coherence.spec.js: Added.

(fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/memory_model/memory_model_setup.js: Added.

(export.MemoryModelTester):
(export.MemoryModelTester.prototype.async run):
(export.MemoryModelTester.prototype.checkWeakIndex):
(export.MemoryModelTester.prototype.checkResult):
(export.MemoryModelTester.prototype.resultPrinter):
(export.MemoryModelTester.prototype.copyBufferToBuffer):
(export.MemoryModelTester.prototype.getRandomInt):
(export.MemoryModelTester.prototype.getRandomInRange):
(export.MemoryModelTester.prototype.shuffleArray):
(export.MemoryModelTester.prototype.async setShuffledWorkgroups):
(export.MemoryModelTester.prototype.async setScratchLocations):
(export.MemoryModelTester.prototype.async setStressParams):
(const.testShaderFunctions.fn.spin):
(fn.do_stress):
(builtin):
(export.buildTestShader):
(export.buildResultShader):

  • http/tests/webgpu/webgpu/shader/execution/memory_model/weak-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/memory_model/weak.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/memory_model/weak.spec.js: Added.

(fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/robust_access-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/robust_access.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/robust_access.spec.js: Added.

(runShaderTest):
(testFillArrayBuffer):

  • http/tests/webgpu/webgpu/shader/execution/robust_access_vertex-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/robust_access_vertex.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/robust_access_vertex.spec.js: Added.

(DrawCall.prototype.this.vertexBuffers.vertexArrays.map):
(DrawCall.prototype.insertInto):
(DrawCall.prototype.draw):
(DrawCall.prototype.drawIndexed):
(DrawCall.prototype.drawIndirect):
(DrawCall.prototype.drawIndexedIndirect):
(DrawCall.prototype.bindVertexBuffers):
(DrawCall.prototype.generateVertexBuffer):
(DrawCall.prototype.generateIndirectBuffer):
(DrawCall.prototype.generateIndexedIndirectBuffer):
(DrawCall):
(F.prototype.generateBufferContents):
(F.prototype.generateVertexBufferDescriptors):
(F.prototype.generateVertexShaderCode):
(F.prototype.createRenderPipeline):
(F.prototype.doTest):
(F):
(else):
(10.6.unless.p.p.drawCallTestParameter.string_appeared_here.p.errorScale.10.4.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/sampling/gradients_in_varying_loop-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/sampling/gradients_in_varying_loop.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/sampling/gradients_in_varying_loop.spec.js: Added.

(DerivativesTest.prototype.copyRenderTargetToBuffer):
(DerivativesTest.prototype.async init):
(DerivativesTest.prototype.drawQuad):
(DerivativesTest):
(3.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/shader_io/compute_builtins-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/shader_io/compute_builtins.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/shader_io/compute_builtins.spec.js: Added.

(beginSubcases.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/shader_io/shared_structs-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/shader_io/shared_structs.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/shader_io/shared_structs.spec.js: Added.

(and.the.layout.attributes.should.be.ignored.when.used.as.an.entry.point.IO.parameter.fn.async t):
(and.uses.it.as.both.the.output.of.a.vertex.shader.and.the.input.to.a.fragment.shader.fn.async t):
(and.uses.those.structures.as.parameter.and.return.types.entry.point.functions.and.regular.functions.fn.async t):

  • http/tests/webgpu/webgpu/shader/execution/zero_init-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/execution/zero_init.html: Added.
  • http/tests/webgpu/webgpu/shader/execution/zero_init.spec.js: Added.

(prettyPrint):
(and.storage):

  • http/tests/webgpu/webgpu/shader/types.js: Added.

(export.generateTypes):

  • http/tests/webgpu/webgpu/shader/validation/shader_io/builtins-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/validation/shader_io/builtins.html: Added.
  • http/tests/webgpu/webgpu/shader/validation/shader_io/builtins.spec.js: Added.

(string_appeared_here.beginSubcases.fn.t.stage.vertex.fn.main):

  • http/tests/webgpu/webgpu/shader/validation/shader_io/generic-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/validation/shader_io/generic.html: Added.
  • http/tests/webgpu/webgpu/shader/validation/shader_io/generic.spec.js: Added.

(string_appeared_here.beginSubcases.fn.t.location):
(string_appeared_here.beginSubcases.fn.t.builtin):
(string_appeared_here.beginSubcases.fn.t.stage.fragment.fn.frag_main):
(string_appeared_here.beginSubcases.fn.t.stage.compute.workgroup_size.1.fn.comp_main):
(string_appeared_here.beginSubcases.fn.t.const.code.stage.vertex.fn.vert_main):

  • http/tests/webgpu/webgpu/shader/validation/shader_io/interpolate-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/validation/shader_io/interpolate.html: Added.
  • http/tests/webgpu/webgpu/shader/validation/shader_io/interpolate.spec.js: Added.

(false.beginSubcases.fn.t.t.params.stage.string_appeared_here.t.params.use_struct.false.t.params.attribute.includes):

  • http/tests/webgpu/webgpu/shader/validation/shader_io/invariant-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/validation/shader_io/invariant.html: Added.
  • http/tests/webgpu/webgpu/shader/validation/shader_io/invariant.spec.js: Added.

(false.beginSubcases.fn.t.const.code.struct.VertexOut.location):

  • http/tests/webgpu/webgpu/shader/validation/shader_io/locations-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/validation/shader_io/locations.html: Added.
  • http/tests/webgpu/webgpu/shader/validation/shader_io/locations.spec.js: Added.
  • http/tests/webgpu/webgpu/shader/validation/shader_io/util.js: Added.

(export.generateShader):

  • http/tests/webgpu/webgpu/shader/validation/shader_validation_test.js: Added.

(export.ShaderValidationTest.prototype.expectCompileResult):
(export.ShaderValidationTest):

  • http/tests/webgpu/webgpu/shader/validation/variable_and_const-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/validation/variable_and_const.html: Added.
  • http/tests/webgpu/webgpu/shader/validation/variable_and_const.spec.js: Added.

(kTestTypes.fn.t.const.code.stage.fragment.fn.main):
(fn.t.prototype.stage.fn.main):
(fn.t.prototype.else):
(fn.t.else.prototype.stage.fn.main):
(so.no.cts.this.struct.with.bool.component.struct.with.runtime.array.Control.case.string_appeared_here.is.used.to.make.sure.when.only.the.storage.changes):

  • http/tests/webgpu/webgpu/shader/validation/wgsl/basic-expected.txt: Added.
  • http/tests/webgpu/webgpu/shader/validation/wgsl/basic.html: Added.
  • http/tests/webgpu/webgpu/shader/validation/wgsl/basic.spec.js: Added.

(g.test.string_appeared_here.desc.A.trivial.correct.and.incorrect.shader.fn.t.stage.vertex.stage.fragment.fn.main):

  • http/tests/webgpu/webgpu/shader/values.js: Added.

(export.subnormalF32Examples):
(export.normalF32Examples):
(export.nanF32BitsExamples):

  • http/tests/webgpu/webgpu/util/buffer.js: Added.

(export.makeBufferWithContents):

  • http/tests/webgpu/webgpu/util/check_contents.js: Added.

(export.checkElementsEqual):
(export.checkElementsBetween):
(export.checkElementsFloat16Between):
(export.checkElementsEqualEither):
(export.checkElementsEqualGenerated):
(export.checkElementsPassPredicate):
(export.checkElementsPassPredicate.):

  • http/tests/webgpu/webgpu/util/color_space_conversion.js: Added.

(lin_sRGB):
(XYZ_to_lin_sRGB):
(lin_P3):
(gam_P3):
(lin_P3_to_XYZ):
(XYZ_to_lin_P3):
(export.displayP3ToSrgb):
(export.srgbToDisplayP3):

  • http/tests/webgpu/webgpu/util/command_buffer_maker.js: Added.

(export.CommandBufferMaker):

  • http/tests/webgpu/webgpu/util/compare.js: Added.

(export.absThreshold):
(export.ulpThreshold):
(export.correctlyRoundedThreshold):
(export.compare):

  • http/tests/webgpu/webgpu/util/constants.js: Added.

(hexToF32):

  • http/tests/webgpu/webgpu/util/conversion.js: Added.

(export.floatAsNormalizedInteger):
(export.normalizedIntegerAsFloat):
(export.float32ToFloatBits):
(export.float32ToFloat16Bits):
(export.float16BitsToFloat32):
(export.float32BitsToNumber):
(export.numberToFloat32Bits):
(export.floatBitsToNumber):
(export.floatBitsToNormalULPFromZero):
(export.packRGB9E5UFloat):
(export.assertInIntegerRange):
(export.gammaCompress):
(export.gammaDecompress):
(export.float32ToUint32):
(export.uint32ToFloat32):
(export.float32ToInt32):
(export.uint32ToInt32):
(export.ScalarType):
(export.ScalarType.prototype.toString):
(export.VectorType):
(export.VectorType.prototype.read):
(export.VectorType.prototype.toString):
(export.TypeVec):
(export.scalarType):
(export.numElementsOf):
(export.scalarTypeOf):
(export.Scalar):
(export.Scalar.prototype.copyTo):
(export.Scalar.prototype.toString):
(export.f32):
(export.f32Bits):
(export.f16Bits):
(export.i32):
(export.i16):
(export.i8):
(export.i32Bits):
(export.i16Bits):
(export.i8Bits):
(export.u32):
(export.u16):
(export.u8):
(export.u32Bits):
(export.u16Bits):
(export.u8Bits):
(export.bool):
(export.Vector):
(export.Vector.prototype.copyTo):
(export.Vector.prototype.toString):
(export.Vector.prototype.get x):
(export.Vector.prototype.get y):
(export.Vector.prototype.get z):
(export.Vector.prototype.get w):
(export.vec2):
(export.vec3):
(export.vec4):

  • http/tests/webgpu/webgpu/util/copy_to_texture.js: Added.

(isFp16Format):
(isFp32Format):
(isUnormFormat):
(export.CopyToTextureUtils.prototype.doFlipY):
(export.CopyToTextureUtils.prototype.formatForExpectedPixels):
(export.CopyToTextureUtils.prototype.getSourceImageBitmapPixels):
(export.CopyToTextureUtils.prototype.getExpectedPixels):
(export.CopyToTextureUtils.prototype.checkCopyExternalImageResult):
(export.CopyToTextureUtils.prototype.async checkBufferWithRowPitch):
(export.CopyToTextureUtils.prototype.doTestAndCheckResult):
(export.CopyToTextureUtils):

  • http/tests/webgpu/webgpu/util/create_elements.js: Added.

(export.createCanvas):
(export.createOnscreenCanvas):
(export.createOffscreenCanvas):

  • http/tests/webgpu/webgpu/util/device_pool.js: Added.

(TestFailedButDeviceReusable):
(FeaturesNotSupported):
(export.TestOOMedShouldAttemptGC):
(export.DevicePool.prototype.async reserve):
(export.DevicePool.prototype.async release):
(export.DevicePool):
(DescriptorToHolderMap.prototype.deleteByDevice):
(DescriptorToHolderMap.prototype.async getOrCreate):
(DescriptorToHolderMap.prototype.insertAndCleanUp):
(DescriptorToHolderMap):
(canonicalizeDescriptor):
(supportsFeature):
(DeviceHolder.async create):
(DeviceHolder):
(DeviceHolder.prototype.acquire):
(DeviceHolder.prototype.async ensureRelease):
(DeviceHolder.prototype.async release):

  • http/tests/webgpu/webgpu/util/math.js: Added.

(export.align):
(export.roundDown):
(export.clamp):

  • http/tests/webgpu/webgpu/util/memory.js: Added.

(export.async exhaustVramUntilUnder64MB.async const):
(export.async exhaustVramUntilUnder64MB):

  • http/tests/webgpu/webgpu/util/pretty_diff_tables.js: Added.

(export.generatePrettyTable):

  • http/tests/webgpu/webgpu/util/texture/base.js: Added.

(export.maxMipLevelCount):

  • http/tests/webgpu/webgpu/util/texture/layout.js: Added.

(export.getTextureCopyLayout):

  • http/tests/webgpu/webgpu/util/texture/subresource.js: Added.

(endOfRange):
(rangeAsIterator):
(export.SubresourceRange):
(export.SubresourceRange.prototype.each):
(export.SubresourceRange.prototype.mipLevels):

  • http/tests/webgpu/webgpu/util/texture/texel_data-expected.txt: Added.
  • http/tests/webgpu/webgpu/util/texture/texel_data.html: Added.
  • http/tests/webgpu/webgpu/util/texture/texel_data.js: Added.

(applyEach):
(packComponents):
(makeNormalizedInfo):
(makeIntegerInfo):
(makeFloatInfo):
(export.const.kTexelRepresentationInfo.rgba32float.makeFloatInfo):
(export.getSingleDataType):
(export.getComponentReadbackTraits):

  • http/tests/webgpu/webgpu/util/texture/texel_data.spec.js: Added.

(doTest):
(kEncodableTextureFormats.filter):

  • http/tests/webgpu/webgpu/util/unions.js: Added.

(export.reifyOrigin3D):
(export.reifyExtent3D):

  • http/tests/webgpu/webgpu/web_platform/canvas/configure-expected.txt: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/configure.html: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/configure.spec.js: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/context_creation-expected.txt: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/context_creation.html: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/context_creation.spec.js: Added.

(fn.async t):

  • http/tests/webgpu/webgpu/web_platform/canvas/getCurrentTexture-expected.txt: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/getCurrentTexture.html: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/getCurrentTexture.spec.js: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/getPreferredFormat-expected.txt: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/getPreferredFormat.html: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/getPreferredFormat.spec.js: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/readbackFromWebGPUCanvas-expected.txt: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/readbackFromWebGPUCanvas.html: Added.
  • http/tests/webgpu/webgpu/web_platform/canvas/readbackFromWebGPUCanvas.spec.js: Added.

(async initCanvasContent):
(checkImageResult):
(readPixelsFrom2DCanvasAndCompare):
(string_appeared_here.fn.async t):
(allCanvasTypes.fn.async t):

  • http/tests/webgpu/webgpu/web_platform/copyToTexture/ImageBitmap-expected.txt: Added.
  • http/tests/webgpu/webgpu/web_platform/copyToTexture/ImageBitmap.html: Added.
  • http/tests/webgpu/webgpu/web_platform/copyToTexture/ImageBitmap.spec.js: Added.

(F.prototype.generatePixel):
(F.prototype.getImagePixels):
(F):
(fn.async t):

  • http/tests/webgpu/webgpu/web_platform/copyToTexture/canvas-expected.txt: Added.
  • http/tests/webgpu/webgpu/web_platform/copyToTexture/canvas.html: Added.
  • http/tests/webgpu/webgpu/web_platform/copyToTexture/canvas.spec.js: Added.

(F.prototype.init2DCanvasContentWithColorSpace):
(F.prototype.init2DCanvasContent):
(F.prototype.paint2DCanvas):
(F.prototype.initGLCanvasContent):
(F.prototype.getInitGPUCanvasData):
(F.prototype.initGPUCanvasContent):
(F.prototype.getSourceCanvas2DContent):
(F.prototype.getSourceCanvasGLContent):
(F.prototype.calculateSourceContentOnCPU):
(F.prototype.getTestImageURLByColorSpace):
(F):
(fn.async t):

  • http/tests/webgpu/webgpu/web_platform/copyToTexture/video-expected.txt: Added.
  • http/tests/webgpu/webgpu/web_platform/copyToTexture/video.html: Added.
  • http/tests/webgpu/webgpu/web_platform/copyToTexture/video.spec.js: Added.
  • http/tests/webgpu/webgpu/web_platform/external_texture/video-expected.txt: Added.
  • http/tests/webgpu/webgpu/web_platform/external_texture/video.html: Added.
  • http/tests/webgpu/webgpu/web_platform/external_texture/video.spec.js: Added.

(createExternalTextureSamplingTestPipeline):
(createExternalTextureSamplingTestBindGroup):
(kVideoSources.fn.async t):
(g.test.string_appeared_here.desc.Tests.that.a.GPUExternalTexture.is.destroyed.by.a.microtask.and.that.using.it.after.it.has.been.destroyed.results.in.an.error.fn.async t):
(async g):

  • http/tests/webgpu/webgpu/web_platform/util.js: Added.

(export.startPlayingAndWaitForVideo):

  • http/tests/webgpu/webgpu/web_platform/worker/worker-expected.txt: Added.
  • http/tests/webgpu/webgpu/web_platform/worker/worker.html: Added.
  • http/tests/webgpu/webgpu/web_platform/worker/worker.js: Added.

(async basicTest):
(self.onmessage.async ev):

  • http/tests/webgpu/webgpu/web_platform/worker/worker.spec.js: Added.

(isNode):
(g.test.string_appeared_here.desc.test.WebGPU.is.available.in.DedicatedWorkers.and.check.basic.functionality.fn.async t):

  • http/tests/webgpu/webgpu/web_platform/worker/worker_launcher.js: Added.

(export.async launchWorker):

  • platform/ios-device-wk1/TestExpectations:
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/ios-wk2/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/mac/TestExpectations:
6:13 PM Changeset in webkit [291947] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark streams/readable-stream-lock-after-worker-terminates-crash.html as flaky on Windows.

This test has been a flaky Timeout on Windows EWS for months and keeps leading to false positives.
Mark it as flaky to silence the noise.

  • platform/win/TestExpectations:
3:19 PM Changeset in webkit [291946] by ysuzuki@apple.com
  • 90 edits in trunk/Source

Use static_assert instead of COMPILE_ASSERT
https://bugs.webkit.org/show_bug.cgi?id=238417

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • assembler/ARM64Assembler.h:
  • assembler/ARMv7Assembler.h:
  • assembler/MacroAssemblerX86Common.h:
  • bytecode/Opcode.h:
  • bytecode/VirtualRegister.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativeNonPeepholeCompareNullOrUndefined):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNullOrUndefined):
(JSC::DFG::SpeculativeJIT::compileToBooleanObjectOrOther):
(JSC::DFG::SpeculativeJIT::emitObjectOrOtherBranch):

  • inspector/InspectorProtocolTypes.h:

(Inspector::Protocol::BindingTraits<JSON::ArrayOf<T>>::runtimeCast):

  • inspector/scripts/codegen/cpp_generator_templates.py:
  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:
  • inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
  • inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
  • inspector/scripts/tests/expected/definitions-with-mac-platform.json-result:
  • inspector/scripts/tests/expected/events-with-optional-parameters.json-result:
  • inspector/scripts/tests/expected/generate-domains-with-feature-guards.json-result:
  • inspector/scripts/tests/expected/shadowed-optional-type-setters.json-result:
  • inspector/scripts/tests/expected/type-declaration-object-type.json-result:
  • inspector/scripts/tests/expected/type-requiring-runtime-casts.json-result:
  • inspector/scripts/tests/expected/type-with-open-parameters.json-result:
  • jit/FPRInfo.h:
  • jit/GPRInfo.h:
  • parser/Parser.h:
  • runtime/JSCell.cpp:
  • runtime/JSObject.h:
  • runtime/SmallStrings.cpp:

(JSC::SmallStrings::SmallStrings):

  • runtime/Structure.h:

(JSC::Structure::outOfLineCapacity):

  • yarr/YarrInterpreter.cpp:

Source/WebCore:

  • animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • contentextensions/DFANode.h:
  • css/CSSBasicShapes.cpp:

(WebCore::buildPolygonString):

  • css/CSSProperty.cpp:
  • css/CSSRule.cpp:
  • css/CSSValue.cpp:
  • css/StyleProperties.cpp:
  • css/StyleRule.cpp:
  • css/calc/CSSCalcOperationNode.cpp:

(WebCore::sortingCategoryForType):

  • dom/ElementData.cpp:
  • dom/NodeRareData.cpp:
  • dom/ShadowRoot.cpp:
  • dom/SpaceSplitString.cpp:
  • dom/StyledElement.cpp:
  • dom/TreeScope.cpp:
  • editing/HTMLInterchange.cpp:

(WebCore::convertHTMLTextToInterchangeFormat):

  • html/HTMLTrackElement.cpp:
  • html/track/VTTCue.cpp:
  • platform/Length.cpp:
  • platform/ScrollableArea.cpp:
  • platform/UserAgentQuirks.h:

(WebCore::UserAgentQuirks::UserAgentQuirks):

  • platform/graphics/FontCascadeDescription.cpp:
  • platform/graphics/Region.cpp:

(WebCore::Region::Shape::shapeOperation):

  • platform/graphics/TextRun.cpp:
  • platform/text/BidiContext.cpp:
  • platform/text/TextFlags.h:
  • platform/win/ImportedFunctionsEnumerator.cpp:

(WebCore::ImportedFunctionsEnumerator::addressOfCurrentFunctionPointer const):

  • rendering/BreakLines.cpp:
  • rendering/FloatingObjects.cpp:
  • rendering/LegacyInlineBox.cpp:
  • rendering/LegacyInlineFlowBox.cpp:
  • rendering/LegacyInlineTextBox.cpp:
  • rendering/LegacyRootInlineBox.cpp:
  • rendering/RenderBlock.cpp:
  • rendering/RenderBlockFlow.cpp:
  • rendering/RenderBox.cpp:
  • rendering/RenderObject.cpp:
  • rendering/RenderTableCell.cpp:
  • rendering/RenderText.cpp:
  • rendering/style/FillLayer.cpp:
  • rendering/style/RenderStyle.cpp:
  • rendering/style/StyleBoxData.cpp:
  • rendering/style/StyleRareInheritedData.cpp:
  • rendering/style/WillChangeData.h:
  • rendering/svg/SVGInlineTextBox.cpp:
  • style/RuleData.cpp:
  • svg/GradientAttributes.h:

Source/WebKit:

  • Platform/IPC/Connection.h:

(IPC::Connection::send):
(IPC::Connection::sendWithAsyncReply):
(IPC::Connection::sendSync):

  • Platform/IPC/MessageSender.h:
  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::sendOutgoingMessage):

  • UIProcess/AuxiliaryProcessProxy.h:

(WebKit::AuxiliaryProcessProxy::send):
(WebKit::AuxiliaryProcessProxy::sendSync):
(WebKit::AuxiliaryProcessProxy::sendWithAsyncReply):

Source/WebKitLegacy/mac:

  • Plugins/WebBasePluginPackage.mm:

(-[WebBasePluginPackage isNativeLibraryData:]):

  • WebView/WebDynamicScrollBarsView.mm:

Source/WTF:

Use C++ static_assert instead of COMPILE_ASSERT.
Currently keeping it since it was also used in Internal code too.

  • wtf/CrossThreadCopier.cpp:
  • wtf/JSONValues.cpp:

(WTF::JSONImpl::ObjectBase::asObject):
(WTF::JSONImpl::ObjectBase::asObject const):
(WTF::JSONImpl::ArrayBase::asArray):

  • wtf/JSONValues.h:
  • wtf/glib/FileSystemGlib.cpp:

(WTF::FileSystemImpl::lockFile):

  • wtf/posix/FileSystemPOSIX.cpp:

(WTF::FileSystemImpl::lockFile):

  • wtf/text/AtomString.h:
1:35 PM Changeset in webkit [291945] by Russell Epstein
  • 1 copy in tags/Safari-614.1.7.3

Tag Safari-614.1.7.3.

1:35 PM Changeset in webkit [291944] by Russell Epstein
  • 10 edits in branches/safari-614.1.7-branch/Source/WebKit

Cherry-pick r291943. rdar://problem/90878560

Update the check in the sandbox profiles to guard the system content path rules
https://bugs.webkit.org/show_bug.cgi?id=238419
rdar://90878560

Reviewed by Per Arne Vollan.

Replace USE(SYSTEM_CONTENT_PATH) in the sandbox profiles with a different feature flag
so that we can enable these rules independently even if WebKit itself isn't using the
system content path.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.in:
  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:

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

1:30 PM Changeset in webkit [291943] by david_quesada@apple.com
  • 10 edits in trunk/Source/WebKit

Update the check in the sandbox profiles to guard the system content path rules
https://bugs.webkit.org/show_bug.cgi?id=238419
rdar://90878560

Reviewed by Per Arne Vollan.

Replace USE(SYSTEM_CONTENT_PATH) in the sandbox profiles with a different feature flag
so that we can enable these rules independently even if WebKit itself isn't using the
system content path.

  • GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
  • NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
  • Resources/SandboxProfiles/ios/com.apple.WebKit.adattributiond.sb.in:
  • WebAuthnProcess/mac/com.apple.WebKit.WebAuthnProcess.sb.in:
  • WebProcess/com.apple.WebProcess.sb.in:
1:10 PM Changeset in webkit [291942] by Russell Epstein
  • 2 edits in branches/safari-614.1.7-branch/Source/WebKit

Cherry-pick r291941. rdar://problem/90878872

REGRESSION(r291814): WebAuthn sandbox profile is missing
https://bugs.webkit.org/show_bug.cgi?id=238418
rdar://90878872

Reviewed by Per Arne Vollan.

Fix a typo in the script phase that copies the embedded sandbox profiles. We want to copy
com.apple.WebKit.WebAuthn.sb, not com.apple.WebKit.WebAuth.sb.

  • WebKit.xcodeproj/project.pbxproj:

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

12:54 PM Changeset in webkit [291941] by david_quesada@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION(r291814): WebAuthn sandbox profile is missing
https://bugs.webkit.org/show_bug.cgi?id=238418
rdar://90878872

Reviewed by Per Arne Vollan.

Fix a typo in the script phase that copies the embedded sandbox profiles. We want to copy
com.apple.WebKit.WebAuthn.sb, not com.apple.WebKit.WebAuth.sb.

  • WebKit.xcodeproj/project.pbxproj:
12:09 PM Changeset in webkit [291940] by sihui_liu@apple.com
  • 6 edits in trunk/Source/WebKit

Unreviewed, reverting r291909.

Found a better way to eanble the feature

Reverted changeset:

"Disable custom storage paths for IndexedDB and LocalStorage
by default"
https://bugs.webkit.org/show_bug.cgi?id=236977
https://commits.webkit.org/r291909

10:53 AM Changeset in webkit [291939] by Russell Epstein
  • 9 edits in branches/safari-614.1.7-branch/Source

Versioning.

WebKit-7614.1.7.3

8:55 AM Changeset in webkit [291938] by youenn@apple.com
  • 45 edits in trunk

Implement ServiceWorkerWindowClient.focus
https://bugs.webkit.org/show_bug.cgi?id=238319
<rdar://90616490>

Reviewed by Brady Eidson.

Source/WebCore:

Add support for service worker focus:

  • Implement user gesture requirement by introducing a flag in ServiceWorkerGlobalScope that is turned on for some time when receiving specific events like notification click event. The max time is currently set to 2 seconds. We might want to improve handling of user activation in non-document contexts but this is a fuzzy area right now so a service worker solution seems good for now.
  • Remove the map of service worker client since we need to create new ones every time.
  • focus will go its context manager that will send an IPC message to the network process to actually trigger focus.

We are missing focused check at promise resolution, this will be done in a follow-up.

Covered by API test.

  • testing/ServiceWorkerInternals.cpp:
  • testing/ServiceWorkerInternals.h:
  • testing/js/WebCoreTestSupport.cpp:
  • workers/service/ServiceWorkerClient.cpp:
  • workers/service/ServiceWorkerClient.h:
  • workers/service/ServiceWorkerClientData.h:
  • workers/service/ServiceWorkerClients.cpp:
  • workers/service/ServiceWorkerClients.h:
  • workers/service/ServiceWorkerGlobalScope.cpp:
  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerWindowClient.cpp:
  • workers/service/ServiceWorkerWindowClient.h:
  • workers/service/ServiceWorkerWindowClient.idl:
  • workers/service/context/SWContextManager.h:
  • workers/service/context/ServiceWorkerThread.cpp:
  • workers/service/server/SWServer.h:

Source/WebKit:

Support new IPC message flow to focus from a service worker to network process to service worker client process to UIProcess.
Introduce a new delegate _focusWebViewFromServiceWorker as the scope is specific to service worker and usage is different from existing _focusWebView and other delegates.

The overall flow is like this:

  • ServiceWorker process to NetworkProcess to Client WebProcess process to UIProcess (do the actual focus) to NetworkProcess to ServiceWorker process

We might want to directly go from NetworkProcess to UIProcess but we need to handle potential race conditions in that case.

  • NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
  • NetworkProcess/ServiceWorker/WebSWServerConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
  • UIProcess/API/APIUIClient.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/Storage/WebSWClientConnection.cpp:
  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWClientConnection.messages.in:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:
  • WebProcess/Storage/WebSWContextManagerConnection.h:

Source/WTF:

  • Scripts/Preferences/WebPreferencesInternal.yaml:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:

LayoutTests:

Update tests to cover the fact we no longer reuse Client objects.

  • http/tests/workers/service/resources/postmessage-echo-worker.js:
  • http/tests/workers/service/resources/serviceworkerclients-get-worker.js:
  • http/tests/workers/service/serviceworkerclients-matchAll-worker.js:
  • http/tests/workers/service/serviceworkerclients-matchAll.https-expected.txt:
  • http/tests/workers/service/serviceworkerclients-matchAll.https.html:
7:41 AM Changeset in webkit [291937] by ysuzuki@apple.com
  • 80 edits in trunk

Use unary static_assert
https://bugs.webkit.org/show_bug.cgi?id=238412

Reviewed by Mark Lam.

Source/bmalloc:

  • bmalloc/Algorithm.h:

(bmalloc::isPowerOfTwo):

  • bmalloc/Gigacage.h:
  • bmalloc/IsoHeapImpl.h:

Source/JavaScriptCore:

Replace static_assert(..., ""); with static_assert(...);

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::linkJumpOrCall):
(JSC::ARM64Assembler::relinkJumpOrCall):

  • assembler/AssemblerBuffer.h:

(JSC::AssemblerBuffer::putIntegralUnchecked):

  • assembler/MacroAssemblerCodeRef.h:
  • bytecode/AdaptiveInferredPropertyValueWatchpointBase.h:
  • bytecode/ArrayProfile.h:
  • bytecode/CodeBlockHash.cpp:

(JSC::CodeBlockHash::CodeBlockHash):

  • bytecode/ParseHash.cpp:

(JSC::ParseHash::ParseHash):

  • bytecode/Watchpoint.h:
  • dfg/DFGNode.h:
  • dfg/DFGOperations.cpp:

(JSC::DFG::JSC_DEFINE_JIT_OPERATION):

  • dfg/DFGSpeculativeJIT.cpp:
  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::llintBaselineCalleeSaveRegisters):
(JSC::RegisterSet::dfgCalleeSaveRegisters):
(JSC::RegisterSet::ftlCalleeSaveRegisters):

  • runtime/CachedBytecode.cpp:

(JSC::CachedBytecode::commitUpdates const):

  • runtime/ClonedArguments.h:
  • runtime/DirectArguments.h:
  • runtime/DirectEvalExecutable.h:
  • runtime/ErrorConstructor.h:
  • runtime/IndirectEvalExecutable.h:
  • runtime/JSArrayBufferView.cpp:
  • runtime/JSBoundFunction.h:
  • runtime/JSLexicalEnvironment.h:

(JSC::JSLexicalEnvironment::subspaceFor):

  • runtime/JSString.cpp:

(JSC::JSRopeString::RopeBuilder<RecordOverflow>::expand):

  • runtime/JSString.h:
  • runtime/NativeFunction.h:
  • runtime/Operations.h:

(JSC::jsString):

  • runtime/RegExpObject.h:
  • runtime/ScopedArguments.h:
  • runtime/ScopedArgumentsTable.cpp:
  • runtime/TypedArrayAdaptors.h:

(JSC::IntegralTypedArrayAdaptor::toJSValue):

  • runtime/TypedArrayType.h:
  • runtime/WeakMapImpl.h:
  • wasm/WasmAirIRGenerator.cpp:

(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::AirIRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::AirIRGenerator::emitModOrDiv):

  • yarr/YarrInterpreter.cpp:

(JSC::Yarr::Interpreter::DisjunctionContext::allocationSize):
(JSC::Yarr::Interpreter::ParenthesesDisjunctionContext::allocationSize):

Source/WebCore:

  • Modules/entriesapi/FileSystemDirectoryEntry.h:
  • Modules/entriesapi/FileSystemFileEntry.h:
  • css/DOMMatrix.h:
  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelation):

  • dom/DOMPoint.h:
  • dom/DOMRect.h:
  • html/HTMLAllCollection.h:
  • html/track/AudioTrackList.h:
  • html/track/VideoTrackList.h:
  • layout/formattingContexts/inline/InlineItem.cpp:
  • layout/formattingContexts/inline/InlineTextItem.cpp:
  • platform/KeyedCoding.h:

(WebCore::KeyedDecoder::decodeBytes):

  • xml/XMLHttpRequestEventTarget.h:

Source/WebKit:

  • Shared/API/c/WKContextMenuItem.cpp:
  • UIProcess/mac/LegacySessionStateCoding.cpp:

(WebKit::HistoryEntryDataEncoder::encodeArithmeticType):
(WebKit::HistoryEntryDataDecoder::decodeArithmeticType):

Source/WTF:

  • wtf/CompactPointerTuple.h:
  • wtf/FastMalloc.h:
  • wtf/FunctionTraits.h:

(WTF::slotsForCCallArgument):

  • wtf/Int128.cpp:
  • wtf/MallocPtr.h:
  • wtf/Markable.h:

(WTF::std::underlying_type<EnumType>::type>::max):

  • wtf/PtrTag.h:

(WTF::tagInt):

  • wtf/Seconds.h:
  • wtf/StdLibExtras.h:

(WTF::roundUpToMultipleOf):

  • wtf/SystemFree.h:
  • wtf/UnalignedAccess.h:

(WTF::unalignedLoad):
(WTF::unalignedStore):

  • wtf/UniqueArray.h:

(WTF::makeUniqueArray):

  • wtf/WTFAssertions.cpp:
  • wtf/text/StringConcatenate.h:

(WTF::tryMakeStringFromAdapters):

  • wtf/text/StringImpl.h:
  • wtf/text/SymbolImpl.h:

Tools:

  • TestWebKitAPI/Tests/WTF/EnumTraits.cpp:
  • TestWebKitAPI/Tests/WTF/HashMap.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Int128.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/Packed.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WTF/RobinHoodHashMap.cpp:

(TestWebKitAPI::TEST):

7:07 AM Changeset in webkit [291936] by aakash_jain@apple.com
  • 2 edits in trunk

Update my github username.

Unreviewed.

  • metadata/contributors.json:
4:38 AM Changeset in webkit [291935] by ysuzuki@apple.com
  • 9 edits
    1 delete in trunk/Source/JavaScriptCore

[JSC] Include argumentRegisters in identity of SlowPathCallKey when clobberAllRegsInFTLICSlowPath is enabled
https://bugs.webkit.org/show_bug.cgi?id=238411

Reviewed by Mark Lam.

While SlowPathCallKey includes argumentRegisters, it is not used for its identity check. But this argumentRegisters
is effectual on the resulting code in FTLThunks if Options::clobberAllRegsInFTLICSlowPath is set. This causes
x64 Debug JSC test failures after enabling DataIC because the same FTLThunks should not be picked for different
argument registers when Options::clobberAllRegsInFTLICSlowPath is true.

However, always including argumentRegisters in the identity check will cause a code size regression since we will
lose a chance to duplicate thunks when argumentRegisters is ineffectual. Note that Options::clobberAllRegsInFTLICSlowPath
is only set for debugging use cases. Hence, argumentRegisters is normally not effectual.

In this patch, we include argumentRegisters in SlowPathCallKey's identity check only when Options::clobberAllRegsInFTLICSlowPath
is set. And we also refactor SlowPathCallKey to reduce size of it from 40 to 24.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssemblerCodeRef.h:

(JSC::CFunctionPtr::CFunctionPtr):
(JSC::FunctionPtr::FunctionPtr):

  • ftl/FTLSlowPathCall.cpp:

(JSC::FTL::SlowPathCallContext::keyWithTarget const):

  • ftl/FTLSlowPathCallKey.cpp:

(JSC::FTL::SlowPathCallKey::dump const):

  • ftl/FTLSlowPathCallKey.h:

(JSC::FTL::SlowPathCallKey::SlowPathCallKey):
(JSC::FTL::SlowPathCallKey::callTarget const):
(JSC::FTL::SlowPathCallKey::usedRegisters const):
(JSC::FTL::SlowPathCallKey::argumentRegistersIfClobberingCheckIsEnabled const):
(JSC::FTL::SlowPathCallKey::indirectOffset const):
(JSC::FTL::SlowPathCallKey::withCallTarget):
(JSC::FTL::SlowPathCallKey::isEmptyValue const):
(JSC::FTL::SlowPathCallKey::isDeletedValue const):
(JSC::FTL::SlowPathCallKey::operator== const):
(JSC::FTL::SlowPathCallKey::hash const):
(JSC::FTL::SlowPathCallKey::argumentRegisters const): Deleted.

  • ftl/FTLThunks.cpp:

(JSC::FTL::registerClobberCheck):
(JSC::FTL::slowPathCallThunkGenerator):

  • jit/HashableRegisterSet.h: Removed.
  • jit/RegisterSet.h:

(JSC::RegisterSetHash::hash):
(JSC::RegisterSetHash::equal):

2:17 AM Changeset in webkit [291934] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

[WPE][GTK] Dist/distcheck targets fail due to Python error
https://bugs.webkit.org/show_bug.cgi?id=238394

Reviewed by Philippe Normand.

  • Scripts/make-dist:

(Directory.list_files_in_version_control): Ensure that data read from pipes is converted to
strings by specifying text="ascii", as it seems safe to assume that files listed by Git will
not contain non-ASCII characters. While at it, make the function return a set to speed up
lookups.

Note: See TracTimeline for information about the timeline view.