Timeline



Jun 6, 2022:

11:57 PM Changeset in webkit [295333] by achristensen@apple.com
  • 3 edits in trunk/Tools/TestWebKitAPI

Make _WKDataTask.Basic API test more permissive of different number of TCP connections
https://bugs.webkit.org/show_bug.cgi?id=241358
rdar://94322457

Reviewed by Tim Horton.

Since r294757 we call _setPrivacyProxyFailClosedForUnreachableNonMainHosts on most loads
from WKWebView, but _WKDataTask uses NetworkSessionCocoa::dataTaskWithRequest which does not.
On platforms that support the SPI, we now make a different TCP connection because the stream
properties are different so we can't use the same cached connection. This is fine. The test
verifies that the session cookie is sent. An alternative could be to call
_setPrivacyProxyFailClosedForUnreachableNonMainHosts for all _WKDataTask loads, but that would
strangely and unnecessarily block some loads. The mitigation for rdar://problem/92697007 is not
needed in contexts where _WKDataTask is used because those loads can't run JS that then triggers
other loads, and there's also no main document so the algorithm we use in r294757 can't work.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:

(TEST):

  • Tools/TestWebKitAPI/cocoa/HTTPServer.h:
  • Tools/TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::Connection::awaitableSend):

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

11:52 PM WebKitGTK/2.36.x edited by Adrian Perez de Castro
(diff)
11:03 PM Changeset in webkit [295332] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.10.12

Tag WebKit-7614.1.14.10.12.

10:47 PM Changeset in webkit [295331] by Alan Coon
  • 1 edit in branches/safari-7614.1.14.10-branch/Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm

Cherry-pick r294877. rdar://problem/93834054

Uniform buffer reuse causes flush, creates invalid state
https://bugs.webkit.org/show_bug.cgi?id=240896

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-05-26
Patch by Kyle Piddington.

Reviewed by Kimmo Kinnunen.

A flush during draw setup would leave the render command encoder
not started and render pipeline unset. This would assert in debug
and leak memory with corrupted draws in release.

This would happen for example when uniform buffer pool would run
out of uniform memory. If the pool is maxed out, we flush the
existing rendering to obtain free buffers. After the flush,
we need to re-run the setup.

Test is tracked in bug 240948.

  • Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm: (rx::ContextMtl::setupDraw): (rx::ContextMtl::setupDrawImpl):

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

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

10:47 PM Changeset in webkit [295330] by Alan Coon
  • 5 edits in branches/safari-7614.1.14.10-branch/Source/WebKit/UIProcess

Cherry-pick r294831. rdar://problem/93656000

Prevent NSAttributedString crashes when AppSSO URLs are provided
https://bugs.webkit.org/show_bug.cgi?id=240739
<rdar://93656000>

Reviewed by Chris Dumez.

When NSAttributedString is used in a sandboxed app, it is prevented from checking in with the
AppSSO plugin manager, causing a Sandbox Violation and crash. We don't want NSAttributedString
to ever hand-off to AppSSO, so we should configure it's internal WKWebView to do the right thing.
Reviewed by Chris Dumez.

  • Source/WebKit/UIProcess/API/Cocoa/NSAttributedString.mm: (+[_WKAttributedStringWebViewCache configuration]): Turn off AppSSO for string uses.
  • Source/WebKit/UIProcess/Cocoa/NavigationState.mm: (WebKit::trySOAuthorization): Use new lazy loading approach.
  • Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::trySOAuthorization): Ditto.
  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::WebsiteDataStore): (WebKit::WebsiteDataStore::soAuthorizationCoordinator): Lazily initialize, and RELEASE_ASSERT if we somehow reach this code without enabling AppSSO.
  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h: (WebKit::WebsiteDataStore::soAuthorizationCoordinator): Deleted.

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

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

10:47 PM Changeset in webkit [295329] by Alan Coon
  • 8 edits
    2 adds in branches/safari-7614.1.14.10-branch

Cherry-pick r294186. rdar://problem/93805727

Infinite recursion caused by call to accessibilityIsIgnored in the midst of AccessibilityObject::ignoredFromModalPresence
https://bugs.webkit.org/show_bug.cgi?id=240365

Reviewed by Chris Fleizach.

Source/WebCore:

We can get infinite recursion when accessibilityIsIgnored is called as
part of computing AccessibilityObject::ignoredFromModalPresence. One
example of such a cycle:

AXObjectCache::currentModalNode() ->
AccessibilityRenderObject::computeAccessibilityIsIgnored() ->
AccessibilityRenderObject::parentObjectUnignored() ->
AccessibilityObject::accessibilityIsIgnored() ->
AccessibilityObject::ignoredFromModalPresence() ->
AXObjectCache::currentModalNode() ->
...repeat...

This patch fixes this by tracking when we start computing the current
modal node in the AXObjectCache. Then, in AccessibilityObject::accessibilityIsIgnored(),
we don't call AccessibilityObject::ignoredFromModalPresence() if this new state is true,
since in this context we only need to know if the object is inherently
ignored (i.e. ignored disregarding modal presence).

Test: accessibility/aria-modal-with-text-crash.html

  • accessibility/AXObjectCache.cpp: (WebCore::AXObjectCache::currentModalNode):
  • accessibility/AXObjectCache.h: Add m_isRetrievingCurrentModalNode. (WebCore::AXObjectCache::isRetrievingCurrentModalNode): Added.
  • accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::accessibilityIsIgnored const): Don't call ignoredFromModalPresence if we're in the midst of computing the current modal.

LayoutTests:

  • accessibility/aria-modal-with-text-crash-expected.txt: Added.
  • accessibility/aria-modal-with-text-crash.html: Added.
  • platform/glib/TestExpectations: Skip new test.
  • platform/ios/TestExpectations: Enable new test.
  • platform/win/TestExpectations: Skip new test.

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

10:37 PM Changeset in webkit [295328] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.10-branch/Source

Versioning.

WebKit-7614.1.14.10.12

8:58 PM Changeset in webkit [295327] by don.olmstead@sony.com
  • 1 edit in trunk/Source/cmake/OptionsPlayStation.cmake

Fix PlayStation build after r295294
https://bugs.webkit.org/show_bug.cgi?id=241359

Reviewed by Ross Kirsling.

The ICU::uc target was added twice to a list of modules causing it to be multiply defined.

  • Source/cmake/OptionsPlayStation.cmake:

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

8:44 PM Changeset in webkit [295326] by mmaxfield@apple.com
  • 14 edits in trunk/Source/WebCore

Delete RenderTheme::cachedSystemFontDescription() because it does nothing
https://bugs.webkit.org/show_bug.cgi?id=241329

Reviewed by Cameron McCormack.

RenderTheme::cachedSystemFontDescription() is supposed to maintain storage for cached font descriptors.
However, every time this storage is referenced, it is immediately copied from, leaving the storage
in its default uninitialized state. There's no point in keeping default initialized objects around
for no reason.

This is the second piece in a sequence of patches to fix the accessibility bold setting in web content.

  • Source/WebCore/css/parser/CSSPropertyParser.cpp:

(WebCore::CSSPropertyParser::consumeSystemFont):

  • Source/WebCore/rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::getReplacementTextGeometry const):

  • Source/WebCore/rendering/RenderTheme.cpp:

(WebCore::RenderTheme::cachedSystemFontDescription const): Deleted.
(WebCore::RenderTheme::systemFont const): Deleted.

  • Source/WebCore/rendering/RenderTheme.h:

(WebCore::RenderTheme::canPaint const):

  • Source/WebCore/rendering/RenderThemeAdwaita.h:
  • Source/WebCore/rendering/RenderThemeCocoa.h:
  • Source/WebCore/rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::systemFont const):
(WebCore::RenderThemeCocoa::cachedSystemFontDescription const): Deleted.
(WebCore::RenderThemeCocoa::updateCachedSystemFontDescription const): Deleted.

  • Source/WebCore/rendering/RenderThemeGtk.cpp:

(WebCore::RenderThemeGtk::systemFont const):
(WebCore::RenderThemeGtk::updateCachedSystemFontDescription const): Deleted.

  • Source/WebCore/rendering/RenderThemeGtk.h:
  • Source/WebCore/rendering/RenderThemePlayStation.cpp:

(WebCore::RenderThemePlayStation::systemFont const):
(WebCore::RenderThemePlayStation::updateCachedSystemFontDescription const): Deleted.

  • Source/WebCore/rendering/RenderThemePlayStation.h:
  • Source/WebCore/rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::systemFont const):
(WebCore::fillFontDescription): Deleted.
(WebCore::RenderThemeWin::updateCachedSystemFontDescription const): Deleted.

  • Source/WebCore/rendering/RenderThemeWin.h:

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

8:43 PM Changeset in webkit [295325] by Alan Coon
  • 6 edits in trunk/Tools/Scripts/libraries

Add proxy support to webkitscmpy's GitHub client
https://bugs.webkit.org/show_bug.cgi?id=241031
rdar://93129765

Reviewed by Jonathan Bedard.

Allow for the passing of proxy settings to the GitHub client. Use
requests.Session to pass the proxy settings to all requests made.

Additionally pass this session to the Tracker data member, for
github.com networking requests made at the Tracker level.

Version bumps webkitbugspy and webkitscmpy.

  • Tools/Scripts/libraries/webkitbugspy/setup.py: version bump to 0.6.3
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: version bump to 0.6.3
  • Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:

Add a requests.Session member to the class that can be passed into the constructor.
Call all networking requests through the session.
(Tracker.init):
(Tracker):
(Tracker.credentials.validater):

  • Tools/Scripts/libraries/webkitscmpy/setup.py: version bump to 4.15.4
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: version bump to 4.15.4
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:

Add a proxies argument to the constructor. Will pass proxies to a request.Session member
that is used to perform networking requests to github.com from this class.
This session is passed to the Tracker member in its constructor (see webkitbugspy.github changes).
(GitHub.PRGenerator.create):
(GitHub.PRGenerator.update):
(GitHub.init):
(GitHub.request):
(GitHub._count_for_ref):
(GitHub._branches_for):

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

7:30 PM Changeset in webkit [295324] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick c88d60bba878. rdar://problem/91643534

<link rel=preconnect> always sends credentials to different-origin, ignoring crossorigin=anonymous
https://bugs.webkit.org/show_bug.cgi?id=239119
<rdar://problem/91643534>

Reviewed by John Wilander.

Update the check as per spec, step 5 of
https://html.spec.whatwg.org/multipage/links.html#link-type-preconnect

This is difficult to test as preconnect can only expose TLS credentials.

  • loader/LinkLoader.cpp: (WebCore::LinkLoader::preconnectIfNeeded):

Canonical link: https://commits.webkit.org/250034@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293503 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:30 PM Changeset in webkit [295323] by Alan Coon
  • 18 edits
    20 moves
    24 adds in branches/safari-613-branch

Cherry-pick c7f59d768c0a. rdar://problem/94467852

Incorrect CORP/COEP check in 304 responses
https://bugs.webkit.org/show_bug.cgi?id=238238
<rdar://problem/90706510>

Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2022-04-08
Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Sync cross-origin-embedder-policy tests to include the new test require-corp-revalidated-images.https.html.

  • web-platform-tests/html/cross-origin-embedder-policy/block-local-documents-inheriting-none.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache-storage.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache-storage.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache-storage.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/cache.tentative.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/dedicated-worker.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/dedicated-worker.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/fetch.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/fetch.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/fetch.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-credentialless.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-credentialless.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-credentialless.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-none.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-none.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-none.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe-coep-require-corp.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/iframe.tentative.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/image.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/image.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/image.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/link.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/link.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/link.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/redirect.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/redirect.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/redirect.tentative.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-navigation.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-navigation.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-navigation.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-subresource-corp.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-subresource-corp.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/reporting-subresource-corp.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/script.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/script.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/script.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-credentialless-proxy.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-credentialless-proxy.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-credentialless-proxy.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-none-proxy.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-none-proxy.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker-coep-none-proxy.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/service-worker.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/shared-worker.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/shared-worker.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.https.window.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.https.window.js: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.tentative.https.window.js.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.https.window.js.headers: Renamed from LayoutTests/imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/credentialless/video.tentative.https.window.js.headers.
  • web-platform-tests/html/cross-origin-embedder-policy/credentialless/w3c-import.log:
  • web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/dedicated-worker.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/reporting-to-endpoint.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/reporting-to-endpoint.https.html.headers:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-cached-images.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-cached-images.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-revalidated-images.https-expected.txt: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/require-corp-revalidated-images.https.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/resources/corp-image.py: (main):
  • web-platform-tests/html/cross-origin-embedder-policy/resources/fetch-and-create-url.html: Added.
  • web-platform-tests/html/cross-origin-embedder-policy/resources/load-corp-images.html:
  • web-platform-tests/html/cross-origin-embedder-policy/resources/w3c-import.log:
  • web-platform-tests/html/cross-origin-embedder-policy/resources/worker-support.js: Added. (setCoep): (resolveUrl): (async withIframe): (waitForMessage): (async createLocalUrl):
  • web-platform-tests/html/cross-origin-embedder-policy/shared-workers.https-expected.txt:
  • web-platform-tests/html/cross-origin-embedder-policy/shared-workers.https.html:
  • web-platform-tests/html/cross-origin-embedder-policy/w3c-import.log:

Source/WebKit:

Add CORP header to the 304 response if previously set to avoid being blocked by load checker due to COEP.

Test: imported/w3c/web-platform-tests/html/cross-origin-embedder-policy/require-corp-revalidated-images.https.html

  • NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::didReceiveResponse):

LayoutTests:

Mark some tests with DumpJSConsoleLogInStdErr modifier.

Canonical link: https://commits.webkit.org/249428@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292595 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:30 PM Changeset in webkit [295322] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick e40c1e30bd61. rdar://problem/94467808

CSP: Fix script-src-elem policies in workers
https://bugs.webkit.org/show_bug.cgi?id=239840

Reviewed by Kate Cheney.

Source/WebCore:

Test: http/tests/security/contentSecurityPolicy/script-src-strict-dynamic-and-script-src-elem.html

  • page/csp/ContentSecurityPolicyDirectiveList.cpp: (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScript const):

LayoutTests:

CSP: Fix script-src-elem policies in workers

  • http/tests/security/contentSecurityPolicy/script-src-strict-dynamic-and-script-src-elem-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/script-src-strict-dynamic-and-script-src-elem.html: Added.

Canonical link: https://commits.webkit.org/250386@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293940 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:30 PM Changeset in webkit [295321] by Alan Coon
  • 15 edits
    3 adds in branches/safari-613-branch

Cherry-pick bf09fd4a06a7. rdar://problem/92033309

Add testRunner API to clear memory cache
https://bugs.webkit.org/show_bug.cgi?id=239804
rdar://92033309

Reviewed by Chris Dumez.

Source/WebCore:

  • testing/Internals.cpp: (WebCore::Internals::clearMemoryCache): Beef up clearMemoryCache to be on par with testRunner counterpart.

Source/WebKit:

Add necessary WebKit API to implement the testRunner API.
Make use of new testRunner API in added test.

Test: http/wpt/fetch/clear-memory-cache.html

  • NetworkProcess/NetworkProcess.cpp:
  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:
  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

Tools:

Implement the clear memory cache testRunner API and related plumbery.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:
  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:
  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

LayoutTests:

  • http/wpt/fetch/clear-memory-cache-expected.txt: Added.
  • http/wpt/fetch/clear-memory-cache.html: Added.
  • http/wpt/fetch/resources/clear-memory-cache.py: Added.

Canonical link: https://commits.webkit.org/250033@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293502 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:30 PM Changeset in webkit [295320] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore/platform/graphics/avfoundation/objc

Cherry-pick b3360dfccef2. rdar://problem/89387951

[Cocoa][MSE] Frames are displayed "fast forward" during seek operations
https://bugs.webkit.org/show_bug.cgi?id=241234
<rdar://89387951>

Reviewed by Eric Carlson.

When MSE was moved into the GPU process, certain operations that used to be synchronous became
async. This includes seek operations, where the seek request is initiated by the HTMLMediaElement,
async dispatched to the MediaPlayer in the GPU process, and then async dispatched back to the
WebContent process and MediaSource. Immediately prior to this last dispatch, the
SourceBufferPrivateAVFObjC flushes its sample buffer renderers, and during the subsequent async
portion there is an opportunity for the sample buffers to request new data. When that request
occurs before the response to the async dispatch, incorrect samples (future samples from the
previous playback location) are enqueued. These are then flushed again during the async response,
and replaced by correct samples.

Add a new ivar to SourceBufferPrivateAVFObjC that tracks this state, blocking enqueing new samples
while there is a pending seek operation.

  • Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::willSeek): (WebCore::SourceBufferPrivateAVFObjC::seekToTime): (WebCore::SourceBufferPrivateAVFObjC::isSeeking const):

Canonical link: https://commits.webkit.org/251301@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@295253 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:30 PM Changeset in webkit [295319] by Alan Coon
  • 1 edit
    2 adds in branches/safari-613-branch

Cherry-pick 97487f0eee71. rdar://problem/90755619

[iOS 15] Unable to type in Google Docs with a hardware keyboard without refocusing editor
https://bugs.webkit.org/show_bug.cgi?id=241308
rdar://90755619

Reviewed by Tim Horton.

After the changes in r277265, we no longer call into -reloadInputViews when starting an input
session after programmatically focusing an editable container with inputmode="none", with a
hardware keyboard attached. This is because -_shouldShowKeyboardForElement: returns NO (due to
inputmode none), so we bail early at this check:

`

if (!shouldShowInputView
information.elementType == WebKit::InputType::None) {

_page->setIsShowingInputViewForFocusedElement(false);
return;

}
`

As a result, UIKit never resets UIKeyboardImpl's input delegate, which should now be the
WKContentView, and thus never consults whether we require key events (-requiresKeyEvents), which
in turn means that -handleKeyWebEvent:withCompletionHandler: is never invoked on the content view,
so we never dispatch key events to the page.

In the normal, non-editable key event case, we lazily call -reloadInputViews in
-_handleKeyUIEvent: (which is called just before keyboard WebEvents start getting dispatched by
UIKit). However, since we're still focusing an editable element in this case, we don't end up going
down this codepath.

When the hardware keyboard is not connected, avoiding the call to -reloadInputViews is expected,
since we aren't showing a keyboard anyways due to the fact that the element was programmatically
focused (so the user has no way of typing or dispatching key events, in the first place).

And finally, when the inputmode is not none, _isFocusingElementWithKeyboard is set to YES, so
we begin the input session and call -reloadInputViews as normal.

It's only in this inputmode=none case with both the hardware keyboard attached and the editable
container being programmatically focused, where we end up in a state where the user can type with a
hardware keyboard, but we haven't informed UIKit that we should receive key events.

We can fix this by consulting a separate -_shouldShowKeyboardForElementIgnoringInputMode: instead
which allows us to follow the normal routine for focusing an editable element with inputmode="none"
which includes zooming to reveal the focused element if it's on-screen and not hidden, as well as
calling the related delegate methods; the only difference is that we avoid showing the UCB or
software keyboard, by returning YES from -_disableAutomaticKeyboardUI in this case.

  • LayoutTests/fast/forms/ios/keydown-in-hidden-contenteditable-with-inputmode-none-expected.txt: Added.
  • LayoutTests/fast/forms/ios/keydown-in-hidden-contenteditable-with-inputmode-none.html: Added.

Add a new layout test to simulate typing in Google Docs with a hardware keyboard (i.e., focus a
hidden contenteditable container with inputmode="none"), and verify that we dispatch key events to
the focused editable element.

  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _elementTypeRequiresAccessoryView:]): (-[WKContentView _shouldShowKeyboardForElement:]): (-[WKContentView _shouldShowKeyboardForElementIgnoringInputMode:]):

Split this helper method into two versions (one of which ignores inputmode=none). See above for
more details.

(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):

Canonical link: https://commits.webkit.org/251335@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@295289 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:30 PM Changeset in webkit [295318] by Alan Coon
  • 10 edits
    1 add in branches/safari-613-branch

Cherry-pick 8a2d5954643f. rdar://problem/94467773

Calls to print can result in unresponsive print modal
https://bugs.webkit.org/show_bug.cgi?id=237940
<rdar://problem/88257828>

Reviewed by Chris Dumez.

Source/WebKit:

Calls to print were hanging in the case of the client asynchronously
handling the completion handler passed to the delegate. To fix this
we can adjust all printing IPC to have the option
DispatchMessageEvenWhenWaitingForUnboundedSyncReply which allows IPC
messages when waiting for a sync reply in the case where the receiver
of the message is not guranteed to call the completion handler at the
end of the runloop.

  • UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
  • UIProcess/API/Cocoa/WKWebViewTesting.mm: (-[WKWebView _computePagesForPrinting:completionHandler:]):
  • UIProcess/WebPageProxy.cpp: (WebKit::printingSendOptions):
  • WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::print):

Tools:

Add API test. Adjust delegate naming in the PDF case to be more
specific so we can use the generic PrintUIDelegate name in the general
case.

  • TestWebKitAPI/SourcesCocoa.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm: (TEST): (-[PrintUIDelegate _webView:printFrame:pdfFirstPageSize:completionHandler:]): Deleted. (-[PrintUIDelegate waitForPageSize]): Deleted. (-[PrintUIDelegate lastPrintedFrame]): Deleted.
  • TestWebKitAPI/Tests/WebKitCocoa/WKPrinting.mm: Added. (-[PrintUIDelegate callBlockAsync:]): (-[PrintUIDelegate _webView:printFrame:pdfFirstPageSize:completionHandler:]): (-[PrintUIDelegate waitForPagination]): (TEST):

Canonical link: https://commits.webkit.org/248540@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291412 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:30 PM Changeset in webkit [295317] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick 753398de3962. rdar://problem/92081823

Use more smart pointers in Element.cpp
https://bugs.webkit.org/show_bug.cgi?id=239836

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

  • dom/Element.cpp: (WebCore::Element::setScrollLeft): (WebCore::Element::setScrollTop):

Canonical link: https://commits.webkit.org/250083@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293569 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:30 PM Changeset in webkit [295316] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick 694fbb13c1b6. rdar://problem/92081556

afterprint event should be scheduled on event loop
https://bugs.webkit.org/show_bug.cgi?id=239883

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

  • page/Page.cpp: (WebCore::dispatchPrintEvent): (WebCore::Page::dispatchBeforePrintEvent): (WebCore::Page::dispatchAfterPrintEvent):

Canonical link: https://commits.webkit.org/250112@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293606 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:30 PM Changeset in webkit [295315] by Alan Coon
  • 9 edits
    2 adds in branches/safari-613-branch

Cherry-pick 2c80da108c11. rdar://problem/84667910

[iOS] Keyboard obscures file upload context menu when trying to attach a file in gmail.com
https://bugs.webkit.org/show_bug.cgi?id=241320
rdar://84667910

Reviewed by Tim Horton.

When composing a message on gmail.com, if a user taps the "Attach file" button in the bottom
toolbar, Gmail's script programmatically clicks a hidden file input and then immediately focuses the
editable body field. The context menu presents at the interaction location near the bottom of the
viewport; however, if no hardware keyboard is attached, the software keyboard appears right
afterwards, obscuring the context menu completely.

To address this, teach WKFileUploadPanel to reposition its context menu when the keyboard is
shown, if it might overlap with the bounds of the input view.

  • LayoutTests/fast/forms/ios/show-file-upload-context-menu-above-keyboard-expected.txt: Added.
  • LayoutTests/fast/forms/ios/show-file-upload-context-menu-above-keyboard.html: Added.

Add a layout test to verify that focusing a text field with the software keyboard while presenting a
file picker doesn't result in the file picker's context menu being obscured behind the keyboard.

  • LayoutTests/resources/ui-helper.js: (window.UIHelper.dismissMenu): (window.UIHelper.contextMenuRect):

Add a couple of new UIHelper methods.

  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _keyboardDidShow]):

If the keyboard appears while the file upload panel is active, reposition the context menu if it
overlaps with the new keyboard bounds.

(-[WKContentView _zoomToFocusRectAfterShowingKeyboardIfNeeded]):

Factor this existing logic out into a helper method.

  • Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.h:
  • Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm: (-[WKFileUploadPanel contextMenuInteraction:willEndForConfiguration:animator:]):

If the _isRepositioningContextMenu flag is set, avoid removing and destroying the context menu
interaction.

(-[WKFileUploadPanel ensureContextMenuInteraction]):

Drive-by fix: adjust -ensureContextMenuInteraction so that it returns the either the existing or
newly created context menu interaction.

(-[WKFileUploadPanel repositionContextMenuIfNeeded]):

Add a helper method to reposition the context menu by removing and re-presenting the context menu
interaction without animation, only if it overlaps the input view bounds. While removing and
presenting the context menu again, set a _isRepositioningContextMenu flag, such that

(-[WKFileUploadPanel showDocumentPickerMenu]):

  • Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • Tools/TestRunnerShared/UIScriptContext/UIScriptController.h: (WTR::UIScriptController::contextMenuRect const):
  • Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm: (-[TestRunnerWKWebView _dismissAllContextMenuInteractions]):

Adjust this helper to immediately cancel all context menu interactions without animation, so that
context menu removal delegate methods don't bleed into subsequent tests.

  • Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm: (WTR::UIScriptControllerIOS::menuRect const):

Use the new toObject helper method.

(WTR::UIScriptControllerIOS::contextMenuRect const):

Add support for a new script controller method to return the context menu container view's bounds
in window coordinates. Note that I'm using window coordinates here as opposed to root view
coordinates, since the new test that uses this method needs to compare the context menu's position
against the input view bounds in window coordinates.

(WTR::UIScriptControllerIOS::toObject const):

Add a helper method to convert the given CGRect into a JavaScript object reference.

Canonical link: https://commits.webkit.org/251344@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@295299 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7:30 PM Changeset in webkit [295314] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick 0fe83157c4d9. rdar://problem/94467906

CSP: Fix mixing strict-dynamic and unsafe-inline policies
https://bugs.webkit.org/show_bug.cgi?id=239862

Reviewed by Kate Cheney.

Source/WebCore:

Test: http/tests/security/contentSecurityPolicy/script-src-strict-dynamic-and-unsafe-inline-policies.html

  • page/csp/ContentSecurityPolicyDirectiveList.cpp: (WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForNonParserInsertedScripts const):

LayoutTests:

If you had multiple policies, one including strict-dynamic and another with unsafe-inline, the unsafe-inline
policy was incorrectly handled.

  • http/tests/security/contentSecurityPolicy/script-src-strict-dynamic-and-unsafe-inline-policies-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/script-src-strict-dynamic-and-unsafe-inline-policies.html: Added.

Canonical link: https://commits.webkit.org/250109@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293603 268f45cc-cd09-0410-ab3c-d52691b4dbfc

6:32 PM Changeset in webkit [295313] by Alan Coon
  • 1 edit in branches/safari-7614.1.16-branch/Source/WebCore/accessibility/AXObjectCache.h

Cherry-pick r295165.

Unreviewed !ENABLE(ACCESSIBILITY) build fix for r295139.

  • Source/WebCore/accessibility/AXObjectCache.h: (WebCore::AXObjectCache::relatedObjectIDsFor): (WebCore::AXObjectCache::relatedObjectsFor): Deleted.

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

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

6:27 PM Changeset in webkit [295312] by Alan Coon
  • 1 copy in branches/safari-7614.1.16-branch

New branch.

6:19 PM Changeset in webkit [295311] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.15.2

Tag WebKit-7614.1.15.2.

5:58 PM Changeset in webkit [295310] by don.olmstead@sony.com
  • 1 edit in trunk/Tools/WebKitTestRunner/CMakeLists.txt

[CMake] Cleanup use of frameworks in WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=241349

Reviewed by Fujii Hironori.

Remove includes that are implicit from using a framework.

  • Tools/WebKitTestRunner/CMakeLists.txt:

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

5:35 PM Changeset in webkit [295309] by Alan Coon
  • 11 edits in branches/safari-613-branch

Cherry-pick b8c770451902. rdar://problem/84570717

[Modern Media Controls] macCatalyst should not use touch events
https://bugs.webkit.org/show_bug.cgi?id=240704
<rdar://problem/84570717>

Reviewed by Eric Carlson.

  • Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js: (LayoutTraits.prototype.supportsTouches): Added.
  • Source/WebCore/Modules/modern-media-controls/controls/macos-layout-traits.js: (MacOSLayoutTraits.prototype.supportsTouches): Added. Allow LayoutTraits to indicate whether touches are supported.
  • Source/WebCore/Modules/modern-media-controls/controls/auto-hide-controller.js: (AutoHideController):
  • Source/WebCore/Modules/modern-media-controls/controls/button.js: (Button):
  • Source/WebCore/Modules/modern-media-controls/controls/range-button.js: (RangeButton):
  • Source/WebCore/Modules/modern-media-controls/controls/slider.js: (Slider.prototype._interactionEndTarget):
  • Source/WebCore/Modules/modern-media-controls/media/media-document-controller.js: (MediaDocumentController): Use LayoutTraits.prototype.supportsTouches instead of GestureRecognizer.SupportsTouches so that macOS (including macCatalyst) can always act as though touches are not supported (which is fine since mouse events are fully functional on macOS).
  • LayoutTests/media/modern-media-controls/button/button-icon-name.html:
  • LayoutTests/media/modern-media-controls/button/button.html:
  • LayoutTests/media/modern-media-controls/buttons-container/buttons-container-buttons-property.html:
  • LayoutTests/media/modern-media-controls/buttons-container/buttons-container-constructor.html:
  • LayoutTests/media/modern-media-controls/buttons-container/buttons-container-layout.html: Add layoutDelegate/layoutTraits where needed.

Canonical link: https://commits.webkit.org/250814@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294573 268f45cc-cd09-0410-ab3c-d52691b4dbfc

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

Cherry-pick 348b1a10ee87. rdar://problem/92449950

[CSS Cascade Layers] Endless recursion with revert-layer in other tree context
https://bugs.webkit.org/show_bug.cgi?id=239967
<rdar://92449950>

Reviewed by Alan Bujtas.

Source/WebCore:

We should only revert within a tree context (scope).

Adding more comprehensive WPTs separately.

Test: fast/css/revert-layer-tree-context-stack-overflow.html

  • style/PropertyCascade.cpp: (WebCore::Style::PropertyCascade::PropertyCascade):

Pass the property tree scope to the rollback cascade.

(WebCore::Style::PropertyCascade::addMatch):

Don't include properties from lower priority tree scopes to rollback cascade.
Reverse the logic for clarity.

  • style/PropertyCascade.h: (WebCore::Style::PropertyCascade::PropertyCascade):
  • style/StyleBuilder.cpp: (WebCore::Style::Builder::ensureRollbackCascadeForRevert): (WebCore::Style::Builder::ensureRollbackCascadeForRevertLayer): (WebCore::Style::Builder::makeRollbackCascadeKey):

Include tree scope to the key.

  • style/StyleBuilder.h:

LayoutTests:

  • fast/css/revert-layer-tree-context-stack-overflow-expected.html: Added.
  • fast/css/revert-layer-tree-context-stack-overflow.html: Added.

Canonical link: https://commits.webkit.org/250213@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293725 268f45cc-cd09-0410-ab3c-d52691b4dbfc

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

Cherry-pick 077f4d227924. rdar://problem/94034984

AX: inert attribute doesn't cause display:contents element to be ignored
https://bugs.webkit.org/show_bug.cgi?id=241022

Reviewed by Chris Fleizach.

Prior to this patch, the inert attribute didn't cause node-only objects
(like those with display:contents) to be ignored. This was because
AccessibilityObject::defaultObjectInclusion only checked effectiveInert
for elements with renderers, even though you only need an element to
have style (not a renderer).

This patch fixes this by adding a new AccessibilityObject::style()
method which uses AccessibilityObject::element() to get
Element::computedStyle() and checking effectiveInert on that, which
works for both renderer and renderer-less objects.

  • LayoutTests/accessibility/node-only-inert-object-expected.txt: Added.
  • LayoutTests/accessibility/node-only-inert-object.html: Added.
  • LayoutTests/platform/ios/TestExpectations: Enable new test.
  • LayoutTests/platform/mac-wk1/TestExpectations: Skip new test.
  • Source/WebCore/accessibility/AccessibilityObject.cpp: (WebCore::AccessibilityObject::style const): Added. (WebCore::AccessibilityObject::defaultObjectInclusion const):
  • Source/WebCore/accessibility/AccessibilityObject.h:

Canonical link: https://commits.webkit.org/251185@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@295090 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5:35 PM Changeset in webkit [295306] by Alan Coon
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.3.4

5:15 PM Changeset in webkit [295305] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/platform/ios/UserAgentIOS.mm

Make Mobile Safari desktop mode report the same macOS version in the user agent as Safari on Mac
https://bugs.webkit.org/show_bug.cgi?id=241322

Patch by nitinseshadri <61258126+nitinseshadri@users.noreply.github.com> on 2022-06-06
Reviewed by Alexey Proskuryakov.

  • Source/WebCore/platform/ios/UserAgentIOS.mm:

(WebCore::standardUserAgentWithApplicationName):
Change reported macOS version in user agent to 10.15.7.

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

4:47 PM Changeset in webkit [295304] by Brent Fulgham
  • 1 edit in trunk/Source/WebKit/Configurations/BaseXPCService.xcconfig

Framework Mismatch Crash when loading any page if CaptivePortal mode enabled
rdar://89925654

Reviewed by Tim Horton.

Code signing flags were improperly set for the CaptivePortal process. This patch instructs the build
system to treat CaptivePortal code signing the same as Normal WebContent process builds.

  • Source/WebKit/Configurations/BaseXPCService.xcconfig:

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

4:23 PM Changeset in webkit [295303] by Russell Epstein
  • 12 edits in branches/safari-7614.1.15-branch/Source

Cherry-pick r295134. rdar://problem/93068926

Fix build failures introduced in "[Xcode] Prevent STP and other self-contained builds from overwriting content in the macOS SDK"
https://bugs.webkit.org/show_bug.cgi?id=240408

Reviewed by Alexey Proskuryakov.

Revert "Revert "[Xcode] Prevent STP and other self-contained builds from overwriting content in the macOS SDK""
This reverts commit 680fe6580f261df69a607a33b6252f3e19704169.

Apply small fixups across xcconfig files to address regressions:

  • Fix SYSTEM_HEADER_SEARCH_PATHS not referring to Catlyst's include directory.
  • Replace /usr/local/include literal in PROFILE_DATA_PATH with WK_ALTERNATE_WEBKIT_SDK_PATH and WK_LIBRARY_HEADERS_FOLDER_PATH to select the correct profdata for Catalyst or self-contained builds.
  • Source/JavaScriptCore/Configurations/Base.xcconfig: Clean up an old WK_STATICLIB_INSTALL_PREFIX, replacing it with WK_LIBRARY_HEADERS_FOLDER_PATH.
  • Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:
  • Source/WebCore/Configurations/WebCore.xcconfig:
  • Source/WebCore/PAL/Configurations/PAL.xcconfig:
  • Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj: PAL's SDKVariant.xcconfig was not included in the project for some reason. This is fine for building (as it's still includable) but prevents Xcode from indexing it. Add it.
  • Source/WebGPU/Configurations/WGSL.xcconfig:
  • Source/WebGPU/Configurations/WebGPU.xcconfig:
  • Source/WebKit/Configurations/BaseTarget.xcconfig:
  • Source/WebKit/Configurations/SandboxProfiles.xcconfig: Clean up an old WK_STATICLIB_INSTALL_PREFIX setting. We don't need to redirect sandbox profiles to a separate directory, like we do headers and static libraries, so leave these paths hard coded to /usr/local/include.
  • Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig:

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

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

4:23 PM Changeset in webkit [295302] by Russell Epstein
  • 45 edits in branches/safari-7614.1.15-branch/Source

Cherry-pick r295073. rdar://problem/93068926

[Xcode] Prevent STP and other self-contained builds from overwriting content in the macOS SDK
https://bugs.webkit.org/show_bug.cgi?id=240408

Reviewed by Alexey Proskuryakov.

When building with WK_OVERRIDE_FRAMEWORKS_DIR, we assume that WebKit is
being built as part of a self-contained application, e.g. Safari
Technology Preview. This means that most content is installed to the
override directory, instead of the normal /System/Library/Frameworks
directory.

However, static library content (e.g. headers and archives
for bmalloc, webrtc, WTF) is _not_ installed to the override directory,
as it is not needed at runtime. It was being installed to the default
/usr/local prefix, where it would merge with and overwrite whatever
WebKit content was already present.

To prevent overwrites and other sorts of conflict with the
system-provided WebKit, introduce WK_LIBRARY_HEADERS_FOLDER_PATH and
WK_LIBRARY_INSTALL_PATH, which expand to /usr/local/include/safari-sdk
and /usr/local/lib/safari-sdk respectively when building in this mode.
Static library headers and archives are built to these locations, where
they're still in the expected SDK location, but won't clobber system
WebKit.

  • Source/bmalloc/Configurations/Base.xcconfig:
  • Source/bmalloc/Configurations/bmalloc.xcconfig:
  • Source/bmalloc/Configurations/mbmalloc.xcconfig:
  • Source/JavaScriptCore/Configurations/Base.xcconfig:
  • Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:
  • Source/JavaScriptCore/DerivedSources.make:
  • Source/JavaScriptCore/Scripts/generate-unified-sources.sh:
  • Source/JavaScriptCore/offlineasm/config.rb:
  • Source/JavaScriptCore/offlineasm/parser.rb:
  • Source/ThirdParty/ANGLE/Configurations/ANGLE-dynamic.xcconfig:
  • Source/ThirdParty/ANGLE/Configurations/AngleMetalLib.xcconfig:
  • Source/ThirdParty/ANGLE/Configurations/Base.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/Base.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/boringssl.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libabsl.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libsrtp.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libvpx.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libwebrtc.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/libyuv.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/opus.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/usrsctp.xcconfig:
  • Source/ThirdParty/libwebrtc/Configurations/yasm.xcconfig:
  • Source/WebCore/PAL/Configurations/Base.xcconfig:
  • Source/WebCore/PAL/Configurations/PAL.xcconfig:
  • Source/WebGPU/Configurations/Base.xcconfig:
  • Source/WebGPU/Configurations/WGSL.xcconfig:
  • Source/WebGPU/Configurations/WGSLUnitTests.xcconfig:
  • Source/WebGPU/Configurations/WebGPU.xcconfig:
  • Source/WebKit/Configurations/Base.xcconfig:
  • Source/WebKit/Configurations/BaseTarget.xcconfig:
  • Source/WebKit/Configurations/SandboxProfiles.xcconfig:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebKitLegacy/scripts/generate-unified-sources.sh:
  • Source/WebKitLegacy/mac/Configurations/Base.xcconfig:
  • Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig:
  • Source/WTF/Configurations/Base.xcconfig:
  • Source/WTF/Configurations/WTF.xcconfig:
  • Source/WTF/Configurations/icu.xcconfig:
  • Source/WebCore/Configurations/Base.xcconfig:
  • Source/WebCore/Configurations/WebCore.xcconfig:
  • Source/WebCore/Configurations/WebCoreTestSupport.xcconfig:
  • Source/WebCore/DerivedSources.make:
  • Source/WebCore/Scripts/generate-unified-sources.sh:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:

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

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

4:23 PM Changeset in webkit [295301] by Russell Epstein
  • 6 edits
    1 add in branches/safari-7614.1.15-branch/Source

Cherry-pick r295065. rdar://problem/93068926

Refer to correct profiling data in WebCore and WebKit
https://bugs.webkit.org/show_bug.cgi?id=239681

Reviewed by Alexey Proskuryakov.

Revert "Unreviewed, revert "[Xcode] Compute PGO profdata paths instead of searching for them at build time""
This reverts commit 2ee0d9d171e2ff7daa94d1a15727033a994e6414.

A bad copy-paste led to WebCore and WebKit's production builds using PGO
data from JavaScriptCore. Fix it, and add back a check that ensures
production builds fail instead of falling back to stub profiling data.

  • Source/WebCore/Configurations/WebCore.xcconfig:
  • Source/WebKit/Configurations/BaseTarget.xcconfig:

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

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

3:12 PM Changeset in webkit [295300] by Ryan Haddad
  • 1 edit in trunk/LayoutTests/platform/ios/TestExpectations

[iOS] Skip tests that cause crashes due to unfired UI script callbacks
https://bugs.webkit.org/show_bug.cgi?id=241350

Unreviewed test gardening.

These tests were identified in webkit.org/b/236794. Skip them to reduce flakes and
false positives on iOS test bots. Remove flaky expectations for tests that were caught
in the fallout from these bad tests.

  • LayoutTests/platform/ios/TestExpectations:

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

3:08 PM Changeset in webkit [295299] by Wenson Hsieh
  • 9 edits
    2 adds in trunk

[iOS] Keyboard obscures file upload context menu when trying to attach a file in gmail.com
https://bugs.webkit.org/show_bug.cgi?id=241320
rdar://84667910

Reviewed by Tim Horton.

When composing a message on gmail.com, if a user taps the "Attach file" button in the bottom
toolbar, Gmail's script programmatically clicks a hidden file input and then immediately focuses the
editable body field. The context menu presents at the interaction location near the bottom of the
viewport; however, if no hardware keyboard is attached, the software keyboard appears right
afterwards, obscuring the context menu completely.

To address this, teach WKFileUploadPanel to reposition its context menu when the keyboard is
shown, if it might overlap with the bounds of the input view.

  • LayoutTests/fast/forms/ios/show-file-upload-context-menu-above-keyboard-expected.txt: Added.
  • LayoutTests/fast/forms/ios/show-file-upload-context-menu-above-keyboard.html: Added.

Add a layout test to verify that focusing a text field with the software keyboard while presenting a
file picker doesn't result in the file picker's context menu being obscured behind the keyboard.

  • LayoutTests/resources/ui-helper.js:

(window.UIHelper.dismissMenu):
(window.UIHelper.contextMenuRect):

Add a couple of new UIHelper methods.

  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _keyboardDidShow]):

If the keyboard appears while the file upload panel is active, reposition the context menu if it
overlaps with the new keyboard bounds.

(-[WKContentView _zoomToFocusRectAfterShowingKeyboardIfNeeded]):

Factor this existing logic out into a helper method.

  • Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.h:
  • Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel contextMenuInteraction:willEndForConfiguration:animator:]):

If the _isRepositioningContextMenu flag is set, avoid removing and destroying the context menu
interaction.

(-[WKFileUploadPanel ensureContextMenuInteraction]):

Drive-by fix: adjust -ensureContextMenuInteraction so that it returns the either the existing or
newly created context menu interaction.

(-[WKFileUploadPanel repositionContextMenuIfNeeded]):

Add a helper method to reposition the context menu by removing and re-presenting the context menu
interaction without animation, only if it overlaps the input view bounds. While removing and
presenting the context menu again, set a _isRepositioningContextMenu flag, such that

(-[WKFileUploadPanel showDocumentPickerMenu]):

  • Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • Tools/TestRunnerShared/UIScriptContext/UIScriptController.h:

(WTR::UIScriptController::contextMenuRect const):

  • Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView _dismissAllContextMenuInteractions]):

Adjust this helper to immediately cancel all context menu interactions without animation, so that
context menu removal delegate methods don't bleed into subsequent tests.

  • Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h:
  • Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptControllerIOS::menuRect const):

Use the new toObject helper method.

(WTR::UIScriptControllerIOS::contextMenuRect const):

Add support for a new script controller method to return the context menu container view's bounds
in window coordinates. Note that I'm using window coordinates here as opposed to root view
coordinates, since the new test that uses this method needs to compare the context menu's position
against the input view bounds in window coordinates.

(WTR::UIScriptControllerIOS::toObject const):

Add a helper method to convert the given CGRect into a JavaScript object reference.

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

3:04 PM Changeset in webkit [295298] by Ryan Haddad
  • 1 edit in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm

REGRESSION: [ iOS ] Six TestWebKitAPI.AppPrivacyReport API tests are a consistent timeout
https://bugs.webkit.org/show_bug.cgi?id=241233
<rdar://94298162>

Reviewed by Kate Cheney.

Two tests requiring a fix were missed in 251292@main.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:

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

2:46 PM Changeset in webkit [295297] by timothy_horton@apple.com
  • 2 edits
    2 copies in trunk/LayoutTests/compositing

REGRESSION (r295269): compositing/hidpi-compositing-layer-with-zero-sized-container.html times out
https://bugs.webkit.org/show_bug.cgi?id=241346

Reviewed by Alan Bujtas.

  • LayoutTests/compositing/hidpi-compositing-layer-with-zero-sized-container-expected.html:
  • LayoutTests/compositing/hidpi-compositing-layer-with-zero-sized-container.html:
  • LayoutTests/compositing/hidpi-compositing-layer-with-zero-sized-container-offsets-above-one-expected.html:
  • LayoutTests/compositing/hidpi-compositing-layer-with-zero-sized-container-offsets-above-one.html:

This test was slow before, but r295269 made it even slower due to WKTR's force repaint
now causing the compositing layers to repaint as well (a progression).

Reduce the number of layers per test from 1600 to 400, and split the test
in half; one test for offsets below 1, one for offsets between 1 and 2;
Alan says that rounding behavior is different between these two cases.

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

2:35 PM Changeset in webkit [295296] by don.olmstead@sony.com
  • 2 edits in trunk/Tools/Scripts/hooks

Invoke perl in git hooks
https://bugs.webkit.org/show_bug.cgi?id=241345

Reviewed by Jonathan Bedard.

A windows command prompt doesn't understand shebangs and needs the interpreter to be specified in
order to run successfully.

  • Tools/Scripts/hooks/pre-commit:
  • Tools/Scripts/hooks/prepare-commit-msg:

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

1:41 PM Changeset in webkit [295295] by Alan Coon
  • 9 edits in branches/safari-7614.1.15-branch/Source

Versioning.

WebKit-7614.1.15.2

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

[CMake] Use playstation_module for shared libs
https://bugs.webkit.org/show_bug.cgi?id=241049

Reviewed by Ross Kirsling.

The playstation_module function determines how to properly load a shared library. It figures out
if a shared library is being used and if so will create a target to copy it to the directory it
will load from. Additionally it exposes a ${target}_LOAD_AT variable that can be used with
dlopen.

  • Source/JavaScriptCore/shell/playstation/Initializer.cpp:
  • Source/WTF/wtf/PlatformPlayStation.cmake:
  • Source/WebCore/PlatformPlayStation.cmake:
  • Source/WebKit/NetworkProcess/EntryPoint/playstation/NetworkProcessMain.cpp:
  • Source/WebKit/WebProcess/EntryPoint/playstation/WebProcessMain.cpp:
  • Source/cmake/OptionsPlayStation.cmake:
  • Tools/MiniBrowser/playstation/CMakeLists.txt:
  • Tools/MiniBrowser/playstation/main.cpp:
  • Tools/TestWebKitAPI/PlatformPlayStation.cmake:
  • Tools/TestWebKitAPI/playstation/main.cpp:

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

1:13 PM Changeset in webkit [295293] by don.olmstead@sony.com
  • 2 edits in trunk/Tools/Scripts/hooks

Use raw string for LOCATION in git hooks
https://bugs.webkit.org/show_bug.cgi?id=241343

Reviewed by Jonathan Bedard.

  • Tools/Scripts/hooks/pre-commit:
  • Tools/Scripts/hooks/prepare-commit-msg:

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

12:22 PM Changeset in webkit [295292] by Russell Epstein
  • 9 edits in trunk/Source

Versioning.

WebKit-7614.1.17

10:50 AM Changeset in webkit [295291] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

InteractionRegionOverlay should use RenderLayer-cached regions instead of computing them itself
https://bugs.webkit.org/show_bug.cgi?id=241338

Reviewed by Simon Fraser.

  • Source/WebCore/page/DebugPageOverlays.cpp:

(WebCore::RegionOverlay::shouldPaintOverlayIntoLayer):
(WebCore::InteractionRegionOverlay::updateRegion):
Stop computing InteractionRegions ourselves.

(WebCore::InteractionRegionOverlay::activeLayer):
Determine the layer from which to retrieve InteractionRegions. For now, we just
use the root layer, because that's where we stash all regions. Later, we'll
do a hit-test here to find the region under the mouse.

(WebCore::InteractionRegionOverlay::activeRegion):
Look up InteractionRegions cached on the aforementioned active layer, instead of
computing them ourselves.

(WebCore::InteractionRegionOverlay::drawRect):
Stop painting region-indicating borders into the overlay (see RenderLayerBacking changes).

(WebCore::InteractionRegionOverlay::mouseEvent):
Correctly map into layer coordinates. For now this is a no-op because we're using
the root layer, but it will be important in a future patch where we use regions
on a per-layer basis.

(WebCore::DebugPageOverlays::shouldPaintOverlayIntoLayer):

  • Source/WebCore/page/DebugPageOverlays.h:

(WebCore::DebugPageOverlays::shouldPaintOverlayIntoLayerForRegionType):

  • Source/WebCore/rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintDebugOverlays):
(WebCore::RenderLayerBacking::paintContents):
Paint region-indicating borders into the layer, instead of into the page overlay.
This will make them correctly scroll along with the content, and layer correctly.

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

10:36 AM Changeset in webkit [295290] by Wenson Hsieh
  • 15 edits
    1 copy in trunk

REGRESSION (r291302): editing/secure-input tests fail when run while a password input is focused on the system
https://bugs.webkit.org/show_bug.cgi?id=241324
rdar://94184618

Reviewed by Alexey Proskuryakov.

The tests in editing/secure-input fail after the removal of WebCoreTestShim in r291302, if a
secure text field is focused anywhere on the system while the tests are running. This is because we
now call into the real system IsSecureEventInputEnabled() API during these tests, instead of the
shimmed version for testing.

Since interposing these API functions apparently doesn't work on M1 Macs, we can't use this
technique to ensure that these tests are robust moving forward; instead, introduce and use testing-
only SPI (and IPI) to consult whether or not we're currently editing a secure input.

See below for more details.

  • Source/WebKit/UIProcess/API/mac/WKWebViewPrivateForTestingMac.h:
  • Source/WebKit/UIProcess/API/mac/WKWebViewTestingMac.mm:

(-[WKWebView _secureEventInputEnabledForTesting]):

Add testing-only SPI on WKWebView to return whether or not we're in a secure input, as an
alternative to calling into the actual IsSecureEventInputEnabled() API.

  • Source/WebKitLegacy/WebKitLegacy.xcodeproj/project.pbxproj:
  • Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:

(-[WebHTMLView _secureEventInputEnabledForTesting]):

  • Source/WebKitLegacy/mac/WebView/WebHTMLViewForTestingMac.h: Copied from Source/WebKit/UIProcess/API/mac/WKWebViewPrivateForTestingMac.h.

Add a testing-only header file that's internal (i.e. non-exported), but imported in DumpRenderTree
through a Source-relative header include path. At the moment, this only contains a method to check
whether or not we're currently editing a secure text input, as an alternative to calling into
IsSecureEventInputEnabled().

  • Tools/DumpRenderTree/TestRunner.cpp:

(getSecureEventInputIsEnabledCallback):
(TestRunner::isSecureEventInputEnabled const):

Adjust DumpRenderTree to consult -[WebHTMLView _secureEventInputEnabledForTesting].

  • Tools/DumpRenderTree/TestRunner.h:
  • Tools/DumpRenderTree/mac/Configurations/Base.xcconfig:

Add a relative include path on DumpRenderTree, so that we can use WebHTMLViewForTestingMac.h in
DumpRenderTree without having to introduce new WebKitLegacy SPI.

  • Tools/DumpRenderTree/mac/TestRunnerMac.mm:

(TestRunner::isSecureEventInputEnabled const):

  • Tools/WebKitTestRunner/PlatformWebView.h:

(WTR::PlatformWebView::platformView const):
(WTR::PlatformWebView::platformWindow const):
(WTR::PlatformWebView::platformView): Deleted.
(WTR::PlatformWebView::platformWindow): Deleted.

Mark platformView const so that it can be invoked from isSecureEventInputEnabled, and also mark
platformWindow const for consistency.

  • Tools/WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • Tools/WebKitTestRunner/gtk/PlatformWebViewGtk.cpp:

(WTR::PlatformWebView::isSecureEventInputEnabled const):

  • Tools/WebKitTestRunner/ios/PlatformWebViewIOS.mm:

(WTR::PlatformWebView::isSecureEventInputEnabled const):

  • Tools/WebKitTestRunner/libwpe/PlatformWebViewLibWPE.cpp:

(WTR::PlatformWebView::isSecureEventInputEnabled const):

  • Tools/WebKitTestRunner/mac/PlatformWebViewMac.mm:

(WTR::PlatformWebView::isSecureEventInputEnabled const):

Add a new isSecureEventInputEnabled method on the PlatformWebView, and adjust WebKitTestRunner
to consult -[WKWebView _secureEventInputEnabledForTesting].

  • Tools/WebKitTestRunner/win/PlatformWebViewWin.cpp:

(WTR::PlatformWebView::isSecureEventInputEnabled const):

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

8:57 AM Changeset in webkit [295289] by Wenson Hsieh
  • 1 edit
    2 adds in trunk

[iOS 15] Unable to type in Google Docs with a hardware keyboard without refocusing editor
https://bugs.webkit.org/show_bug.cgi?id=241308
rdar://90755619

Reviewed by Tim Horton.

After the changes in r277265, we no longer call into -reloadInputViews when starting an input
session after programmatically focusing an editable container with inputmode="none", with a
hardware keyboard attached. This is because -_shouldShowKeyboardForElement: returns NO (due to
inputmode none), so we bail early at this check:

`

if (!shouldShowInputView
information.elementType == WebKit::InputType::None) {

_page->setIsShowingInputViewForFocusedElement(false);
return;

}
`

As a result, UIKit never resets UIKeyboardImpl's input delegate, which should now be the
WKContentView, and thus never consults whether we require key events (-requiresKeyEvents), which
in turn means that -handleKeyWebEvent:withCompletionHandler: is never invoked on the content view,
so we never dispatch key events to the page.

In the normal, non-editable key event case, we lazily call -reloadInputViews in
-_handleKeyUIEvent: (which is called just before keyboard WebEvents start getting dispatched by
UIKit). However, since we're still focusing an editable element in this case, we don't end up going
down this codepath.

When the hardware keyboard is not connected, avoiding the call to -reloadInputViews is expected,
since we aren't showing a keyboard anyways due to the fact that the element was programmatically
focused (so the user has no way of typing or dispatching key events, in the first place).

And finally, when the inputmode is not none, _isFocusingElementWithKeyboard is set to YES, so
we begin the input session and call -reloadInputViews as normal.

It's only in this inputmode=none case with both the hardware keyboard attached and the editable
container being programmatically focused, where we end up in a state where the user can type with a
hardware keyboard, but we haven't informed UIKit that we should receive key events.

We can fix this by consulting a separate -_shouldShowKeyboardForElementIgnoringInputMode: instead
which allows us to follow the normal routine for focusing an editable element with inputmode="none"
which includes zooming to reveal the focused element if it's on-screen and not hidden, as well as
calling the related delegate methods; the only difference is that we avoid showing the UCB or
software keyboard, by returning YES from -_disableAutomaticKeyboardUI in this case.

  • LayoutTests/fast/forms/ios/keydown-in-hidden-contenteditable-with-inputmode-none-expected.txt: Added.
  • LayoutTests/fast/forms/ios/keydown-in-hidden-contenteditable-with-inputmode-none.html: Added.

Add a new layout test to simulate typing in Google Docs with a hardware keyboard (i.e., focus a
hidden contenteditable container with inputmode="none"), and verify that we dispatch key events to
the focused editable element.

  • Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _elementTypeRequiresAccessoryView:]):
(-[WKContentView _shouldShowKeyboardForElement:]):
(-[WKContentView _shouldShowKeyboardForElementIgnoringInputMode:]):

Split this helper method into two versions (one of which ignores inputmode=none). See above for
more details.

(-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):

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

8:53 AM Changeset in webkit [295288] by Jonathan Bedard
  • 6 edits in trunk/Tools/Scripts

git webkit setup hard codes the path to Xcode in .git/hooks/pre-commit
https://bugs.webkit.org/show_bug.cgi?id=241284
<rdar://problem/94435371>

Reviewed by Tim Horton.

  • Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/hooks/prepare-commit-msg:
  • Tools/Scripts/hooks/pre-commit: Use git instead of git path.
  • Tools/Scripts/hooks/prepare-commit-msg: Ditto.
  • Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:

(Setup.git): Remove git executable path.

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

8:22 AM Changeset in webkit [295287] by pvollan@apple.com
  • 3 edits in trunk/Source

Eagerly soft link Data Detection frameworks
https://bugs.webkit.org/show_bug.cgi?id=241267

Reviewed by Geoffrey Garen.

Eagerly soft link Data Detection frameworks in the WebContent process. There are two motivations behind this change.
First, soft linking frameworks may lead to communication with launchd. Doing the soft linking before the WebContent
process has finished launching, will help our effort in blocking launchd post launch. Second, the data detection
frameworks are normally used in every WebContent process, and eagerly soft linking them should be a performance
improvement. Ideally, these frameworks should be hard linked or weak linked. However, that would most likely create
cycles in the build dependencies.

  • Source/WebCore/PAL/pal/cocoa/DataDetectorsCoreSoftLink.h:
  • Source/WebCore/PAL/pal/cocoa/DataDetectorsCoreSoftLink.mm:
  • Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::softlinkDataDetectorsFrameworks):
(WebKit::WebProcess::platformInitializeWebProcess):

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

7:34 AM Changeset in webkit [295286] by eocanha@igalia.com
  • 6 edits in trunk

Revert of revert of [MSE][GStreamer] Honor MP4 edit lists, bis
https://bugs.webkit.org/show_bug.cgi?id=231019

Reviewed by Xabier Rodriguez-Calvar.

This patch reintroduces https://commits.webkit.org/243426@main with
some corrections that avoid the problems detected in
https://bugs.webkit.org/show_bug.cgi?id=233861, which motivated the
original patch revert.

Original author: Alicia Boya Garcia <aboya@igalia.com>

Source/WebCore:

This patch takes into consideration the GstSegment attached to a
sample to offset the PTS and DTS. This ensures accurate timestamps are
obtained for MP4 files containing edit lists (commonly necessary for
files containing video with B frames to have PTS starting at zero).

Before this was implemented, a workaround was in place based on a
heuristic (DTS = 0 && PTS > 0 && PTS < 0.1). The workaround is
preserved for the sake of content without proper edit lists, but
any edit list takes preference.

The time fudge factor has been modified from 0.083 seconds up to
0.100 seconds to accomodate the size of the empty edit in test.mp4
used by Web Platform Tests.

This test fixes improves expectation results and fixes two subtests in
imported/w3c/web-platform-tests/media-source/mediasource-remove.html.

This is a reworked version that avoids using gst_sample_set_buffer()
which is not available on GStreamer 1.14, and fixes an issue where
frames that would get a negative DTS were not being enqueued properly.

LayoutTests:

Update expectations for mediasource-remove.html in the GStreamer
ports, as a couple subtests get fixed.

  • LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt:
  • Source/WebCore/Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::currentTimeFudgeFactor):

  • Source/WebCore/platform/graphics/SourceBufferPrivate.h:

(WebCore::SourceBufferPrivate::timeFudgeFactor const):

  • Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.h:

(WebCore::toGstClockTime):

  • Source/WebCore/platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

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

(WebCore::bufferTimeToStreamTime):
(WebCore::AppendPipeline::appsinkNewSample):
(WebCore::matroskademuxForceSegmentStartToEqualZero): Now we reset segment.time in addition to segment.start. This avoids the regressions.

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

7:18 AM Changeset in webkit [295285] by commit-queue@webkit.org
  • 68 edits
    16 deletes in trunk

Unreviewed, reverting r295278.
https://bugs.webkit.org/show_bug.cgi?id=241336

Causes crashes

Reverted changeset:

"Add a new DrawDecomposedGlyphs display list item to avoid repeatedly sending glyphs when using the GlyphDisplayListCache"
https://bugs.webkit.org/show_bug.cgi?id=240497
https://commits.webkit.org/r295278

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

6:42 AM Changeset in webkit [295284] by commit-queue@webkit.org
  • 8 edits in trunk

RemoteGraphicsContextGL autogeneration broken after 249754@main, 251204@main, 251325@main
https://bugs.webkit.org/show_bug.cgi?id=241328

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-06-06
Unreviewed, build fix.

Verifieable by running Tools/Scripts/generate-gpup-webgl and
observing no change.

Make generate-gpup-webgl add NOLINT for getIntegeri_v() to skip
warning about underscores in methods.

  • Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::paintRenderingResultsToPixelBuffer):

  • Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.h:
  • Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:

(getInternalformativ):
(paintRenderingResultsToPixelBuffer): Deleted.

  • Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.cpp:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:

(WebKit::RemoteGraphicsContextGLProxy::paintRenderingResultsToPixelBuffer): Deleted.

  • Tools/Scripts/generate-gpup-webgl:

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

6:11 AM Changeset in webkit [295283] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Implement FlexFormattingContext::usedContentHeight
https://bugs.webkit.org/show_bug.cgi?id=241325

Reviewed by Antti Koivisto.

Update the RenderFlexibleBox's content height.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::usedContentHeight const):

  • Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.cpp:

(WebCore::LayoutIntegration::FlexLayout::contentLogicalHeight const):

  • Source/WebCore/rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutUsingFlexFormattingContext):

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

6:08 AM Changeset in webkit [295282] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp

Populate canUseForFlexLayout with unsupported styles and content
https://bugs.webkit.org/show_bug.cgi?id=241323

Reviewed by Tim Nguyen.

This is in preparation for being able to run WPT tests (filter out unsupported content).

  • Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp:

(WebCore::LayoutIntegration::canUseForFlexLayout):

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

5:10 AM Changeset in webkit [295281] by ntim@apple.com
  • 2 edits
    3 moves
    57 adds in trunk/LayoutTests/imported/w3c

Re-import css/css-text/text-align/ WPT
https://bugs.webkit.org/show_bug.cgi?id=241305

Reviewed by Cameron McCormack.

Upstream revision: https://github.com/web-platform-tests/wpt/commit/a6101f13a28eb78dbef77e276ddee75052a8a2d4

  • LayoutTests/imported/w3c/resources/resource-files.json:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-center-last-center-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-center-last-center.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-center-last-default-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-center-last-default.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-center-last-end-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-center-last-end.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-center-last-justify-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-center-last-justify.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-center-last-start-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-center-last-start.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-default-last-default-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-default-last-default.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-last-center-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-last-center.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-last-default-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-last-default.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-last-end-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-last-end.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-last-justify-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-last-justify.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-last-start-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-end-last-start.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-last-center-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-last-center.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-last-default-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-last-default.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-last-end-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-last-end.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-last-justify-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-last-justify.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-last-start-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-justify-last-start.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-center-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-center-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-center.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-end-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-end-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-end.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-justify-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-justify-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-justify-rtl-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-justify-rtl-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-justify-rtl.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-justify.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-simple-expected.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-expected.html.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-simple-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-ref.html.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-simple.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last.html.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-start-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-start-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-start.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-last-center-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-last-center.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-last-default-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-last-default.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-last-end-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-last-end.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-last-justify-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-last-justify.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-last-start-expected-mismatch.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-start-last-start.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/w3c-import.log:

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

4:35 AM Changeset in webkit [295280] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore/platform/graphics

[Linux] Fix and improve format handling in DMABufFormat, TextureMapperPlatformLayerProxyDMABuf
https://bugs.webkit.org/show_bug.cgi?id=241326

Patch by Žan Doberšek <zdobersek@igalia.com> on 2022-06-06
Reviewed by Miguel Gomez.

In the DMABufFormat header, VYUY and AYUV format definitions are fixed to use
the correct FourCC values. In DMABufFormat::create(), a macro is used to map
FourCC values to corresponding DMABufFormat definitions.

In TextureMapperPlatformLayerProxyDMABuf, missing packed-YUV formats are
added to the switch statement, and properly ordered.

  • Source/WebCore/platform/graphics/gbm/DMABufFormat.h:

(WebCore::DMABufFormat::create<DMABufFormat::FourCC::VYUY>):
(WebCore::DMABufFormat::create<DMABufFormat::FourCC::AYUV>):
(WebCore::DMABufFormat::create):

  • Source/WebCore/platform/graphics/texmap/TextureMapperPlatformLayerProxyDMABuf.cpp:

(WebCore::TextureMapperPlatformLayerProxyDMABuf::DMABufLayer::paintToTextureMapper):

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

1:43 AM Changeset in webkit [295279] by commit-queue@webkit.org
  • 22 edits
    3 adds in trunk

Add OES_draw_buffers_indexed WebGL extension support
https://bugs.webkit.org/show_bug.cgi?id=222430

Patch by Alexey Knyazev <3479527+lexaknyazev@users.noreply.github.com> on 2022-06-06
Reviewed by Kimmo Kinnunen.

  • Added the entrypoints defined by the extension
  • Added getIntegeri_v and getIntegeri context functions
  • LayoutTests/TestExpectations:
  • Source/WebCore/CMakeLists.txt:
  • Source/WebCore/DerivedSources-input.xcfilelist:
  • Source/WebCore/DerivedSources-output.xcfilelist:
  • Source/WebCore/DerivedSources.make:
  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/bindings/js/JSDOMConvertWebGL.cpp:

(WebCore::convertToJSValue):

  • Source/WebCore/html/canvas/OESDrawBuffersIndexed.cpp: Added.

(WebCore::OESDrawBuffersIndexed::OESDrawBuffersIndexed):
(WebCore::OESDrawBuffersIndexed::getName const):
(WebCore::OESDrawBuffersIndexed::supported):
(WebCore::OESDrawBuffersIndexed::enableiOES):
(WebCore::OESDrawBuffersIndexed::disableiOES):
(WebCore::OESDrawBuffersIndexed::blendEquationiOES):
(WebCore::OESDrawBuffersIndexed::blendEquationSeparateiOES):
(WebCore::OESDrawBuffersIndexed::blendFunciOES):
(WebCore::OESDrawBuffersIndexed::blendFuncSeparateiOES):
(WebCore::OESDrawBuffersIndexed::colorMaskiOES):

  • Source/WebCore/html/canvas/OESDrawBuffersIndexed.h: Added.
  • Source/WebCore/html/canvas/OESDrawBuffersIndexed.idl: Added.
  • Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getIndexedParameter):
(WebCore::WebGL2RenderingContext::getIndexedBooleanArrayParameter):
(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):

  • Source/WebCore/html/canvas/WebGL2RenderingContext.h:
  • Source/WebCore/html/canvas/WebGLExtension.h:
  • Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::extensionIsEnabled):
(WebCore::WebGLRenderingContextBase::loseExtensions):

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.h:
  • Source/WebCore/platform/graphics/GraphicsContextGL.h:

(WebCore::GraphicsContextGL::getIntegeri):

  • Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::getIntegeri_v):
(WebCore::GraphicsContextGLANGLE::enableiOES):
(WebCore::GraphicsContextGLANGLE::disableiOES):
(WebCore::GraphicsContextGLANGLE::blendEquationiOES):
(WebCore::GraphicsContextGLANGLE::blendEquationSeparateiOES):
(WebCore::GraphicsContextGLANGLE::blendFunciOES):
(WebCore::GraphicsContextGLANGLE::blendFuncSeparateiOES):
(WebCore::GraphicsContextGLANGLE::colorMaskiOES):

  • Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h:
  • Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::getIntegeri_v):
(WebCore::GraphicsContextGLOpenGL::enableiOES):
(WebCore::GraphicsContextGLOpenGL::disableiOES):
(WebCore::GraphicsContextGLOpenGL::blendEquationiOES):
(WebCore::GraphicsContextGLOpenGL::blendEquationSeparateiOES):
(WebCore::GraphicsContextGLOpenGL::blendFunciOES):
(WebCore::GraphicsContextGLOpenGL::blendFuncSeparateiOES):
(WebCore::GraphicsContextGLOpenGL::colorMaskiOES):

  • Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.h:
  • Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
  • Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:

(getIntegeri_v):
(enableiOES):
(disableiOES):
(blendEquationiOES):
(blendEquationSeparateiOES):
(blendFunciOES):
(blendFuncSeparateiOES):
(colorMaskiOES):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:

(WebKit::RemoteGraphicsContextGLProxy::getIntegeri_v):
(WebKit::RemoteGraphicsContextGLProxy::enableiOES):
(WebKit::RemoteGraphicsContextGLProxy::disableiOES):
(WebKit::RemoteGraphicsContextGLProxy::blendEquationiOES):
(WebKit::RemoteGraphicsContextGLProxy::blendEquationSeparateiOES):
(WebKit::RemoteGraphicsContextGLProxy::blendFunciOES):
(WebKit::RemoteGraphicsContextGLProxy::blendFuncSeparateiOES):
(WebKit::RemoteGraphicsContextGLProxy::colorMaskiOES):

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

Jun 5, 2022:

11:19 PM Changeset in webkit [295278] by Cameron McCormack
  • 68 edits
    1 copy
    15 adds in trunk

Add a new DrawDecomposedGlyphs display list item to avoid repeatedly sending glyphs when using the GlyphDisplayListCache
https://bugs.webkit.org/show_bug.cgi?id=240497
<rdar://93387615>

Reviewed by Simon Fraser.

The GlyphDisplayListCache is used to record a display list for
frequently painting text content. With GPU Process DOM rendering, there
is significant overhead in sending the contents of these display lists
over IPC. The contents of these display lists don't change if the text
content in the document doesn't change, so we could greatly reduce the
overhead by treating the data inside a display list item for glyph
drawing as a remote resource.

This commit adds:

  • a new display list item, DrawDecomposedGlyphs, to represent drawing a glyph list resource
  • a new class, DecomposedGlyphs, which is the resource type
  • a new struct, PositionedGlyphs, to provide a common place for the glyph drawing fields (the vector of glyph IDs, the anchor position, etc.) to live, so that we don't have duplication between DisplayList::DrawGlyphs and DecomposedGlyphs

So that a DrawDecomposedGlyphs command can be replayed from a
GlyphDisplayListCache's in-memory display list and recorded to a
RemoteDisplayListRecorder, the GraphicsContext API gains a new
drawDecomposedGlyphs function.

A new argument to the DisplayList::RecordImpl constructor (and the
DrawGlyphsRecorder) is added to represent how to record drawText
commands:

  • DrawGlyphsMode::Normal, which records each GraphicsContext::drawText call with a single DrawText command
  • DrawGlyphsMode::DeconstructToDrawGlyphsCommands, which ensures different text layers get deconstructed into separate DrawText commands
  • DrawGlyphsMode::DeconstructToDrawDecomposedGlyphsCommands, which ensures different text layers get desconstructed into separate DrawDecomposedGlyphs commands

FontCascade::displayListForTextRun is updated to use that last value.

Additionally, GlyphDisplayListCache is extended to cache display lists
keyed off TextRun values. This allows sharing of the same cached display
list between different elements on the page that have the same text
content.

This sharing would not be valid if the two elements have different
values for the color property, and the text contains COLRv0 glyphs that
alternate painting of specific colors and the color fill color, since
the recording would incorrectly record a setFillBrush command
corresponding to the first element's fill color. Rather than extend the
glyph recorder to parameterize the current fill (and stroke) colors, we
detect when outlines are drawn with colors other than the context's
initial colors, and prevent sharing. This is done by checking whether
the recorded display list contains items that aren't known to be safe
for sharing.

Similarly, if the sharing would not be valid if the contains bitmap
images (like those from emoji fonts) or SVG glyphs, both of which are
captured as DrawNativeImage commands, if the text is drawn at different
scales. This is because the size of the images is dependent on the
scale. We detect and prevent reuse across different text runs if the
scale is different, by checking the recorded display list for
DrawNativeImage commands and by storing the context scale on the
GlyphDisplayListCache::Entry.

  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-colr-unshared-expected.txt: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-colr-unshared.html: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-scaled-unshared-expected.txt: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-scaled-unshared.html: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-shadow-unshared-expected.txt: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-shadow-unshared.html: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-shared-expected.txt: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-shared.html: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-svg-unshared-expected.txt: Added.
  • LayoutTests/fast/text/glyph-display-lists/glyph-display-list-svg-unshared.html: Added.
  • Source/WebCore/Headers.cmake:
  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/platform/graphics/BifurcatedGraphicsContext.cpp:

(WebCore::BifurcatedGraphicsContext::drawDecomposedGlyphs):

  • Source/WebCore/platform/graphics/BifurcatedGraphicsContext.h:
  • Source/WebCore/platform/graphics/DecomposedGlyphs.cpp: Added.

(WebCore::DecomposedGlyphs::create):
(WebCore::DecomposedGlyphs::DecomposedGlyphs):
(WebCore::m_renderingResourceIdentifier):

  • Source/WebCore/platform/graphics/DecomposedGlyphs.h: Added.

(WebCore::DecomposedGlyphs::positionedGlyphs const):
(WebCore::DecomposedGlyphs::bounds const):
(WebCore::DecomposedGlyphs::addObserver):
(WebCore::DecomposedGlyphs::removeObserver):
(WebCore::DecomposedGlyphs::renderingResourceIdentifier const):

  • Source/WebCore/platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::displayListForTextRun const):

  • Source/WebCore/platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawDecomposedGlyphs):

  • Source/WebCore/platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::drawGlyphsAndCacheResources):
(WebCore::GraphicsContext::drawGlyphsAndCacheFont): Deleted.

  • Source/WebCore/platform/graphics/NullGraphicsContext.h:
  • Source/WebCore/platform/graphics/PositionedGlyphs.cpp: Copied from Source/WebCore/platform/graphics/win/DrawGlyphsRecorderWin.cpp.

(WebCore::PositionedGlyphs::computeBounds const):

  • Source/WebCore/platform/graphics/PositionedGlyphs.h: Added.

(WebCore::PositionedGlyphs::PositionedGlyphs):
(WebCore::PositionedGlyphs::encode const):
(WebCore::PositionedGlyphs::decode):

  • Source/WebCore/platform/graphics/TextRun.cpp:

(WebCore::operator<<):

  • Source/WebCore/platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun):
(WebCore::TextRun::isHashTableEmptyValue const):
(WebCore::TextRun::isHashTableDeletedValue const):
(WebCore::TextRun::cloneForStorage const):

  • Source/WebCore/platform/graphics/TextRunHash.h: Added.

(WebCore::add):
(WebCore::TextRun::operator== const):
(WebCore::TextRunHash::hash):
(WebCore::TextRunHash::equal):
(WTF::HashTraits<WebCore::TextRun>::isDeletedValue):
(WTF::HashTraits<WebCore::TextRun>::isEmptyValue):
(WTF::HashTraits<WebCore::TextRun>::constructDeletedValue):
(WTF::HashTraits<WebCore::TextRun>::emptyValue):

  • Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContextCairo::drawDecomposedGlyphs):

  • Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.h:
  • Source/WebCore/platform/graphics/coretext/DrawGlyphsRecorderCoreText.cpp:

(WebCore::DrawGlyphsRecorder::createInternalContext):
(WebCore::DrawGlyphsRecorder::updateCTM):
(WebCore::DrawGlyphsRecorder::recordDrawGlyphs):

  • Source/WebCore/platform/graphics/displaylists/DisplayList.cpp:

(WebCore::DisplayList::DisplayList::description const):
(WebCore::DisplayList::DisplayList::append):

  • Source/WebCore/platform/graphics/displaylists/DisplayList.h:

(WebCore::DisplayList::DisplayList::cacheDecomposedGlyphs):

  • Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp:

(WebCore::DisplayList::ItemHandle::apply):
(WebCore::DisplayList::ItemHandle::destroy):
(WebCore::DisplayList::ItemHandle::safeCopy const):

  • Source/WebCore/platform/graphics/displaylists/DisplayListItemType.cpp:

(WebCore::DisplayList::sizeOfItemInBytes):
(WebCore::DisplayList::isDrawingItem):
(WebCore::DisplayList::isInlineItem):

  • Source/WebCore/platform/graphics/displaylists/DisplayListItemType.h:
  • Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp:

(WebCore::DisplayList::DrawGlyphs::DrawGlyphs):
(WebCore::DisplayList::m_bounds):
(WebCore::DisplayList::DrawGlyphs::apply const):
(WebCore::DisplayList::DrawDecomposedGlyphs::apply const):
(WebCore::DisplayList::operator<<):
(WebCore::DisplayList::dumpItem):
(WebCore::DisplayList::dumpItemHandle):
(WebCore::DisplayList::DrawGlyphs::computeBounds): Deleted.

  • Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:

(WebCore::DisplayList::DrawGlyphs::localAnchor const):
(WebCore::DisplayList::DrawGlyphs::anchorPoint const):
(WebCore::DisplayList::DrawGlyphs::glyphs const):
(WebCore::DisplayList::DrawGlyphs::encode const):
(WebCore::DisplayList::DrawGlyphs::decode):
(WebCore::DisplayList::DrawDecomposedGlyphs::DrawDecomposedGlyphs):
(WebCore::DisplayList::DrawDecomposedGlyphs::fontIdentifier const):
(WebCore::DisplayList::DrawDecomposedGlyphs::decomposedGlyphsIdentifier const):
(WebCore::DisplayList::DrawDecomposedGlyphs::globalBounds const):
(WebCore::DisplayList::DrawDecomposedGlyphs::localBounds const):

  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.cpp:

(WebCore::DisplayList::Recorder::Recorder):
(WebCore::DisplayList::Recorder::shouldDeconstructDrawGlyphs const):
(WebCore::DisplayList::Recorder::drawGlyphs):
(WebCore::DisplayList::Recorder::drawDecomposedGlyphs):
(WebCore::DisplayList::Recorder::drawGlyphsAndCacheResources):
(WebCore::DisplayList::Recorder::drawGlyphsAndCacheFont): Deleted.

  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorder.h:
  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp:

(WebCore::DisplayList::RecorderImpl::RecorderImpl):
(WebCore::DisplayList::RecorderImpl::recordDrawDecomposedGlyphs):
(WebCore::DisplayList::RecorderImpl::recordResourceUse):

  • Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h:
  • Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp:

(WebCore::DisplayList::applyDrawDecomposedGlyphs):
(WebCore::DisplayList::Replayer::applyItem):
(WebCore::DisplayList::Replayer::replay):

  • Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.h:
  • Source/WebCore/platform/graphics/displaylists/DisplayListResourceHeap.h:

(WebCore::DisplayList::LocalResourceHeap::add):

  • Source/WebCore/platform/graphics/harfbuzz/DrawGlyphsRecorderHarfBuzz.cpp:

(WebCore::DrawGlyphsRecorder::drawGlyphs):

  • Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.cpp:

(Nicosia::CairoOperationRecorder::drawDecomposedGlyphs):

  • Source/WebCore/platform/graphics/nicosia/cairo/NicosiaCairoOperationRecorder.h:
  • Source/WebCore/platform/graphics/win/DrawGlyphsRecorderWin.cpp:

(WebCore::DrawGlyphsRecorder::drawGlyphs):

  • Source/WebCore/platform/text/TextDirection.h:

(WebCore::operator<<):

  • Source/WebCore/platform/text/TextFlags.cpp:

(WebCore::operator<<):

  • Source/WebCore/platform/text/TextFlags.h:

(WebCore::ExpansionBehavior::operator== const):

  • Source/WebCore/rendering/GlyphDisplayListCache.cpp: Added.

(WebCore::GlyphDisplayListCacheBase::displayListSharing):

  • Source/WebCore/rendering/GlyphDisplayListCache.h:

(WebCore::GlyphDisplayListCacheBase::size const):
(WebCore::GlyphDisplayListCacheBase::sizeInBytes const):
(WebCore::GlyphDisplayListCacheBase::Entry::create):
(WebCore::GlyphDisplayListCacheBase::Entry::displayList):
(WebCore::GlyphDisplayListCacheBase::Entry::relevantScaleFactor const):
(WebCore::GlyphDisplayListCacheBase::Entry::Entry):
(WebCore::GlyphDisplayListCache::get):
(WebCore::GlyphDisplayListCache::getIfExists):
(WebCore::GlyphDisplayListCache::remove):
(WebCore::GlyphDisplayListCache::clear):
(WebCore::GlyphDisplayListCache::size const): Deleted.
(WebCore::GlyphDisplayListCache::sizeInBytes const): Deleted.

  • Source/WebCore/rendering/RenderLayerCompositor.cpp:
  • Source/WebCore/rendering/TextPainter.cpp:
  • Source/WebCore/testing/Internals.cpp:

(WebCore::toDisplayListFlags):
(WebCore::Internals::displayListForElement):
(WebCore::Internals::replayDisplayListForElement):
(WebCore::Internals::cachedGlyphDisplayListsForTextNode):

  • Source/WebCore/testing/Internals.h:
  • Source/WebCore/testing/Internals.idl:
  • Source/WebKit/GPUProcess/graphics/QualifiedResourceHeap.h:

(WebKit::QualifiedResourceHeap::add):
(WebKit::QualifiedResourceHeap::getDecomposedGlyphs const):
(WebKit::QualifiedResourceHeap::removeDecomposedGlyphs):
(WebKit::QualifiedResourceHeap::checkInvariants const):

  • Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::drawDecomposedGlyphs):
(WebKit::RemoteDisplayListRecorder::drawDecomposedGlyphsWithQualifiedIdentifiers):

  • Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.h:
  • Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::cacheFontWithQualifiedIdentifier):
(WebKit::RemoteRenderingBackend::cacheDecomposedGlyphs):
(WebKit::RemoteRenderingBackend::cacheDecomposedGlyphsWithQualifiedIdentifier):

  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.h:
  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.messages.in:
  • Source/WebKit/GPUProcess/graphics/RemoteResourceCache.cpp:

(WebKit::RemoteResourceCache::cacheDecomposedGlyphs):
(WebKit::RemoteResourceCache::cachedDecomposedGlyphs const):
(WebKit::RemoteResourceCache::releaseRemoteResource):

  • Source/WebKit/GPUProcess/graphics/RemoteResourceCache.h:
  • Source/WebKit/Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<DecomposedGlyphs>::encode):
(IPC::ArgumentCoder<DecomposedGlyphs>::decode):

  • Source/WebKit/Shared/WebCoreArgumentCoders.h:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:

(WebKit::RemoteDisplayListRecorderProxy::RemoteDisplayListRecorderProxy):
(WebKit::RemoteDisplayListRecorderProxy::recordDrawDecomposedGlyphs):
(WebKit::RemoteDisplayListRecorderProxy::recordResourceUse):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:

(WebKit::RemoteRenderingBackendProxy::cacheDecomposedGlyphs):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:

(WebKit::RemoteResourceCacheProxy::~RemoteResourceCacheProxy):
(WebKit::RemoteResourceCacheProxy::recordDecomposedGlyphsUse):
(WebKit::RemoteResourceCacheProxy::releaseDecomposedGlyphs):
(WebKit::RemoteResourceCacheProxy::clearDecomposedGlyphsMap):
(WebKit::RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.h:

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

10:20 PM Changeset in webkit [295277] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp

Take align-self into account when computing flex item's logical height.
https://bugs.webkit.org/show_bug.cgi?id=241314

Reviewed by Antti Koivisto.

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp:

(WebCore::Layout::FlexLayout::computeLogicalHeightForFlexItems):

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

8:51 PM Changeset in webkit [295276] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore/layout/formattingContexts/flex

FlexLayout should only take logical values
https://bugs.webkit.org/show_bug.cgi?id=241310

Reviewed by Antti Koivisto.

Turn ConstraintsForFlexContent into LogicalConstraints.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.h:
  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp:

(WebCore::Layout::FlexLayout::computeAvailableLogicalVerticalSpace const):
(WebCore::Layout::FlexLayout::computeAvailableLogicalHorizontalSpace const):
(WebCore::Layout::FlexLayout::layout):

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.h:

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

6:24 PM Changeset in webkit [295275] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/rendering/RenderFlexibleBox.cpp

Reset the flex item renderers before flex layout
https://bugs.webkit.org/show_bug.cgi?id=241311

Reviewed by Antti Koivisto.

Each layout frame should start with a clean state.

  • Source/WebCore/rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutUsingFlexFormattingContext):

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

6:06 PM Changeset in webkit [295274] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore/layout/formattingContexts/flex

Distribute extra logical vertical space across lines
https://bugs.webkit.org/show_bug.cgi?id=241307

Reviewed by Antti Koivisto.

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp:

(WebCore::Layout::FlexLayout::computeAvailableLogicalVerticalSpace const):
(WebCore::Layout::FlexLayout::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexLayout::layout):

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.h:

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

5:04 PM Changeset in webkit [295273] by Alan Bujtas
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp

column-reverse content should take resolved flex box height into account when computing visual position
https://bugs.webkit.org/show_bug.cgi?id=241313

Reviewed by Antti Koivisto.

When the flex box has resolvable height, use it as the anchor point to compute the column-reverse content's visual vertical position.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::setFlexItemsGeometry):

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

2:53 PM Changeset in webkit [295272] by Chris Dumez
  • 1 edit in trunk/Source/WebKit/Shared/Cocoa/XPCEndpoint.mm

Unreviewed iOS build fix after 251316@main
https://bugs.webkit.org/show_bug.cgi?id=241321

  • Source/WebKit/Shared/Cocoa/XPCEndpoint.mm:

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

2:06 AM Changeset in webkit [295271] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk

REGRESSION(STP146): wpt/quirks/table-cell-width-calculation.html
https://bugs.webkit.org/show_bug.cgi?id=241005
rdar://problem/94025359

Patch by Youenn Fablet <youennf@gmail.com> on 2022-06-05
Reviewed by Brent Fulgham and Chris Dumez.

We should be able to use memory cache when images are either loaded using ServiceWorkerMode::All or None.
Make the reload check stricter by mandating reload in case service worker mode is none for requests that might trigger registration matching in network process.

  • LayoutTests/imported/w3c/web-platform-tests/quirks/table-cell-width-calculation-expected.txt: Added.
  • LayoutTests/imported/w3c/web-platform-tests/quirks/table-cell-width-calculation.html: Added.
  • Source/WebCore/loader/cache/CachedResourceLoader.cpp:

(WebCore::mustReloadFromServiceWorkerOptions):
(WebCore::CachedResourceLoader::determineRevalidationPolicy const):

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

Jun 4, 2022:

11:59 PM Changeset in webkit [295270] by Chris Dumez
  • 380 edits in trunk

Drop operator==() overload for comparing a String to a const char*
https://bugs.webkit.org/show_bug.cgi?id=241285

Reviewed by Darin Adler.

Drop operator==() overload for comparing a String to a const char*. This
encourages people to use ""_s for string literals.

  • Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitEqualityOpImpl):

  • Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:

(JSC::ApplyFunctionCallDotNode::emitBytecode):

  • Source/JavaScriptCore/inspector/ScriptCallFrame.cpp:

(Inspector::ScriptCallFrame::isNative const):

  • Source/JavaScriptCore/inspector/remote/cocoa/RemoteInspectorXPCConnection.mm:

(Inspector::RemoteInspectorXPCConnection::handleEvent):

  • Source/JavaScriptCore/inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:

(CppProtocolTypesImplementationGenerator):

  • Source/JavaScriptCore/jit/ExecutableAllocator.cpp:

(JSC::isJITEnabled):
(JSC::ExecutableAllocator::setJITEnabled):

  • Source/JavaScriptCore/jsc.cpp:

(dumpException):

  • Source/JavaScriptCore/runtime/IntlCollator.cpp:

(JSC::IntlCollator::initializeCollator):

  • Source/JavaScriptCore/runtime/IntlObject.cpp:

(JSC::removeUnicodeLocaleExtension):

  • Source/JavaScriptCore/runtime/JSObject.cpp:

(JSC::JSObject::calculatedClassName):

  • Source/JavaScriptCore/runtime/Options.cpp:

(JSC::canUseJITCage):

  • Source/JavaScriptCore/runtime/StringPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/TypeSet.cpp:

(JSC::StructureShape::leastCommonAncestor):

  • Source/JavaScriptCore/tools/JSDollarVM.cpp:
  • Source/JavaScriptCore/yarr/YarrUnicodeProperties.cpp:

(JSC::Yarr::unicodeMatchPropertyValue):

  • Source/WTF/wtf/URL.cpp:

(WTF::URL::setProtocol):

  • Source/WTF/wtf/cocoa/Entitlements.h:
  • Source/WTF/wtf/cocoa/Entitlements.mm:

(WTF::hasEntitlement):
(WTF::processHasEntitlement):
(WTF::hasEntitlementValue):

  • Source/WTF/wtf/text/WTFString.h:
  • Source/WebCore/Modules/applepay/PaymentRequestValidator.mm:

(WebCore::validateCountryCode):
(WebCore::validateCurrencyCode):

  • Source/WebCore/Modules/async-clipboard/ios/ClipboardImageReaderIOS.mm:

(WebCore::ClipboardImageReader::readBuffer):

  • Source/WebCore/Modules/async-clipboard/mac/ClipboardImageReaderMac.mm:

(WebCore::ClipboardImageReader::readBuffer):

  • Source/WebCore/Modules/cache/DOMCache.cpp:

(WebCore::DOMCache::requestFromInfo):

  • Source/WebCore/Modules/cache/DOMCacheEngine.cpp:

(WebCore::DOMCacheEngine::matchURLs):

  • Source/WebCore/Modules/fetch/FetchLoader.cpp:

(WebCore::FetchLoader::start):

  • Source/WebCore/Modules/fetch/FetchRequest.cpp:

(WebCore::methodCanHaveBody):
(WebCore::FetchRequest::initializeOptions):
(WebCore::FetchRequest::referrer const):

  • Source/WebCore/Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::contentTypeShouldGenerateTimestamps):

  • Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::setContentHint):

  • Source/WebCore/Modules/mediastream/RTCRtpSFrameTransform.cpp:

(WebCore::RTCRtpSFrameTransform::setEncryptionKey):

  • Source/WebCore/Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::dtmf):

  • Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp:

(WebCore::GStreamerMediaEndpoint::createTransceiverBackends):

  • Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp:

(WebCore::iceCandidateType):

  • Source/WebCore/Modules/mediastream/gstreamer/GStreamerWebRTCUtils.cpp:

(WebCore::toRTCIceProtocol):
(WebCore::toRTCIceTcpCandidateType):
(WebCore::toRTCIceCandidateType):
(WebCore::parseIceCandidateSDP):

  • Source/WebCore/Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::addTransceiver):

  • Source/WebCore/Modules/webauthn/cbor/CBORValue.cpp:

(cbor::CBORValue::CBORValue):

  • Source/WebCore/Modules/webauthn/cbor/CBORValue.h:
  • Source/WebCore/Modules/webauthn/fido/AuthenticatorGetInfoResponse.cpp:

(fido::encodeAsCBOR):

  • Source/WebCore/Modules/webauthn/fido/FidoConstants.h:
  • Source/WebCore/Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::setBinaryType):

  • Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:

(PAL::WebGPU::AdapterImpl::requestDevice):

  • Source/WebCore/accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::canSetValueAttribute const):

  • Source/WebCore/accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::currentState const):
(WebCore::AccessibilityObject::attributeValue const):

  • Source/WebCore/accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::isColumnHeaderCell const):
(WebCore::AccessibilityTableCell::isRowHeaderCell const):
(WebCore::AccessibilityTableCell::columnHeaders):
(WebCore::AccessibilityTableCell::rowHeaders):
(WebCore::AccessibilityTableCell::axRowSpan const):

  • Source/WebCore/accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification):

  • Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::state const):

  • Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp:

(WebCore::AccessibilityObjectAtspi::textAttributes const):

  • Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:

(WebCore::AXIsolatedObject::attributeValue const):

  • Source/WebCore/accessibility/win/AccessibilityObjectWrapperWin.cpp:

(WebCore::AccessibilityObjectWrapper::accessibilityAttributeValue):

  • Source/WebCore/animation/KeyframeEffect.cpp:

(WebCore::IDLAttributeNameToAnimationPropertyName):

  • Source/WebCore/bindings/js/IDBBindingUtilities.cpp:

(WebCore::get):

  • Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSC_DEFINE_HOST_FUNCTION):

  • Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:

(WebCore::jsDOMWindowInstanceFunction_openDatabaseBody):

  • Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:

(GenerateIsLegacyUnforgeablePropertyName):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::defineOwnProperty):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::defineOwnProperty):

  • Source/WebCore/contentextensions/ContentExtensionActions.cpp:

(WebCore::ContentExtensions::ModifyHeadersAction::ModifyHeaderInfo::parse):
(WebCore::ContentExtensions::RedirectAction::URLTransformAction::parse):

  • Source/WebCore/contentextensions/ContentExtensionParser.cpp:

(WebCore::ContentExtensions::loadAction):

  • Source/WebCore/crypto/algorithms/CryptoAlgorithmECDH.cpp:

(WebCore::CryptoAlgorithmECDH::importKey):

  • Source/WebCore/crypto/algorithms/CryptoAlgorithmECDSA.cpp:

(WebCore::CryptoAlgorithmECDSA::importKey):

  • Source/WebCore/crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):

  • Source/WebCore/crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:

(WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):

  • Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:

(WebCore::CryptoAlgorithmRSA_OAEP::importKey):

  • Source/WebCore/crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp:

(WebCore::CryptoAlgorithmRSA_PSS::importKey):

  • Source/WebCore/crypto/keys/CryptoKeyAES.cpp:

(WebCore::CryptoKeyAES::importJwk):

  • Source/WebCore/crypto/keys/CryptoKeyEC.cpp:

(WebCore::CryptoKeyEC::importJwk):

  • Source/WebCore/crypto/keys/CryptoKeyHMAC.cpp:

(WebCore::CryptoKeyHMAC::importJwk):

  • Source/WebCore/crypto/keys/CryptoKeyRSA.cpp:

(WebCore::CryptoKeyRSA::importJwk):

  • Source/WebCore/css/CSSBasicShapes.cpp:

(WebCore::buildInsetRadii):

  • Source/WebCore/css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):

  • Source/WebCore/css/CSSPropertySourceData.cpp:

(WebCore::CSSPropertySourceData::toString const):

  • Source/WebCore/css/CSSSelector.cpp:

(WebCore::CSSSelector::selectorText const):

  • Source/WebCore/css/MediaQuery.cpp:

(WebCore::MediaQuery::serialize const):

  • Source/WebCore/css/SelectorCheckerTestFunctions.h:

(WebCore::matchesLangPseudoClass):

  • Source/WebCore/css/StyleProperties.cpp:

(WebCore::StyleProperties::borderPropertyValue const):
(WebCore::StyleProperties::asTextInternal const):

  • Source/WebCore/css/parser/CSSPropertyParser.cpp:

(WebCore::parseGridTemplateAreasRow):
(WebCore::CSSPropertyParser::canParseTypedCustomPropertyValue):
(WebCore::CSSPropertyParser::collectParsedCustomPropertyValueDependencies):
(WebCore::CSSPropertyParser::parseTypedCustomPropertyValue):

  • Source/WebCore/dom/DataTransfer.cpp:

(WebCore::DataTransfer::getDataForItem const):
(WebCore::DataTransfer::readStringFromPasteboard const):
(WebCore::DataTransfer::setDataFromItemList):
(WebCore::dragOpFromIEOp):
(WebCore::DataTransfer::dropEffect const):
(WebCore::DataTransfer::setDropEffect):

  • Source/WebCore/dom/DataTransfer.h:

(WebCore::DataTransfer::dropEffectIsUninitialized const):

  • Source/WebCore/dom/Document.cpp:

(WebCore::Document::originIdentifierForPasteboard const):

  • Source/WebCore/dom/ProcessingInstruction.cpp:

(WebCore::ProcessingInstruction::checkStyleSheet):

  • Source/WebCore/dom/Range.cpp:

(WebCore::Range::expand):

  • Source/WebCore/dom/UIEventWithKeyState.cpp:

(WebCore::UIEventWithKeyState::getModifierState const):

  • Source/WebCore/editing/Editing.cpp:

(WebCore::isMailBlockquote):

  • Source/WebCore/editing/Editor.cpp:

(WebCore::Editor::handleTextEvent):
(WebCore::Editor::insertTextWithoutSendingTextEvent):

  • Source/WebCore/editing/HTMLInterchange.h:
  • Source/WebCore/editing/InsertTextCommand.cpp:

(WebCore::InsertTextCommand::doApply):

  • Source/WebCore/editing/ReplaceSelectionCommand.cpp:

(WebCore::isInterchangeNewlineNode):
(WebCore::isInterchangeConvertedSpaceSpan):
(WebCore::isInlineNodeWithStyle):

  • Source/WebCore/editing/cocoa/HTMLConverter.mm:

(HTMLConverter::computedAttributesForElement):
(HTMLConverter::_addAttachmentForElement):
(HTMLConverter::_enterElement):
(HTMLConverter::_addTableForElement):
(HTMLConverter::_addTableCellForElement):
(HTMLConverter::_processElement):
(HTMLConverter::_exitElement):
(HTMLConverter::_processText):

  • Source/WebCore/editing/markup.cpp:

(WebCore::StyledMarkupAccumulator::appendNodeToPreserveMSOList):
(WebCore::createFragmentFromText):
(WebCore::createFragmentForTransformToFragment):

  • Source/WebCore/html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::handleKeydownEvent):

  • Source/WebCore/html/BaseClickableWithKeyInputType.cpp:

(WebCore::BaseClickableWithKeyInputType::handleKeydownEvent):
(WebCore::BaseClickableWithKeyInputType::handleKeyupEvent):

  • Source/WebCore/html/CheckboxInputType.cpp:

(WebCore::CheckboxInputType::handleKeyupEvent):

  • Source/WebCore/html/FTPDirectoryDocument.cpp:

(WebCore::FTPDirectoryDocumentParser::parseAndAppendOneLine):

  • Source/WebCore/html/FormController.cpp:

(WebCore::FormController::SavedFormState::appendReferencedFilePaths const):

  • Source/WebCore/html/HTMLAnchorElement.cpp:

(WebCore::isEnterKeyKeydownEvent):

  • Source/WebCore/html/HTMLAttachmentElement.cpp:

(WebCore::HTMLAttachmentElement::parseAttribute):

  • Source/WebCore/html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::defaultEventHandler):

  • Source/WebCore/html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::is2dType):
(WebCore::HTMLCanvasElement::isWebGLType):
(WebCore::HTMLCanvasElement::toWebGLVersion):
(WebCore::HTMLCanvasElement::isBitmapRendererType):

  • Source/WebCore/html/HTMLFrameSetElement.cpp:

(WebCore::HTMLFrameSetElement::parseAttribute):

  • Source/WebCore/html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::setValueFromRenderer):

  • Source/WebCore/html/HTMLLIElement.cpp:

(WebCore::HTMLLIElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/html/HTMLMarqueeElement.cpp:

(WebCore::HTMLMarqueeElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/html/HTMLOListElement.cpp:

(WebCore::HTMLOListElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::platformHandleKeydownEvent):
(WebCore::HTMLSelectElement::menuListDefaultEventHandler):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):

  • Source/WebCore/html/HTMLSelectElementWin.cpp:

(WebCore::HTMLSelectElement::platformHandleKeydownEvent):

  • Source/WebCore/html/HTMLSummaryElement.cpp:

(WebCore::HTMLSummaryElement::defaultEventHandler):

  • Source/WebCore/html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setSelectionRange):

  • Source/WebCore/html/MediaDocument.cpp:

(WebCore::MediaDocument::defaultEventHandler):

  • Source/WebCore/html/MediaFragmentURIParser.cpp:

(WebCore::MediaFragmentURIParser::parseTimeFragment):

  • Source/WebCore/html/RadioInputType.cpp:

(WebCore::RadioInputType::handleKeydownEvent):
(WebCore::RadioInputType::handleKeyupEvent):

  • Source/WebCore/html/RangeInputType.cpp:

(WebCore::RangeInputType::handleKeydownEvent):

  • Source/WebCore/html/SearchInputType.cpp:

(WebCore::SearchInputType::handleKeydownEvent):

  • Source/WebCore/html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::handleKeydownEvent):
(WebCore::TextFieldInputType::handleKeydownEventForSpinButton):
(WebCore::TextFieldInputType::shouldSubmitImplicitly):

  • Source/WebCore/html/canvas/CanvasPattern.cpp:

(WebCore::CanvasPattern::parseRepetitionType):

  • Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::setLineCap):
(WebCore::CanvasRenderingContext2DBase::setLineJoin):

  • Source/WebCore/html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::setCompatibilityModeFromDoctype):

  • Source/WebCore/html/shadow/DateTimeFieldElement.cpp:

(WebCore::DateTimeFieldElement::defaultKeyboardEventHandler):

  • Source/WebCore/inspector/InspectorAuditAccessibilityObject.cpp:

(WebCore::InspectorAuditAccessibilityObject::getComputedProperties):

  • Source/WebCore/inspector/InspectorCanvas.cpp:

(WebCore::shouldSnapshotBitmapRendererAction):
(WebCore::shouldSnapshotWebGLAction):
(WebCore::shouldSnapshotWebGL2Action):

  • Source/WebCore/inspector/InspectorFrontendHost.cpp:

(WebCore::dockSideFromString):
(WebCore::populateContextMenu):

  • Source/WebCore/inspector/InspectorStyleSheet.cpp:

(WebCore::buildArrayForGroupings):
(WebCore::InspectorStyle::shorthandValue const):

  • Source/WebCore/inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

  • Source/WebCore/loader/CrossOriginAccessControl.cpp:

(WebCore::isOnAccessControlSimpleRequestMethodAllowlist):
(WebCore::passesAccessControlCheck):

  • Source/WebCore/loader/DocumentLoader.cpp:

(WebCore::isRedirectToGetAfterPost):
(WebCore::DocumentLoader::isPostOrRedirectAfterPost):
(WebCore::DocumentLoader::responseReceived):

  • Source/WebCore/loader/FormSubmission.cpp:

(WebCore::FormSubmission::Attributes::updateEncodingType):

  • Source/WebCore/loader/FrameLoader.cpp:

(WebCore::FrameLoader::changeLocation):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::addHTTPOriginIfNeeded):
(WebCore::createWindow):

  • Source/WebCore/loader/MixedContentChecker.cpp:

(WebCore::MixedContentChecker::isMixedContent):

  • Source/WebCore/loader/PrivateClickMeasurement.cpp:

(WebCore::PrivateClickMeasurement::parseAttributionRequestQuery):

  • Source/WebCore/loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::loadDataURL):

  • Source/WebCore/loader/SubframeLoader.cpp:

(WebCore::FrameLoader::SubframeLoader::requestFrame):

  • Source/WebCore/loader/archive/mhtml/MHTMLParser.cpp:

(WebCore::MHTMLParser::parseArchiveWithHeader):

  • Source/WebCore/loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::add):

  • Source/WebCore/loader/mac/LoaderNSURLExtras.mm:

(suggestedFilenameWithMIMEType):

  • Source/WebCore/mathml/MathMLElement.cpp:

(WebCore::convertMathSizeIfNeeded):

  • Source/WebCore/mathml/MathMLOperatorElement.cpp:

(WebCore::MathMLOperatorElement::computeDictionaryProperty):

  • Source/WebCore/mathml/MathMLPresentationElement.cpp:

(WebCore::MathMLPresentationElement::parseMathVariantAttribute):

  • Source/WebCore/mathml/MathMLSelectElement.cpp:

(WebCore::MathMLSelectElement::isMathMLEncoding):
(WebCore::MathMLSelectElement::isSVGEncoding):
(WebCore::MathMLSelectElement::isHTMLEncoding):
(WebCore::MathMLSelectElement::getSelectedActionChild):
(WebCore::MathMLSelectElement::defaultEventHandler):
(WebCore::MathMLSelectElement::willRespondToMouseClickEventsWithEditability const):

  • Source/WebCore/page/DOMWindow.cpp:

(WebCore::DOMWindow::postMessage):

  • Source/WebCore/page/EventHandler.cpp:

(WebCore::convertDropZoneOperationToDragOperation):
(WebCore::EventHandler::accessibilityPreventsEventPropagation):
(WebCore::EventHandler::defaultKeyboardEventHandler):
(WebCore::EventHandler::isKeyboardOptionTab):

  • Source/WebCore/page/Performance.cpp:

(WebCore::Performance::getEntriesByType const):
(WebCore::Performance::getEntriesByName const):
(WebCore::Performance::appendBufferedEntriesByType const):

  • Source/WebCore/page/PerformanceEntry.cpp:

(WebCore::PerformanceEntry::parseEntryTypeString):

  • Source/WebCore/page/Quirks.cpp:

(WebCore::isTwitterDocument):
(WebCore::isYouTubeDocument):
(WebCore::Quirks::shouldDispatchSimulatedMouseEvents const):
(WebCore::Quirks::shouldDispatchedSimulatedMouseEventsAssumeDefaultPrevented const):
(WebCore::Quirks::shouldMakeTouchEventNonCancelableForTarget const):
(WebCore::Quirks::shouldEnableLegacyGetUserMediaQuirk const):
(WebCore::Quirks::shouldDisableElementFullscreenQuirk const):
(WebCore::Quirks::needsCanPlayAfterSeekedQuirk const):
(WebCore::Quirks::shouldAllowNavigationToCustomProtocolWithoutUserGesture):

  • Source/WebCore/page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canDisplay const):
(WebCore::SecurityOrigin::toString const):
(WebCore::areOriginsMatching):

  • Source/WebCore/page/SecurityOrigin.h:

(WebCore::SecurityOrigin::isHTTPFamily const):

  • Source/WebCore/page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::toString const):

  • Source/WebCore/page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::referrerToOriginString):

  • Source/WebCore/page/UserContentURLPattern.cpp:

(WebCore::UserContentURLPattern::matches const):

  • Source/WebCore/page/WindowFeatures.cpp:

(WebCore::boolFeature):

  • Source/WebCore/page/cocoa/ResourceUsageThreadCocoa.mm:

(WebCore::ResourceUsageThread::platformCollectCPUData):

  • Source/WebCore/page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::reportViolation const):

  • Source/WebCore/page/csp/ContentSecurityPolicySource.cpp:

(WebCore::ContentSecurityPolicySource::schemeMatches const):

  • Source/WebCore/page/linux/ResourceUsageThreadLinux.cpp:

(WebCore::ResourceUsageThread::platformCollectCPUData):

  • Source/WebCore/platform/KeyboardScrollingAnimator.cpp:

(WebCore::keyboardScrollingKeyFromEvent):

  • Source/WebCore/platform/KeypressCommand.h:

(WebCore::KeypressCommand::KeypressCommand):

  • Source/WebCore/platform/LocalizedStrings.cpp:

(WebCore::localizedMediaControlElementString):
(WebCore::localizedMediaControlElementHelpText):

  • Source/WebCore/platform/Pasteboard.cpp:

(WebCore::Pasteboard::isSafeTypeForDOMToReadAndWrite):

  • Source/WebCore/platform/RegistrableDomain.h:

(WebCore::RegistrableDomain::operator== const):

  • Source/WebCore/platform/Theme.cpp:

(WebCore::Theme::drawNamedImage const):

  • Source/WebCore/platform/UserAgentQuirks.cpp:

(WebCore::urlRequiresChromeBrowser):
(WebCore::urlRequiresFirefoxBrowser):
(WebCore::urlRequiresMacintoshPlatform):
(WebCore::urlRequiresUnbrandedUserAgent):

  • Source/WebCore/platform/cocoa/ThemeCocoa.mm:

(WebCore::ThemeCocoa::drawNamedImage const):

  • Source/WebCore/platform/graphics/GLContext.cpp:

(WebCore::GLContext::version):

  • Source/WebCore/platform/graphics/Image.cpp:

(WebCore::Image::create):

  • Source/WebCore/platform/graphics/MIMETypeCache.cpp:

(WebCore::MIMETypeCache::shouldOverrideExtendedType):

  • Source/WebCore/platform/graphics/VP9Utilities.cpp:

(WebCore::parseVPCodecParameters):

  • Source/WebCore/platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:

(WebCore::CDMPrivateMediaSourceAVFObjC::supportsMIMEType):

  • Source/WebCore/platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::AVFWrapper::shouldWaitForLoadingOfResource):

  • Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):

  • Source/WebCore/platform/graphics/cairo/ImageBufferUtilitiesCairo.cpp:

(WebCore::encodeImage):

  • Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::ImageDecoderCG::frameHasAlphaAtIndex const):
(WebCore::ImageDecoderCG::createFrameImageAtIndex):

  • Source/WebCore/platform/graphics/cg/ImageSourceCGWin.cpp:

(WebCore::MIMETypeForImageType):

  • Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm:

(WebCore::isVPCodecConfigurationRecordSupported):
(WebCore::createVideoInfoFromVPCodecConfigurationRecord):

  • Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::getFamilyNameStringFromFamily):

  • Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::isMediaDiskCacheDisabled):

  • Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:

(WebCore::SourceBufferPrivateGStreamer::platformMaximumBufferSize const):

  • Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGL.cpp:

(WebCore::ExtensionsGLOpenGL::platformSupportsExtension):

  • Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLCommon.cpp:

(WebCore::ExtensionsGLOpenGLCommon::supports):
(WebCore::ExtensionsGLOpenGLCommon::ensureEnabled):
(WebCore::ExtensionsGLOpenGLCommon::isEnabled):

  • Source/WebCore/platform/graphics/opengl/ExtensionsGLOpenGLES.cpp:

(WebCore::ExtensionsGLOpenGLES::isEnabled):
(WebCore::ExtensionsGLOpenGLES::platformSupportsExtension):

  • Source/WebCore/platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:

(WebCore::GraphicsContextGLOpenGL::checkVaryingsPacking const):

  • Source/WebCore/platform/gtk/PasteboardGtk.cpp:

(WebCore::selectionDataTypeFromHTMLClipboardType):

  • Source/WebCore/platform/ios/PlatformEventFactoryIOS.mm:

(WebCore::PlatformKeyboardEventBuilder::PlatformKeyboardEventBuilder):

  • Source/WebCore/platform/ios/PlatformPasteboardIOS.mm:

(WebCore::PlatformPasteboard::platformPasteboardTypeForSafeTypeForDOMToReadAndWrite):

  • Source/WebCore/platform/ios/PreviewConverterIOS.mm:

(WebCore::PreviewConverter::isPlatformPasswordError const):

  • Source/WebCore/platform/mac/PasteboardMac.mm:

(WebCore::cocoaTypeFromHTMLClipboardType):
(WebCore::Pasteboard::addHTMLClipboardTypesForCocoaType):

  • Source/WebCore/platform/mac/PlatformPasteboardMac.mm:

(WebCore::PlatformPasteboard::typesSafeForDOMToReadAndWrite const):
(WebCore::PlatformPasteboard::platformPasteboardTypeForSafeTypeForDOMToReadAndWrite):

  • Source/WebCore/platform/mac/PublicSuffixMac.mm:

(WebCore::topPrivatelyControlledDomain):

  • Source/WebCore/platform/mediastream/RealtimeMediaSourceSettings.cpp:

(WebCore::RealtimeMediaSourceSettings::videoFacingModeEnum):

  • Source/WebCore/platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoderFactory.cpp:

(WebCore::GStreamerH264Encoder::GStreamerH264Encoder):

  • Source/WebCore/platform/mock/MediaEngineConfigurationFactoryMock.cpp:

(WebCore::canDecodeMedia):
(WebCore::canSmoothlyDecodeMedia):
(WebCore::canPowerEfficientlyDecodeMedia):
(WebCore::canEncodeMedia):
(WebCore::canSmoothlyEncodeMedia):
(WebCore::canPowerEfficientlyEncodeMedia):

  • Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

(WebCore::MockMediaPlayerMediaSource::supportsType):

  • Source/WebCore/platform/network/CacheValidation.cpp:

(WebCore::verifyVaryingRequestHeadersInternal):

  • Source/WebCore/platform/network/ResourceResponseBase.h:

(WebCore::ResourceResponseBase::isMultipart const):

  • Source/WebCore/platform/network/cf/ResourceErrorCF.cpp:

(WebCore::ResourceError::cfStreamError const):

  • Source/WebCore/platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::checkDatabaseValidity):

  • Source/WebCore/platform/network/curl/CookieJarDB.h:

(WebCore::CookieJarDB::isOnMemory const):

  • Source/WebCore/platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownload::shouldRedirectAsGET):

  • Source/WebCore/platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::setupTransfer):

  • Source/WebCore/platform/network/curl/PublicSuffixCurl.cpp:

(WebCore::topPrivatelyControlledDomain):

  • Source/WebCore/platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::shouldRedirectAsGET):

  • Source/WebCore/platform/network/ios/WebCoreURLResponseIOS.h:

(WebCore::shouldUseQuickLookForMIMEType):

  • Source/WebCore/platform/soup/PublicSuffixSoup.cpp:

(WebCore::topPrivatelyControlledDomain):

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

(WebCore::SearchPopupMenuDB::checkDatabaseValidity):

  • Source/WebCore/rendering/RenderBlockFlow.cpp:

(WebCore::needsAppleMailPaginationQuirk):

  • Source/WebCore/rendering/RenderCounter.cpp:

(WebCore::planCounter):

  • Source/WebCore/rendering/RenderTextControlMultiLine.cpp:

(WebCore::RenderTextControlMultiLine::getAverageCharWidth):

  • Source/WebCore/rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::getAverageCharWidth):
(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth const):

  • Source/WebCore/rendering/RenderTreeAsText.cpp:

(WebCore::isEmptyOrUnstyledAppleStyleSpan):

  • Source/WebCore/svg/SVGAElement.cpp:

(WebCore::SVGAElement::defaultEventHandler):

  • Source/WebCore/svg/SVGComponentTransferFunctionElement.h:

(WebCore::SVGPropertyTraits<ComponentTransferType>::fromString):

  • Source/WebCore/svg/SVGFEColorMatrixElement.h:

(WebCore::SVGPropertyTraits<ColorMatrixType>::fromString):

  • Source/WebCore/svg/SVGFECompositeElement.h:

(WebCore::SVGPropertyTraits<CompositeOperationType>::fromString):

  • Source/WebCore/svg/SVGFEConvolveMatrixElement.h:

(WebCore::SVGPropertyTraits<EdgeModeType>::fromString):

  • Source/WebCore/svg/SVGFEDisplacementMapElement.h:

(WebCore::SVGPropertyTraits<ChannelSelectorType>::fromString):

  • Source/WebCore/svg/SVGFEMorphologyElement.h:

(WebCore::SVGPropertyTraits<MorphologyOperatorType>::fromString):

  • Source/WebCore/svg/SVGFETurbulenceElement.h:

(WebCore::SVGPropertyTraits<SVGStitchOptions>::fromString):
(WebCore::SVGPropertyTraits<TurbulenceType>::fromString):

  • Source/WebCore/svg/SVGGradientElement.h:

(WebCore::SVGPropertyTraits<SVGSpreadMethodType>::fromString):

  • Source/WebCore/svg/SVGMarkerTypes.h:

(WebCore::SVGPropertyTraits<SVGMarkerUnitsType>::fromString):

  • Source/WebCore/svg/SVGTests.cpp:

(WebCore::SVGTests::hasFeatureForLegacyBindings):

  • Source/WebCore/svg/SVGTextContentElement.cpp:

(WebCore::SVGTextContentElement::collectPresentationalHintsForAttribute):

  • Source/WebCore/svg/SVGTextContentElement.h:

(WebCore::SVGPropertyTraits<SVGLengthAdjustType>::fromString):

  • Source/WebCore/svg/SVGTextPathElement.h:

(WebCore::SVGPropertyTraits<SVGTextPathMethodType>::fromString):
(WebCore::SVGPropertyTraits<SVGTextPathSpacingType>::fromString):

  • Source/WebCore/svg/SVGUnitTypes.h:

(WebCore::SVGPropertyTraits<SVGUnitTypes::SVGUnitType>::fromString):

  • Source/WebCore/svg/SVGZoomAndPanType.h:

(WebCore::SVGPropertyTraits<SVGZoomAndPanType>::fromString):

  • Source/WebCore/svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::createInstanceTimesFromSyncbase):

  • Source/WebCore/svg/properties/SVGPropertyTraits.h:

(WebCore::SVGPropertyTraits<bool>::fromString):

  • Source/WebCore/testing/Internals.cpp:

(WebCore::Internals::pseudoElement):
(WebCore::Internals::setViewBaseBackgroundColor):
(WebCore::Internals::setPagination):
(WebCore::parseFindOptions):
(WebCore::Internals::countMatchesForText):
(WebCore::Internals::setOverridePreferredDynamicRangeMode):
(WebCore::taskSourceFromString):
(WebCore::Internals::hasSandboxMachLookupAccessToGlobalName):
(WebCore::Internals::hasSandboxMachLookupAccessToXPCServiceName):

  • Source/WebCore/testing/MockLibWebRTCPeerConnection.cpp:

(WebCore::createConnection):

  • Source/WebCore/workers/WorkerFontLoadRequest.cpp:

(WebCore::WorkerFontLoadRequest::load):

  • Source/WebCore/workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::loadAsynchronously):

  • Source/WebCore/workers/service/server/RegistrationDatabase.cpp:

(WebCore::stringToUpdateViaCache):
(WebCore::stringToWorkerType):

  • Source/WebCore/xml/DOMParser.cpp:

(WebCore::DOMParser::parseFromString):

  • Source/WebCore/xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::send):
(WebCore::XMLHttpRequest::sendBytesData):
(WebCore::XMLHttpRequest::createRequest):

  • Source/WebCore/xml/XPathFunctions.cpp:

(WebCore::XPath::Function::setArguments):

  • Source/WebCore/xml/XPathParser.cpp:

(WebCore::XPath::Parser::nextTokenInternal):

  • Source/WebCore/xml/XSLTProcessor.cpp:

(WebCore::XSLTProcessor::createDocumentFromSource):

  • Source/WebCore/xml/XSLTProcessorLibxslt.cpp:

(WebCore::XSLTProcessor::transformToString):

  • Source/WebCore/xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::shouldAllowExternalLoad):
(WebCore::XMLDocumentParser::supportsXMLVersion):
(WebCore::externalSubsetHandler):

  • Source/WebDriver/CommandResult.cpp:

(WebDriver::CommandResult::CommandResult):

  • Source/WebDriver/Session.cpp:

(WebDriver::Session::newWindow):
(WebDriver::Session::isElementSelected):
(WebDriver::Session::elementClick):

  • Source/WebDriver/WebDriverService.cpp:

(WebDriver::deserializeTimeouts):
(WebDriver::deserializeProxy):
(WebDriver::deserializePageLoadStrategy):
(WebDriver::deserializeUnhandledPromptBehavior):
(WebDriver::WebDriverService::validatedCapabilities const):
(WebDriver::WebDriverService::matchCapabilities const):
(WebDriver::WebDriverService::newWindow):
(WebDriver::isValidStrategy):
(WebDriver::findStrategyAndSelectorOrCompleteWithError):
(WebDriver::processNullAction):
(WebDriver::processKeyAction):
(WebDriver::processPointerMoveAction):
(WebDriver::processPointerAction):
(WebDriver::processWheelAction):
(WebDriver::processPointerParameters):
(WebDriver::processInputActionSequence):

  • Source/WebDriver/glib/WebDriverServiceGLib.cpp:

(WebDriver::WebDriverService::platformSupportProxyType const):

  • Source/WebDriver/gtk/WebDriverServiceGtk.cpp:

(WebDriver::WebDriverService::platformValidateCapability const):

  • Source/WebDriver/socket/HTTPParser.cpp:

(WebDriver::HTTPParser::expectedBodyLength const):

  • Source/WebDriver/socket/SessionHostSocket.cpp:

(WebDriver::SessionHost::parseTargetList):

  • Source/WebDriver/soup/HTTPServerSoup.cpp:

(WebDriver::soupServerListen):

  • Source/WebDriver/wpe/WebDriverServiceWPE.cpp:

(WebDriver::WebDriverService::platformValidateCapability const):

  • Source/WebGPU/WGSLUnitTests/WGSLParserTests.mm:

(-[WGSLParserTests testParsingStruct]):
(-[WGSLParserTests testParsingGlobalVariable]):
(-[WGSLParserTests testParsingFunctionDecl]):
(-[WGSLParserTests testTrivialGraphicsShader]):

  • Source/WebKit/NetworkProcess/Classifier/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::shouldSkip const):

  • Source/WebKit/NetworkProcess/DatabaseUtilities.cpp:

(WebKit::insertDistinctValuesInTableStatement):

  • Source/WebKit/NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::allowsPrivateClickMeasurementTestFunctionality const):

  • Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::isCrossOriginPrefetch const):

  • Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:

(WebKit::ServiceWorkerFetchTask::ServiceWorkerFetchTask):

  • Source/WebKit/NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::getDirectorySize):

  • Source/WebKit/NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::queryCache):
(WebKit::CacheStorage::Cache::retrieveRecords):

  • Source/WebKit/NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::makeRetrieveDecision):
(WebKit::NetworkCache::makeStoreDecision):

  • Source/WebKit/NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::Entry):

  • Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::SpeculativeLoadManager::shouldRegisterLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveSubresourcesEntry):

  • Source/WebKit/NetworkProcess/cache/NetworkCacheSubresourcesEntry.cpp:

(WebKit::NetworkCache::SubresourcesEntry::SubresourcesEntry):

  • Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::isActingOnBehalfOfAFullWebBrowser):

  • Source/WebKit/NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::shouldRedirectAsGET):

  • Source/WebKit/NetworkProcess/ios/NetworkProcessIOS.mm:

(WebKit::NetworkProcess::parentProcessHasServiceWorkerEntitlement const):

  • Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:

(WebKit::isValidFileName):

  • Source/WebKit/NetworkProcess/storage/OriginStorageManager.cpp:

(WebKit::OriginStorageManager::StorageBucket::isEmpty):

  • Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb:
  • Source/WebKit/Scripts/PreferencesTemplates/WebPreferencesInternalDebugFeatures.cpp.erb:
  • Source/WebKit/Shared/AuxiliaryProcess.h:
  • Source/WebKit/Shared/Cocoa/AuxiliaryProcessCocoa.mm:

(WebKit::AuxiliaryProcess::parentProcessHasEntitlement):
(WebKit::AuxiliaryProcess::setPreferenceValue):

  • Source/WebKit/Shared/Cocoa/DefaultWebBrowserChecks.mm:

(WebKit::appBoundDomainsForTesting):
(WebKit::isParentProcessAFullWebBrowser):
(WebKit::isFullWebBrowser):

  • Source/WebKit/Shared/Cocoa/XPCEndpoint.mm:

(WebKit::XPCEndpoint::XPCEndpoint):

  • Source/WebKit/Shared/Cocoa/XPCEndpointClient.mm:

(WebKit::XPCEndpointClient::setEndpoint):

  • Source/WebKit/Shared/Daemon/DaemonUtilities.h:
  • Source/WebKit/Shared/Daemon/DaemonUtilities.mm:

(WebKit::startListeningForMachServiceConnections):

  • Source/WebKit/Shared/Databases/IndexedDB/IDBUtilities.cpp:

(WebKit::uniqueDatabaseIdentifier):

  • Source/WebKit/Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm:

(WebKit::PCMDaemonMain):

  • Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
  • Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:

(WebKit::XPCServiceInitializerDelegate::checkEntitlements):
(WebKit::XPCServiceInitializerDelegate::hasEntitlement):

  • Source/WebKit/Shared/IPCTester.cpp:

(WebKit::messageTestDriver):

  • Source/WebKit/Shared/WebPreferencesDefaultValues.cpp:

(WebKit::defaultMediaSessionCoordinatorEnabled):

  • Source/WebKit/Shared/glib/InputMethodState.cpp:

(WebKit::inputElementHasDigitsPattern):

  • Source/WebKit/Shared/ios/WebIOSEventFactory.mm:

(WebIOSEventFactory::createWebKeyboardEvent):

  • Source/WebKit/Shared/mac/AuxiliaryProcessMac.mm:

(WebKit::tryApplyCachedSandbox):
(WebKit::AuxiliaryProcess::initializeSandbox):

  • Source/WebKit/UIProcess/API/C/WKMockMediaDevice.cpp:

(WKAddMockMediaDevice):

  • Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _setupPageConfiguration:]):

  • Source/WebKit/UIProcess/API/Cocoa/WKWebpagePreferences.mm:

(-[WKWebpagePreferences _setCaptivePortalModeEnabled:]):

  • Source/WebKit/UIProcess/API/Cocoa/_WKSystemPreferences.mm:

(+[_WKSystemPreferences isCaptivePortalModeEnabled]):
(+[_WKSystemPreferences setCaptivePortalModeEnabled:]):

  • Source/WebKit/UIProcess/API/Cocoa/_WKSystemPreferencesInternal.h:
  • Source/WebKit/UIProcess/API/glib/WebKitAutomationSession.cpp:

(parseProxyCapabilities):

  • Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp:

(addOriginToMap):

  • Source/WebKit/UIProcess/API/gtk/DropTargetGtk4.cpp:

(WebKit::DropTarget::accept):

  • Source/WebKit/UIProcess/ApplicationStateTracker.mm:

(WebKit::applicationType):

  • Source/WebKit/UIProcess/Cocoa/MediaPermissionUtilities.mm:

(WebKit::applicationVisibleNameFromOrigin):

  • Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:

(WebKit::WebViewImpl::collectKeyboardLayoutCommandsForEvent):

  • Source/WebKit/UIProcess/Downloads/DownloadProxyMap.cpp:

(WebKit::DownloadProxyMap::DownloadProxyMap):

  • Source/WebKit/UIProcess/Inspector/glib/RemoteInspectorClient.cpp:

(WebKit::debuggableType):

  • Source/WebKit/UIProcess/Launcher/glib/ProcessLauncherGLib.cpp:

(WebKit::ProcessLauncher::launchProcess):

  • Source/WebKit/UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::isDisplayingMarkupDocument const):

  • Source/WebKit/UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestAttachmentIcon):

  • Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::networkProcessHasEntitlementForTesting):

  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataRecord.cpp:

(WebKit::WebsiteDataRecord::displayNameForCookieHostName):
(WebKit::WebsiteDataRecord::displayNameForOrigin):

  • Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:

(WebKit::isEGLImageAvailable):

  • Source/WebKit/UIProcess/gtk/Clipboard.cpp:

(WebKit::Clipboard::get):

  • Source/WebKit/UIProcess/gtk/WebDataListSuggestionsDropdownGtk.cpp:

(WebKit::WebDataListSuggestionsDropdownGtk::handleKeydownWithIdentifier):

  • Source/WebKit/UIProcess/gtk/WebDateTimePickerGtk.cpp:

(WebKit::WebDateTimePickerGtk::update):

  • Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:

(applicationHasAppLinkEntitlements):

  • Source/WebKit/UIProcess/ios/WKPDFView.mm:

(+[WKPDFView web_requiresCustomSnapshotting]):

  • Source/WebKit/UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu):

  • Source/WebKit/UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:

(WebKit::WebDataListSuggestionsDropdownMac::handleKeydownWithIdentifier):
(-[WKDataListSuggestionsController moveSelectionByDirection:]):

  • Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::evaluateJavaScriptCallback):

  • Source/WebKit/WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:

(webkitWebPageDidReceiveMessage):

  • Source/WebKit/WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:

(WebKit::PDFPluginPasswordField::handleEvent):

  • Source/WebKit/WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:

(WebKit::PDFPluginTextAnnotation::handleEvent):

  • Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::getActionTypeForKeyEvent):

  • Source/WebKit/WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.mm:

(WebKit::TextCheckingControllerProxy::removeAnnotationRelativeToSelection):

  • Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::encodeArgument):

  • Source/WebKit/WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::setTextDirection):

  • Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::parentProcessHasServiceWorkerEntitlement const):
(WebKit::WebPage::focusedElementInformation):
(WebKit::WebPage::platformUserAgent const):

  • Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::executeKeypressCommandsInternal):
(WebKit::WebPage::handleEditingKeyboardEvent):
(WebKit::WebPage::performNonEditingBehaviorForSelector):

  • Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeProcess):
(WebKit::WebProcess::handlePreferenceChange):

  • Source/WebKit/webpushd/PushClientConnection.h:
  • Source/WebKit/webpushd/PushClientConnection.mm:

(WebPushD::ClientConnection::hostHasEntitlement):

  • Source/WebKitLegacy/cf/WebCoreSupport/WebInspectorClientCF.cpp:

(WebInspectorClient::inspectorAttachDisabled):
(WebInspectorClient::inspectorStartsAttached):

  • Source/WebKitLegacy/mac/Plugins/WebBasePluginPackage.mm:

(-[WebBasePluginPackage isQuickTimePlugIn]):

  • Source/WebKitLegacy/mac/WebCoreSupport/WebEditorClient.mm:

(selectorForKeyEvent):

  • Source/WebKitLegacy/mac/WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::transitionToCommittedForNewPage):

  • Source/WebKitLegacy/mac/WebView/WebHTMLView.mm:

(-[WebHTMLView _executeSavedKeypressCommands]):

  • Source/WebKitLegacy/win/WebFrame.cpp:

(WebFrame::setTextDirection):
(WebFrame::canProvideDocumentSource):

  • Tools/DumpRenderTree/win/DumpRenderTree.cpp:

(runTest):

  • Tools/TestWebKitAPI/Tests/WTF/AtomString.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WTF/JSONValue.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WTF/Vector.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WTF/WTFString.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WTF/cocoa/TextStreamCocoa.cpp:

(TEST):

  • Tools/TestWebKitAPI/Tests/WTF/cocoa/TextStreamCocoa.mm:

(TEST):

  • Tools/TestWebKitAPI/Tests/WebCore/CBORReaderTest.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebCore/CBORValueTest.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebCore/ColorTests.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebCore/FontShadowTests.cpp:

(TestWebKitAPI::TEST_F):

  • Tools/TestWebKitAPI/Tests/WebCore/LineBreaking.mm:

(breakingLocationsFromICU):

  • Tools/TestWebKitAPI/Tests/WebCore/NowPlayingInfoTests.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebCore/PrivateClickMeasurement.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebCore/SecurityOrigin.cpp:

(TestWebKitAPI::TEST_F):

  • Tools/TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:

(TestWebKitAPI::TEST_F):

  • Tools/TestWebKitAPI/Tests/WebCore/StringWithDirection.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebKit/MediaSessionCoordinatorTest.mm:

(TestWebKitAPI::TEST_F):

  • Tools/TestWebKitAPI/Tests/WebKit/OverrideAppleLanguagesPreference.mm:

(TEST_F):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/CookiePrivateBrowsing.mm:

(TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/ResourceLoadStatistics.mm:

(TEST):

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

(-[SyncScheme webView:startURLSchemeTask:]):

  • Tools/WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::dumpErrorDescriptionSuitableForTestResult):

  • Tools/WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:

(WTR::attributesOfElement):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::isAttributeSettable):
(WTR::AccessibilityUIElement::isAttributeSupported):
(WTR::AccessibilityUIElement::isPressActionSupported):

  • Tools/WebKitTestRunner/TestController.cpp:

(WTR::TestController::setPluginSupportedMode):

  • Tools/WebKitTestRunner/cocoa/CrashReporterInfo.mm:

(WTR::testPathFromURL):

  • Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:

(WTR::UIScriptControllerCocoa::overridePreference):

  • Tools/WebKitTestRunner/gtk/UIScriptControllerGtk.cpp:

(WTR::UIScriptControllerGtk::overridePreference):

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

8:30 PM Changeset in webkit [295269] by timothy_horton@apple.com
  • 10 edits
    1 copy in trunk

Force Repaint menu item does not repaint compositing layers, only tiles
https://bugs.webkit.org/show_bug.cgi?id=241292

Reviewed by Simon Fraser.

  • Source/WebCore/page/Page.h:
  • Source/WebCore/page/Page.cpp:

(WebCore::Page::forceRepaintAllFrames):
Move forceRepaint to Page, and use repaintViewAndCompositedLayers instead of
TiledBacking::forceRepaint, so we hit all the compositing layers, not just the tiles.

  • Source/WebCore/platform/graphics/TiledBacking.h:
  • Source/WebCore/platform/graphics/ca/TileController.cpp:

(WebCore::TileController::forceRepaint): Deleted.

  • Source/WebCore/platform/graphics/ca/TileController.h:
  • Source/WebKit/WebProcess/WebPage/wc/GraphicsLayerWC.cpp:

Get rid of this unused method.

  • Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::forceRepaint):

  • Source/WebKit/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::forceRepaint):
Adopt forceRepaintAllFrames.

  • LayoutTests/fast/images/async-image-multiple-clients-repaint-expected.txt:
  • LayoutTests/platform/ios/fast/images/async-image-multiple-clients-repaint-expected.txt
  • LayoutTests/platform/win/fast/images/async-image-multiple-clients-repaint-expected.txt

Rebaseline this test, except on Windows.

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

1:59 PM Changeset in webkit [295268] by Chris Dumez
  • 11 edits in trunk/Source

Tweak HTMLToken / AtomHTMLToken data members for better packing
https://bugs.webkit.org/show_bug.cgi?id=241293

Reviewed by Darin Adler.

Tweak HTMLToken / AtomHTMLToken data members for better packing. Also use
Span<> more.

  • Source/WTF/wtf/text/StringView.h:
  • Source/WTF/wtf/text/WTFString.h:
  • Source/WebCore/html/parser/AtomHTMLToken.h:

(WebCore::AtomHTMLToken::hasDuplicateAttribute const):
(WebCore::AtomHTMLToken::name const):
(WebCore::AtomHTMLToken::setName):
(WebCore::AtomHTMLToken::selfClosing const):
(WebCore::AtomHTMLToken::attributes):
(WebCore::AtomHTMLToken::attributes const):
(WebCore::AtomHTMLToken::characters const):
(WebCore::AtomHTMLToken::charactersIsAll8BitData const):
(WebCore::AtomHTMLToken::comment const):
(WebCore::AtomHTMLToken::comment):
(WebCore::AtomHTMLToken::forceQuirks const):
(WebCore::AtomHTMLToken::publicIdentifier const):
(WebCore::AtomHTMLToken::initializeAttributes):
(WebCore::AtomHTMLToken::AtomHTMLToken):
(WebCore::AtomHTMLToken::charactersLength const): Deleted.

  • Source/WebCore/html/parser/HTMLConstructionSite.cpp:

(WebCore::setAttributes):
(WebCore::HTMLConstructionSite::insertDoctype):
(WebCore::HTMLConstructionSite::insertComment):
(WebCore::HTMLConstructionSite::insertCommentOnDocument):
(WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
(WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
(WebCore::HTMLConstructionSite::insertForeignElement):
(WebCore::HTMLConstructionSite::createElementFromSavedToken):

  • Source/WebCore/html/parser/HTMLDocumentParser.cpp:

(WebCore::HTMLDocumentParser::constructTreeFromHTMLToken):

  • Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp:

(WebCore::HTMLMetaCharsetParser::checkForMetaCharset):

  • Source/WebCore/html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::scan):
(WebCore::HTMLPreloadScanner::scan):

  • Source/WebCore/html/parser/HTMLToken.h:

(WebCore::HTMLToken::clear):
(WebCore::HTMLToken::makeEndOfFile):
(WebCore::HTMLToken::name const):
(WebCore::HTMLToken::appendToName):
(WebCore::HTMLToken::setForceQuirks):
(WebCore::HTMLToken::beginDOCTYPE):
(WebCore::HTMLToken::setPublicIdentifierToEmptyString):
(WebCore::HTMLToken::setSystemIdentifierToEmptyString):
(WebCore::HTMLToken::appendToPublicIdentifier):
(WebCore::HTMLToken::appendToSystemIdentifier):
(WebCore::HTMLToken::selfClosing const):
(WebCore::HTMLToken::setSelfClosing):
(WebCore::HTMLToken::beginStartTag):
(WebCore::HTMLToken::beginEndTag):
(WebCore::HTMLToken::beginAttribute):
(WebCore::HTMLToken::appendToAttributeName):
(WebCore::HTMLToken::appendToAttributeValue):
(WebCore::HTMLToken::attributes const):
(WebCore::HTMLToken::characters const):
(WebCore::HTMLToken::charactersIsAll8BitData const):
(WebCore::HTMLToken::appendToCharacter):
(WebCore::HTMLToken::comment const):
(WebCore::HTMLToken::commentIsAll8BitData const):
(WebCore::HTMLToken::beginComment):
(WebCore::HTMLToken::appendToComment):
(WebCore::HTMLToken::HTMLToken): Deleted.

  • Source/WebCore/html/parser/HTMLTokenizer.cpp:

(WebCore::HTMLTokenizer::saveEndTagNameIfNeeded):
(WebCore::HTMLTokenizer::haveBufferedCharacterToken const):

  • Source/WebCore/html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
(WebCore::HTMLTreeBuilder::processToken):
(WebCore::HTMLTreeBuilder::processDoctypeToken):
(WebCore::HTMLTreeBuilder::processFakeStartTag):
(WebCore::HTMLTreeBuilder::processFakeEndTag):
(WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processEndOfFileForInTemplateContents):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
(WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
(WebCore::HTMLTreeBuilder::processEndTagForInRow):
(WebCore::HTMLTreeBuilder::processEndTagForInCell):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::insertPhoneNumberLink):
(WebCore::HTMLTreeBuilder::processEndOfFile):
(WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
(WebCore::HTMLTreeBuilder::defaultForBeforeHead):
(WebCore::HTMLTreeBuilder::defaultForInHead):
(WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
(WebCore::HTMLTreeBuilder::defaultForAfterHead):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
(WebCore::HTMLTreeBuilder::processScriptStartTag):
(WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
(WebCore::HTMLTreeBuilder::processTokenInForeignContent):

  • Source/WebCore/html/parser/TextDocumentParser.cpp:

(WebCore::TextDocumentParser::insertFakePreElement):

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

11:32 AM Changeset in webkit [295267] by Ryan Haddad
  • 2 edits in trunk/Tools/CISupport/build-webkit-org

Temporarily disable lldb-webkit-test on Monterey
https://bugs.webkit.org/show_bug.cgi?id=241294

Reviewed by Aakash Jain.

Temporarily disable lldb-webkit-test on Monterey until webkit.org/b/239463
can be resolved or worked around.

  • Tools/CISupport/build-webkit-org/factories.py:

(TestFactory.init):

  • Tools/CISupport/build-webkit-org/factories_unittest.py:

(TestExpectedBuildSteps):

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

7:26 AM Changeset in webkit [295266] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore/layout/formattingContexts/flex

Add basic 'flex-wrap: wrap' support
https://bugs.webkit.org/show_bug.cgi?id=241300

Reviewed by Antti Koivisto.

  1. compute wrap positions by simply checking for overflow as walking the flex item list.
  2. let each function operate on the range instead of the entire list.
  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp:

(WebCore::Layout::FlexLayout::computeWrappingPositions const):
(WebCore::Layout::FlexLayout::computeLogicalWidthForShrinkingFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalWidthForStretchingFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalWidthForFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexLayout::alignFlexItems):
(WebCore::Layout::FlexLayout::justifyFlexItems):
(WebCore::Layout::FlexLayout::layout):

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.h:

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

7:01 AM Changeset in webkit [295265] by ntim@apple.com
  • 5 edits
    3 adds
    1 delete in trunk

[IFC] Support text-align-last: justify
https://bugs.webkit.org/show_bug.cgi?id=241301
<rdar://94384891>

Reviewed by Alan Bujtas.

text-align: justify already worked for the legacy line layout, but not in IFC. Add support for it and a corresponding WPT.

Also removed text-justify: none handling from legacy line layout, since IFC doesn't handle it, and legacy line layout also doesn't handle it correctly either. Thankfully text-justify is disabled by default.

  • LayoutTests/TestExpectations:
  • LayoutTests/fast/css3-text/css3-text-align-last/text-align-last-with-text-align-justify-expected.html: Removed.
  • LayoutTests/fast/css3-text/css3-text-align-last/text-align-last-with-text-align-justify.html: Removed.

Removed tests that were wrong, compared with other browsers to verify.

  • LayoutTests/imported/w3c/resources/resource-files.json:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-expected.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-ref.html: Added.
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last.html: Added.

WPT is from Blink: https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/web_tests/fast/css3-text/css3-text-align-last/text-align-last.html;drc=77578ccb4082ae20a9326d9e673225f1189ebb63

Upstream WPT PR: https://github.com/web-platform-tests/wpt/pull/34308

  • Source/WebCore/layout/formattingContexts/inline/InlineLine.cpp:

(WebCore::Layout::Line::applyRunExpansion):

  • Source/WebCore/layout/formattingContexts/inline/InlineLineBuilder.cpp:

(WebCore::Layout::LineBuilder::close):

  • Source/WebCore/rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::textAlignmentForLine const):

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

6:23 AM Changeset in webkit [295264] by Antti Koivisto
  • 3 edits in trunk

Update query container layout unconditionally when ancestor style changes
https://bugs.webkit.org/show_bug.cgi?id=241302

Reviewed by Alan Bujtas.

In some cases we incorrectly optimize away the layout.

  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/display-none-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/pseudo-elements-004-expected.txt:
  • Source/WebCore/style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveComposedTree):

Do the query container update even when shouldIterateChildren is false. While there is no reason to iterate children
now there may be after the query container layout has been updated.

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

5:48 AM Changeset in webkit [295263] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore/layout/formattingContexts/flex

Introduce LineRange to be able to layout just a subset
https://bugs.webkit.org/show_bug.cgi?id=241299

Reviewed by Antti Koivisto.

This is in preparation for supporting flex-wrap: wrap.
LineRange keeps track of the flex items associated with the current line. In case of no-wrap, the range is [0, number of flex items].

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace): This is already coming in as logical.

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp:

(WebCore::Layout::FlexLayout::computeAvailableLogicalVerticalSpace const):
(WebCore::Layout::FlexLayout::computeAvailableLogicalHorizontalSpace const):
(WebCore::Layout::FlexLayout::computeWrappingPositions const):
(WebCore::Layout::FlexLayout::computeLogicalWidthForShrinkingFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalWidthForStretchingFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalWidthForFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexLayout::alignFlexItems):
(WebCore::Layout::FlexLayout::justifyFlexItems):
(WebCore::Layout::FlexLayout::layout):

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.h:

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

5:45 AM Changeset in webkit [295262] by Darin Adler
  • 9 edits in trunk/Source/WebCore/html/parser

Try moving HTMLStackItem in the HTML parser instead of using reference counting
https://bugs.webkit.org/show_bug.cgi?id=240700

Reviewed by Chris Dumez.

A/B testing indicates that this is performance neutral on Speedometer
on an Apple Silicon Mac, and a 0.23% speedup on an Intel Mac. On that basis,
this simplfication seems worth doing.

  • Source/WebCore/html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML): Use constructor
instead of create function.
(WebCore::HTMLConstructionSite::insertHTMLHeadElement): Ditto.
(WebCore::HTMLConstructionSite::insertHTMLBodyElement): Ditto.
(WebCore::HTMLConstructionSite::insertHTMLFormElement): Ditto.
(WebCore::HTMLConstructionSite::insertHTMLElement): Ditto.
(WebCore::HTMLConstructionSite::insertHTMLElementOrFindCustomElementInterface): Ditto.
(WebCore::HTMLConstructionSite::insertCustomElement): Ditto.
(WebCore::HTMLConstructionSite::insertFormattingElement): Ditto.
(WebCore::HTMLConstructionSite::insertScriptElement): Ditto.
(WebCore::HTMLConstructionSite::insertForeignElement): Ditto.
(WebCore::HTMLConstructionSite::insertAlreadyParsedChild): Ditto.
(WebCore::HTMLConstructionSite::takeAllChildrenAndReparent): Ditto.
(WebCore::HTMLConstructionSite::createElementFromSavedToken): Ditto.
(WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements): Ditto.

  • Source/WebCore/html/parser/HTMLConstructionSite.h: Changed return value

to be HTMLStackItem instead of Ref<HTMLStackItem> and changed headStackItem
to return HTMLStackItem&. Since HTMLStackItem now has a null value it does
not need to be a pointer.

  • Source/WebCore/html/parser/HTMLElementStack.cpp:

(WebCore::HTMLElementStack::ElementRecord::ElementRecord): Take an HTMLStackItem&&
instead of a Ref<HTMLStackItem>&&.
(WebCore::HTMLElementStack::ElementRecord::replaceElement): Ditto.
(WebCore::HTMLElementStack::pushRootNode): Ditto.
(WebCore::HTMLElementStack::pushHTMLHtmlElement): Ditto.
(WebCore::HTMLElementStack::pushRootNodeCommon): Ditto.
(WebCore::HTMLElementStack::pushHTMLHeadElement): Ditto.
(WebCore::HTMLElementStack::pushHTMLBodyElement): Ditto.
(WebCore::HTMLElementStack::push): Ditto.
(WebCore::HTMLElementStack::insertAbove): Ditto.
(WebCore::HTMLElementStack::pushCommon): Ditto.

  • Source/WebCore/html/parser/HTMLElementStack.h: Updated for the above changes,

and changed the ElementRecord class to use HTMLStackItem. Maybe eventually we
could figure out how to optimize further by using a data structure other than
a singly linked list, to avoid having to allocate a memory block each time we
create one of these. Or at least find a way to recycle as we push and pop.

  • Source/WebCore/html/parser/HTMLFormattingElementList.cpp:

(WebCore::HTMLFormattingElementList::closestElementInScopeWithName): Update
to use the reference instead of pointer.
(WebCore::HTMLFormattingElementList::swapTo): Take an HTMLStackItem&&
instead of a Ref<HTMLStackItem>&&. Also added a missing WTFMove in one case.
(WebCore::HTMLFormattingElementList::append): Ditto.
(WebCore::HTMLFormattingElementList::tryToEnsureNoahsArkConditionQuickly):
Changed to use a return value instead of an out argument.
(WebCore::HTMLFormattingElementList::ensureNoahsArkCondition): Updated
for the above and tweaked formatting a bit.

  • Source/WebCore/html/parser/HTMLFormattingElementList.h: Changed Entry

to store a HTMLStackItem instead of a RefPtr<HTMLStackItem>. Also
updated for the above.

  • Source/WebCore/html/parser/HTMLStackItem.h: Changed HTMLStackItem to

no longer derive from RefCounted. Got rid of the create functions and
replaced them with use of the constructor. Added a default constructor
and a null value. Added an elementOrNull function that is handy for Entry.
Removed the slightly peculiar double-const-ness of this class. We can
probably use const HTMLStackItem more; every member function is const.

  • Source/WebCore/html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::HTMLTreeBuilder): Use HTMLStackItem constructor
instead of the create function.
(WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext): Ditto.
(WebCore::HTMLTreeBuilder::FragmentParsingContext::contextElement): Removed const.
(WebCore::HTMLTreeBuilder::FragmentParsingContext::contextElementStackItem): Ditto.
(WebCore::HTMLTreeBuilder::processStartTag): Updated since headStackItem is a reference.
(WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody): Ditto.
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency): Ditto.
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately): Ditto.
(WebCore::HTMLTreeBuilder::adjustedCurrentStackItem): Ditto.

  • Source/WebCore/html/parser/HTMLTreeBuilder.h: Updated for the above.

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

3:12 AM Changeset in webkit [295261] by jh718.park@samsung.com
  • 1 edit in trunk/Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp

Unreviewed. Fix the build warning below since r295039.

warning: variable ‘accumulatedWidth’ set but not used [-Wunused-but-set-variable]

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp:

(WebCore::Layout::FlexLayout::computeLogicalWidthForStretchingFlexItems):

1:30 AM Changeset in webkit [295260] by Nikos Mouchtaris
  • 1 edit in trunk/Source/WebCore/platform/graphics/filters/FilterImage.cpp

Add checks for overflow in FilterImage::copyImageBytes
https://bugs.webkit.org/show_bug.cgi?id=241296
<rdar://89744102>

Reviewed by Said Abou-Hallawa.

Add overflow checks to copyImageBytes functions in FilterImage class.

  • Source/WebCore/platform/graphics/filters/FilterImage.cpp:

(WebCore::copyImageBytes):

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

Jun 3, 2022:

7:17 PM Changeset in webkit [295259] by Elliott Williams
  • 1 edit in trunk/Source/WebKit/Configurations/BaseTarget.xcconfig

Fix WebKit's PROFILE_DATA_PATH in internal release builds
https://bugs.webkit.org/show_bug.cgi?id=241297

Reviewed by Wenson Hsieh.

WebKit's PROFILE_DATA_PATH_INTERNAL_YES was missing WebKitAdditions/
in its path name. Just a typo here, WebCore and JavaScriptCore have
correct paths.

  • Source/WebKit/Configurations/BaseTarget.xcconfig:

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

7:09 PM Changeset in webkit [295258] by ysuzuki@apple.com
  • 2 edits
    1 add in trunk

[WTF] Handle "at" in Date parse heuristics to make Date picker work in CNBC.com
https://bugs.webkit.org/show_bug.cgi?id=241258
rdar://93920424

Reviewed by Darin Adler.

AppleICU changes Intl.DateTimeFormat's formatting result to align it to Apple HI. But we
observed regression in CNBC.com since it reparses Intl.DateTimeFormat's string with Date
constructor.

Strictly speaking, there is no guarantee that code works. Date constructor's parsing
is implementation-dependent, and the spec does not require that Intl.DateTimeFormat's output
should be accepted by Date constructor. And this works only for English case anyway even before
this AppleICU change: if date is formatted via ja-JP, then Date constructor does not accept it.
But previously, this English case was working by chance, but now, new ICU format inserts "at"
in the string, and it makes that string unaccepted in Date constructor.

To workaround this web-compatibility issue, we extend our Date parsing heuristics to
accept "at". This is OK since the goal of this heuristics is accepting wider range of date
strings. Also it is OK that accepting English word "at" since this heuristics already handle
weekday and month names in English.

  • JSTests/complex.yaml:
  • JSTests/complex/intl-date-time-format-date-parse.js: Added.

(shouldBe):

  • Source/WTF/wtf/DateMath.cpp:

(WTF::parseDateFromNullTerminatedCharacters):

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

6:10 PM Changeset in webkit [295257] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.10.11

Tag WebKit-7614.1.14.10.11.

6:06 PM Changeset in webkit [295256] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.10-branch/Source

Versioning.

WebKit-7614.1.14.10.11

5:30 PM Changeset in webkit [295255] by Devin Rousso
  • 27 edits in trunk/Source

Web Inspector: remove unused InspectorFrontendHost attributes and methods
https://bugs.webkit.org/show_bug.cgi?id=241291

Reviewed by Patrick Angle.

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

(WebCore::InspectorFrontendHost::port const): Deleted.
(WebCore::InspectorFrontendHost::append): Deleted.
(WebCore::InspectorFrontendHost::close): Deleted.

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

(WebCore::InspectorFrontendClientLocal::append): Deleted.

  • Source/WebKit/WebProcess/Inspector/WebInspectorUI.messages.in:
  • Source/WebKit/WebProcess/Inspector/WebInspectorUI.h:
  • Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::didSave): Deleted.
(WebKit::WebInspectorUI::append): Deleted.
(WebKit::WebInspectorUI::didAppend): Deleted.

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

(WebKit::WebInspectorUIProxy::append): Deleted.
(WebKit::WebInspectorUIProxy::platformAppend): Deleted.

  • Source/WebKit/UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp:

(WebKit::fileReplaceContentsCallback):
(WebKit::WebInspectorUIProxy::platformAppend): Deleted.

  • Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::platformSave):
(WebKit::WebInspectorUIProxy::platformAppend): Deleted.

  • Source/WebKit/UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp:

(WebKit::WebInspectorUIProxy::platformAppend): Deleted.

  • Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.messages.in:
  • Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.h:
  • Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::didSave): Deleted.
(WebKit::RemoteWebInspectorUI::didAppend): Deleted.
(WebKit::RemoteWebInspectorUI::append): Deleted.

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

(WebKit::RemoteWebInspectorUIProxy::append): Deleted.
(WebKit::RemoteWebInspectorUIProxy::platformAppend): Deleted.

  • Source/WebKit/UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp:

(WebKit::remoteFileReplaceContentsCallback):
(WebKit::RemoteWebInspectorUIProxy::platformAppend): Deleted.

  • Source/WebKit/UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm:

(WebKit::RemoteWebInspectorUIProxy::platformSave):
(WebKit::RemoteWebInspectorUIProxy::platformAppend): Deleted.

  • Source/WebKit/UIProcess/Inspector/win/RemoteWebInspectorUIProxyWin.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformAppend): Deleted.

  • Source/WebKitLegacy/mac/WebCoreSupport/WebInspectorClient.h:
  • Source/WebKitLegacy/mac/WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::save):
(WebInspectorFrontendClient::append): Deleted.

  • Source/WebKitLegacy/ios/WebCoreSupport/WebInspectorClientIOS.mm:

(WebInspectorFrontendClient::append): Deleted.

  • Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendAPI.js:

(InspectorFrontendAPI.savedURL): Deleted.
(InspectorFrontendAPI.appendedToURL): Deleted.

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

4:59 PM Changeset in webkit [295254] by sihui_liu@apple.com
  • 1 edit in trunk/Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm

Regression (r294405): missing tiles during scrolling after foregrounding app
https://bugs.webkit.org/show_bug.cgi?id=241280

Reviewed by Chris Dumez.

Partially revert r294405 to disable ProcessStateMonitor that can make UI process fail to take foreground assertion after
app is foregrounded.

  • Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:

(-[WKProcessAssertionBackgroundTaskManager init]):
(-[WKProcessAssertionBackgroundTaskManager _releaseBackgroundTask]):

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

4:55 PM Changeset in webkit [295253] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore/platform/graphics/avfoundation/objc

[Cocoa][MSE] Frames are displayed "fast forward" during seek operations
https://bugs.webkit.org/show_bug.cgi?id=241234
<rdar://89387951>

Reviewed by Eric Carlson.

When MSE was moved into the GPU process, certain operations that used to be synchronous became
async. This includes seek operations, where the seek request is initiated by the HTMLMediaElement,
async dispatched to the MediaPlayer in the GPU process, and then async dispatched back to the
WebContent process and MediaSource. Immediately prior to this last dispatch, the
SourceBufferPrivateAVFObjC flushes its sample buffer renderers, and during the subsequent async
portion there is an opportunity for the sample buffers to request new data. When that request
occurs before the response to the async dispatch, incorrect samples (future samples from the
previous playback location) are enqueued. These are then flushed again during the async response,
and replaced by correct samples.

Add a new ivar to SourceBufferPrivateAVFObjC that tracks this state, blocking enqueing new samples
while there is a pending seek operation.

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

(WebCore::SourceBufferPrivateAVFObjC::willSeek):
(WebCore::SourceBufferPrivateAVFObjC::seekToTime):
(WebCore::SourceBufferPrivateAVFObjC::isSeeking const):

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

4:54 PM Changeset in webkit [295252] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]: [ Monterey wk2 release ] imported/w3c/web-platform-tests/content-security-policy/inheritance/blob-url-inherits-from-initiator.sub.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=239307
<rdar://91719197>

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

4:49 PM Changeset in webkit [295251] by Devin Rousso
  • 1 edit in trunk/LayoutTests/http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html

[ Mac ] http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html is a flaky text failure
https://bugs.webkit.org/show_bug.cgi?id=239091
<rdar://problem/91594397>

Unreviewed test fix.

  • LayoutTests/http/tests/media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-live-broadcast.html:

Only listen for "webkitfullscreenchange" once in case the <video> exiting fullscreen somehow
happens before the test fully finishes.

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

4:45 PM Changeset in webkit [295250] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

[Cocoa] Mail compose doesn't use Bulgarian letter forms when the system language is set to Bulgarian
https://bugs.webkit.org/show_bug.cgi?id=241253
<rdar://problem/94295531>

Reviewed by Cameron McCormack.

Mail compose doesn't set lang, which causes us to have a null locale string.
String::createCFString() transforms a null string to CFSTR(""), which indicates to Core Text
that it shouldn't use the shaping from the system language. Instead, if the locale string
is null, we should give Core Text a null locale string, so they use the correct shaping.

  • LayoutTests/TestExpectations:
  • LayoutTests/fast/text/bulgarian-system-language-shaping-expected-mismatch.html: Added.
  • LayoutTests/fast/text/bulgarian-system-language-shaping.html: Added.
  • LayoutTests/platform/ios/TestExpectations:
  • LayoutTests/platform/mac/TestExpectations:
  • Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:

(WebCore::Font::applyTransforms const):

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

4:39 PM Changeset in webkit [295249] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.3

Tag WebKit-7613.3.3.

4:38 PM Changeset in webkit [295248] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]: [ macOS Debug wk2 EWS ] fast/animation/request-animation-frame-throttling-lowPowerMode.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=241289
<rdar://94371800>

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

4:24 PM Changeset in webkit [295247] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/html/parser

Optimize HTMLToken::appendToAttributeValue()
https://bugs.webkit.org/show_bug.cgi?id=241274

Reviewed by Darin Adler.

Optimize HTMLToken::appendToAttributeValue() by appending all characters at
once instead of one by one.

  • Source/WebCore/html/parser/HTMLToken.h:

(WebCore::HTMLToken::appendToAttributeValue):

  • Source/WebCore/html/parser/HTMLTokenizer.cpp:

(WebCore::HTMLTokenizer::processToken):

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

4:22 PM Changeset in webkit [295246] by Russell Epstein
  • 18 edits in branches/safari-613-branch

Revert 57e001f8c81440562b765975b7ae2b633c8bc66d. rdar://problem/88904160

This reverts commit 57e001f8c81440562b765975b7ae2b633c8bc66d.

4:21 PM Changeset in webkit [295245] by Russell Epstein
  • 5 edits in branches/safari-613-branch/Source/WebKit

Revert 637d98e55c078fde1b8a5f7cff22da2cfda99187. rdar://problem/88904160

This reverts commit 637d98e55c078fde1b8a5f7cff22da2cfda99187.

4:21 PM Changeset in webkit [295244] by Russell Epstein
  • 4 edits in branches/safari-613-branch

Revert afffb32a8971addf23e6b2cea93a52cbb6199e54. rdar://problem/92015599

This reverts commit afffb32a8971addf23e6b2cea93a52cbb6199e54.

4:21 PM Changeset in webkit [295243] by Russell Epstein
  • 5 edits in branches/safari-613-branch

Revert 704644f751c332c5b1001936cf2cd0446f4bea18. rdar://problem/92380002

This reverts commit 704644f751c332c5b1001936cf2cd0446f4bea18.

4:21 PM Changeset in webkit [295242] by Russell Epstein
  • 4 edits in branches/safari-613-branch/Source/WebKit

Revert a56ea95c510fc523f36e6f179f2e6a9763418f4e. rdar://problem/88904160

This reverts commit a56ea95c510fc523f36e6f179f2e6a9763418f4e.

4:21 PM Changeset in webkit [295241] by Russell Epstein
  • 1 edit in branches/safari-613-branch/Source/WebCore/editing/BreakBlockquoteCommand.cpp

Unreviewed build fix. rdar://14839536

./editing/BreakBlockquoteCommand.cpp:29:10: fatal error: 'CommonAtomStrings.h' file not found

4:09 PM Changeset in webkit [295240] by Devin Rousso
  • 58 edits
    3 copies in trunk

Web Inspector: replace the two "Export Audit" and "Export Result" buttons with a single button that has a picker in the NSSavePanel
https://bugs.webkit.org/show_bug.cgi?id=241214
<rdar://problem/76775840>

Reviewed by Patrick Angle.

It's odd to have only one "Import" button but two "Export *" buttons in the Audits Tab, Graphics Tab,
etc. Ideally, there'd be just one "Export" button that lets the developer choose what kind of data
to save (i.e. all formats are provided up front, and the developer picks what's actually used).

  • Source/WebInspectorUI/UserInterface/Base/FileUtilities.js:

(WI.FileUtilities.canSave): Added.
(WI.FileUtilities.async save): Added.
(WI.FileUtilities.save): Deleted.

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

(WebCore::InspectorFrontendHost::canSave):
(WebCore::InspectorFrontendHost::save):
Introduce a new SaveMode that's used to both check for multi-format saving support and indicate
that a particular save operation has multiple formats. Always require an array of SaveData to be
provided when saving, but only expect a single item when the save operation is not multi-format.

  • Source/WebInspectorUI/UserInterface/Base/Main.js:

(WI._contextMenuRequested):
(WI._updateDownloadTabBarButton):
(WI._save):
(WI._saveAs):
(WI.archiveMainFrame):
(WI.canArchiveMainFrame):

  • Source/WebInspectorUI/UserInterface/Controllers/AuditManager.js:

(WI.AuditManager.prototype.export):
(WI.AuditManager.prototype.export.dataForObject): Added.

  • Source/WebInspectorUI/UserInterface/Debug/ProtocolTrace.js:

(WI.ProtocolTrace.prototype.get saveMode): Added.

  • Source/WebInspectorUI/UserInterface/Models/TimelineRecording.js:

(WI.TimelineRecording.prototype.get exportMode): Added.
(WI.TimelineRecording.prototype.canExport):

  • Source/WebInspectorUI/UserInterface/Views/AuditTestContentView.js:

(WI.AuditTestContentView):
(WI.AuditTestContentView.prototype.get navigationItems):
(WI.AuditTestContentView.prototype.get supportsSave):
(WI.AuditTestContentView.prototype.get saveMode): Added.
(WI.AuditTestContentView.prototype.get saveData):
(WI.AuditTestContentView.prototype._export): Added.
(WI.AuditTestContentView.prototype._updateExportNavigationItems):
(WI.AuditTestContentView.prototype._handleExportTestButtonNavigationItemClicked):
(WI.AuditTestContentView.prototype._handleExportResultButtonNavigationItemClicked):
(WI.AuditTestContentView.prototype._handleExportButtonNavigationItemClicked): Added.
(WI.AuditTestContentView.prototype._exportResult): Deleted.

  • Source/WebInspectorUI/UserInterface/Views/AuditTreeElement.js:

(WI.AuditTreeElement.prototype.populateContextMenu):

  • Source/WebInspectorUI/UserInterface/Views/ClusterContentView.js:

(WI.ClusterContentView.prototype.get supportsSave):
(WI.ClusterContentView.prototype.get saveMode): Added.
(WI.ClusterContentView.prototype.get saveData):

  • Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.js:

(WI.ConsoleMessageView.prototype._handleContextMenu):

  • Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):

  • Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView.prototype.get saveMode): Added.

  • Source/WebInspectorUI/UserInterface/Views/HeapSnapshotContentView.js:

(WI.HeapSnapshotContentView):
(WI.HeapSnapshotContentView.prototype._exportSnapshot):

  • Source/WebInspectorUI/UserInterface/Views/LogContentView.js:

(WI.LogContentView.prototype.get saveMode): Added.
(WI.LogContentView.prototype._handleContextMenuEvent):

  • Source/WebInspectorUI/UserInterface/Views/NetworkTableContentView.js:

(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.get saveMode): Added.
(WI.NetworkTableContentView.prototype._canExportHAR):
(WI.NetworkTableContentView.prototype._exportHAR):

  • Source/WebInspectorUI/UserInterface/Views/RecordingContentView.js:

(WI.RecordingContentView):
(WI.RecordingContentView.prototype.get supportsSave):
(WI.RecordingContentView.prototype.get saveMode): Added.
(WI.RecordingContentView.prototype.get saveData):
(WI.RecordingContentView.prototype._export): Added.
(WI.RecordingContentView.prototype._exportRecording):
(WI.RecordingContentView.prototype._exportReduction):
(WI.RecordingContentView.prototype._updateExportButton):
(WI.RecordingContentView.prototype._handleExportNavigationItemClicked):

  • Source/WebInspectorUI/UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype.get saveMode): Added.

  • Source/WebInspectorUI/UserInterface/Views/ScriptContentView.js:

(WI.ScriptContentView.prototype.get saveMode): Added.

  • Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.js:

(WI.ShaderProgramContentView):
(WI.ShaderProgramContentView.prototype.get supportsSave):
(WI.ShaderProgramContentView.prototype.get saveMode): Added.
(WI.ShaderProgramContentView.prototype.get saveData):

  • Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationSection.prototype._save):

  • Source/WebInspectorUI/UserInterface/Views/TextContentView.js:

(WI.TextContentView.prototype.get saveMode):

  • Source/WebInspectorUI/UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype.get saveData):

  • Source/WebInspectorUI/UserInterface/Views/TimelineRecordingContentView.js:

(WI.TimelineRecordingContentView.prototype.get saveMode):
(WI.TimelineRecordingContentView.prototype._exportTimelineRecording):
Indicate the kind of SaveMode that's used. When multi-format is supported, use it to unify the
export buttons (if applicable). Also make sure to only enable the export button(s) if the desired
SaveMode is supported.

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

(WebKit::WebInspectorUI::save):
(WebKit::WebInspectorUI::canSave):

  • Source/WebKit/WebProcess/Inspector/gtk/WebInspectorUIGtk.cpp:

(WebKit::WebInspectorUI::canSave):
(WebKit::RemoteWebInspectorUI::localizedStringsURL const): Deleted.

  • Source/WebKit/WebProcess/Inspector/mac/WebInspectorUIMac.mm:

(WebKit::WebInspectorUI::canSave):
(WebKit::WebInspectorUI::localizedStringsURL const):
(WebKit::webInspectorUILocalizedStringsURL): Deleted.
(WebKit::RemoteWebInspectorUI::localizedStringsURL const): Deleted.

  • Source/WebKit/WebProcess/Inspector/win/WebInspectorUIWin.cpp:

(WebKit::WebInspectorUI::canSave):
(WebKit::RemoteWebInspectorUI::localizedStringsURL const): Deleted.

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

(WebKit::RemoteWebInspectorUI::save):
(WebKit::RemoteWebInspectorUI::canSave): Added.
(WebKit::RemoteWebInspectorUI::canLoad): Added.

  • Source/WebKit/WebProcess/Inspector/gtk/RemoteWebInspectorUIGtk.cpp: Added.

(WebKit::RemoteWebInspectorUI::canSave):
(WebKit::RemoteWebInspectorUI::canLoad):
(WebKit::RemoteWebInspectorUI::localizedStringsURL const):

  • Source/WebKit/WebProcess/Inspector/mac/RemoteWebInspectorUIMac.mm: Added.

(WebKit::RemoteWebInspectorUI::canSave):
(WebKit::RemoteWebInspectorUI::canLoad):
(WebKit::RemoteWebInspectorUI::localizedStringsURL const):

  • Source/WebKit/WebProcess/Inspector/win/RemoteWebInspectorUIWin.cpp: Added.

(WebKit::RemoteWebInspectorUI::canSave):
(WebKit::RemoteWebInspectorUI::canLoad):
(WebKit::RemoteWebInspectorUI::localizedStringsURL const):
Currently, macOS supports both single and multi-format saving, GTK supports single format saving,
and windows supports neither.
Drive-by: Add RemoteWebInspectorProxy* files for each platform instead of shoving the code into

the related WebInspectorProxy* (of the same platform).

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

(WebKit::WebInspectorUIProxy::save):
(WebKit::WebInspectorUIProxy::platformSave):

  • Source/WebKit/UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp:

(WebKit::WebInspectorUIProxy::platformSave):

  • Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(-[WKWebInspectorUISaveController initWithSaveDatas:savePanel:]): Added.
(-[WKWebInspectorUISaveController content]): Added.
(-[WKWebInspectorUISaveController base64Encoded]): Added.
(-[WKWebInspectorUISaveController _updateSavePanel]): Added.
(-[WKWebInspectorUISaveController _popUpButtonAction:]): Added.
(WebKit::WebInspectorUIProxy::showSavePanel):
(WebKit::WebInspectorUIProxy::platformSave): Added.

  • Source/WebKit/UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp:

(WebKit::WebInspectorUIProxy::platformSave):

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

(WebKit::RemoteWebInspectorUIProxy::save):
(WebKit::RemoteWebInspectorUIProxy::platformSave):

  • Source/WebKit/UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformSave):

  • Source/WebKit/UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm:

(WebKit::RemoteWebInspectorUIProxy::platformSave):

  • Source/WebKit/UIProcess/Inspector/win/RemoteWebInspectorUIProxyWin.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformSave):
On macOS, create a shared function to show a NSSavePanel with an accessoryView that lets the
developer choose which format to save with. On GTK, there should only ever be a single SaveData
provided (since GTK only supports single format saving), so use that.

  • Source/WebKitLegacy/mac/WebCoreSupport/WebInspectorClient.h:
  • Source/WebKitLegacy/mac/WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::canSave):
(WebInspectorFrontendClient::save):

  • Source/WebKitLegacy/ios/WebCoreSupport/WebInspectorClientIOS.mm:

(WebInspectorFrontendClient::save):
WK1 only supports single format saving, meaning that there should only ever be a single SaveData
provided, so use that.

  • Source/WebCore/inspector/InspectorFrontendClient.h:

(WebCore::InspectorFrontendClient::SaveData::encode const):
(WebCore::InspectorFrontendClient::SaveData::decode):
IPC stuff.

  • Source/WebCore/inspector/InspectorFrontendClientLocal.h:

(WebCore::InspectorFrontendClientLocal::canSave):
(WebCore::InspectorFrontendClientLocal::save):
Testing code doesn't (need to) know how to save things.

  • Source/WebInspectorUI/UserInterface/Base/URLUtilities.js:

(WI.urlWithoutExtension): Added.

  • LayoutTests/inspector/unit-tests/url-utilities.html:
  • LayoutTests/inspector/unit-tests/url-utilities-expected.txt:

Drive-by: Added a utility method to help in a console.assert.

  • Source/WebCore/en.lproj/Localizable.strings:
  • Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:
  • Source/WebKit/PlatformWin.cmake:
  • Source/WebKit/SourcesCocoa.txt:
  • Source/WebKit/SourcesGTK.txt:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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

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

Properly implement text-align-last in legacy layout engine and IFC
https://bugs.webkit.org/show_bug.cgi?id=241050

Patch by Kiet Ho <Kiet Ho> on 2022-06-03
Reviewed by Alan Bujtas.

The alignment of the last line in a block always follows the alignment specified
by text-align-last. However, the legacy layout engine currently follows the old
spec, where text-align-last only takes effect when text-align was 'justify' (see [1]
where this was changed), and IFC does not honor text-align-last at all. Fix both the
legacy layout engine and IFC to align the last line according to text-align-last.

Manually tested by running run-webkit-tests with IFC enabled and disabled.

[1]: https://github.com/w3c/csswg-drafts/commit/c1f7023611f2c44d24d5a0647965817902651f58

  • LayoutTests/TestExpectations:
  • LayoutTests/fast/css3-text/css3-text-align-last/text-align-last-with-text-align-non-justify-expected.html: Removed.
  • LayoutTests/fast/css3-text/css3-text-align-last/text-align-last-with-text-align-non-justify.html:

Remove obsolete test that tests the old behavior of text-align-line.

  • Source/WebCore/layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:

(WebCore::Layout::horizontalAlignmentOffset):
(WebCore::Layout::LineBoxBuilder::build):

  • Source/WebCore/rendering/LegacyLineLayout.cpp:

(WebCore::LegacyLineLayout::textAlignmentForLine const):

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

3:21 PM Changeset in webkit [295238] by Fujii Hironori
  • 2 edits in trunk/Tools

webkit-patch: git am strips []-enclosed prefixes (e.g. [CMake][WPE]) in a subject
https://bugs.webkit.org/show_bug.cgi?id=241114

Reviewed by Jonathan Bedard.

git-am removes all []-enclosed prefixes from a subject by default.
git-am has --keep-non-patch option that removes only "[PATCH]" prefix.

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

(run):

  • Tools/Scripts/webkitpy/common/checkout/checkout.py:

(apply_patch):
Use --keep-non-patch option for git am.

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

3:08 PM Changeset in webkit [295237] by Kate Cheney
  • 1 edit in trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm

REGRESSION: [ iOS ] Six TestWebKitAPI.AppPrivacyRep ort API tests are a consistent timeout (241233)
https://bugs.webkit.org/show_bug.cgi?id=241233
rdar://94298162

Reviewed by Ryan Haddad.

Avoid connecting to the internet in API tests.

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm:

(TEST):

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

3:02 PM Changeset in webkit [295236] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/win/TestExpectations

[Gardening]: [Win] Update expectations for layout tests.
https://bugs.webkit.org/show_bug.cgi?id=172437

Unreviewed test gardening.

  • LayoutTests/platform/win/TestExpectations:

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

2:44 PM Changeset in webkit [295235] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in

[iOS][GPUP] Add read access to Mobile asset font directory
https://bugs.webkit.org/show_bug.cgi?id=241276
<rdar://89592483>

Reviewed by Geoffrey Garen.

  • Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.GPU.sb.in:

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

2:21 PM Changeset in webkit [295234] by pvollan@apple.com
  • 1 edit in trunk/Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm

Enable HEIC decoding for all non-browser apps on macOS
https://bugs.webkit.org/show_bug.cgi?id=241271
<rdar://92983791>

Reviewed by Geoffrey Garen.

Enable HEIC decoding for all non-browser apps on macOS, since this capability is also needed for other apps besides Mail.
We do not want to enable it for Web browsers yet, since this currently requries an unconditional sandbox extension for
trustd.

  • Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

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

2:12 PM Changeset in webkit [295233] by Fujii Hironori
  • 3 edits in trunk/Source/WebCore/platform/graphics/texmap

Remove TextureMapperLayer::setChildren(const Vector<GraphicsLayer*>&) to make TextureMapperLayer independent to GraphicsLayer and GraphicsLayerTextureMapper
https://bugs.webkit.org/show_bug.cgi?id=241248

Reviewed by Don Olmstead.

setChildren(const Vector<GraphicsLayer*>&) was taking GraphicsLayer
objects as an argument, and assuming the GraphicsLayer objects were
GraphicsLayerTextureMapper objects. This was a layer violation.
TextureMapperLayer doen't need to know about GraphicsLayer and
GraphicsLayerTextureMapper.

  • Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::commitLayerChanges):

  • Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:
  • Source/WebCore/platform/graphics/texmap/TextureMapperLayer.h:

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

2:08 PM Changeset in webkit [295232] by Devin Rousso
  • 28 edits
    11 adds
    8 deletes in trunk

Web Inspector: drop InspectorAdditionsEnabled in favor of new methods on InspectorFrontendhost
https://bugs.webkit.org/show_bug.cgi?id=241192

Reviewed by Patrick Angle.

This removes custom things from standardized IDLs and allows custom functionality necessary for Web
Inspector to be kept inside inspector objects (as well as the fact that InspectorFrontendHost is
guaranteed to exist, so there's no concern about this functionality not being available).

  • Source/WTF/Scripts/Preferences/WebPreferences.yaml:
  • Source/WebCore/page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setInspectorAdditionsEnabled): Deleted.
(WebCore::RuntimeEnabledFeatures::inspectorAdditionsEnabled const): Deleted.

  • Source/WebKit/UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetInspectorAdditionsEnabled): Deleted.
(WKPreferencesGetInspectorAdditionsEnabled): Deleted.

  • Source/WebKit/UIProcess/API/C/WKPreferencesRefPrivate.h:
  • Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::enableFrontendFeatures):

  • Source/WebKitLegacy/mac/WebView/WebPreferenceKeysPrivate.h:
  • Source/WebKitLegacy/mac/WebView/WebPreferences.mm:

(-[WebPreferences inspectorAdditionsEnabled]): Deleted.
(-[WebPreferences setInspectorAdditionsEnabled:]): Deleted.

  • Source/WebKitLegacy/mac/WebView/WebPreferencesPrivate.h:
  • Source/WebKitLegacy/win/Interfaces/IWebPreferencesPrivate.idl:
  • Source/WebKitLegacy/win/WebPreferenceKeysPrivate.h:
  • Source/WebKitLegacy/win/WebPreferences.cpp:

(WebPreferences::initializeDefaultSettings):
(WebPreferences::inspectorAdditionsEnabled): Deleted.
(WebPreferences::setInspectorAdditionsEnabled): Deleted.

  • Source/WebKitLegacy/win/WebPreferences.h:
  • Source/WebKitLegacy/win/WebView.cpp:

(WebView::notifyPreferencesChanged):

  • Tools/DumpRenderTree/TestOptions.cpp:

(WTR::TestOptions::defaults):
Remove all things related to InspectorAdditionsEnabled.

  • Source/WebCore/html/canvas/CanvasPath.idl:
  • Source/WebCore/html/canvas/CanvasRenderingContext2D.idl:
  • Source/WebCore/html/canvas/OffscreenCanvasRenderingContext2D.idl:

Remove nonstandard functionality gated by InspectorAdditionsEnabled in standardized IDLs.

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

(WebCore::InspectorFrontendHost::getPath const): Added.
(WebCore::InspectorFrontendHost::getCurrentX const): Added.
(WebCore::InspectorFrontendHost::getCurrentY const): Added.
(WebCore::InspectorFrontendHost::setPath const): Added.

  • Source/WebInspectorUI/UserInterface/Base/IDLExtensions.js: Added.

(File.prototype.getPath): Added.
(CanvasRenderingContext2D.prototype.currentX): Added.
(CanvasRenderingContext2D.prototype.currentY): Added.
(CanvasRenderingContext2D.prototype.getPath): Added.
(CanvasRenderingContext2D.prototype.setPath): Added.
Centralize all custom IDL extensions in a new file with the same name so it's very easy to find.

  • Source/WebInspectorUI/UserInterface/Base/ImageUtilities.js:

(WI.ImageUtilities.supportsCanvasPathDebugging): Deleted.

  • Source/WebInspectorUI/UserInterface/Models/RecordingAction.js:

(WI.RecordingAction.prototype.process):

  • Source/WebInspectorUI/UserInterface/Models/RecordingState.js:

(WI.RecordingState.prototype.fromContext):

  • Source/WebInspectorUI/UserInterface/Views/RecordingContentView.js:

(WI.RecordingContentView):
(WI.RecordingContentView.prototype.get navigationItems):
(WI.RecordingContentView.prototype.attached):
(WI.RecordingContentView.prototype._generateContentCanvas2D):

  • Source/WebInspectorUI/UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype.async _handleMapLocalResourceOverrideToFile):
Remove checks based on InspectorAdditionsEnabled (technically they check for the existence of the
custom functionality on the builtin prototype, but that's added based on InspectorAdditionsEnabled).

  • Source/WebInspectorUI/UserInterface/Main.html:
  • Source/WebInspectorUI/UserInterface/Test.html:
  • LayoutTests/fast/canvas/2d.currentPoint.html: Removed.
  • LayoutTests/fast/canvas/2d.currentPoint-expected.txt: Removed.
  • LayoutTests/fast/canvas/2d.getPath.modification.html: Removed.
  • LayoutTests/fast/canvas/2d.getPath.modification-expected.txt: Removed.
  • LayoutTests/fast/canvas/2d.getPath.newobject.html: Removed.
  • LayoutTests/fast/canvas/2d.getPath.newobject-expected.txt: Removed.
  • LayoutTests/fast/canvas/2d.setPath.html: Removed.
  • LayoutTests/fast/canvas/2d.setPath-expected.txt: Removed.
  • LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/getPath.html: Added.
  • LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/getPath-expected.txt: Added.
  • LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentX.html: Added.
  • LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentX-expected.txt: Added.
  • LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentY.html: Added.
  • LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/get_currentY-expected.txt: Added.
  • LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/setPath.html: Added.
  • LayoutTests/inspector/idl-extensions/CanvasRenderingContext2D/setPath-expected.txt: Added.

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

2:06 PM Changeset in webkit [295231] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/Shared/RemoteLayerTree

Unreviewed build fix after r295149

  • Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.cpp:

(WebKit::CGDisplayListImageBufferBackend::getPixelBuffer const):

  • Source/WebKit/Shared/RemoteLayerTree/CGDisplayListImageBufferBackend.h:

Fix the build.

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

2:03 PM Changeset in webkit [295230] by achristensen@apple.com
  • 2 edits in trunk

HSTS synthesized redirect responses should not be blocked by CORS
https://bugs.webkit.org/show_bug.cgi?id=241003

Reviewed by Youenn Fablet.

If a cross-origin request is made to an http URL that would be upgraded to an https URL
because of HSTS, we synthesize a "response" to call willPerformHTTPRedirection with.
Unfortunately, this response can fail CORS checks causing the request to be unnecessarily blocked.
To prevent this, just add CORS headers to the synthesized responses for HSTS.

  • Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[WKNetworkSessionDelegate URLSession:task:_schemeUpgraded:completionHandler:]):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/HSTS.mm:

(TestWebKitAPI::TEST):

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

2:03 PM Changeset in webkit [295229] by Ryan Haddad
  • 3 edits in trunk/Tools/CISupport/build-webkit-org

Repurpose arm64 iOS simulator GPUP bot as a general arm64 iOS simulator tester
https://bugs.webkit.org/show_bug.cgi?id=241278

Reviewed by Aakash Jain.

  • Tools/CISupport/build-webkit-org/config.json:
  • Tools/CISupport/build-webkit-org/factories_unittest.py:

(TestExpectedBuildSteps):

  • Tools/CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

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

2:00 PM Changeset in webkit [295228] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]: [ macOS Debug wk2 EWS ] fast/animation/request-animation-frame-throttling-detached-iframe.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=241283
<rdar://94364006>

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

1:52 PM Changeset in webkit [295227] by Said Abou-Hallawa
  • 31 edits
    2 adds in trunk

[GPU Process] [Filters] Make PixelBuffer an abstract class
https://bugs.webkit.org/show_bug.cgi?id=240809
<rdar://problem/94117981>

Reviewed by Simon Fraser.

Hide the current underlying memory of PixelBuffer which is 'Uint8ClampedArray'
and move it to a new subclass named ByteArrayPixelBuffer.

All clients should use the virtual methods 'bytes()' and 'sizeInBytes()' to have
access to the pixel bytes. All calls to 'PixelBuffer::tryCreate()' should be
replaced with 'ByteArrayPixelBuffer::tryCreate()'.

In future patches and when GPUProcess applies software filters, we are going to
create new subclass of PixelBuffer for the result FilterImages. This new sub-
class will use SharedMemory as its underlying pixel data and it will attribute
this SharedMemory to WebProcess.

  • Source/WebCore/Headers.cmake:
  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::dumpImageBitmap):
(WebCore::CloneDeserializer::readImageBitmap):

  • Source/WebCore/html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::getImageData):

  • Source/WebCore/html/ImageData.cpp:

(WebCore::ImageData::create):
(WebCore::ImageData::pixelBuffer const):

  • Source/WebCore/html/ImageData.h:
  • Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:

(WebCore::CanvasRenderingContext2DBase::getImageData const):

  • Source/WebCore/page/PageColorSampler.cpp:

(WebCore::sampleColor):

  • Source/WebCore/platform/graphics/GraphicsContextGL.cpp:

(WebCore::GraphicsContextGL::extractPixelBuffer):

  • Source/WebCore/platform/graphics/ImageBufferAllocator.cpp:

(WebCore::ImageBufferAllocator::createPixelBuffer const):

  • Source/WebCore/platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::convertToLuminanceMask):
(WebCore::ImageBufferBackend::getPixelBuffer const):
(WebCore::ImageBufferBackend::putPixelBuffer):

  • Source/WebCore/platform/graphics/PixelBuffer.cpp:

(WebCore::PixelBuffer::supportedPixelFormat):
(WebCore::PixelBuffer::PixelBuffer):
(WebCore::PixelBuffer::tryCreateForDecoding): Deleted.
(WebCore::PixelBuffer::tryCreate): Deleted.
(WebCore::PixelBuffer::create): Deleted.
(WebCore::PixelBuffer::bytes const): Deleted.
(WebCore::PixelBuffer::sizeInBytes const): Deleted.
(WebCore::PixelBuffer::createScratchPixelBuffer const): Deleted.
(WebCore::operator<<): Deleted.

  • Source/WebCore/platform/graphics/PixelBuffer.h:

(WebCore::PixelBuffer::size const):
(WebCore::PixelBuffer::isByteArrayPixelBuffer const):
(WebCore::PixelBuffer::data const): Deleted.
(WebCore::PixelBuffer::takeData): Deleted.
(WebCore::PixelBuffer::encode const): Deleted.
(WebCore::PixelBuffer::decode): Deleted.

  • Source/WebCore/platform/graphics/ShadowBlur.cpp:

(WebCore::ShadowBlur::blurShadowBuffer):

  • Source/WebCore/platform/graphics/ByteArrayPixelBuffer.cpp: Added.

(WebCore::ByteArrayPixelBuffer::create):
(WebCore::ByteArrayPixelBuffer::tryCreate):
(WebCore::ByteArrayPixelBuffer::tryCreateForDecoding):
(WebCore::ByteArrayPixelBuffer::ByteArrayPixelBuffer):
(WebCore::ByteArrayPixelBuffer::bytes const):
(WebCore::ByteArrayPixelBuffer::sizeInBytes const):
(WebCore::ByteArrayPixelBuffer::createScratchPixelBuffer const):

  • Source/WebCore/platform/graphics/ByteArrayPixelBuffer.h: Added.

(WebCore::ByteArrayPixelBuffer::data const):
(WebCore::ByteArrayPixelBuffer::takeData):
(WebCore::ByteArrayPixelBuffer::encode const):
(WebCore::ByteArrayPixelBuffer::decode):
(isType):

  • Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:

(WebCore::GraphicsContextGLANGLE::readPixelsForPaintResults):
(WebCore::GraphicsContextGLANGLE::paintRenderingResultsToPixelBuffer):

  • Source/WebCore/platform/graphics/cg/GraphicsContextGLCG.cpp:

(WebCore::GraphicsContextGL::paintToCanvas):

  • Source/WebCore/platform/graphics/cg/ImageBufferCGBackend.cpp:

(WebCore::ImageBufferCGBackend::copyCGImageForEncoding const):

  • Source/WebCore/platform/graphics/cg/ImageBufferUtilitiesCG.cpp:

(WebCore::encode):

  • Source/WebCore/platform/graphics/cv/VideoFrameCV.mm:

(WebCore::VideoFrameCV::createFromPixelBuffer):

  • Source/WebCore/platform/graphics/filters/FilterImage.cpp:

(WebCore::copyImageBytes):

  • Source/WebCore/rendering/shapes/Shape.cpp:

(WebCore::Shape::createRasterShape):

  • Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.cpp:

(WebKit::RemoteGraphicsContextGL::paintPixelBufferToImageBuffer):

  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::getPixelBufferForImageBuffer):

  • Source/WebKit/Platform/IPC/PixelBufferReference.h:

(IPC::PixelBufferReference::encode const):
(IPC::PixelBufferReference::decode):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
  • Tools/TestWebKitAPI/Tests/WebCore/ImageBufferTests.cpp:

(TestWebKitAPI::imageBufferPixelIs):

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

1:39 PM Changeset in webkit [295226] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/win/TestExpectations

[Gardening]: [ Windows EWS ] webanimations/accelerated-animations-and-motion-path.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=241282
<rdar://94362852>

Unreviewed test gardening.

  • LayoutTests/platform/win/TestExpectations:

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

1:31 PM Changeset in webkit [295225] by Devin Rousso
  • 1 edit in trunk/LayoutTests/http/tests/inspector/network/copy-as-fetch.html

New test: http/tests/inspector/network/copy-as-fetch.html is a frequent / flaky failure
https://bugs.webkit.org/show_bug.cgi?id=241279
<rdar://problem/94361782>

Unreviewed text fix.

  • LayoutTests/http/tests/inspector/network/copy-as-fetch.html:

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

1:29 PM Changeset in webkit [295224] by Devin Rousso
  • 14 edits in trunk/Source/WebInspectorUI/UserInterface

Web Inspector: Sources: creating a local override when viewing a resource should automatically place the cursor where it was before
https://bugs.webkit.org/show_bug.cgi?id=218301
<rdar://problem/70773143>

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Base/Main.js:

(WI.showLocalResourceOverride):
If the overridden WI.Resource is also provided, grab the selected text and scroll position from
the WI.ContentView created for it (if it exists) and pass it along when showing the WI.ContentView
for the given WI.LocalResourceOverride.

  • Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):

  • Source/WebInspectorUI/UserInterface/Views/FontResourceContentView.js:

(WI.FontResourceContentView.prototype.dropZoneHandleDrop):

  • Source/WebInspectorUI/UserInterface/Views/ImageResourceContentView.js:

(WI.ImageResourceContentView.prototype.dropZoneHandleDrop):

  • Source/WebInspectorUI/UserInterface/Views/LocalResourceOverrideTreeElement.js:

(WI.LocalResourceOverrideTreeElement.prototype.willDismissPopover):

  • Source/WebInspectorUI/UserInterface/Views/LocalResourceOverrideWarningView.js:

(WI.LocalResourceOverrideWarningView.prototype.initialLayout):

  • Source/WebInspectorUI/UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype.async _createAndShowLocalResourceOverride):
(WI.ResourceContentView.prototype._handleImportLocalResourceOverride):
Pass along the overridden WI.Resource.

  • Source/WebInspectorUI/UserInterface/Views/TextEditor.js:

(WI.TextEditor.prototype.get scrollOffset): Added.
(WI.TextEditor.prototype.set scrollOffset): Added.
(WI.TextEditor.prototype.revealPosition):
(WI.TextEditor.prototype.revealPosition.revealAndHighlightLine):
(WI.TextEditor.prototype._updateAfterFormatting):
(WI.TextEditor.prototype._revealPendingPositionIfPossible):
Add a way for callers to get/set the scroll position.
Allow callers of revealPosition to also focus for instant editability.
Drive-by: Rework the structure of the parameters to make it easier to add new one.

  • Source/WebInspectorUI/UserInterface/Views/ResourceClusterContentView.js:

(WI.ResourceClusterContentView.prototype.restoreFromCookie):
(WI.ResourceClusterContentView.prototype.showResponse):
(WI.ResourceClusterContentView.prototype._resourceLoadingDidFinish):
Teach restoreFromCookie how to pull out more things (e.g. WI.TextRange, WI.Point, etc.).
Drive-by: Remove parameters from showResponse as they're not used anywhere.

  • Source/WebInspectorUI/UserInterface/Views/ScriptContentView.js:

(WI.ScriptContentView.prototype.revealPosition):
(WI.ScriptContentView.prototype.restoreFromCookie):

  • Source/WebInspectorUI/UserInterface/Views/ShaderProgramContentView.js:

(WI.ShaderProgramContentView.prototype.revealPosition):

  • Source/WebInspectorUI/UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.dialogWasDismissedWithRepresentedObject):

  • Source/WebInspectorUI/UserInterface/Views/TextContentView.js:

(WI.TextContentView.prototype.revealPosition):

  • Source/WebInspectorUI/UserInterface/Views/TextResourceContentView.js:

(WI.TextResourceContentView.prototype.revealPosition):
Adjust revealPosition to simply pass along parameters instead of trying to do things with them.

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

1:24 PM Changeset in webkit [295223] by Wenson Hsieh
  • 5 edits in trunk/Source/WebKit/UIProcess

Allow the element fullscreen security heuristic to ignore certain touches
https://bugs.webkit.org/show_bug.cgi?id=241068

Reviewed by Eric Carlson.

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

(-[WKWebView _shouldAvoidSecurityHeuristicScoreUpdates]):

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

(-[WKContentView _shouldAvoidSecurityHeuristicScoreUpdates]):

  • Source/WebKit/UIProcess/ios/fullscreen/WKFullScreenViewController.mm:

(-[WKFullScreenViewController _touchDetected:]):

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

1:24 PM Changeset in webkit [295222] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebCore/Modules/cache/WorkerCacheStorageConnection.cpp

Unreviewed build fix. rdar://problem/92853663

FAILURE ./Modules/cache/WorkerCacheStorageConnection.cpp:125:107: error: non-virtual member function marked 'final' hides virtual member function
FAILURE ./Modules/cache/WorkerCacheStorageConnection.cpp:119:72: error: allocating an object of abstract class type 'WebCore::StoppedCacheStorageConnection'

1:24 PM Changeset in webkit [295221] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebCore/animation/KeyframeEffect.cpp

Revert 41769648c46b. rdar://problem/93513759

This reverts commit dc0c4463e249c835881c42cc7446662a85914ae1.

1:19 PM Changeset in webkit [295220] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/win/TestExpectations

[Gardening]: [ Windows ] two tests imported/blink and fast/layers are a consistent failure
https://bugs.webkit.org/show_bug.cgi?id=241281
<rdar://94362021>
Unreviewed test gardening.

  • LayoutTests/platform/win/TestExpectations:

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

12:59 PM Changeset in webkit [295219] by achristensen@apple.com
  • 26 edits in trunk

Implement CSSNumericValue.to
https://bugs.webkit.org/show_bug.cgi?id=241167

Reviewed by Chris Dumez.

  • LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/stylevalue-subclasses/cssRotate.tentative-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/cssMathValue.tentative-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/to.tentative-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-typed-om/stylevalue-subclasses/numeric-objects/toSum.tentative-expected.txt:
  • Source/WebCore/css/CSSUnits.cpp:

(WebCore::canonicalUnitType): Deleted.

  • Source/WebCore/css/CSSUnits.h:
  • Source/WebCore/css/typedom/CSSNumericValue.cpp:

(WebCore::operationOnValuesOfSameUnit):
(WebCore::CSSNumericValue::multiplyInternal):
(WebCore::CSSNumericValue::min):
(WebCore::CSSNumericValue::max):
(WebCore::CSSNumericValue::to):

  • Source/WebCore/css/typedom/CSSNumericValue.h:
  • Source/WebCore/css/typedom/CSSUnitValue.cpp:

(WebCore::CSSUnitValue::parseUnit):
(WebCore::CSSUnitValue::create):
(WebCore::CSSUnitValue::CSSUnitValue):
(WebCore::conversionToCanonicalUnitsScaleFactor):
(WebCore::CSSUnitValue::convertTo const):
(WebCore::CSSUnitValue::toSumValue const):
(WebCore::numericType): Deleted.
(WebCore::parseUnit): Deleted.

  • Source/WebCore/css/typedom/CSSUnitValue.h:
  • Source/WebCore/css/typedom/numeric/CSSMathInvert.cpp:

(WebCore::CSSMathInvert::toSumValue const):

  • Source/WebCore/css/typedom/numeric/CSSMathInvert.h:
  • Source/WebCore/css/typedom/numeric/CSSMathMax.cpp:

(WebCore::CSSMathMax::create):
(WebCore::CSSMathMax::CSSMathMax):
(WebCore::CSSMathMax::toSumValue const):

  • Source/WebCore/css/typedom/numeric/CSSMathMax.h:
  • Source/WebCore/css/typedom/numeric/CSSMathMin.cpp:

(WebCore::CSSMathMin::create):
(WebCore::CSSMathMin::CSSMathMin):
(WebCore::CSSMathMin::toSumValue const):

  • Source/WebCore/css/typedom/numeric/CSSMathMin.h:
  • Source/WebCore/css/typedom/numeric/CSSMathNegate.cpp:

(WebCore::CSSMathNegate::toSumValue const):

  • Source/WebCore/css/typedom/numeric/CSSMathNegate.h:
  • Source/WebCore/css/typedom/numeric/CSSMathProduct.cpp:

(WebCore::CSSMathProduct::toSumValue const):

  • Source/WebCore/css/typedom/numeric/CSSMathProduct.h:
  • Source/WebCore/css/typedom/numeric/CSSMathSum.cpp:

(WebCore::CSSMathSum::toSumValue const):

  • Source/WebCore/css/typedom/numeric/CSSMathSum.h:
  • Source/WebCore/css/typedom/numeric/CSSNumericArray.cpp:

(WebCore::CSSNumericArray::forEach):

  • Source/WebCore/css/typedom/numeric/CSSNumericType.cpp:

(WebCore::CSSNumericType::create):
(WebCore::typeFromVector):

  • Source/WebCore/css/typedom/numeric/CSSNumericType.h:

(WebCore::CSSNumericType::operator!= const):

  • Source/WebCore/css/typedom/transform/CSSTransformValue.cpp:

(WebCore::CSSTransformValue::serialize const):

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

12:57 PM Changeset in webkit [295218] by commit-queue@webkit.org
  • 18 edits in trunk/Source/WebCore/html/canvas

WebGL extensions enable code cleanup
https://bugs.webkit.org/show_bug.cgi?id=241264

Patch by Alexey Knyazev <3479527+lexaknyazev@users.noreply.github.com> on 2022-06-03
Reviewed by Kenneth Russell.

  • Use extension ctors to enable them in ANGLE. It is safe to

call ensureExtensionEnabled even when ANGLE is not used

  • Do not request ARB-prefixed extensions from ANGLE
  • Fixed duplicated extension enable requests for
    • ANGLE_instanced_arrays
    • OES_fbo_render_mipmap
    • WEBGL_draw_buffers
  • Directly check for enabled extensions in

WebGL2RenderingContext::renderbufferStorageImpl and
WebGLRenderingContextBase::addExtensionSupportedFormatsAndTypes
instead of scanning through the list of strings

  • Source/WebCore/html/canvas/ANGLEInstancedArrays.cpp:

(WebCore::ANGLEInstancedArrays::ANGLEInstancedArrays):

  • Source/WebCore/html/canvas/EXTBlendMinMax.cpp:

(WebCore::EXTBlendMinMax::EXTBlendMinMax):

  • Source/WebCore/html/canvas/EXTFragDepth.cpp:

(WebCore::EXTFragDepth::EXTFragDepth):

  • Source/WebCore/html/canvas/EXTShaderTextureLOD.cpp:

(WebCore::EXTShaderTextureLOD::EXTShaderTextureLOD):

  • Source/WebCore/html/canvas/EXTTextureCompressionBPTC.cpp:

(WebCore::EXTTextureCompressionBPTC::EXTTextureCompressionBPTC):

  • Source/WebCore/html/canvas/EXTTextureCompressionRGTC.cpp:

(WebCore::EXTTextureCompressionRGTC::EXTTextureCompressionRGTC):

  • Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.cpp:

(WebCore::EXTTextureFilterAnisotropic::EXTTextureFilterAnisotropic):

  • Source/WebCore/html/canvas/EXTTextureNorm16.cpp:

(WebCore::EXTTextureNorm16::EXTTextureNorm16):

  • Source/WebCore/html/canvas/EXTsRGB.cpp:

(WebCore::EXTsRGB::EXTsRGB):

  • Source/WebCore/html/canvas/OESElementIndexUint.cpp:

(WebCore::OESElementIndexUint::OESElementIndexUint):

  • Source/WebCore/html/canvas/OESStandardDerivatives.cpp:

(WebCore::OESStandardDerivatives::OESStandardDerivatives):

  • Source/WebCore/html/canvas/OESTextureFloatLinear.cpp:

(WebCore::OESTextureFloatLinear::OESTextureFloatLinear):

  • Source/WebCore/html/canvas/OESTextureHalfFloatLinear.cpp:

(WebCore::OESTextureHalfFloatLinear::OESTextureHalfFloatLinear):

  • Source/WebCore/html/canvas/OESVertexArrayObject.cpp:

(WebCore::OESVertexArrayObject::OESVertexArrayObject):

  • Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::renderbufferStorageImpl):

  • Source/WebCore/html/canvas/WebGLDepthTexture.cpp:

(WebCore::WebGLDepthTexture::WebGLDepthTexture):

  • Source/WebCore/html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getExtension):

  • Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::addExtensionSupportedFormatsAndTypes):

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

12:30 PM Changeset in webkit [295217] by Wenson Hsieh
  • 2 edits
    1 delete in trunk/LayoutTests

[iOS] editing/selection/ios/do-not-hide-selection-in-visible-container.html fails on iPhone 12 simulator
https://bugs.webkit.org/show_bug.cgi?id=241270
rdar://86025461

Reviewed by Tim Horton.

This test currently fails when run on iPhone 12 simulator. Due to the slightly wider screen size, the row of buttons at
the top of the page no longer wraps to the next line, which in turn causes the output text to have one less space
character when compared to the output on iPhone SE.

To fix this, make the test robust against this difference by removing each button before the end of the test. This also
causes the text ouput on iPad to now match the expected output on iPhone, so we no longer require test expectations that
are specific to iPad vs. iPhone.

  • LayoutTests/editing/selection/ios/do-not-hide-selection-in-visible-container-expected.txt:
  • LayoutTests/editing/selection/ios/do-not-hide-selection-in-visible-container.html:
  • LayoutTests/platform/ipad/editing/selection/ios/do-not-hide-selection-in-visible-container-expected.txt: Removed.

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

10:11 AM Changeset in webkit [295216] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GTK] Fix a couple clang warnings related with DESTINATION_COLOR_SPACE_LINEAR_SRGB and atspi
https://bugs.webkit.org/show_bug.cgi?id=241269

Patch by Philippe Normand <philn@igalia.com> on 2022-06-03
Reviewed by Michael Catanzaro.

  • Source/WebCore/accessibility/atspi/AXObjectCacheAtspi.cpp:

(WebCore::AXObjectCache::postPlatformNotification): Add switch case for AXHasPopupChanged, stubbed for now.

  • Source/WebCore/platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::transformToColorSpace): makr newColorSpace as unused when
DESTINATION_COLOR_SPACE_LINEAR_SRGB is disabled.

  • Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource): Move svgStyle declaration to
DESTINATION_COLOR_SPACE_LINEAR_SRGB code path.

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

9:30 AM Changeset in webkit [295215] by commit-queue@webkit.org
  • 18 edits in trunk/Source/WebCore

Remove last remnants of old Media Controls related sliders
https://bugs.webkit.org/show_bug.cgi?id=241226

Patch by Philippe Normand <philn@igalia.com> on 2022-06-03
Reviewed by Tim Nguyen.

The media-*-slider-*part theme parts are no longer used, so should be removed.

  • Source/WebCore/WebCore.order:
  • Source/WebCore/accessibility/AccessibilitySlider.cpp:

(WebCore::AccessibilitySlider::orientation const):

  • Source/WebCore/css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • Source/WebCore/css/CSSValueKeywords.in:
  • Source/WebCore/css/mediaControls.css:

(:is(audio, video)::-webkit-media-controls-timeline):

  • Source/WebCore/css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • Source/WebCore/html/RangeInputType.cpp:

(WebCore::RangeInputType::handleKeydownEvent):

  • Source/WebCore/html/shadow/ShadowPseudoIds.cpp:

(WebCore::ShadowPseudoIds::webkitMediaSliderThumb): Deleted.
(WebCore::ShadowPseudoIds::webkitMediaSliderContainer): Deleted.

  • Source/WebCore/html/shadow/ShadowPseudoIds.h:
  • Source/WebCore/html/shadow/SliderThumbElement.cpp:

(WebCore::hasVerticalAppearance):
(WebCore::SliderThumbElement::create):
(WebCore::SliderThumbElement::resolveCustomStyle):
(WebCore::SliderContainerElement::create):
(WebCore::SliderThumbElement::shadowPseudoId const): Deleted.
(WebCore::SliderContainerElement::resolveCustomStyle): Deleted.
(WebCore::SliderContainerElement::shadowPseudoId const): Deleted.

  • Source/WebCore/html/shadow/SliderThumbElement.h:

(WebCore::SliderThumbElement::create): Deleted.

  • Source/WebCore/platform/ThemeTypes.cpp:

(WebCore::operator<<):

  • Source/WebCore/platform/ThemeTypes.h:
  • Source/WebCore/rendering/RenderTheme.cpp:

(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::autoAppearanceForElement const):
(WebCore::RenderTheme::paint):

  • Source/WebCore/rendering/RenderTheme.h:

(WebCore::RenderTheme::paintMediaSliderTrack): Deleted.
(WebCore::RenderTheme::paintMediaSliderThumb): Deleted.
(WebCore::RenderTheme::paintMediaVolumeSliderTrack): Deleted.
(WebCore::RenderTheme::paintMediaVolumeSliderThumb): Deleted.
(WebCore::RenderTheme::paintMediaFullScreenVolumeSliderTrack): Deleted.
(WebCore::RenderTheme::paintMediaFullScreenVolumeSliderThumb): Deleted.

  • Source/WebCore/rendering/RenderThemeAdwaita.cpp:

(WebCore::parentMediaElement): Deleted.
(WebCore::RenderThemeAdwaita::paintMediaSliderTrack): Deleted.
(WebCore::RenderThemeAdwaita::paintMediaVolumeSliderTrack): Deleted.

  • Source/WebCore/rendering/RenderThemeAdwaita.h:
  • Source/WebCore/rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSliderTrack):

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

9:13 AM Changeset in webkit [295214] by Chris Dumez
  • 9 edits in trunk/Source

Drop unnecessary operator==() overloads for String
https://bugs.webkit.org/show_bug.cgi?id=241235

Reviewed by Alex Christensen.

  • Source/WTF/wtf/text/WTFString.h:

(WTF::operator==):
(WTF::operator!=):

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

8:55 AM Changeset in webkit [295213] by pvollan@apple.com
  • 6 edits in trunk/Source

Call function to restrict image decoders for all clients
https://bugs.webkit.org/show_bug.cgi?id=240958
<rdar://93794556>

Reviewed by Geoffrey Garen.

Call function to enable HEIC decoding for all clients on iOS. The main motivation behind this patch
is to avoid using IOKit when decoding HEIC or JPEGs with aux HEIC. Calling enableDecodingHEIC() will
make sure IOKit is not being used, as well as enabling HEIC decoding. We previously only did this for
Mail, but decoding of HEIC images should be possible for all clients. We are not enabling this for
all clients on macOS, since macOS is not blocking IOKit in the WebContent process. This patch also
renames the function, since the former name was not accurate.

  • Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp:

(WebCore::createImageSourceOptions):
(WebCore::ImageDecoderCG::enableDecodeHEIC):
(WebCore::ImageDecoderCG::decodeHEICEnabled):
(WebCore::ImageDecoderCG::enableRestrictedDecoding): Deleted.
(WebCore::ImageDecoderCG::restrictedDecodingEnabled): Deleted.

  • Source/WebCore/platform/graphics/cg/ImageDecoderCG.h:
  • Source/WebKit/Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::encode const):
(WebKit::WebProcessCreationParameters::decode):

  • Source/WebKit/Shared/WebProcessCreationParameters.h:
  • Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):

  • Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

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

8:47 AM Changeset in webkit [295212] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/win/TestExpectations

[Gardening]: [ Windows EWS ] webanimations/accelerated-transform-animation-from-scale-zero-and-implicit-to-kefyrame.html is a flaky image failure
https://bugs.webkit.org/show_bug.cgi?id=241268
<rdar://94347232>

Unreviewed test gardening.

  • LayoutTests/platform/win/TestExpectations:

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

8:29 AM Changeset in webkit [295211] by Antti Koivisto
  • 10 edits in trunk

Disallow styles using container units from matched declarations cache
https://bugs.webkit.org/show_bug.cgi?id=241261

Reviewed by Alan Bujtas.

We may fail to invalidate styles using container units correctly on container size change
because they are getting cached.

  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-invalidation-expected.txt:
  • Source/WebCore/css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):

Mark styles that use container units.

  • Source/WebCore/css/CSSToLengthConversionData.cpp:

(WebCore::CSSToLengthConversionData::defaultViewportFactor const):
(WebCore::CSSToLengthConversionData::smallViewportFactor const):
(WebCore::CSSToLengthConversionData::largeViewportFactor const):
(WebCore::CSSToLengthConversionData::dynamicViewportFactor const):
(WebCore::CSSToLengthConversionData::setUsesContainerUnits const):

  • Source/WebCore/css/CSSToLengthConversionData.h:
  • Source/WebCore/dom/Document.cpp:

(WebCore::Document::updateViewportUnitsOnResize):

  • Source/WebCore/rendering/RenderIFrame.cpp:

(WebCore::RenderIFrame::isFullScreenIFrame const):

  • Source/WebCore/rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::RenderStyle):

  • Source/WebCore/rendering/style/RenderStyle.h:

(WebCore::RenderStyle::setUsesViewportUnits):
(WebCore::RenderStyle::usesViewportUnits const):

Also rename hasViewportUnits -> usesViewportUnits for clarity.

(WebCore::RenderStyle::setUsesContainerUnits):
(WebCore::RenderStyle::usesContainerUnits const):
(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::NonInheritedFlags::copyNonInheritedFrom):
(WebCore::RenderStyle::setHasViewportUnits): Deleted.
(WebCore::RenderStyle::hasViewportUnits const): Deleted.

  • Source/WebCore/style/MatchedDeclarationsCache.cpp:

(WebCore::Style::MatchedDeclarationsCache::isCacheable):

Disallow caching.

(WebCore::Style::MatchedDeclarationsCache::clearEntriesAffectedByViewportUnits):

  • Source/WebCore/style/StyleResolver.cpp:

(WebCore::Style::Resolver::styleForElement):
(WebCore::Style::Resolver::pseudoStyleForElement):

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

8:24 AM Changeset in webkit [295210] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/html/HTMLMapElement.cpp

Allow image map adding/removing when in tree scope
https://bugs.webkit.org/show_bug.cgi?id=241263

Patch by Rob Buis <rbuis@igalia.com> on 2022-06-03
Reviewed by Ryosuke Niwa.

Allow image map adding/removing when in tree scope, even
when disconnected, to avoid insert/remove mismatches.

  • Source/WebCore/html/HTMLMapElement.cpp:

(WebCore::HTMLMapElement::parseAttribute):

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

8:13 AM Changeset in webkit [295209] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk1/TestExpectations

[Gardening]: [ macOS wk1 ] compositing/video/video-border-radius.html is a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=241266

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk1/TestExpectations:

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

8:03 AM Changeset in webkit [295208] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore/layout

FlexLayout should not use non-logical intrinsic widths
https://bugs.webkit.org/show_bug.cgi?id=241256

Reviewed by Antti Koivisto.

This is in preparation for using logical-intrinsic widths in flex layout.

  • Source/WebCore/layout/FormattingState.h:
  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace):
(WebCore::Layout::FlexFormattingContext::layoutInFlowContentForIntegration):

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp:

(WebCore::Layout::FlexLayout::FlexLayout):
(WebCore::Layout::FlexLayout::computeLogicalWidthForShrinkingFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalWidthForStretchingFlexItems):

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.h:

(WebCore::Layout::FlexLayout::LogicalFlexItem::minimumContentWidth const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::LogicalFlexItem):
(WebCore::Layout::FlexLayout::formattingState const): Deleted.

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

7:41 AM Changeset in webkit [295207] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/html/parser

Optimize HTMLToken::appendToComment()
https://bugs.webkit.org/show_bug.cgi?id=241250

Reviewed by Yusuke Suzuki.

Append several characters at once whenever possible instead of going one
character at a time. Also avoid updating the m_data8BitCheck data member
when the input characters are not UChars.

  • Source/WebCore/html/parser/HTMLToken.h:

(WebCore::HTMLToken::appendToComment):

  • Source/WebCore/html/parser/HTMLTokenizer.cpp:

(WebCore::HTMLTokenizer::processToken):

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

7:16 AM Changeset in webkit [295206] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[Gardening]: [ macOS Debug wk2 EWS ] WebCore::RenderView::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&)
https://bugs.webkit.org/show_bug.cgi?id=241265
<rdar://94344274>

Unreviewed test gardening.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

7:00 AM Changeset in webkit [295205] by commit-queue@webkit.org
  • 114 edits
    2 adds in trunk/Source/ThirdParty/ANGLE

Update ANGLE to 2022-05-31 (b6a93d753bdd819ddc0dacb8cea554c86bc4c04e))
https://bugs.webkit.org/show_bug.cgi?id=241140

Patch by Kenneth Russell <kbr@chromium.org> on 2022-06-03
Reviewed by Kimmo Kinnunen.

Contains upstream commits:
git log --oneline 8291f2d3e72eca3a25826b689a013c292ef4ba94..b6a93d753bdd819ddc0dacb8cea554c86bc4c04e --pretty=%h %s
b6a93d753 GL: Temporarily enable validation for all GL calls.
d96cee668 Fix to invalidate cache when binding Transform Feedback.
86fce7a77 Roll SwiftShader from d070309f7d15 to 51c43dc015b7 (1 revision)
31c13df5d Revert "Initialize buffer contents separately from BufferImpl::setData"
213f669d3 Roll Chromium from 312583ebe76f to 85bb5555c93e (843 revisions)
0b533e64c Make GLProgram non-copyable.
9f4b9c650 Vulkan: Refactor command buffer retain calls.
ae74bdb3d Roll vulkan-deps from 528f7d8e618c to 59aa5963cf64 (8 revisions)
33b254fe8 Fix ValidateFragmentShaderColorBufferMaskMatch for indexed masks
e02848080 Roll SwiftShader from 5ca5b0ae5a7d to d070309f7d15 (5 revisions)
23f213d13 Vulkan: Make drawable size uniform
73019edeb Vulkan: SPIR-V Gen: No RelaxedPrecision on bitCount() and findLSB()
a2fe4445d Vulkan: Sync pipeline cache only when truly changed
9ea3967d3 Bug fix in GL_EXT_YUV_target
34cff1a14 Initialize buffer contents separately from BufferImpl::setData
2df17a127 Vulkan: Pack driver uniforms
98c2e169c Vulkan: Reduce pre-rotation spec const to bool
b267c009d Add support for comparison operator in FlatUnorderedSet
ee023e6af D3D11: fix constant buffer cache lookup.
cd42f669a Roll vulkan-deps from 6885957e17e7 to 528f7d8e618c (11 revisions)
5b74b1218 Roll SwiftShader from b5cb037f0292 to 5ca5b0ae5a7d (4 revisions)
aa2201725 Roll Chromium from f86f5d40df44 to 312583ebe76f (401 revisions)
c8989675e FramebufferTest: Add FramebufferConditionalFeedbackLoop test.
ae3de1a8c Add test for primitive state change
cd80b511e Metal: Upstream uniform limits from WebKit
54e08a5af Trace Tests: Remove Pixel 2 expectations.
757b84973 Vulkan: Fix reserve varying for xfb (take 2)
7495509b3 Roll vulkan-deps from c8893896acff to 6885957e17e7 (7 revisions)
7076ae5d0 Roll Chromium from 1f342b327faa to f86f5d40df44 (495 revisions)
891dd5b3d Vulkan: Fix mid-RP draw clear w.r.t growing scissor
7ad48b846 Revert "Add Vulkan backend support for texture labels"
fea195678 Vulkan: Remove removeEarlyFragmentTestsOpt flag
7b880204d Vulkan: Remove invalid ASSERT in DescriptorSetDesc.
4aa0975e6 Vulkan: Support Wayland EGL_DEFAULT_DISPLAY
4a20c9143 D3D: Fix race condition with parallel shader compile.
17750ab06 Roll vulkan-deps from 82a65519c521 to c8893896acff (10 revisions)
ccca0c25b libANGLE: Fix evaluating the sample count
2edb216bf Roll Chromium from d624307d6d25 to 1f342b327faa (484 revisions)
a81524477 Capture/Replay: Override eglCreateImage and eglDestroyImage
c608df696 Code Cleanup
802321922 Add ffz@google.com to OWNERS
615b2c685 D3D: implement whole-struct assignment in SSBOs.

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

6:59 AM Changeset in webkit [295204] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebCore/rendering/RenderTable.cpp

Layout table captions in simplified layout
https://bugs.webkit.org/show_bug.cgi?id=241262

Patch by Rob Buis <rbuis@igalia.com> on 2022-06-03
Reviewed by Alan Bujtas.

Layout table captions in simplified layout.

  • Source/WebCore/rendering/RenderTable.cpp:

(WebCore::RenderTable::simplifiedNormalFlowLayout):

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

6:31 AM Changeset in webkit [295203] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore/layout/formattingContexts/flex

FlexLayout::computeLogicalHeightForFlexItems should check if the logical height value is auto
https://bugs.webkit.org/show_bug.cgi?id=241255

Reviewed by Antti Koivisto.

FlexLayout should always operate on logical values even if just checking whether height/width is auto.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace):

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp:

(WebCore::Layout::FlexLayout::computeLogicalHeightForFlexItems):

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.h:

(WebCore::Layout::FlexLayout::LogicalFlexItem::setTop):
(WebCore::Layout::FlexLayout::LogicalFlexItem::setLeft):
(WebCore::Layout::FlexLayout::LogicalFlexItem::setWidth):
(WebCore::Layout::FlexLayout::LogicalFlexItem::setHeight):
(WebCore::Layout::FlexLayout::LogicalFlexItem::rect const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::topLeft const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::top const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::bottom const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::left const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::right const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::width const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::height const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::isHeightAuto const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::LogicalFlexItem):

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

6:27 AM Changeset in webkit [295202] by commit-queue@webkit.org
  • 52 edits in trunk/Source/WebCore/html/canvas

WebGL extensions support code cleanup
https://bugs.webkit.org/show_bug.cgi?id=241229

Patch by Alexey Knyazev <3479527+lexaknyazev@users.noreply.github.com> on 2022-06-03
Reviewed by Kenneth Russell.

  • Add missing static functions, do not call supportsExtension directly
  • Use the same template for all WebGL extension classes
  • Remove redundant ENABLE(WEBGL) guards from various WebGL extension headers,

since those are already guarded elsewhere

  • Aligned includes in OESVertexArrayObject and WebGLCompressedTextureASTC
  • Source/WebCore/html/canvas/ANGLEInstancedArrays.h:
  • Source/WebCore/html/canvas/EXTBlendMinMax.cpp:

(WebCore::EXTBlendMinMax::supported):

  • Source/WebCore/html/canvas/EXTBlendMinMax.h:
  • Source/WebCore/html/canvas/EXTFragDepth.cpp:

(WebCore::EXTFragDepth::supported):

  • Source/WebCore/html/canvas/EXTFragDepth.h:
  • Source/WebCore/html/canvas/EXTShaderTextureLOD.cpp:

(WebCore::EXTShaderTextureLOD::supported):

  • Source/WebCore/html/canvas/EXTShaderTextureLOD.h:
  • Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.cpp:

(WebCore::EXTTextureFilterAnisotropic::supported):

  • Source/WebCore/html/canvas/EXTTextureFilterAnisotropic.h:
  • Source/WebCore/html/canvas/EXTsRGB.cpp:

(WebCore::EXTsRGB::supported):

  • Source/WebCore/html/canvas/EXTsRGB.h:
  • Source/WebCore/html/canvas/KHRParallelShaderCompile.h:
  • Source/WebCore/html/canvas/OESElementIndexUint.cpp:

(WebCore::OESElementIndexUint::supported):

  • Source/WebCore/html/canvas/OESElementIndexUint.h:
  • Source/WebCore/html/canvas/OESFBORenderMipmap.h:
  • Source/WebCore/html/canvas/OESStandardDerivatives.cpp:

(WebCore::OESStandardDerivatives::supported):

  • Source/WebCore/html/canvas/OESStandardDerivatives.h:
  • Source/WebCore/html/canvas/OESTextureFloat.h:
  • Source/WebCore/html/canvas/OESTextureFloatLinear.cpp:

(WebCore::OESTextureFloatLinear::supported):

  • Source/WebCore/html/canvas/OESTextureFloatLinear.h:
  • Source/WebCore/html/canvas/OESTextureHalfFloat.cpp:
  • Source/WebCore/html/canvas/OESTextureHalfFloat.h:
  • Source/WebCore/html/canvas/OESTextureHalfFloatLinear.cpp:

(WebCore::OESTextureHalfFloatLinear::supported):

  • Source/WebCore/html/canvas/OESTextureHalfFloatLinear.h:
  • Source/WebCore/html/canvas/OESVertexArrayObject.cpp:

(WebCore::OESVertexArrayObject::supported):

  • Source/WebCore/html/canvas/OESVertexArrayObject.h:
  • Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:

(WebCore::WebGL2RenderingContext::getExtension):
(WebCore::WebGL2RenderingContext::getSupportedExtensions):

  • Source/WebCore/html/canvas/WebGLColorBufferFloat.h:
  • Source/WebCore/html/canvas/WebGLCompressedTextureASTC.cpp:
  • Source/WebCore/html/canvas/WebGLCompressedTextureASTC.h:
  • Source/WebCore/html/canvas/WebGLCompressedTextureATC.cpp:
  • Source/WebCore/html/canvas/WebGLCompressedTextureATC.h:
  • Source/WebCore/html/canvas/WebGLCompressedTextureETC.cpp:
  • Source/WebCore/html/canvas/WebGLCompressedTextureETC.h:
  • Source/WebCore/html/canvas/WebGLCompressedTextureETC1.cpp:
  • Source/WebCore/html/canvas/WebGLCompressedTextureETC1.h:
  • Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.cpp:
  • Source/WebCore/html/canvas/WebGLCompressedTexturePVRTC.h:
  • Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.cpp:
  • Source/WebCore/html/canvas/WebGLCompressedTextureS3TC.h:
  • Source/WebCore/html/canvas/WebGLCompressedTextureS3TCsRGB.cpp:
  • Source/WebCore/html/canvas/WebGLCompressedTextureS3TCsRGB.h:
  • Source/WebCore/html/canvas/WebGLDebugRendererInfo.cpp:
  • Source/WebCore/html/canvas/WebGLDebugRendererInfo.h:
  • Source/WebCore/html/canvas/WebGLDebugShaders.cpp:

(WebCore::WebGLDebugShaders::supported):

  • Source/WebCore/html/canvas/WebGLDebugShaders.h:
  • Source/WebCore/html/canvas/WebGLDepthTexture.cpp:
  • Source/WebCore/html/canvas/WebGLDepthTexture.h:
  • Source/WebCore/html/canvas/WebGLDrawBuffers.h:
  • Source/WebCore/html/canvas/WebGLLoseContext.cpp:
  • Source/WebCore/html/canvas/WebGLLoseContext.h:
  • Source/WebCore/html/canvas/WebGLRenderingContext.cpp:

(WebCore::WebGLRenderingContext::getExtension):
(WebCore::WebGLRenderingContext::getSupportedExtensions):

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

5:43 AM Changeset in webkit [295201] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore/layout/formattingContexts/flex

FlexLayout::LogicalFlexItem should provide setters and getters
https://bugs.webkit.org/show_bug.cgi?id=241254

Reviewed by Antti Koivisto.

This is in preparation for adding more members to struct LogicalFlexItem.

  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace):
(WebCore::Layout::FlexFormattingContext::setFlexItemsGeometry):

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp:

(WebCore::Layout::FlexLayout::computeAvailableLogicalVerticalSpace const):
(WebCore::Layout::FlexLayout::computeAvailableLogicalHorizontalSpace const):
(WebCore::Layout::FlexLayout::computeLogicalWidthForShrinkingFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalWidthForStretchingFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalWidthForFlexItems):
(WebCore::Layout::FlexLayout::computeLogicalHeightForFlexItems):
(WebCore::Layout::FlexLayout::alignFlexItems):
(WebCore::Layout::FlexLayout::justifyFlexItems):

  • Source/WebCore/layout/formattingContexts/flex/FlexLayout.h:

(WebCore::Layout::FlexLayout::LogicalFlexItem::setTop):
(WebCore::Layout::FlexLayout::LogicalFlexItem::setLeft):
(WebCore::Layout::FlexLayout::LogicalFlexItem::setWidth):
(WebCore::Layout::FlexLayout::LogicalFlexItem::setHeight):
(WebCore::Layout::FlexLayout::LogicalFlexItem::rect const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::topLeft const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::top const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::bottom const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::left const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::right const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::width const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::height const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::style const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::layoutBox const):
(WebCore::Layout::FlexLayout::LogicalFlexItem::LogicalFlexItem):

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

2:54 AM Changeset in webkit [295200] by Antti Koivisto
  • 10 edits in trunk

Re-evaluate queries after subframe size changes
https://bugs.webkit.org/show_bug.cgi?id=241225

Reviewed by Alan Bujtas.

Container queries in frames don't react to frame size changes.

  • LayoutTests/TestExpectations:

Mark imported/w3c/web-platform-tests/css/css-contain/container-queries/inline-size-bfc-floats.html as failure, it has ever
been passing by fluke (there are some containment issues with floats).

  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/iframe-in-container-invalidation-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/iframe-invalidation-expected.txt:
  • Source/WebCore/css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

Ensure we update layout when there are container queries in a subframe, similar to media queries.

  • Source/WebCore/dom/Document.cpp:

(WebCore::Document::resolveStyle):
(WebCore::Document::updateLayout):

  • Source/WebCore/page/FrameView.cpp:

(WebCore::FrameView::updateContentsSize):
(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):

  • Source/WebCore/page/FrameViewLayoutContext.cpp:

(WebCore::FrameViewLayoutContext::layout):

Move the container query invalidation loop to the main layout function so all paths are covered.

(WebCore::FrameViewLayoutContext::performLayout):

  • Source/WebCore/page/FrameViewLayoutContext.h:
  • Source/WebCore/style/StyleScopeRuleSets.cpp:

(WebCore::Style::ScopeRuleSets::hasContainerQueries const):

  • Source/WebCore/style/StyleScopeRuleSets.h:

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

1:29 AM Changeset in webkit [295199] by Diego Pino Garcia
  • 1 edit in trunk/Tools/jhbuild/jhbuild-minimal.modules

[JHBuild] Disable gnutls backend in glib-networking and enable openssl backend
https://bugs.webkit.org/show_bug.cgi?id=239324

Reviewed by Carlos Alberto Lopez Perez.

glib-networking uses gnutls backend by default. Ubuntu 18.04's gnutls
doesn't meet the minimal version required by glib-networking. Use
openssl instead.

  • jhbuild/jhbuild-minimal.modules: Use openssl backend in glib-networking.

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

Jun 2, 2022:

11:46 PM Changeset in webkit [295198] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick 969b67ab0154. rdar://problem/80059355

Unreviewed, fix the Catalyst build after r292888

MCProfileConnection is not available on Mac Catalyst.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _dataOwnerForPasteboard:]):

Canonical link: https://commits.webkit.org/249666@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292896 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:46 PM Changeset in webkit [295197] by Alan Coon
  • 1 edit
    2 adds in branches/safari-613-branch

Cherry-pick d323be61003f. rdar://problem/14839536

Breaking out of a quoted reply block by inserting a new paragraph should reset writing direction
https://bugs.webkit.org/show_bug.cgi?id=240778
rdar://14839536

Reviewed by Devin Rousso.

The process of breaking out of a blockquote via the "InsertNewlineInQuotedContent" editor command currently works by
splitting the blockquote into two sibling elements underneath the same parent container, and then inserting a br
element in between these sibling blockquote elements. The selection is then moved to the end of the newly created
br, which inherits the writing direction (dir) of the element containing the blockquote. In the case of Mail, if
the system language is right-to-left but the quoted content is left-to-right, this can lead to some unintuitive behavior
when breaking out of quoted LTR content, since the newly created line break will inherit the right-to-left direction of
its ancestor.

To fix this, in the case where we're breaking out of a blockquote and the start of the selection is left-to-right but
the element that contains the blockquote is right-to-left, we can wrap the br in another block-level container
element with dir=auto to avoid inheriting the writing direction from the blockquote's ancestor. This means that the
writing direction of the newly inserted paragraph will automatically be determined by what the user types.

Test: editing/execCommand/reset-direction-after-breaking-blockquote.html

  • LayoutTests/editing/execCommand/reset-direction-after-breaking-blockquote-expected.txt: Added.
  • LayoutTests/editing/execCommand/reset-direction-after-breaking-blockquote.html: Added.
  • Source/WebCore/editing/BreakBlockquoteCommand.cpp: (WebCore::BreakBlockquoteCommand::doApply):

Canonical link: https://commits.webkit.org/250901@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294714 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:46 PM Changeset in webkit [295196] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick c8efcc3a72bc. rdar://problem/90913864

Store StyleScope during CSSStyleSheet Creation
https://bugs.webkit.org/show_bug.cgi?id=239659

Reviewed by Antti Koivisto.

To ensure that we can always access the style scope, we shall ensure we store the style scope
at CSSStyleSheet creation time. It was possible before that a style sheet could become disconnected
and then a rule would later be mutated. This resulted in the unfortunate side effect of being unable to find
the style scope.

  • css/CSSStyleSheet.cpp: (WebCore::CSSStyleSheet::CSSStyleSheet): (WebCore::CSSStyleSheet::styleScope):
  • css/CSSStyleSheet.h:
  • style/StyleScope.cpp: (WebCore::Style::Scope::collectResolverScopes):
  • style/StyleScope.h:

Canonical link: https://commits.webkit.org/249896@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293232 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:46 PM Changeset in webkit [295195] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick 91f59a5ac796. rdar://problem/90245637

Crash in KeyframeList.cpp:183 in WebCore::KeyframeList::fillImplicitKeyframes
https://bugs.webkit.org/show_bug.cgi?id=237858

Reviewed by Antoine Quint.

Source/WebCore:

When filling implicit key frames, we iterate through the current keyframes (m_keyframes),
and cache the address of the implicitZeroKeyframe and implicitOneKeyframe.

However, if we're not provided with an existing implicit zero keyframe, we will create a new one
and insert it to the list of current keyframes.

This mutates m_keyframes and the old address for the implicitOneKeyframe would no longer be valid.
Thus we should iterate through the current keyframes, after the insertion, to get the latest address.

Test: animations/fill-implicit-keyframes-crash.html

  • rendering/style/KeyframeList.cpp: (WebCore::KeyframeList::fillImplicitKeyframes):

LayoutTests:

  • animations/fill-implicit-keyframes-crash-expected.txt: Added.
  • animations/fill-implicit-keyframes-crash.html: Added.

Canonical link: https://commits.webkit.org/248420@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@291281 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295194] by Alan Coon
  • 2 edits in branches/safari-613-branch

Cherry-pick 706e3063ae33. rdar://problem/86832561

[css-values-4] logical *vi(inline) and *vb (block) viewport units should be based on the current element's writing-mode
https://bugs.webkit.org/show_bug.cgi?id=234373
<rdar://problem/86832561>

Reviewed by Tim Nguyen.

Previously, we only looked at the root element's writing-mode. Looking at the current element's
writing-mode allows for non-root elements to have a writing-mode independent of the root element,
as well as having styles based on that. This was changed in <https://github.com/w3c/csswg-drafts/issues/6873>.

Tests: CSSViewportUnits.AllSame

CSSViewportUnits.MinimumViewportInsetWithWritingMode
CSSViewportUnits.MaximumViewportInsetWithWritingMode
CSSViewportUnits.EmptyUnobscuredSizeOverrides
CSSViewportUnits.SameUnobscuredSizeOverrides
CSSViewportUnits.DifferentUnobscuredSizeOverrides
CSSViewportUnits.SVGDocument

  • Source/WebCore/css/CSSPrimitiveValue.cpp: (WebCore::lengthOfViewportPhysicalAxisForLogicalAxis): (WebCore::CSSPrimitiveValue::computeNonCalcLengthDouble):
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm: (changeCSSPropertyOfElements): Added. (TEST.CSSViewportUnits.AllSame): (TEST.CSSViewportUnits.MinimumViewportInsetWithWritingMode): (TEST.CSSViewportUnits.MaximumViewportInsetWithWritingMode): (TEST.CSSViewportUnits.EmptyUnobscuredSizeOverrides): (TEST.CSSViewportUnits.SameUnobscuredSizeOverrides): (TEST.CSSViewportUnits.DifferentUnobscuredSizeOverrides): (TEST.CSSViewportUnits.SVGDocument):

Canonical link: https://commits.webkit.org/250835@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294609 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295193] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick 31381facf3cc. rdar://problem/87220688

Better handle clobbered registers in O0 register allocation
https://bugs.webkit.org/show_bug.cgi?id=240205
<rdar://87220688>

Reviewed by Yusuke Suzuki.

This patch makes Air's O0 register allocator better handle clobbered
registers. We now model both early and late clobber directly, and use
this to perform a basic interference analysis when allocating a register
to a Tmp. An early clobber interferes with any Use in an instruction, and
any early Defs. A late clobber interferes with any Defs in an instruction,
and any late Uses. What this enables is an early Use can be allocated
to a register that is only late clobbered. And a result can be allocated
to a register that is only early clobbered.

Prior to this, the algorithm had a bug where a Use may be allocated to
a register that is early clobbered.

  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp: (JSC::B3::Air::GenerateAndAllocateRegisters::buildLiveRanges): (JSC::B3::Air::GenerateAndAllocateRegisters::alloc): (JSC::B3::Air::GenerateAndAllocateRegisters::freeDeadTmpsIfNeeded): (JSC::B3::Air::GenerateAndAllocateRegisters::assignTmp): (JSC::B3::Air::GenerateAndAllocateRegisters::prepareForGeneration): (JSC::B3::Air::GenerateAndAllocateRegisters::generate):
  • b3/air/AirAllocateRegistersAndStackAndGenerateCode.h:
  • b3/air/testair.cpp:
  • jit/RegisterSet.h:

Canonical link: https://commits.webkit.org/250477@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294087 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295192] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WTF

Cherry-pick f822d46cdb31. rdar://problem/93265374

Enforce foreground WebContent memory limit on macOS
https://bugs.webkit.org/show_bug.cgi?id=240397

Reviewed by Chris Dumez.

We removed the foreground memory limit for WebContent on macOS in r272046. But based on some
bug reports that we've seen, it seems like we need to restore some limit to prevent bad user
outcomes when a misbehaving process has runaway memory usage.

This patch adds a foreground memory limit of 8GB or 16GB depending on RAM size. This matches
the limits set by other browsers for their content process.

  • wtf/MemoryPressureHandler.cpp: (WTF::thresholdForMemoryKillOfActiveProcess): (WTF::MemoryPressureHandler::thresholdForMemoryKill):

Canonical link: https://commits.webkit.org/250548@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294181 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295191] by Alan Coon
  • 1 edit
    2 adds in branches/safari-613-branch

Cherry-pick e9396cf1b69b. rdar://problem/92390285

Assertion in RenderTreeBuilder::attachToRenderElementInternal
https://bugs.webkit.org/show_bug.cgi?id=239823
<rdar://92390285>

Reviewed by Alan Bujtas.

  • LayoutTests/fast/css/display-content-with-pending-stylesheet-crash-expected.txt: Added.
  • LayoutTests/fast/css/display-content-with-pending-stylesheet-crash.html: Added.
  • Source/WebCore/style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::resolveElement):

We can't skip resolution for elements that we have already computed style for. This includes elements with display:contents.

Canonical link: https://commits.webkit.org/251178@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@295083 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295190] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebCore/loader/cache/CachedRawResource.cpp

Cherry-pick e5db10363bb2. rdar://problem/93781799

Capture WeakPtr to CachedResourceClient in lambdas in CachedRawResource::didAddClient()
https://bugs.webkit.org/show_bug.cgi?id=240828
<rdar://93781799>

Reviewed by Alex Christensen.

Capture WeakPtr to CachedResourceClient in lambdas in CachedRawResource::didAddClient()
instead of a raw pointer, for hardening.

  • Source/WebCore/loader/cache/CachedRawResource.cpp: (WebCore::iterateRedirects): (WebCore::CachedRawResource::didAddClient):

Canonical link: https://commits.webkit.org/250896@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294692 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295189] by Alan Coon
  • 3 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick cb6ddf5edf6c. rdar://problem/92853663

Create a stopped CacheStorageConnection for workers in case of detached documents
https://bugs.webkit.org/show_bug.cgi?id=240224
<rdar://problem/92853663>

Reviewed by Chris Dumez.

A worker might not always have a main thread connection as its document may be detached.
In that case, we now create a StoppedCacheStorageConnection that will always return Error::Stopped to any callback.

Covered by existing tests.

  • Modules/cache/WorkerCacheStorageConnection.cpp: (WebCore::StoppedCacheStorageConnection::create): (WebCore::createMainThreadConnection): (WebCore::WorkerCacheStorageConnection::WorkerCacheStorageConnection): (WebCore::WorkerCacheStorageConnection::~WorkerCacheStorageConnection): (WebCore::WorkerCacheStorageConnection::create): Deleted.
  • Modules/cache/WorkerCacheStorageConnection.h:

Canonical link: https://commits.webkit.org/250442@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294006 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295188] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick b07ce12ec55d. rdar://problem/92697007

Private relay should fail closed for third party loads if the main resource was loaded over private relay
https://bugs.webkit.org/show_bug.cgi?id=240483
<rdar://92697007>

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

This re-lands the change from r293861 along with r293481 which should fix problems related to rdar://92336270
along with r293591 which should fix performance regressions related to rdar://92458995 but was insufficient.
During a basic browsing test, I found two more places where we were making a NetworkDataTask without setting the
parameters' top origin, one in the SpeculativeLoad constructor and another in WebLoaderStrategy::preconnectTo.

  • Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp: (WebKit::NetworkCORSPreflightChecker::startPreflight):
  • Source/WebKit/NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: (WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
  • Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
  • Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm: (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]): (WebKit::NetworkSessionCocoa::createWebSocketTask):
  • Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp: (WebKit::WebLoaderStrategy::preconnectTo):

Canonical link: https://commits.webkit.org/250670@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294371 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295187] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick ad5aeb95fb39. rdar://problem/92442408

REGRESSION (r281791): [iOS] WKWebView cannot load local .log file
https://bugs.webkit.org/show_bug.cgi?id=239591
<rdar://problem/92442408>

Unreviewed correction based on a comment from Darin.

  • platform/network/ios/WebCoreURLResponseIOS.mm: (WebCore::adjustMIMETypeIfNecessary):

Canonical link: https://commits.webkit.org/250549@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294182 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295186] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebKit

Cherry-pick 9a7e68adec7a. rdar://problem/93329781

Add logging when taking a process assertion synchronously
https://bugs.webkit.org/show_bug.cgi?id=240334

Reviewed by Chris Dumez.

No observable change of behavior.

  • UIProcess/ios/ProcessAssertionIOS.mm: (WebKit::ProcessAssertion::acquireSync):

Canonical link: https://commits.webkit.org/250580@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294222 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295185] by Alan Coon
  • 6 edits in branches/safari-613-branch/Source/WebCore/html/track

Cherry-pick 8cfadef7857b. rdar://problem/93512736

TextTrackCue should get its document for its ActiveDOMObject base class
https://bugs.webkit.org/show_bug.cgi?id=240660
<rdar://93512736>

Reviewed by Eric Carlson.

TextTrackCue should get its document for its ActiveDOMObject base class instead
of requiring an extra data member to store it.

  • Source/WebCore/html/track/TextTrackCue.cpp: (WebCore::TextTrackCue::TextTrackCue): (WebCore::TextTrackCue::scriptExecutionContext const): (WebCore::TextTrackCue::document const): (WebCore::TextTrackCue::getCueAsHTML): (WebCore::TextTrackCue::rebuildDisplayTree):
  • Source/WebCore/html/track/TextTrackCue.h: (WebCore::TextTrackCue::ownerDocument): Deleted.
  • Source/WebCore/html/track/TextTrackCueGeneric.cpp: (WebCore::TextTrackCueGeneric::createDisplayTree): (WebCore::TextTrackCueGeneric::setFontSize):
  • Source/WebCore/html/track/TextTrackCueGeneric.h:
  • Source/WebCore/html/track/VTTCue.cpp: (WebCore::VTTCue::VTTCue): (WebCore::VTTCue::initialize): (WebCore::VTTCue::createDisplayTree): (WebCore::VTTCue::displayTreeInternal): (WebCore::VTTCue::createWebVTTNodeTree): (WebCore::VTTCue::getCueAsHTML): (WebCore::VTTCue::createCueRenderingTree): (WebCore::VTTCue::getDisplayTree): (WebCore::VTTCue::removeDisplayTree):
  • Source/WebCore/html/track/VTTCue.h:

Canonical link: https://commits.webkit.org/250757@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294498 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295184] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebKit/WebProcess/com.apple.WebProcess.sb.in

Cherry-pick 69306d30d9ef. rdar://problem/92460835

[macOS][WP] Add required methods to graphics filters
https://bugs.webkit.org/show_bug.cgi?id=240398
<rdar://92460835>

Reviewed by Geoffrey Garen.

Add required methods to graphics filters. These have been observed being used in telemetry.

  • Source/WebKit/WebProcess/com.apple.WebProcess.sb.in:

Canonical link: https://commits.webkit.org/250665@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294362 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295183] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore

Cherry-pick 5883fa195996. rdar://problem/92442408

REGRESSION (r281791): [iOS] WKWebView cannot load local .log file
https://bugs.webkit.org/show_bug.cgi?id=239591
<rdar://problem/92442408>

Reviewed by Geoffrey Garen.

The refactoring in Bug 229414 did not retain the old behavior on iOS where local
files (which do not get a MIME type assigned by CFNetwork) passed through the
same 'preferredMIMETypeForFileExtensionFromUTType' logic we use on macOS.

  • platform/network/ios/WebCoreURLResponseIOS.mm: (WebCore::adjustMIMETypeIfNecessary):

Canonical link: https://commits.webkit.org/250499@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294118 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295182] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebCore/animation/KeyframeEffect.cpp

Cherry-pick 41769648c46b. rdar://problem/93513759

Need to keep the document alive in KeyframeEffect::processKeyframes()
https://bugs.webkit.org/show_bug.cgi?id=240677
<rdar://93513759>

Reviewed by Saam Barati.

Since the Document is used throughout KeyframeEffect::processKeyframes and it's provided
as a simple reference, we must ensure we keep it alive with a Ref since JS code in a custom
iterator for the keyframes object could cause it to be torn down.

  • Source/WebCore/animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::processKeyframes):

Canonical link: https://commits.webkit.org/250756@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294497 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295181] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/JavaScriptCore

Cherry-pick 1d5e3b70369b. rdar://problem/93369102

[JSC] Always have non nullptr for WebAssembly.Memory buffer
https://bugs.webkit.org/show_bug.cgi?id=240510

Reviewed by Mark Lam.

This patch adds CagedUniquePtr to allocate a pointer for that.

  • Source/JavaScriptCore/runtime/ArrayBuffer.cpp: (JSC::ArrayBuffer::makeShared):
  • Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp: (JSC::JSWebAssemblyMemory::buffer):

Canonical link: https://commits.webkit.org/250639@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294319 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295180] by Alan Coon
  • 1 edit in branches/safari-613-branch/Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm

Cherry-pick 0f9af8a58c18. rdar://problem/93740263

Bump the priority of iOS ProcessAssertion Queue
https://bugs.webkit.org/show_bug.cgi?id=240784

Patch by Youenn Fablet <youennf@gmail.com> on 2022-05-23
Reviewed by Chris Dumez.

It is important to acquire assertions in a timely manner as otherwise the UIProcess
might think a process is unresponsive.
Bump the priority to WorkQueue::QOS::UserInitiated.

  • Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm: (assertionsWorkQueue):

Canonical link: https://commits.webkit.org/250874@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294650 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295179] by Alan Coon
  • 3 edits
    2 adds in branches/safari-613-branch

Cherry-pick 07c0107aa7af. rdar://problem/92301472

[selectors] Double script focus after mouse click shouldn't match :focus-visible
https://bugs.webkit.org/show_bug.cgi?id=239472
<rdar://problem/92301472>

Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

  • web-platform-tests/css/selectors/focus-visible-script-focus-020-expected.txt: Added.
  • web-platform-tests/css/selectors/focus-visible-script-focus-020.html: Added.

Source/WebCore:

When you do the second script focus, we were setting
m_latestFocusTrigger to FocusTrigger::Bindings, that makes us lose the
information about the previous element that was focused via mouse
click and start matching :focus-visible on that case.

Test: imported/w3c/web-platform-tests/css/selectors/focus-visible-script-focus-020.html

  • dom/Document.cpp: (WebCore::Document::setFocusedElement): We avoid setting m_latestFocusTrigger if we come from script focus. That way we know if the previous focused element was focused via mouse click after several script focus.

Canonical link: https://commits.webkit.org/250373@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@293926 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295178] by Alan Coon
  • 2 edits in branches/safari-613-branch/Source/WebCore/html

Cherry-pick 0062ea642e7f. rdar://problem/93525670

MediaController should be an ContextDestructionObserver
https://bugs.webkit.org/show_bug.cgi?id=240749
<rdar://93525670>

Reviewed by Youenn Fablet.

  • html/MediaController.cpp: (WebCore::MediaController::MediaController):
  • html/MediaController.h:

Canonical link: https://commits.webkit.org/250882@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@294664 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295177] by Alan Coon
  • 3 edits in branches/safari-613-branch

Cherry-pick 21a843f63576. rdar://problem/80059355

[iOS] [WK2] Managed pasteboard should function for all managed domains
https://bugs.webkit.org/show_bug.cgi?id=239319
rdar://80059355

Reviewed by Kate Cheney.

Source/WebCore/PAL:

Add an SPI method on MCProfileConnection.

  • pal/spi/ios/ManagedConfigurationSPI.h:

Source/WebKit:

Unless a WebKit client has specified a data owner for the web view that is not _UIDataOwnerUndefined, fall back
to _UIDataOwnerEnterprise when the current domain of the WKWebView is managed (that is, `-[MCProfileConnection
isURLManaged:]` returns YES for the web view's current URL). This allows managed pasteboard to work for all
WebKit clients, if the current URL is managed.

Test: UIPasteboardTests.PerformAsDataOwnerWithManagedURL

  • Platform/spi/ios/UIKitSPI.h:

Drive-by fix: move the staged declarations of -_dataOwnerForCopy and -_dataOwnerForPaste out of the IPI
section, and into the non-internal SDK section.

  • UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _dataOwnerForPasteboard:]):

Tools:

Add a new API test to verify that we fall back to consulting -[MCProfileConnection isURLManaged:] when
determining the data owner for copy and paste, unless a data owner is already explicitly set on a view in the
responder chain (specifically, the WKWebView).

  • TestWebKitAPI/Tests/ios/UIPasteboardTests.mm: (+[TestUIPasteboard _performAsDataOwner:block:]): (-[TestMCProfileConnection isURLManaged:]): (TestWebKitAPI::TEST):

Canonical link: https://commits.webkit.org/249658@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@292888 268f45cc-cd09-0410-ab3c-d52691b4dbfc

11:45 PM Changeset in webkit [295176] by Alan Coon
  • 4 edits in branches/safari-613-branch/Source/WebKit

Apply patch. rdar://problem/88904160

11:45 PM Changeset in webkit [295175] by Alan Coon
  • 5 edits in branches/safari-613-branch

Apply patch. rdar://problem/92380002

11:45 PM Changeset in webkit [295174] by Alan Coon
  • 4 edits in branches/safari-613-branch

Apply patch. rdar://problem/92015599

11:44 PM Changeset in webkit [295173] by Alan Coon
  • 5 edits in branches/safari-613-branch/Source/WebKit

Apply patch. rdar://problem/88904160

11:44 PM Changeset in webkit [295172] by Alan Coon
  • 18 edits in branches/safari-613-branch

Apply patch. rdar://problem/88904160

10:41 PM Changeset in webkit [295171] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/html/parser

Optimize HTMLTokenizer::bufferASCIICharacter()
https://bugs.webkit.org/show_bug.cgi?id=241252

Reviewed by Yusuke Suzuki.

Optimize HTMLTokenizer::bufferASCIICharacter() by appending several characters
at once whenever possible.

  • Source/WebCore/html/parser/HTMLTokenizer.cpp:

(WebCore::HTMLTokenizer::processToken):

  • Source/WebCore/html/parser/HTMLTokenizer.h:

(WebCore::HTMLTokenizer::bufferCharacters):

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

10:35 PM Changeset in webkit [295170] by Nikos Mouchtaris
  • 2 edits in trunk/Source

Add check for pixel buffer format in RemoteRenderingBackend::getPixelBufferForImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=241243
<rdar://89611041>

Reviewed by Simon Fraser.

Add check to ensure that pixel buffer format is supported.

  • Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:

(WebKit::RemoteRenderingBackend::getPixelBufferForImageBuffer):

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

10:31 PM Changeset in webkit [295169] by Jean-Yves Avenard
  • 2 edits in trunk/Source/WebCore/loader/cache

Can't load a very large image as an image document
https://bugs.webkit.org/show_bug.cgi?id=241110
<rdar://94126683>

Reviewed by Jer Noble.

Stop flattening the SharedBuffer whenever we received a new segment.
The core logic change to support this was done in https://bugs.webkit.org/show_bug.cgi?id=236695
but the CachedImage wasn't modified at the time (it should have been).

We have to use const_cast for now to minimize the change size, proper solution will be done in
https://bugs.webkit.org/show_bug.cgi?id=241251

  • Source/WebCore/loader/cache/CachedImage.cpp:

(WebCore::CachedImage::updateBufferInternal):
(WebCore::CachedImage::updateBuffer):

  • Source/WebCore/loader/cache/CachedImage.h:

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

10:02 PM Changeset in webkit [295168] by don.olmstead@sony.com
  • 5 edits in trunk/Source/WebCore/crypto/openssl

[OpenSSL] Treat types as opaque
https://bugs.webkit.org/show_bug.cgi?id=239858

Reviewed by Basuke Suzuki.

LibreSSL 3.5.x made a number of types opaque for compatibility with OpenSSL. Unfortunately
a number of places in the WebCrypto implementation were accessing these structs directly.
Modify the code to use the provided functions to access and modify the types in the same
manner they were being used.

Modified WebCore::convertToBigNumber to return a BIGNUMPtr with a newly allocated BIGNUM.
This change was done because all calls to the function were returning a new BIGNUM rather
than reusing one after transitioning to opaque types. By returning a BIGNUMPtr leaks are
prevented. In the case where OpenSSL expects ownership to be transferred release() is
used.

  • Source/WebCore/crypto/openssl/CryptoAlgorithmECDSAOpenSSL.cpp:
  • Source/WebCore/crypto/openssl/CryptoKeyECOpenSSL.cpp:
  • Source/WebCore/crypto/openssl/CryptoKeyRSAOpenSSL.cpp:
  • Source/WebCore/crypto/openssl/OpenSSLUtilities.cpp:
  • Source/WebCore/crypto/openssl/OpenSSLUtilities.h:

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

7:08 PM Changeset in webkit [295167] by Chris Dumez
  • 4 edits in trunk/Source

Optimize HTMLTokenizer::processEntity()
https://bugs.webkit.org/show_bug.cgi?id=241239

Reviewed by Darin Adler.

Optimize HTMLTokenizer::processEntity() by appending all characters in the
StringBuffer at once, instead of one by one.

  • Source/WebCore/html/parser/HTMLToken.h:

(WebCore::HTMLToken::appendToCharacters):

  • Source/WebCore/html/parser/HTMLTokenizer.cpp:

(WebCore::HTMLTokenizer::bufferCharacters):
(WebCore::HTMLTokenizer::processEntity):

  • Source/WebCore/html/parser/HTMLTokenizer.h:

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

6:31 PM Changeset in webkit [295166] by Patrick Angle
  • 1 edit in trunk/Source/WebInspectorUI/UserInterface/Views/LayoutDetailsSidebarPanel.js

Web Inspector: Layout details sidebar panel does unnecessary tracking of the selected DOM node's styles
https://bugs.webkit.org/show_bug.cgi?id=241245
rdar://94318782

Reviewed by Devin Rousso.

Code that, among other things, causes a layout when the selected DOM node's styles change should have been removed when
the Box Model diagram was removed from this sidebar panel. Additionally, because that was the only node-specific thing
in this panel, we can persist the sidebar panel even when the selected node is not an element.

  • Source/WebInspectorUI/UserInterface/Views/LayoutDetailsSidebarPanel.js:

(WI.LayoutDetailsSidebarPanel):
(WI.LayoutDetailsSidebarPanel.prototype.inspect): Deleted.
(WI.LayoutDetailsSidebarPanel.prototype.supportsDOMNode): Deleted.
(WI.LayoutDetailsSidebarPanel.prototype._nodeStylesRefreshed): Deleted.
(WI.LayoutDetailsSidebarPanel.prototype._nodeStylesNeedsRefreshed): Deleted.

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

6:07 PM Changeset in webkit [295165] by Ross Kirsling
  • 1 edit in trunk/Source/WebCore/accessibility/AXObjectCache.h

Unreviewed !ENABLE(ACCESSIBILITY) build fix for r295139.

  • Source/WebCore/accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::relatedObjectIDsFor):
(WebCore::AXObjectCache::relatedObjectsFor): Deleted.

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

6:04 PM Changeset in webkit [295164] by Patrick Angle
  • 2 edits in trunk/Source/WebInspectorUI/UserInterface

Web Inspector: Layout overlay color swatches don't update saved color until popover is dismissed
https://bugs.webkit.org/show_bug.cgi?id=241244
rdar://94318762

Reviewed by Devin Rousso.

We should save all changes to layout overlay color, not just the state when you close the color picker popover. Not
doing this causes a few issues:

  1. DOM node badge colors don't update as you dynamically adjust the color for an overlay.
  2. The new "sample color from screen" can be used without opening the popover for the color picker, which means these

changes are never saved.

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

5:54 PM Changeset in webkit [295163] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.15.1

Tag WebKit-7614.1.15.1.

5:53 PM Changeset in webkit [295162] by Alan Coon
  • 9 edits in branches/safari-7614.1.15-branch/Source

Versioning.

WebKit-7614.1.15.1

5:48 PM Changeset in webkit [295161] by Devin Rousso
  • 6 edits in trunk/Source/WebInspectorUI/UserInterface

Web Inspector: reference page links don't open externally when inspecting that reference page
https://bugs.webkit.org/show_bug.cgi?id=241246

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Base/ReferencePage.js:

(WI.ReferencePage.prototype.createLinkElement):

  • Source/WebInspectorUI/UserInterface/Base/Main.js:

(WI.handlePossibleLinkClick):
(WI.openURL):

  • Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForURL):

  • Source/WebInspectorUI/UserInterface/Views/DOMDetailsSidebarPanel.js:

(WI.DOMDetailsSidebarPanel.prototype._mouseWasClicked):

  • Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js:

(WI.DOMTreeContentView.prototype._mouseWasClicked.followLink):

  • Source/WebInspectorUI/UserInterface/Views/ResourceContentView.js:

(WI.ResourceContentView.prototype._mouseWasClicked):
Drive-by: Refactor WI.openURL (and WI.handlePossibleLinkClick) to have frame be in options.

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

5:44 PM Changeset in webkit [295160] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.11-branch/Source

Versioning.

WebKit-7614.1.14.11.5

5:39 PM Changeset in webkit [295159] by Megan Gardner
  • 4 edits in trunk/Source

Consolidate NSSpellCheckerSPI to one file.
https://bugs.webkit.org/show_bug.cgi?id=241242

Reviewed by Tim Horton.

Move random bits of SPI that predate our SPI files to the existing SPI files
to clean things up.

  • Source/WebCore/PAL/pal/spi/mac/NSSpellCheckerSPI.h:
  • Source/WebKit/UIProcess/mac/TextCheckerMac.mm:
  • Source/WebKitLegacy/mac/WebCoreSupport/WebEditorClient.mm:
  • Source/WebKitLegacy/mac/WebView/WebView.mm:

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

5:26 PM Changeset in webkit [295158] by Devin Rousso
  • 5 edits in trunk/Source/WebInspectorUI/UserInterface

Web Inspector: Timelines Tab: Screenshots: missing ReferencePage
https://bugs.webkit.org/show_bug.cgi?id=241247

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Base/ReferencePage.js:
  • Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.js:

(WI.ScreenshotsTimelineView.prototype.initialLayout): Added.
(WI.ScreenshotsTimelineView.prototype.layout):

  • Source/WebInspectorUI/UserInterface/Views/ScreenshotsTimelineView.css:

(.timeline-view.screenshots > .content-view): Renamed from .timeline-view.screenshots.
(.timeline-view.screenshots > .content-view > .spacer): Renamed from .timeline-view.screenshots > .spacer.
(.timeline-view.screenshots > .content-view > img): Renamed from .timeline-view.screenshots > img.
(.timeline-view.screenshots > .content-view > img + img): Renamed from .timeline-view.screenshots > img + img.
(.timeline-view.screenshots > .content-view > img.selected): Renamed from .timeline-view.screenshots > img.selected.
(@media (prefers-color-scheme: dark) .timeline-view.screenshots > .content-view): Renamed from @media (prefers-color-scheme: dark) .timeline-view.screenshots.
Wrap all of the <img> inside a WI.ContentView (which also includes the special styling for
WI.createMessageTextView inside a WI.ContentView) so that removeChildren doesn't also remove
the reference page link.

  • Source/WebInspectorUI/UserInterface/Views/TimelineView.css:

(.timeline-view > .reference-page-link-container):
Make sure the reference page link is always on top.

  • Source/WebInspectorUI/UserInterface/Views/TimelineView.js:

(WI.TimelineView.prototype.initialLayout):
Assume that a ReferencePage is defined so that if it's not, WebKit engineers will catch that more
obviously (i.e. the uncaught exception reporter) instead of having to notice an assertion failure.

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

5:20 PM Changeset in webkit [295157] by achristensen@apple.com
  • 4 edits in trunk

PreconnectTask should follow HSTS "redirects"
https://bugs.webkit.org/show_bug.cgi?id=241237
rdar://92870039

Reviewed by Chris Dumez.

NetworkLoadClient::willSendRedirectedRequest requires callees to call
NetworkLoad::continueWillSendRequest when finished.
This should be refactored into a direct completion handler call instead of
storing the completion handler on the NetworkLoad, but that is more invasive
and should be done in a separate PR that will be harder to merge to branches.

  • Source/WebKit/NetworkProcess/PreconnectTask.cpp:

(WebKit::PreconnectTask::willSendRedirectedRequest):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/HSTS.mm:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/cocoa/HTTPServer.h:

(TestWebKitAPI::Connection::terminate):

  • Tools/TestWebKitAPI/cocoa/HTTPServer.mm:

(TestWebKitAPI::Connection::terminate):

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

5:13 PM Changeset in webkit [295156] by Alan Coon
  • 1 copy in tags/WebKit-7614.1.14.0.14

Tag WebKit-7614.1.14.0.14.

5:08 PM Changeset in webkit [295155] by Alan Bujtas
  • 1 edit
    2 adds in trunk

Regression(r294902) Web Inspector highlight gets stuck when hovering over items.
https://bugs.webkit.org/show_bug.cgi?id=241231

Reviewed by Simon Fraser.

This patch ensures that repaint() goes through for the "about-to-be-destroyed" content.

Staring from r294902, when the RenderLayer says "I am scheduled for a full repaint", any subsequent repaint call on the associated renderer returns early (no repaint) as we are certain that a full repaint is going to be issued still within the current "rendering update" frame as part of the post-layout tasks.
Except this one case when soon after marking the RenderLayer dirty with the "needs full repaint" flag, we destroy both the layer and the associated renderer. In this case the layer has no chance to issue the repaint.

  • LayoutTests/fast/repaint/repaint-renderer-with-layer-on-detach-expected.txt: Added.
  • LayoutTests/fast/repaint/repaint-renderer-with-layer-on-detach.html: Added.
  • Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:

(WebCore::RenderTreeBuilder::detachFromRenderElement):

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

5:05 PM Changeset in webkit [295154] by Alan Coon
  • 9 edits in branches/safari-7614.1.14.0-branch/Source

Versioning.

WebKit-7614.1.14.0.14

4:28 PM Changeset in webkit [295153] by commit-queue@webkit.org
  • 1 edit in trunk/Tools/Scripts/webkitpy/common/system/platforminfo.py

Add support for NetBSD
https://bugs.webkit.org/show_bug.cgi?id=241078

Patch by Leonardo Taccari <leot@NetBSD.org> on 2022-06-02
Reviewed by Fujii Hironori.

  • Tools/Scripts/webkitpy/common/system/platforminfo.py:

(PlatformInfo._determine_os_name):

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

4:16 PM Changeset in webkit [295152] by Devin Rousso
  • 14 edits
    2 moves in trunk

Web Inspector: Audit: allow audits to be evaluated as a user gesture
https://bugs.webkit.org/show_bug.cgi?id=200276

Reviewed by Patrick Angle.

This will allow developers to create/run audits that pretend to be a user (e.g. play media, etc.).

  • Source/WebCore/inspector/InspectorAuditDOMObject.idl:
  • Source/WebCore/inspector/InspectorAuditDOMObject.h:

(WebCore::InspectorAuditDOMObject::create):

  • Source/WebCore/inspector/InspectorAuditDOMObject.cpp:

(WebCore::InspectorAuditDOMObject::InspectorAuditDOMObject):
(WebCore::InspectorAuditDOMObject::simulateUserInteraction): Added.

  • Source/JavaScriptCore/inspector/protocol/Audit.json:
  • Source/WebInspectorUI/UserInterface/Models/AuditTestBase.js:

Increment the current audit version number.

  • Source/WebCore/inspector/agents/page/PageAuditAgent.h:

(WebCore::PageAuditAgent::inspectedPage const): Added.
Expose a way for InspectorAudit*Object to access the inspected Page.

  • Source/WebCore/inspector/UserGestureEmulationScope.h: Renamed from Source/WebCore/inspector/agents/page/UserGestureEmulationScope.h.
  • Source/WebCore/inspector/UserGestureEmulationScope.cpp: Renamed from Source/WebCore/inspector/agents/page/UserGestureEmulationScope.cpp.
  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:

Drive-by: Move this file as it's now used by more than just the Page*Agent specializations.

  • LayoutTests/inspector/audit/run-dom.html:
  • LayoutTests/inspector/audit/run-dom-expected.txt:
  • LayoutTests/inspector/model/auditTestCase.html:
  • LayoutTests/inspector/model/auditTestCase-expected.txt:
  • LayoutTests/inspector/model/auditTestGroup.html:
  • LayoutTests/inspector/model/auditTestGroup-expected.txt:

Drive-by: Make it so that these tests no longer need to be updated when the audit version changes.

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

3:37 PM Changeset in webkit [295151] by sihui_liu@apple.com
  • 6 edits in trunk

Promote _WKWebsiteDataTypeFileSystem to API
https://bugs.webkit.org/show_bug.cgi?id=241142

Reviewed by Geoffrey Garen.

  • Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecord.h:
  • Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecord.mm:

(dataTypesToString):

  • Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecordInternal.h:

(WebKit::toWebsiteDataType):
(WebKit::toWKWebsiteDataTypes):

  • Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataRecordPrivate.h:
  • Source/WebKit/UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(+[WKWebsiteDataStore allWebsiteDataTypes]):
(+[WKWebsiteDataStore _allWebsiteDataTypesIncludingPrivate]):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/FileSystemAccess.mm:

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

3:33 PM Changeset in webkit [295150] by Kate Cheney
  • 1 edit
    2 adds in trunk

[WK2] Sharing services picker button in Mail does not appear after scrolling.
https://bugs.webkit.org/show_bug.cgi?id=240260
<rdar://problem/91492622>

Reviewed by Tim Horton.

Adjust CSS for image controls button to make sure it scrolls with the image in the case
where the image is larger than the Mail compose window.

First we need to remove 'overflow: hidden' from the container div in order for sticky to work.
This seems fine because we never crop or adjust the image-controls container div, it is always
set to the size of the image, even when the image is cropped or the size is adjusted.

Then we add position: sticky and replace 'right: 0px' with 'float: right' because sticky will ignore
any position specification after 'top: 0px' due to its implementation.

  • LayoutTests/fast/images/mac/image-controls-sticky-scrolling-expected.txt: Added.

Observing that the RenderButton layer has scrolled to (1978,500) tests this behavior.

  • LayoutTests/fast/images/mac/image-controls-sticky-scrolling.html: Added.
  • Source/WebCore/html/shadow/mac/imageControlsMac.css:

(#if defined(ENABLE_SERVICE_CONTROLS) && ENABLE_SERVICE_CONTROLS):
(button#image-controls-button):

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

3:12 PM Changeset in webkit [295149] by Said Abou-Hallawa
  • 28 edits
    4 copies
    1 add in trunk/Source

[GPU Process] [Filters] Make ImageBufferAllocator control the creation of the FilterImage buffers
https://bugs.webkit.org/show_bug.cgi?id=240808
<rdar://problem/94117817>

Reviewed by Simon Fraser.

Route all the allocations of the ImageBuffers and the PixelBuffers, which are made
by filter effects to a new class named ImageBufferAllocator. Because some filter
effects may call ImageBuffer::getPixelBuffer() from their FilterImages, we need
to pass an ImageBufferAllocator to this method as well.

The goal is to be able to attribute all the filter intermediate result FilterImage
to WebPorcess from one class. This will be a super class of ImageBufferAllocator
named ImageBufferShareableAllocator.

In a future patch, this class will be able to create shareable PixelBuffer and
will be able to attribute all its allocated memory to WebProcess.

  • Source/WebCore/Headers.cmake:
  • Source/WebCore/Sources.txt:
  • Source/WebCore/WebCore.xcodeproj/project.pbxproj:
  • Source/WebCore/platform/graphics/ConcreteImageBuffer.h:
  • Source/WebCore/platform/graphics/ImageBuffer.h:
  • Source/WebCore/platform/graphics/ImageBufferAllocator.cpp: Copied from Source/WebCore/platform/graphics/filters/FilterResults.h.

(WebCore::ImageBufferAllocator::createImageBuffer const):
(WebCore::ImageBufferAllocator::createPixelBuffer const):

  • Source/WebCore/platform/graphics/ImageBufferAllocator.h: Copied from Source/WebCore/platform/graphics/filters/FilterResults.h.
  • Source/WebCore/platform/graphics/ImageBufferBackend.cpp:

(WebCore::ImageBufferBackend::getPixelBuffer const):

  • Source/WebCore/platform/graphics/ImageBufferBackend.h:
  • Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.cpp:

(WebCore::ImageBufferCGBitmapBackend::getPixelBuffer const):

  • Source/WebCore/platform/graphics/cg/ImageBufferCGBitmapBackend.h:
  • Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:

(WebCore::ImageBufferIOSurfaceBackend::getPixelBuffer const):

  • Source/WebCore/platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
  • Source/WebCore/platform/graphics/filters/Filter.cpp:

(WebCore::Filter::apply):

  • Source/WebCore/platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::apply):

  • Source/WebCore/platform/graphics/filters/FilterImage.cpp:

(WebCore::FilterImage::create):
(WebCore::FilterImage::FilterImage):
(WebCore::FilterImage::imageBufferFromPixelBuffer):
(WebCore::getConvertedPixelBuffer):
(WebCore::FilterImage::pixelBuffer):
(WebCore::FilterImage::getPixelBuffer):
(WebCore::FilterImage::copyPixelBuffer):

  • Source/WebCore/platform/graphics/filters/FilterImage.h:
  • Source/WebCore/platform/graphics/filters/FilterResults.cpp: Copied from Source/WebCore/platform/graphics/filters/FilterResults.h.

(WebCore::FilterResults::FilterResults):
(WebCore::FilterResults::effectResult const):
(WebCore::FilterResults::setEffectResult):
(WebCore::FilterResults::clearEffectResult):

  • Source/WebCore/platform/graphics/filters/FilterResults.h:

(WebCore::FilterResults::allocator const):
(WebCore::FilterResults::effectResult const): Deleted.
(WebCore::FilterResults::setEffectResult): Deleted.
(WebCore::FilterResults::clearEffectResult): Deleted.

  • Source/WebKit/GPUProcess/graphics/ImageBufferShareableAllocator.cpp: Added.

(WebKit::ImageBufferShareableAllocator::createImageBuffer const):
(WebKit::ImageBufferShareableAllocator::createPixelBuffer const):
(WebKit::ImageBufferShareableAllocator::transferMemoryOwnership):

  • Source/WebKit/GPUProcess/graphics/ImageBufferShareableAllocator.h: Copied from Source/WebCore/platform/graphics/filters/FilterResults.h.
  • Source/WebKit/GPUProcess/graphics/RemoteDisplayListRecorder.cpp:

(WebKit::RemoteDisplayListRecorder::drawFilteredImageBuffer):

  • Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.cpp:
  • Source/WebKit/Shared/ShareableBitmap.h:

(WebKit::ShareableBitmap::Handle::handle):
(WebKit::ShareableBitmap::sizeInBytes const):

  • Source/WebKit/Sources.txt:
  • Source/WebKit/WebKit.xcodeproj/project.pbxproj:
  • Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.cpp:

(WebKit::ImageBufferShareableBitmapBackend::getPixelBuffer const):

  • Source/WebKit/WebProcess/GPU/graphics/ImageBufferShareableBitmapBackend.h:
  • Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
  • Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.cpp:

(WebKit::ImageBufferRemoteIOSurfaceBackend::getPixelBuffer const):

  • Source/WebKit/WebProcess/GPU/graphics/cocoa/ImageBufferRemoteIOSurfaceBackend.h:

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

2:45 PM Changeset in webkit [295148] by Manuel Rego Casasnovas
  • 5 edits in trunk

Reflection for FrozenArray<Element> caching invariant
https://bugs.webkit.org/show_bug.cgi?id=240563

Reviewed by Ryosuke Niwa.

This patch implements the caching layer described in the spec PR
for reflection of FrozenArray<T> attributes:
https://github.com/whatwg/html/pull/3917
Which fixes the test cases that were checking for:
el.ariaDescribedByElements === el.ariaDescribedByElements

This patch stores a new JSObject in the JSElement using a PrivateName.
Then for each attribute we store the cached JSValue in the JSObject.
If the cached JSValue matches the current Vector of Elements that
we're going to return, we return the cached JSValue instead.

  • LayoutTests/imported/w3c/web-platform-tests/dom/nodes/aria-element-reflection.tentative-expected.txt: Update expectations.
  • LayoutTests/imported/w3c/web-platform-tests/dom/nodes/aria-element-reflection.tentative.html: Add new test cases.
  • Source/WebCore/accessibility/AriaAttributes.idl: Add CustomGetter for FrozenArray<Element> reflection.
  • Source/WebCore/bindings/js/JSElementCustom.cpp:

(WebCore::getElementsArrayAttribute): New method that implements the
caching invariant.
(WebCore::JSElement::ariaControlsElements const): Custom getter that
calls getElementsArrayAttribute().
(WebCore::JSElement::ariaDescribedByElements const): Ditto.
(WebCore::JSElement::ariaDetailsElements const): Ditto.
(WebCore::JSElement::ariaFlowToElements const): Ditto.
(WebCore::JSElement::ariaLabelledByElements const): Ditto.
(WebCore::JSElement::ariaOwnsElements const): Ditto.

  • Source/WebCore/bindings/js/WebCoreBuiltinNames.h: New built-in PrivateName.

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

2:43 PM Changeset in webkit [295147] by Patrick Angle
  • 29 edits
    1 add in trunk/Source

Web Inspector: Color picker should allow picking a color from any pixel on screen
https://bugs.webkit.org/show_bug.cgi?id=124357
rdar://15469621

Reviewed by Devin Rousso.

Add the long-missing "eyedropper" for picking a color from the screen to the Color Picker in Web Inspector. This
implementation supports both sRGB color space as well as Display P3 (the two colorspaces currently supported by the Web
Inspector frontend). The existing value format and gamut is preserved as best as possible while not clamping the color
(unless interacting with a color swatch/picker that does not allow changing the format). For example, on macOS the color
picker will return a Display-P3 color on supported displays, but the color itself may be representable in sRGB. If the
existing color you are overwriting is already in sRGB, that is preserved by converting the system's Display-P3 color
into sRGB. If the sampled color can not be represented in sRGB, we update the CSS value to support the new wider gamut
of the selected color in order to provide the best fidelity in color matching.

The picker is implemented in two places. The first is the Color Picker popovers used in Web Inspector. The second place
is as an Option-Click action for inline swatches to allow you to quickly begin color selection without opening the
picker itself.

  • Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:
  • Source/WebInspectorUI/UserInterface/Images/Pipette.svg: Added.
  • Source/WebInspectorUI/UserInterface/Models/Color.js:

(WI.Color.prototype.fromStringBestMatchingSuggestedFormatAndGamut):

  • New convencience "constructor" for creating a color from a String while attempting (or forcing) preservation of an

existing format and gamut.

  • Source/WebInspectorUI/UserInterface/Views/ColorPicker.css:

(.color-picker > .color-inputs-wrapper):
(.color-picker > .color-inputs-wrapper > .color-inputs):
(.color-picker > .color-inputs-wrapper > .color-inputs > div):
(.color-picker > .color-inputs-wrapper > .color-inputs > div + div):
(.color-picker > .color-inputs-wrapper > .color-inputs input):
(.color-picker > .color-inputs-wrapper > .pick-color-from-screen):
(.color-picker > .color-inputs-wrapper > .pick-color-from-screen.active):
(.color-picker > .color-inputs): Deleted.
(.color-picker > .color-inputs > div): Deleted.
(.color-picker > .color-inputs > div + div): Deleted.
(.color-picker > .color-inputs input): Deleted.

  • Source/WebInspectorUI/UserInterface/Views/ColorPicker.js:

(WI.ColorPicker.async pickColorFromScreen):

  • Add new static method to picking a color from the screen (so that InlineSwatch can use it), and add a new Pipette icon

to begin the modal color picking mode.

  • Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js:

(WI.InlineSwatch.prototype._updateSwatch):

  • Add Option-Click for color swatches to immediately enter the modal color picking mode.
  • Source/WebCore/inspector/InspectorFrontendClient.h:
  • Source/WebCore/inspector/InspectorFrontendClientLocal.h:
  • Source/WebCore/inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::canPickColorFromScreen):
(WebCore::InspectorFrontendHost::pickColorFromScreen):

  • Source/WebCore/inspector/InspectorFrontendHost.h:
  • Source/WebCore/inspector/InspectorFrontendHost.idl:
  • Source/WebKit/UIProcess/Inspector/RemoteWebInspectorUIProxy.cpp:

(WebKit::RemoteWebInspectorUIProxy::pickColorFromScreen):
(WebKit::RemoteWebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/UIProcess/Inspector/RemoteWebInspectorUIProxy.h:
  • Source/WebKit/UIProcess/Inspector/RemoteWebInspectorUIProxy.messages.in:
  • Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.cpp:

(WebKit::WebInspectorUIProxy::pickColorFromScreen):
(WebKit::WebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.h:
  • Source/WebKit/UIProcess/Inspector/WebInspectorUIProxy.messages.in:
  • Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.cpp:

(WebKit::RemoteWebInspectorUI::pickColorFromScreen):

  • Source/WebKit/WebProcess/Inspector/RemoteWebInspectorUI.h:
  • Source/WebKit/WebProcess/Inspector/WebInspectorUI.cpp:

(WebKit::WebInspectorUI::pickColorFromScreen):
(WebKit::WebInspectorUI::canPickColorFromScreen):

  • Source/WebKit/WebProcess/Inspector/WebInspectorUI.h:
  • Add plubming for picking a color from the screen.
  • Source/WebKit/UIProcess/Inspector/mac/RemoteWebInspectorUIProxyMac.mm:

(WebKit::RemoteWebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:

(WebKit::WebInspectorUIProxy::platformPickColorFromScreen):

  • Use NSColorSampler to get the system "pick a color from the screen" UI.
  • Source/WebKit/UIProcess/Inspector/gtk/RemoteWebInspectorUIProxyGtk.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/UIProcess/Inspector/gtk/WebInspectorUIProxyGtk.cpp:

(WebKit::WebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/UIProcess/Inspector/win/RemoteWebInspectorUIProxyWin.cpp:

(WebKit::RemoteWebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/UIProcess/Inspector/win/WebInspectorUIProxyWin.cpp:

(WebKit::WebInspectorUIProxy::platformPickColorFromScreen):

  • Source/WebKit/WebProcess/Inspector/gtk/WebInspectorUIGtk.cpp:

(WebKit::WebInspectorUI::canPickColorFromScreen):

  • Source/WebKit/WebProcess/Inspector/mac/WebInspectorUIMac.mm:

(WebKit::WebInspectorUI::canPickColorFromScreen):

  • Source/WebKit/WebProcess/Inspector/win/WebInspectorUIWin.cpp:

(WebKit::WebInspectorUI::canPickColorFromScreen):

  • Add stubs for Windows/GTK implementations.

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

2:33 PM Changeset in webkit [295146] by commit-queue@webkit.org
  • 11 edits in trunk

Support CSS animation for text-align-last and text-justify
https://bugs.webkit.org/show_bug.cgi?id=240591
<rdar://93918638>

Patch by Kiet Ho <Kiet Ho> on 2022-06-02
Reviewed by Tim Nguyen.

Tests: LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-interpolation.html

LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-interpolation.html
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002.html
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002.html
LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002.html

  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-align/text-align-last-interpolation-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/css/css-text/text-justify/text-justify-interpolation-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • LayoutTests/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
  • LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
  • LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
  • LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
  • Source/WebCore/animation/CSSPropertyAnimation.cpp:

(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):

  • Source/WebCore/rendering/style/RenderStyleConstants.cpp:

(WebCore::operator<<):

  • Source/WebCore/rendering/style/RenderStyleConstants.h:

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

2:11 PM Changeset in webkit [295145] by Alan Coon
  • 9 edits in branches/safari-613-branch/Source

Versioning.

WebKit-7613.3.3

2:06 PM Changeset in webkit [295144] by Fujii Hironori
  • 3 edits in trunk

REGRESSION(r286765): [Cairo][GTK][WPE] Various SVG tests that use filters fail
https://bugs.webkit.org/show_bug.cgi?id=234118

Reviewed by Don Olmstead.

Cairo doesn't support color space yet. Turned
ENABLE_DESTINATION_COLOR_SPACE_LINEAR_SRGB off for all non-Cocoa
ports.

  • LayoutTests/platform/glib/TestExpectations: Unmarked tests. But,

some tests are still failing due to different reasons. Re-marked them as
other bugs.

  • Source/WTF/wtf/PlatformEnable.h:
  • Source/WebCore/platform/graphics/cairo/ImageBufferCairoBackend.cpp:

(WebCore::ImageBufferCairoBackend::transformToColorSpace):

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

1:53 PM Changeset in webkit [295143] by Chris Dumez
  • 2 edits in trunk/Source/WebCore/html/parser

Optimize HTMLTokenizer::temporaryBufferIs()
https://bugs.webkit.org/show_bug.cgi?id=241236

Reviewed by Darin Adler.

Optimize HTMLTokenizer::temporaryBufferIs() by leveraging the known length of
the string literal parameter.

  • Source/WebCore/html/parser/HTMLTokenizer.cpp:

(WebCore::HTMLTokenizer::processToken):
(WebCore::HTMLTokenizer::temporaryBufferIs):
(WebCore::vectorEqualsString): Deleted.

  • Source/WebCore/html/parser/HTMLTokenizer.h:

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

1:52 PM Changeset in webkit [295142] by Devin Rousso
  • 3 edits
    2 adds in trunk

ASAN_ILL | decltype; InlineIterator::Box::line; WebCore::logicallyNextRun
https://bugs.webkit.org/show_bug.cgi?id=238673
<rdar://problem/90482678>

Reviewed by Simon Fraser.

r286350 made it so that whenever the layout viewport of a FrameView changed, it would call
Document::updateViewportUnitsOnResize, which invalidates the style of all elements that use CSS
viewport units. This is problematic because it can be triggered by a layout (specifically during
LayoutPhase::InPostLayout), meaning that there will be dirty styles after a layout.

In reality, the only reason that that Document::updateViewportUnitsOnResize call was needed was
because on the first layout, the RenderView::size would be empty (as it derives its size during
layout). All subsequent layouts would have a correct size.

After much investigation and debate, it was decided that the CSS dynamic dv* viewport units should
really be using the FrameView::size (i.e. never using the RenderView::size) because they really
care about the size of the view(port). As such, partially revert FrameView to before r286350 and
make it so that FrameView::sizeForCSSDynamicViewportUnits never looks at the RenderView::size.

  • Source/WebCore/page/FrameView.h:
  • Source/WebCore/page/FrameView.cpp:

(WebCore::FrameView::setLayoutViewportOverrideRect):
(WebCore::FrameView::availableContentSizeChanged):
(WebCore::FrameView::layoutOrVisualViewportChanged):
(WebCore::FrameView::sizeForCSSDynamicViewportUnits const):

  • LayoutTests/fast/layoutformattingcontext/set-content-size-layout-reentry-crash.html: Added.
  • LayoutTests/fast/layoutformattingcontext/set-content-size-layout-reentry-crash-expected.txt: Added.
  • Tools/TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm:

(TEST.CSSViewportUnits.AllSame):
(TEST.CSSViewportUnits.NegativeMinimumViewportInset):
(TEST.CSSViewportUnits.NegativeMaximumViewportInset):
(TEST.CSSViewportUnits.MinimumViewportInsetLargerThanMaximumViewportInset):
(TEST.CSSViewportUnits.MinimumViewportInsetThanLargerFrame):
(TEST.CSSViewportUnits.MaximumViewportInsetThanLargerFrame):
(TEST.CSSViewportUnits.MinimumViewportInset):
(TEST.CSSViewportUnits.MaximumViewportInset):
(TEST.CSSViewportUnits.MinimumViewportInsetWithZoom):
(TEST.CSSViewportUnits.MaximumViewportInsetWithZoom):
(TEST.CSSViewportUnits.MinimumViewportInsetWithWritingMode):
(TEST.CSSViewportUnits.MaximumViewportInsetWithWritingMode):
(TEST.CSSViewportUnits.MinimumViewportInsetWithFrame):
(TEST.CSSViewportUnits.MaximumViewportInsetWithFrame):
(TEST.CSSViewportUnits.MinimumViewportInsetWithBounds):
(TEST.CSSViewportUnits.MaximumViewportInsetWithBounds):
(TEST.CSSViewportUnits.MinimumViewportInsetWithContentInset):
(TEST.CSSViewportUnits.MaximumViewportInsetWithContentInset):
(TEST.CSSViewportUnits.MinimumViewportInsetWithSafeAreaInsets):
(TEST.CSSViewportUnits.MaximumViewportInsetWithSafeAreaInsets):
(TEST.CSSViewportUnits.UnobscuredSizeOverridesIgnoreMinimumViewportInset):
(TEST.CSSViewportUnits.UnobscuredSizeOverridesIgnoreMaximumViewportInset):
(TEST.CSSViewportUnits.EmptyUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.SameUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.DifferentUnobscuredSizeOverrides):
(TEST.CSSViewportUnits.SVGDocument):
FrameView::size doesn't include scrollbars, so manually account for them where expected. This is
expected, as according to <https://drafts.csswg.org/css-values-4/#viewport-variants>:

In all cases, scrollbars are assumed not to exist.

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

1:34 PM Changeset in webkit [295141] by Chris Dumez
  • 1 edit in trunk/Source/WTF/wtf/text/AtomString.h

Drop unnecessary operator==() overloads for AtomString
https://bugs.webkit.org/show_bug.cgi?id=241232

Reviewed by Darin Adler.

  • Source/WTF/wtf/text/AtomString.h:

(WTF::operator==):
(WTF::operator!=):

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

1:17 PM Changeset in webkit [295140] by Alan Coon
  • 1 copy in tags/WebKit-7613.3.2

Tag WebKit-7613.3.2.

12:46 PM Changeset in webkit [295139] by Andres Gonzalez
  • 9 edits in trunk/Source/WebCore/accessibility

AX ITM: Cache several object relationships that were not cached in isolated tree mode.
https://bugs.webkit.org/show_bug.cgi?id=240239

Reviewed by Chris Fleizach.

Instead of caching individual relations as separate Vectors of AXIsolatedObjects, this patch uses the new relationships implementation to cache a copy of the AXObjectCache::m_relations in the AXIsolatedTree. This data structure is updated when the AXObjectCache sets the flag m_relationsNeedUpdate and one of the relations properties is requested on the AX thread. This allows for a common implementation for all the methods to retrieve individual relationships, and the main two derived classes AXObject and AXIsolatedObject only override the relatedObjects method.

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

12:31 PM Changeset in webkit [295138] by Chris Dumez
  • 1 edit in trunk/Source/WebCore/bindings/js/WebCoreOpaqueRoot.h

Inline addWebCoreOpaqueRoot() / containsWebCoreOpaqueRoot() functions
https://bugs.webkit.org/show_bug.cgi?id=241230

Reviewed by Geoffrey Garen.

Inline addWebCoreOpaqueRoot() / containsWebCoreOpaqueRoot() functions since I
noticed looking at profiles that they weren't getting inlined. This is a ~0.35%
progression on Intel (neutral on Apple Silicon).

  • Source/WebCore/bindings/js/WebCoreOpaqueRoot.h:

(WebCore::addWebCoreOpaqueRoot):
(WebCore::containsWebCoreOpaqueRoot):

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

12:24 PM Changeset in webkit [295137] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WebGPU/WGSLUnitTests/WGSLLexerTests.mm

[WGSL] Adjust comment of test to match the tested source
https://bugs.webkit.org/show_bug.cgi?id=240773

Patch by Mehmet Oguz Derin <mehmetoguzderin@mehmetoguzderin.com> on 2022-06-02
Reviewed by Myles C. Maxfield.

  • WGSLUnitTests/WGSLLexerTests.mm

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

12:19 PM Changeset in webkit [295136] by commit-queue@webkit.org
  • 2 edits in trunk/Source/cmake

Unreviewed, revert "[WPE][GTK] Expose ENABLE_VIDEO build option"
https://bugs.webkit.org/show_bug.cgi?id=241128

Patch by Michael Catanzaro <mcatanzaro@redhat.com> on 2022-06-02
This partially reverts commit 07bad458c767bb286106091e3f66e87acc319b2e.

This commit was incorrect because the option is already exposed from
GStreamerDefinitions.cmake.

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

11:57 AM Changeset in webkit [295135] by Devin Rousso
  • 3 edits
    2 adds in trunk

Web Inspector: ER: Copy as fetch
https://bugs.webkit.org/show_bug.cgi?id=241216

Reviewed by Patrick Angle.

  • Source/WebInspectorUI/UserInterface/Models/Resource.js:

(WI.Resource.prototype.generateFetchCode): Added.

  • Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForSourceCode):

  • Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:
  • LayoutTests/http/tests/inspector/network/copy-as-fetch.html: Added.
  • LayoutTests/http/tests/inspector/network/copy-as-fetch-expected.txt: Added.

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

11:29 AM Changeset in webkit [295134] by Elliott Williams
  • 45 edits in trunk/Source

Fix build failures introduced in "[Xcode] Prevent STP and other self-contained builds from overwriting content in the macOS SDK"
https://bugs.webkit.org/show_bug.cgi?id=240408

Reviewed by Alexey Proskuryakov.

Revert "Revert "[Xcode] Prevent STP and other self-contained builds from overwriting content in the macOS SDK""
This reverts commit 680fe6580f261df69a607a33b6252f3e19704169.

Apply small fixups across xcconfig files to address regressions:

  • Fix SYSTEM_HEADER_SEARCH_PATHS not referring to Catlyst's include directory.
  • Replace /usr/local/include literal in PROFILE_DATA_PATH with WK_ALTERNATE_WEBKIT_SDK_PATH and WK_LIBRARY_HEADERS_FOLDER_PATH to select the correct profdata for Catalyst or self-contained builds.
  • Source/JavaScriptCore/Configurations/Base.xcconfig: Clean up an old WK_STATICLIB_INSTALL_PREFIX, replacing it with WK_LIBRARY_HEADERS_FOLDER_PATH.
  • Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig:
  • Source/WebCore/Configurations/WebCore.xcconfig:
  • Source/WebCore/PAL/Configurations/PAL.xcconfig:
  • Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj: PAL's SDKVariant.xcconfig was not included in the project for some reason. This is fine for building (as it's still includable) but prevents Xcode from indexing it. Add it.
  • Source/WebGPU/Configurations/WGSL.xcconfig:
  • Source/WebGPU/Configurations/WebGPU.xcconfig:
  • Source/WebKit/Configurations/BaseTarget.xcconfig:
  • Source/WebKit/Configurations/SandboxProfiles.xcconfig: Clean up an old WK_STATICLIB_INSTALL_PREFIX setting. We don't need to redirect sandbox profiles to a separate directory, like we do headers and static libraries, so leave these paths hard coded to /usr/local/include.
  • Source/WebKitLegacy/mac/Configurations/WebKitLegacy.xcconfig:

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

11:25 AM Changeset in webkit [295133] by commit-queue@webkit.org
  • 1 edit in trunk/Source/WTF/wtf/GenerateProfiles.h

Improved inefficient string handling method to fix conversion error
https://bugs.webkit.org/show_bug.cgi?id=241194

Patch by briannafan <briannaf@berkeley.edu> on 2022-06-02
Reviewed by Dewei Zhu and Chris Dumez.

Enabling profile generation for WebKit build resulted in a compile error. Fixed conversion error so that the build completes.

  • Source/wtf/GenerateProfiles.h

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

11:13 AM Changeset in webkit [295132] by Said Abou-Hallawa
  • 4 edits
    2 adds in trunk

REGRESSION(r289580): Canvas: putImageData sometimes draws nothing
https://bugs.webkit.org/show_bug.cgi?id=240802
rdar://93801722

Reviewed by Simon Fraser.

RemoteImageBufferProxy::putPixelBuffer() needs to setNeedsFlush(true) once the
request to change the backend is sent to GPUProcess. If WebProcess has access to
the ImageBufferBackend, flushDrawingContext() will be called from copyNativeImage().
This call has to wait for all DisplayList items and PutPixelBuffer messages to be
flushed to the backend before copyNativeImage() copies the pixels of the backend
to a NativeImage.

  • LayoutTests/fast/canvas/canvas-put-image-data-no-draw-expected.html: Added.
  • LayoutTests/fast/canvas/canvas-put-image-data-no-draw.html: Added.
  • LayoutTests/platform/mac-wk2/TestExpectations:
  • Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp:

(WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace):

  • Source/WebCore/platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::setNeedsFlush):

  • Source/WebKit/WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:

(WebKit::RemoteDisplayListRecorderProxy::send):
(WebKit::RemoteDisplayListRecorderProxy::resetNeedsFlush): Deleted.
(WebKit::RemoteDisplayListRecorderProxy::needsFlush const): Deleted.
(): Deleted.

  • Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:

(WebKit::RemoteImageBufferProxy::~RemoteImageBufferProxy):

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

10:41 AM Changeset in webkit [295131] by Ben Nham
  • 3 edits in trunk

Reset WebKitTestRunner notification policies as part of test cleanup
https://bugs.webkit.org/show_bug.cgi?id=239300

Reviewed by Geoffrey Garen.

Some notification layout tests that check permissions (e.g. http/tests/push-api/subscribe) seem to
be flaky. I can't reproduce this flakiness locally, but from code inspection, this flakiness is
possible if a prewarmed or cached WebContent process is used for one of these tests.

The reason for this is that when a test finishes, WebNotificationProvider (in WebKitTestRunner)
tries to reset the notification permissions. However, it doesn't tell cached WebContent processes
about this reset via WKNotificationManagerProviderDidRemoveNotificationPolicies. To fix this, make
WebNotificationProvider::reset call that function.

  • LayoutTests/platform/mac-wk2/TestExpectations:
  • Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp:

(WebKit::NetworkNotificationManager::deletePushAndNotificationRegistration):

  • Tools/WebKitTestRunner/WebNotificationProvider.cpp:

(WTR::securityOriginsFromStrings):
(WTR::WebNotificationProvider::reset):

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

10:20 AM Changeset in webkit [295130] by Ryan Haddad
  • 1 edit in trunk/LayoutTests/platform/mac-wk2/TestExpectations

[macOS WK2] svg/animations/smil-leak-element-instances.svg is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=214579

Unreviewed test gardening.

Remove release from the flaky expectation as this affects debug bots as well.

  • LayoutTests/platform/mac-wk2/TestExpectations:

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

8:51 AM Changeset in webkit [295129] by Chris Dumez
  • 51 edits in trunk

Drop unnecessary operator==() overloads from StringView
https://bugs.webkit.org/show_bug.cgi?id=241189

Reviewed by Darin Adler.

  • Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.cpp:

(JSC::relativeTimeUnitType):

  • Source/JavaScriptCore/runtime/TemporalObject.cpp:

(JSC::temporalUnitType):

  • Source/WTF/wtf/text/StringView.h:

(WTF::operator==):
(WTF::operator!=):

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

(WebCore::ApplePayAMSUIPaymentHandler::handlesIdentifier):

  • Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:

(WebCore::ApplePayPaymentHandler::handlesIdentifier):

  • Source/WebCore/Modules/cache/DOMCache.cpp:

(WebCore::hasResponseVaryStarHeaderValue):

  • Source/WebCore/Modules/cache/DOMCacheEngine.cpp:

(WebCore::DOMCacheEngine::queryCacheMatch):

  • Source/WebCore/Modules/entriesapi/DOMFileSystem.cpp:

(WebCore::isValidPathSegment):
(WebCore::resolveRelativeVirtualPath):
(WebCore::DOMFileSystem::evaluatePath):

  • Source/WebCore/Modules/fetch/FetchRequest.cpp:

(WebCore::computeReferrer):

  • Source/WebCore/Modules/plugins/YouTubePluginReplacement.cpp:

(WebCore::createYouTubeURL):
(WebCore::processAndCreateYouTubeURL):

  • Source/WebCore/css/SelectorCheckerTestFunctions.h:

(WebCore::containslanguageSubtagMatchingRange):

  • Source/WebCore/css/StyleProperties.cpp:

(WebCore::isCSSWideValueKeyword):

  • Source/WebCore/css/parser/CSSPropertyParser.cpp:

(WebCore::parseGridTemplateAreasColumnNames):

  • Source/WebCore/dom/Document.cpp:

(WebCore::Document::initDNSPrefetch):

  • Source/WebCore/editing/TextManipulationController.cpp:

(WebCore::ParagraphContentIterator::advanceIteratorNodeAndUpdateText):

  • Source/WebCore/fileapi/ThreadableBlobRegistry.cpp:

(WebCore::isBlobURLContainsNullOrigin):

  • Source/WebCore/html/FeaturePolicy.cpp:

(WebCore::processOriginItem):

  • Source/WebCore/html/HTMLScriptElement.h:
  • Source/WebCore/html/parser/CSSPreloadScanner.cpp:

(WebCore::hasValidImportConditions):

  • Source/WebCore/loader/CrossOriginAccessControl.cpp:

(WebCore::shouldCrossOriginResourcePolicyCancelLoad):

  • Source/WebCore/loader/CrossOriginEmbedderPolicy.cpp:

(WebCore::obtainCrossOriginEmbedderPolicy):

  • Source/WebCore/loader/CrossOriginOpenerPolicy.cpp:

(WebCore::obtainCrossOriginOpenerPolicy):

  • Source/WebCore/loader/ResourceLoadInfo.cpp:

(WebCore::ContentExtensions::readResourceType):
(WebCore::ContentExtensions::readLoadType):
(WebCore::ContentExtensions::readLoadContext):

  • Source/WebCore/mathml/MathMLMencloseElement.cpp:

(WebCore::MathMLMencloseElement::addNotationFlags):

  • Source/WebCore/mathml/MathMLPresentationElement.cpp:

(WebCore::MathMLPresentationElement::parseNamedSpace):

  • Source/WebCore/page/EventSource.cpp:

(WebCore::EventSource::parseEventStreamLine):

  • Source/WebCore/page/FrameTree.cpp:

(WebCore::isSelfTargetFrameName):

  • Source/WebCore/page/Quirks.cpp:

(WebCore::Quirks::shouldAllowNavigationToCustomProtocolWithoutUserGesture):

  • Source/WebCore/platform/LegacySchemeRegistry.cpp:

(WebCore::LegacySchemeRegistry::isUserExtensionScheme):

  • Source/WebCore/platform/LocalizedStrings.cpp:

(WebCore::AXARIAContentGroupText):

  • Source/WebCore/platform/graphics/HEVCUtilities.cpp:

(WebCore::parseAVCCodecParameters):
(WebCore::parseHEVCCodecParameters):

  • Source/WebCore/platform/graphics/cg/UTIRegistry.cpp:

(WebCore::isGIFImageType):

  • Source/WebCore/platform/graphics/cocoa/SourceBufferParserWebM.cpp:

(WebCore::WebMParser::OnTrackEntry):
(WebCore::WebMParser::isSupportedVideoCodec):
(WebCore::WebMParser::isSupportedAudioCodec):
(WebCore::SourceBufferParserWebM::isContentTypeSupported):

  • Source/WebCore/platform/graphics/cocoa/VideoTrackPrivateWebM.cpp:

(WebCore::VideoTrackPrivateWebM::codec const):

  • Source/WebCore/platform/graphics/gstreamer/eme/CDMThunder.cpp:

(WebCore::sessionLoadFailureFromThunder):

  • Source/WebCore/platform/network/HTTPParsers.cpp:

(WebCore::filenameFromHTTPContentDisposition):
(WebCore::parseCrossOriginResourcePolicyHeader):

  • Source/WebCore/platform/network/ParsedContentRange.cpp:

(WebCore::parseContentRange):

  • Source/WebCore/platform/network/TimingAllowOrigin.cpp:

(WebCore::passesTimingAllowOriginCheck):

  • Source/WebCore/svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::parseCondition):

  • Source/WebGPU/WGSL/AST/TypeDecl.h:

(WGSL::AST::ParameterizedType::stringViewToKind):

  • Source/WebGPU/WGSL/Lexer.cpp:

(WGSL::Lexer<T>::lex):

  • Source/WebGPU/WGSL/Parser.cpp:

(WGSL::Parser<Lexer>::parseAttribute):
(WGSL::Parser<Lexer>::parsePrimaryExpression):

  • Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:

(WebKit::PCM::NetworkLoader::start):

  • Source/WebKit/NetworkProcess/cache/CacheStorageEngineCache.cpp:

(WebKit::CacheStorage::updateVaryInformation):

  • Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::setResourceLoadStatisticsFirstPartyHostCNAMEDomainForTesting):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsThirdPartyCNAMEDomainForTesting):

  • Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::handleEditingCommand):
(WebKit::PDFPlugin::isEditingCommandEnabled):

  • Tools/TestWebKitAPI/Tests/WTF/StringView.cpp:

(TestWebKitAPI::TEST):

  • Tools/TestWebKitAPI/Tests/WTF/URL.cpp:

(TestWebKitAPI::TEST_F):

  • Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBFileName.mm:

(createDirectories):

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

8:36 AM Changeset in webkit [295128] by commit-queue@webkit.org
  • 23 edits
    1 copy
    38 adds
    2 deletes in trunk

[GTK][WPE] Enable modern media controls
https://bugs.webkit.org/show_bug.cgi?id=182502

Patch by Philippe Normand <philn@igalia.com> on 2022-06-02
Reviewed by Adrian Perez de Castro.

Initial support for the modern media controls on GTK and WPE. The old media controls are broken,
their buttons are no longer rendered.

These new controls are adapted from the macOS controls, both inline and fullscreen, with the
difference that we use the Adwaita icon theme. SVG/PNG icons are shipped in the WebKit library using
GResources. Some adaptations had to be made in the cross-platform JS code of the controls, so that
Airplay UI components can be disabled, WPE/GTK don't support this yet.

  • LayoutTests/platform/glib/TestExpectations:
  • LayoutTests/platform/gtk/TestExpectations:
  • Source/WTF/wtf/Platform.h:
  • Source/WebCore/CMakeLists.txt:
  • Source/WebCore/Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::layoutTraitsClassName const):

  • Source/WebCore/Modules/mediacontrols/mediaControlsAdwaita.css: Removed.
  • Source/WebCore/Modules/mediacontrols/mediaControlsAdwaita.js: Removed.
  • Source/WebCore/Modules/modern-media-controls/controls/adwaita-fullscreen-media-controls.css: Added.

(.media-controls.adwaita.fullscreen):
(.media-controls.adwaita.fullscreen > .controls-bar):
(.media-controls.adwaita.fullscreen:not(.uses-ltr-user-interface-layout-direction) .volume.slider):
(.media-controls.adwaita.fullscreen .buttons-container):
(.media-controls.adwaita.fullscreen .buttons-container.left):
(.media-controls.adwaita.fullscreen .buttons-container.center):
(.media-controls.adwaita.fullscreen .buttons-container.right):
(.media-controls.adwaita.fullscreen .buttons-container.right button):
(.media-controls.adwaita.fullscreen .time-control):
(.media-controls.adwaita.fullscreen > .controls-bar .status-label):

  • Source/WebCore/Modules/modern-media-controls/controls/adwaita-fullscreen-media-controls.js: Added.

(AdwaitaFullscreenMediaControls.prototype.handleEvent):
(AdwaitaFullscreenMediaControls.prototype.layout):
(AdwaitaFullscreenMediaControls.prototype._volumeControlsForCurrentDirection):
(AdwaitaFullscreenMediaControls.prototype._collapsableButtons):
(AdwaitaFullscreenMediaControls.prototype._handleMousedown):
(AdwaitaFullscreenMediaControls.prototype._handleMousemove):
(AdwaitaFullscreenMediaControls.prototype._handleMouseup):
(AdwaitaFullscreenMediaControls.prototype._pointForEvent):
(AdwaitaFullscreenMediaControls):

  • Source/WebCore/Modules/modern-media-controls/controls/adwaita-inline-media-controls.css: Added.

(.media-controls.adwaita.inline .volume-slider-container):
(.media-controls.adwaita.inline.audio .volume-slider-container):
(.media-controls.adwaita.inline .volume-slider-container > .background-tint):
(.media-controls.adwaita.inline .volume-slider-container > .background-tint > div):
(.media-controls.adwaita.inline .volume-slider-container > .slider):

  • Source/WebCore/Modules/modern-media-controls/controls/adwaita-inline-media-controls.js: Added.

(AdwaitaInlineMediaControls.prototype.layout):
(AdwaitaInlineMediaControls.prototype.get preferredMuteButtonStyle):
(AdwaitaInlineMediaControls.prototype.handleEvent):

  • Source/WebCore/Modules/modern-media-controls/controls/adwaita-layout-traits.js: Copied from Source/WebCore/Modules/modern-media-controls/controls/macos-layout-traits.js.

(AdwaitaLayoutTraits.prototype.mediaControlsClass):
(AdwaitaLayoutTraits.prototype.overridenSupportingObjectClasses):
(AdwaitaLayoutTraits.prototype.resourceDirectory):
(AdwaitaLayoutTraits.prototype.controlsAlwaysAvailable):
(AdwaitaLayoutTraits.prototype.controlsNeverAvailable):
(AdwaitaLayoutTraits.prototype.supportsIconWithFullscreenVariant):
(AdwaitaLayoutTraits.prototype.supportsDurationTimeLabel):
(AdwaitaLayoutTraits.prototype.controlsDependOnPageScaleFactor):
(AdwaitaLayoutTraits.prototype.skipDuration):
(AdwaitaLayoutTraits.prototype.promoteSubMenusWhenShowingMediaControlsContextMenu):
(AdwaitaLayoutTraits.prototype.supportsTouches):
(AdwaitaLayoutTraits.prototype.supportsAirPlay):
(AdwaitaLayoutTraits.prototype.supportsPiP):
(AdwaitaLayoutTraits.prototype.toString):
(AdwaitaLayoutTraits):

  • Source/WebCore/Modules/modern-media-controls/controls/inline-media-controls.js:

(InlineMediaControls.prototype._rightContainerButtons):
(InlineMediaControls.prototype._droppableButtons):

  • Source/WebCore/Modules/modern-media-controls/controls/ios-layout-traits.js:

(IOSLayoutTraits.prototype.supportsAirPlay):
(IOSLayoutTraits.prototype.supportsPiP):

  • Source/WebCore/Modules/modern-media-controls/controls/layout-traits.js:

(LayoutTraits.prototype.supportsAirPlay):
(LayoutTraits.prototype.supportsPiP):

  • Source/WebCore/Modules/modern-media-controls/controls/macos-layout-traits.js:

(MacOSLayoutTraits.prototype.supportsAirPlay):
(MacOSLayoutTraits.prototype.supportsPiP):

  • Source/WebCore/Modules/modern-media-controls/controls/media-controls.js:

(MediaControls.):

  • Source/WebCore/Modules/modern-media-controls/controls/watchos-layout-traits.js:

(WatchOSLayoutTraits.prototype.supportsAirPlay):
(WatchOSLayoutTraits.prototype.supportsPiP):

  • Source/WebCore/Modules/modern-media-controls/images/adwaita/EnterFullscreen.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/ExitFullscreen.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Forward.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/MediaSelector-fullscreen.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/MediaSelector.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Overflow.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Pause.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/PipIn-fullscreen.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/PipIn.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/PipOut.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Play.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Rewind.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/SkipBack10.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/SkipBack15.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/SkipForward10.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/SkipForward15.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume0-RTL.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume0.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume1-RTL.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume1.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume2-RTL.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume2.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume3-RTL.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/Volume3.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/VolumeMuted-RTL.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/VolumeMuted.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/X.svg: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/invalid-placard@1x.png: Added.
  • Source/WebCore/Modules/modern-media-controls/images/adwaita/invalid-placard@2x.png: Added.
  • Source/WebCore/Modules/modern-media-controls/media/media-controller.js:

(MediaController.prototype._supportingObjectClasses):

  • Source/WebCore/Modules/modern-media-controls/media/media-document-controller.js:

(MediaDocumentController):

  • Source/WebCore/PlatformGLib.cmake: Added.
  • Source/WebCore/PlatformGTK.cmake:
  • Source/WebCore/PlatformMac.cmake:
  • Source/WebCore/PlatformWPE.cmake:
  • Source/WebCore/rendering/RenderThemeAdwaita.cpp:

(WebCore::RenderThemeAdwaita::mediaControlsScripts):
(WebCore::RenderThemeAdwaita::mediaControlsStyleSheet):
(WebCore::RenderThemeAdwaita::mediaControlsBase64StringForIconNameAndType):
(WebCore::RenderThemeAdwaita::mediaControlsFormattedStringForDuration):
(WebCore::RenderThemeAdwaita::extraMediaControlsStyleSheet): Deleted.

  • Source/WebCore/rendering/RenderThemeAdwaita.h:
  • Source/WebKit/ModernMediaControlsGResources.cmake: Added.
  • Source/WebKit/PlatformGTK.cmake:
  • Source/WebKit/PlatformWPE.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/OptionsWPE.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Tools/glib/generate-modern-media-controls-gresource-manifest.py: Added.

(get_filenames):

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

7:23 AM Changeset in webkit [295127] by fred.wang@free.fr
  • 1 edit in trunk/metadata/contributors.json

Add fred-wang github account to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=241219

Reviewed by Tim Nguyen.

  • metadata/contributors.json: Add my github account.

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

6:56 AM Changeset in webkit [295126] by Karl Rackler
  • 1 edit in trunk/LayoutTests/platform/ios/TestExpectations

[Gardening]: REGRESSION (250836@main): [ iOS ] fast/forms/textfield-outline.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=241205
<rdar://94255807>

Unreviewed test gardening.

  • LayoutTests/platform/ios/TestExpectations:

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

6:01 AM Changeset in webkit [295125] by Andres Gonzalez
  • 2 edits in trunk/Tools/WebKitTestRunner/InjectedBundle

AX ITM: Remaining WTR::AccessibilityUIElement calls into the Mac accessibility API must be dispatched to the AX thread.
https://bugs.webkit.org/show_bug.cgi?id=241209

Reviewed by Chris Fleizach.

There was a handful of calls into WebAccessibilityObjectWrapper methods that still needed to be dispatched to the AX thread for testing purposes in isolated tree mode. In particular, [WebAccessibilityObjectWrapper accessibilityPerformAction] and [WebAccessibilityObjectWrapper accessibilityActionNames].

  • Tools/WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::parameterizedAttributeNames):
(WTR::AccessibilityUIElement::scrollToMakeVisible):
(WTR::AccessibilityUIElement::scrollToGlobalPoint):
(WTR::AccessibilityUIElement::scrollToMakeVisibleWithSubFocus):
(WTR::AccessibilityUIElement::dismiss):
(WTR::AccessibilityUIElement::increment):
(WTR::AccessibilityUIElement::decrement):
(WTR::AccessibilityUIElement::asyncIncrement):
(WTR::AccessibilityUIElement::asyncDecrement):
(WTR::AccessibilityUIElement::showMenu):
(WTR::AccessibilityUIElement::press):
(WTR::AccessibilityUIElement::syncPress):
(WTR::AccessibilityUIElement::isIgnored const):
(WTR::AccessibilityUIElement::insertText):
(WTR::AccessibilityUIElement::performAction const):

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

5:52 AM Changeset in webkit [295124] by Alan Bujtas
  • 1 edit
    2 adds in trunk

Do not assume that an absolute positioned block box's height is always resolvable
https://bugs.webkit.org/show_bug.cgi?id=241213

Reviewed by Simon Fraser.

  1. While the ICB (RenderView) always has fixed height/width, the RenderStyle values are set to auto.
  2. It's incorrect to assume that we can always resolve the height for an absolute positioned box (e.g. it may have a "height: auto" relative positioned containing block)
  • LayoutTests/fast/block/fill-available-with-absolute-position-expected.html: Added.
  • LayoutTests/fast/block/fill-available-with-absolute-position.html: Added.
  • Source/WebCore/rendering/RenderBox.cpp:

(WebCore::RenderBox::computeIntrinsicLogicalContentHeightUsing const):
(WebCore::RenderBox::computePositionedLogicalHeightUsing const):

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

1:47 AM Changeset in webkit [295123] by commit-queue@webkit.org
  • 1 edit in trunk/LayoutTests/platform/ios/TestExpectations

Revert REGRESSION (r294452): [ iOS ] ImageBufferIOSurfaceBackend - nine tests are a consistent image failure
https://bugs.webkit.org/show_bug.cgi?id=240654

Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-06-02
Unreviewed.

The offending commits were reverted and the tests pass now.

LayoutTests/platform/ios/TestExpectations:
Remove the failure expectations

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

12:48 AM Changeset in webkit [295122] by Fujii Hironori
  • 2 edits in trunk/LayoutTests/platform

Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=240439

  • LayoutTests/platform/wincairo-wk1/TestExpectations:
  • LayoutTests/platform/wincairo/TestExpectations:

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

12:42 AM Changeset in webkit [295121] by Megan Gardner
  • 4 edits
    1 add in trunk/Source

Add additional refinements for consistency in grammar checking on macCatalyst
https://bugs.webkit.org/show_bug.cgi?id=241203

Reviewed by Tim Horton.

  • Source/WebCore/editing/Editor.cpp:

(WebCore::Editor::markAndReplaceFor):

  • Source/WebKit/UIProcess/ios/TextCheckerIOS.mm:

(WebKit::TextChecker::checkTextOfParagraph):

  • Source/WebKit/UIProcess/mac/TextCheckerMac.mm:

(WebKit::TextChecker::checkTextOfParagraph):

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

Note: See TracTimeline for information about the timeline view.