Branch: refs/heads/webkitglib/2.52
  Home:   https://github.com/WebKit/WebKit
  Commit: f0913bc0f604324954feb7df2f7d23092219cdc2
      
https://github.com/WebKit/WebKit/commit/f0913bc0f604324954feb7df2f7d23092219cdc2
  Author: Kai Tamkun <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    A JSTests/stress/regress-168411205.js
    M Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp
    M Source/JavaScriptCore/dfg/DFGValidate.cpp

  Log Message:
  -----------
  Cherry-pick 305413.542@safari-7624-branch (5fbe988916b7). 
https://bugs.webkit.org/show_bug.cgi?id=305732

    [JSC] DFG object allocation sinking shouldn't insert a check when given a 
PutByVal node
    https://bugs.webkit.org/show_bug.cgi?id=305732
    rdar://168411205

    Reviewed by Yijia Huang.

    The if statement that this change removes was originally added as a fix
    for an old, now-replaced array allocation sinking method. Now, it runs
    the risk of invalidating the DFG graph. Because it doesn't otherwise
    serve any purpose now, it should just be removed.

    Test: JSTests/stress/regress-168411205.js

    * JSTests/stress/regress-168411205.js: Added.
    (f):
    * Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp: Remove 
special case for PutByVal
    * Source/JavaScriptCore/dfg/DFGValidate.cpp:

    Identifier: 305413.542@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.602@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: 8d15e0f70fea433977b5b3182927e87d81722770
      
https://github.com/WebKit/WebKit/commit/8d15e0f70fea433977b5b3182927e87d81722770
  Author: Chris Dumez <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    M Source/WebKit/UIProcess/WebPageProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in

  Log Message:
  -----------
  Cherry-pick 305413.544@safari-7624-branch (1c245d737355). 
https://bugs.webkit.org/show_bug.cgi?id=310078

    Cross-Process Page Identity Confusion in didPostMessage
    https://bugs.webkit.org/show_bug.cgi?id=310078
    rdar://172392170

    Reviewed by Brady Eidson and Ryosuke Niwa.

    WebProcessProxy::didPostMessage() may look up a WebPageProxy belonging
    to another web process if given a bad WebPageProxyIdentifier from a
    compromised WebProcess.

    Address the issue by adding a MESSAGE_CHECK that checks that the page
    is associated with the current WebProcess, using the pre-existing
    WebProcessProxy::isAssociatedWithPage() utility function. Note that I
    had to tweak isAssociatedWithPage() to also check m_remotePages to keep
    site isolation tests working.

    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::commitProvisionalPage):
    * Source/WebKit/UIProcess/WebProcessProxy.cpp:
    (WebKit::WebProcessProxy::addPagePendingClose):
    (WebKit::WebProcessProxy::removePagePendingClose):
    (WebKit::WebProcessProxy::isAssociatedWithPage const):
    (WebKit::WebProcessProxy::didPostMessage):
    * Source/WebKit/UIProcess/WebProcessProxy.h:
    * Source/WebKit/WebProcess/UserContent/WebUserContentController.cpp:
    * Source/WebKit/WebProcess/WebPage/WebPage.cpp:
    (WebKit::WebPage::closeWithReply):
    * Source/WebKit/WebProcess/WebPage/WebPage.h:
    * Source/WebKit/WebProcess/WebPage/WebPage.messages.in:

    Identifier: 305413.544@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.603@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: 830aee8b056c3090f5e36bd84376c9508e679e27
      
https://github.com/WebKit/WebKit/commit/830aee8b056c3090f5e36bd84376c9508e679e27
  Author: Roberto Rodriguez <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    A 
LayoutTests/http/tests/security/contentSecurityPolicy/shared-worker-blob-url-inherits-csp-importScripts-blocked-expected.txt
    A 
LayoutTests/http/tests/security/contentSecurityPolicy/shared-worker-blob-url-inherits-csp-importScripts-blocked.html
    A 
LayoutTests/http/tests/security/contentSecurityPolicy/shared-worker-data-url-inherits-csp-importScripts-blocked-expected.txt
    A 
LayoutTests/http/tests/security/contentSecurityPolicy/shared-worker-data-url-inherits-csp-importScripts-blocked.html
    M 
LayoutTests/imported/w3c/web-platform-tests/content-security-policy/script-src/worker-data-set-timeout.sub-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/iframe-blank-inherit.meta/upgrade/sharedworker-import-data.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/fetch.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/websocket.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/xhr.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/fetch.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/websocket.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/xhr.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/srcdoc-inherit.meta/upgrade/sharedworker-import-data.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/top.http-rp/upgrade/sharedworker-import-data.https-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/top.meta/upgrade/sharedworker-import-data.https-expected.txt
    M Source/WebCore/workers/shared/SharedWorkerScriptLoader.cpp

  Log Message:
  -----------
  Cherry-pick 305413.556@safari-7624-branch (7bbbcf272dea). 
https://bugs.webkit.org/show_bug.cgi?id=308765

    Inherit creating document's CSP for SharedWorkers loaded from headerless 
URLs
    https://bugs.webkit.org/show_bug.cgi?id=308765
    rdar://171287542

    Reviewed by Ryan Reno.

    SharedWorkerScriptLoader::notifyFinished() does not inherit the creating
    document's CSP when the worker URL carries no HTTP headers.
    Worker::didReceiveResponse() already handles this for DedicatedWorkers by
    checking for blob:, file:, and opaque-origin URLs.

    Apply the same check in SharedWorkerScriptLoader so that the creating
    context's CSP flows into the WorkerFetchResult before it reaches
    SharedWorkerGlobalScope.

    Tests: 
http/tests/security/contentSecurityPolicy/shared-worker-blob-url-inherits-csp-importScripts-blocked.html
           
http/tests/security/contentSecurityPolicy/shared-worker-data-url-inherits-csp-importScripts-blocked.html

    * 
LayoutTests/http/tests/security/contentSecurityPolicy/shared-worker-blob-url-inherits-csp-importScripts-blocked-expected.txt:
 Added.
    * 
LayoutTests/http/tests/security/contentSecurityPolicy/shared-worker-blob-url-inherits-csp-importScripts-blocked.html:
 Added.
    * 
LayoutTests/http/tests/security/contentSecurityPolicy/shared-worker-data-url-inherits-csp-importScripts-blocked-expected.txt:
 Added.
    * 
LayoutTests/http/tests/security/contentSecurityPolicy/shared-worker-data-url-inherits-csp-importScripts-blocked.html:
 Added.
    * 
LayoutTests/imported/w3c/web-platform-tests/content-security-policy/script-src/worker-data-set-timeout.sub-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/fetch.https-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/websocket.https-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.http-rp/upgrade/xhr.https-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/fetch.https-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/websocket.https-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-classic-data.meta/upgrade/xhr.https-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/fetch.https-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/websocket.https-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.http-rp/upgrade/xhr.https-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/fetch.https-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/websocket.https-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/upgrade-insecure-requests/gen/sharedworker-module-data.meta/upgrade/xhr.https-expected.txt:
    * Source/WebCore/workers/shared/SharedWorkerScriptLoader.cpp:
    (WebCore::SharedWorkerScriptLoader::notifyFinished):

    Identifier: 305413.556@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.604@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: 6eef706d1a6ed7668ee0dfbf62c1890fa3b3ac86
      
https://github.com/WebKit/WebKit/commit/6eef706d1a6ed7668ee0dfbf62c1890fa3b3ac86
  Author: Kai Tamkun <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    A JSTests/stress/regress-172736082.js
    M Source/JavaScriptCore/bytecode/AccessCase.cpp

  Log Message:
  -----------
  Cherry-pick 305413.557@safari-7624-branch (9431ad8551c6). 
https://bugs.webkit.org/show_bug.cgi?id=310293

    [JSC] Track customSlotBase for CustomAccessorGetter/CustomAccessorSetter
    https://bugs.webkit.org/show_bug.cgi?id=310293
    rdar://172736082

    Reviewed by Yusuke Suzuki.

    This ensures that CustomAccessorGetter/CustomAccessorSetter will track 
customSlotBase.

    Test: JSTests/stress/regress-172736082.js

    * JSTests/stress/regress-172736082.js: Added.
    (main.createPoly.f):
    (main.createPoly):
    (main.opt):
    (main):
    * Source/JavaScriptCore/bytecode/AccessCase.cpp:
    (JSC::AccessCase::forEachDependentCell const): Track customSlotBase

    Identifier: 305413.557@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.605@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: c5e7e6d3bbbfed38aec819f2a25ff89b7c5da60c
      
https://github.com/WebKit/WebKit/commit/c5e7e6d3bbbfed38aec819f2a25ff89b7c5da60c
  Author: Brady Eidson <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkBroadcastChannelRegistry.cpp
    M Source/WebKit/NetworkProcess/NetworkBroadcastChannelRegistry.h
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm

  Log Message:
  -----------
  Cherry-pick 305413.560@safari-7624-branch (e1706a288fb5). 
https://bugs.webkit.org/show_bug.cgi?id=310293

    BroadcastChannel cross-origin spoof
    rdar://172230453

    Reviewed by Charlie Wolfe.

    A compromised web content process can send a malicious message to the 
Networking process
    to register for broadcast channel messages it should not have access to.

    This adds message checks to validate that the IPC::Connection these 
messages are
    coming from has access to the top security origin claimed.

    Tests: Tools/TestWebKitAPI/Tests/WebKitCocoa/BroadcastChannelOriginSpoof.mm

    * Source/WebKit/NetworkProcess/NetworkBroadcastChannelRegistry.cpp:
    (WebKit::NetworkBroadcastChannelRegistry::isOriginAllowedForConnection 
const):
    (WebKit::NetworkBroadcastChannelRegistry::registerChannel):
    (WebKit::NetworkBroadcastChannelRegistry::unregisterChannel):
    (WebKit::NetworkBroadcastChannelRegistry::postMessage):
    * Source/WebKit/NetworkProcess/NetworkBroadcastChannelRegistry.h:
    * Source/WebKit/NetworkProcess/NetworkProcess.cpp:
    (WebKit::NetworkProcess::allowsFirstPartyForCookies): Remove an unnecessary 
ASSERT that prevents
      this from being tested in the debug configuration.

    * Tools/TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
    (-[BroadcastChannelSpoofMessageHandler 
userContentController:didReceiveScriptMessage:]):
    ((NetworkProcess, BroadcastChannelOriginSpoof)):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/PasteHTML.mm:

    Identifier: 305413.560@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.606@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: 113bf5d87b08dad73739045d1cc8f828ebf088fc
      
https://github.com/WebKit/WebKit/commit/113bf5d87b08dad73739045d1cc8f828ebf088fc
  Author: Youenn Fablet <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    A LayoutTests/http/wpt/webcodecs/h264_bad_avc-expected.txt
    A LayoutTests/http/wpt/webcodecs/h264_bad_avc.html
    M 
Source/ThirdParty/libwebrtc/Source/webrtc/webkit_sdk/objc/components/video_codec/nalu_rewriter.cc

  Log Message:
  -----------
  Cherry-pick 305413.562@safari-7624-branch (5f19c89ea2f0). 
https://bugs.webkit.org/show_bug.cgi?id=310293

    Integer underflow leads to crash in ComputeH264InfoFromAVC
    rdar://171989035

    Reviewed by Andy Estes.

    We add a check to validate that the size of an encoded sequence parameter 
set NALU is greater than the NALU prefix.

    Test: http/wpt/webcodecs/h264_bad_avc.html

    * LayoutTests/http/wpt/webcodecs/h264_bad_avc-expected.txt: Added.
    * LayoutTests/http/wpt/webcodecs/h264_bad_avc.html: Added.
    * 
Source/ThirdParty/libwebrtc/Source/webrtc/webkit_sdk/objc/components/video_codec/nalu_rewriter.cc:

    Identifier: 305413.562@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.607@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: d225093a758840b2eeaca588f38080f3825acc7f
      
https://github.com/WebKit/WebKit/commit/d225093a758840b2eeaca588f38080f3825acc7f
  Author: Kimmo Kinnunen <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    M Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj
    M Source/ThirdParty/ANGLE/src/common/mathutil.h
    M Source/ThirdParty/ANGLE/src/common/utilities_unittest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cpp

  Log Message:
  -----------
  Cherry-pick 305413.563@safari-7624-branch (b0e22543a19b). 
https://bugs.webkit.org/show_bug.cgi?id=310535

    ANGLE: IndexRange integer overflow bypasses vertex index validation
    https://bugs.webkit.org/show_bug.cgi?id=310535
    rdar://173006046

    Reviewed by Dan Glastonbury.

    IndexRange would mark up index range with uint32_t start, uint32_t count
    which can not easily represent range [0, 0xFFFFFFFF].
    Switch to start, end markup, with start > end marking empty range.

    * Source/ThirdParty/ANGLE/ANGLE.xcodeproj/project.pbxproj:
    * Source/ThirdParty/ANGLE/src/common/mathutil.h:
    (gl::IndexRange::IndexRange):
    (gl::IndexRange::isEmpty const):
    (gl::IndexRange::end const):
    (gl::IndexRange::vertexCount const):
    (gl::operator==): Deleted.
    * Source/ThirdParty/ANGLE/src/common/utilities_unittest.cpp:
    * Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cpp:

    Identifier: 305413.563@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.608@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: 19c689a799985683f23e1b4ff66c8de17a39b20d
      
https://github.com/WebKit/WebKit/commit/19c689a799985683f23e1b4ff66c8de17a39b20d
  Author: Shu-yu Guo <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    A JSTests/stress/dfg-ensure-absence-own-then-property.js
    M Source/JavaScriptCore/dfg/DFGGraph.cpp

  Log Message:
  -----------
  Cherry-pick 305413.567@safari-7624-branch (eaf1fed3279c). 
https://bugs.webkit.org/show_bug.cgi?id=310578

    [JSC] Check initial object structure in tryEnsureAbsence in DFG
    https://bugs.webkit.org/show_bug.cgi?id=310578
    rdar://173052986

    Reviewed by Yijia Huang.

    In DFG, tryEnsureAbsence currently does not check the structure of the 
object
    on which it's trying to generate the conditions that a property remains 
absent.
    It only checks the structures of the objects on the prototype chain. This is
    incorrect in the case where object itself contains the property we're 
trying to
    ensure absence of.

    Test: JSTests/stress/dfg-ensure-absence-own-then-property.js
    * JSTests/stress/dfg-ensure-absence-own-then-property.js: Added.
    (createObject1):
    (createObject2):
    (opt):
    (main):
    * Source/JavaScriptCore/dfg/DFGGraph.cpp:
    (JSC::DFG::Graph::tryEnsureAbsence):

    Identifier: 305413.567@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.609@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: e62f2ed3eca37a70151b9c553de3b902c139fa61
      
https://github.com/WebKit/WebKit/commit/e62f2ed3eca37a70151b9c553de3b902c139fa61
  Author: Tim Nguyen <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/fast/forms/ios/select-open-pseudo-class-expected.txt
    A LayoutTests/fast/forms/ios/select-open-pseudo-class.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/input-element-pseudo-open-click.optional-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/input-element-pseudo-open-click.optional.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/input-element-pseudo-open.optional-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/input-element-pseudo-open.optional.html
    A 
LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/open-pseudo-class-in-has-expected.txt
    A 
LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/open-pseudo-class-in-has.html
    M 
LayoutTests/imported/w3c/web-platform-tests/css/selectors/open-pseudo-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-accessibility-minimum-target-size-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-dialog-mode-focus.optional-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-events-2.optional-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-events.optional-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-focus-visible-with-mouse-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-home-end-pagedown-pageup-detailed.optional-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-home-end-pagedown-pageup.optional-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-inside-top-layer-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-keyboard-behavior.optional-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-keyboard-focus-change-for-hidden-options.optional-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-mouse-behavior-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-picker-exit-animation-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-picker-interactive-element-focus.optional-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-picker-starting-style-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-pseudo-light-dismiss-invalidation-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-synthetic-events-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-type-to-search.tentative-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/switch-picker-appearance-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/select-many-options.tentative-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/select-option-focusable.tentative-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/select-popover-position-with-zoom.tentative-expected.txt
    M 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/show-picker-cross-origin-iframe-expected.txt
    M LayoutTests/platform/glib/TestExpectations
    A 
LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/selectors/open-pseudo-expected.txt
    A 
LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/select-option-focusable.tentative-expected.txt
    M LayoutTests/platform/ios/TestExpectations
    A 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-pseudo/input-element-pseudo-open.optional-expected.txt
    A 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/selectors/invalidation/open-pseudo-class-in-has-expected.txt
    A 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/selectors/open-pseudo-expected.txt
    A 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/button-in-popover-expected.txt
    A 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-iterate-before-beginning.optional-expected.txt
    A 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-keyboard-behavior.optional-expected.txt
    A 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-mouse-behavior-expected.txt
    A 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-option-hover-styles-expected.txt
    A 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-pseudo-open-expected.txt
    M LayoutTests/platform/win/TestExpectations
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/SaferCPPExpectations/UncheckedCallArgsCheckerExpectations
    M Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations
    M Source/WebCore/accessibility/AccessibilityMenuList.cpp
    M Source/WebCore/css/CSSPseudoSelectors.json
    M Source/WebCore/css/SelectorChecker.cpp
    M Source/WebCore/css/SelectorCheckerTestFunctions.h
    M Source/WebCore/css/parser/CSSParserContext.cpp
    M Source/WebCore/css/parser/CSSParserContext.h
    M Source/WebCore/css/parser/CSSSelectorParserContext.cpp
    M Source/WebCore/css/parser/CSSSelectorParserContext.h
    M Source/WebCore/cssjit/SelectorCompiler.cpp
    M Source/WebCore/html/BaseDateAndTimeInputType.cpp
    M Source/WebCore/html/BaseDateAndTimeInputType.h
    M Source/WebCore/html/ColorInputType.cpp
    M Source/WebCore/html/ColorInputType.h
    M Source/WebCore/html/HTMLDetailsElement.cpp
    M Source/WebCore/html/HTMLDetailsElement.h
    M Source/WebCore/html/HTMLDialogElement.cpp
    M Source/WebCore/html/HTMLDialogElement.h
    M Source/WebCore/html/HTMLOptGroupElement.cpp
    M Source/WebCore/html/HTMLOptionElement.cpp
    M Source/WebCore/html/HTMLSelectElement.cpp
    M Source/WebCore/html/HTMLSelectElement.h
    M Source/WebCore/html/TextFieldInputType.cpp
    M Source/WebCore/html/TextFieldInputType.h
    M Source/WebCore/rendering/RenderMenuList.cpp
    M Source/WebCore/rendering/RenderMenuList.h
    M Source/WebCore/testing/Internals.cpp
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
    M Source/WebKit/UIProcess/ios/forms/WKFormSelectPicker.mm
    M Source/WebKit/WebProcess/WebPage/WebPage.h
    M Source/WebKit/WebProcess/WebPage/WebPage.messages.in
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm

  Log Message:
  -----------
  Cherry-pick 305413.571@safari-7624-branch (f76d6df54e60). 
https://bugs.webkit.org/show_bug.cgi?id=310578

    Implement CSS :open pseudo-class
    rdar://173253012

    Reviewed by Ryosuke Niwa, Anne van Kesteren, Aditya Keerthi and Simon 
Fraser.

    Cherry-pick 305917@main (842e79a7f433). 
https://bugs.webkit.org/show_bug.cgi?id=284398
    Cherry-pick 306546@main (c74593b7f29a). rdar://169307251
    Cherry-pick 307253@main (af169a2af053). rdar://170088926
    Cherry-pick 307294@main (6e1bf0271cf0). rdar://170091970
    Cherry-pick 308148@main (1fc35e3d7b6a). 
https://bugs.webkit.org/show_bug.cgi?id=307798
    Cherry-pick 307295@main (2e0a18f). rdar://170108337

    Co-authored-by: Luke Warlow <[email protected]>
    Co-authored-by: Anne van Kesteren <[email protected]>

    * LayoutTests/TestExpectations:
    * LayoutTests/fast/forms/ios/select-open-pseudo-class-expected.txt: Added.
    * LayoutTests/fast/forms/ios/select-open-pseudo-class.html: Added.
    * 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/input-element-pseudo-open-click.optional-expected.txt:
 Added.
    * 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/input-element-pseudo-open-click.optional.html:
 Copied from 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/input-element-pseudo-open.optional.html.
    * 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/input-element-pseudo-open.optional-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/input-element-pseudo-open.optional.html:
    * 
LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/open-pseudo-class-in-has-expected.txt:
 Added.
    * 
LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/open-pseudo-class-in-has.html:
 Added.
    * 
LayoutTests/imported/w3c/web-platform-tests/css/selectors/open-pseudo-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-accessibility-minimum-target-size-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-dialog-mode-focus.optional-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-events-2.optional-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-events.optional-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-focus-visible-with-mouse-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-home-end-pagedown-pageup-detailed.optional-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-home-end-pagedown-pageup.optional-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-inside-top-layer-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-keyboard-behavior.optional-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-keyboard-focus-change-for-hidden-options.optional-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-mouse-behavior-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-picker-exit-animation-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-picker-interactive-element-focus.optional-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-picker-starting-style-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-pseudo-light-dismiss-invalidation-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-synthetic-events-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-type-to-search.tentative-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/switch-picker-appearance-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/select-many-options.tentative-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/select-option-focusable.tentative-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/select-popover-position-with-zoom.tentative-expected.txt:
    * 
LayoutTests/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/show-picker-cross-origin-iframe-expected.txt:
    * LayoutTests/platform/glib/TestExpectations:
    * 
LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/selectors/open-pseudo-expected.txt:
 Added.
    * 
LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/select-option-focusable.tentative-expected.txt:
 Added.
    * LayoutTests/platform/ios/TestExpectations:
    * 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/css-pseudo/input-element-pseudo-open.optional-expected.txt:
 Added.
    * 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/selectors/invalidation/open-pseudo-class-in-has-expected.txt:
 Added.
    * 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/css/selectors/open-pseudo-expected.txt:
 Added.
    * 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/button-in-popover-expected.txt:
 Added.
    * 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-iterate-before-beginning.optional-expected.txt:
 Added.
    * 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-keyboard-behavior.optional-expected.txt:
 Added.
    * 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-mouse-behavior-expected.txt:
 Added.
    * 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-option-hover-styles-expected.txt:
 Added.
    * 
LayoutTests/platform/ios/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/customizable-select/select-pseudo-open-expected.txt:
 Added.
    * LayoutTests/platform/win/TestExpectations:
    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
    * Source/WebCore/SaferCPPExpectations/UncheckedCallArgsCheckerExpectations:
    * Source/WebCore/SaferCPPExpectations/UncountedCallArgsCheckerExpectations:
    * Source/WebCore/accessibility/AccessibilityMenuList.cpp:
    (WebCore::AccessibilityMenuList::press):
    (WebCore::AccessibilityMenuList::isCollapsed const):
    * Source/WebCore/css/CSSPseudoSelectors.json:
    * Source/WebCore/css/SelectorChecker.cpp:
    (WebCore::SelectorChecker::checkOne const):
    * Source/WebCore/css/SelectorCheckerTestFunctions.h:
    (WebCore::matchesOpenPseudoClass):
    * Source/WebCore/css/parser/CSSParserContext.cpp:
    (WebCore::add):
    * Source/WebCore/css/parser/CSSParserContext.h:
    * Source/WebCore/css/parser/CSSSelectorParserContext.cpp:
    (WebCore::CSSSelectorParserContext::CSSSelectorParserContext):
    (WebCore::add):
    * Source/WebCore/css/parser/CSSSelectorParserContext.h:
    * Source/WebCore/cssjit/SelectorCompiler.cpp:
    (WebCore::SelectorCompiler::JSC_DEFINE_NOEXCEPT_JIT_OPERATION):
    (WebCore::SelectorCompiler::addPseudoClassType):
    * Source/WebCore/html/BaseDateAndTimeInputType.cpp:
    (WebCore::BaseDateAndTimeInputType::showPicker):
    (WebCore::BaseDateAndTimeInputType::setPopupIsVisible):
    (WebCore::BaseDateAndTimeInputType::showDateTimeChooser):
    (WebCore::BaseDateAndTimeInputType::didChangeValueFromControl):
    (WebCore::BaseDateAndTimeInputType::didReceiveSpaceKeyFromControl):
    (WebCore::BaseDateAndTimeInputType::didEndChooser):
    (WebCore::BaseDateAndTimeInputType::closeDateTimeChooser):
    (WebCore::BaseDateAndTimeInputType::supportsReadOnly const): Deleted.
    (WebCore::BaseDateAndTimeInputType::shouldRespectListAttribute): Deleted.
    (WebCore::BaseDateAndTimeInputType::isPresentingAttachedView const): 
Deleted.
    * Source/WebCore/html/BaseDateAndTimeInputType.h:
    * Source/WebCore/html/ColorInputType.cpp:
    (WebCore::ColorInputType::setPopupIsVisible):
    (WebCore::ColorInputType::showPicker):
    (WebCore::ColorInputType::didEndChooser):
    (WebCore::ColorInputType::endColorChooser):
    (WebCore::ColorInputType::isPresentingAttachedView const): Deleted.
    (WebCore::ColorInputType::supportsRequired const): Deleted.
    (WebCore::ColorInputType::allowsShowPickerAcrossFrames): Deleted.
    (WebCore::ColorInputType::shouldRespectListAttribute): Deleted.
    (WebCore::ColorInputType::shouldResetOnDocumentActivation): Deleted.
    * Source/WebCore/html/ColorInputType.h:
    * Source/WebCore/html/HTMLDetailsElement.cpp:
    (WebCore::HTMLDetailsElement::attributeChanged):
    (WebCore::HTMLDetailsElement::isOpen const):
    * Source/WebCore/html/HTMLDetailsElement.h:
    * Source/WebCore/html/HTMLDialogElement.cpp:
    (WebCore::HTMLDialogElement::attributeChanged):
    (WebCore::HTMLDialogElement::isOpen const):
    * Source/WebCore/html/HTMLDialogElement.h:
    * Source/WebCore/html/HTMLOptGroupElement.cpp:
    * Source/WebCore/html/HTMLOptionElement.cpp:
    * Source/WebCore/html/HTMLSelectElement.cpp:
    (WebCore::HTMLSelectElement::didDetachRenderers):
    (WebCore::HTMLSelectElement::setOptionsChangedOnRenderer):
    (WebCore::HTMLSelectElement::platformHandleKeydownEvent):
    (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
    (WebCore::HTMLSelectElement::showPopup):
    (WebCore::HTMLSelectElement::hidePopup):
    (WebCore::HTMLSelectElement::setPopupIsVisible):
    (WebCore::HTMLSelectElement::isOpen const):
    (WebCore::HTMLSelectElement::showPicker):
    (WebCore::HTMLSelectElement::itemStyle const):
    (WebCore::HTMLSelectElement::menuStyle const):
    (WebCore::HTMLSelectElement::popupDidHide):
    * Source/WebCore/html/HTMLSelectElement.h:
    (WebCore::HTMLSelectElement::size const): Deleted.
    (WebCore::HTMLSelectElement::multiple const): Deleted.
    (WebCore::HTMLSelectElement::allowsNonContiguousSelection const): Deleted.
    * Source/WebCore/html/TextFieldInputType.cpp:
    (WebCore::TextFieldInputType::isKeyboardFocusable const):
    (WebCore::TextFieldInputType::didCloseSuggestions):
    (WebCore::TextFieldInputType::displaySuggestions):
    (WebCore::TextFieldInputType::closeSuggestions):
    (WebCore::TextFieldInputType::setPopupIsVisible):
    (WebCore::TextFieldInputType::needsContainer const): Deleted.
    (WebCore::TextFieldInputType::supportsReadOnly const): Deleted.
    (WebCore::TextFieldInputType::shouldUseInputMethod const): Deleted.
    (WebCore::TextFieldInputType::isPresentingAttachedView const): Deleted.
    (WebCore::TextFieldInputType::isFocusingWithDataListDropdown const): 
Deleted.
    * Source/WebCore/html/TextFieldInputType.h:
    (WebCore::TextFieldInputType::needsContainer const):
    * Source/WebCore/rendering/RenderMenuList.cpp:
    (WebCore::RenderMenuList::RenderMenuList):
    (RenderMenuList::updateFromElement):
    (WebCore::RenderMenuList::willBeDestroyed): Deleted.
    (WebCore::RenderMenuList::popupMenuSize): Deleted.
    (WebCore::RenderMenuList::hostWindow const): Deleted.
    (RenderMenuList::showPopup): Deleted.
    (RenderMenuList::hidePopup): Deleted.
    (RenderMenuList::popupDidHide): Deleted.
    * Source/WebCore/rendering/RenderMenuList.h:
    * Source/WebCore/testing/Internals.cpp:
    (WebCore::Internals::isSelectPopupVisible):
    * Source/WebKit/UIProcess/WebPageProxy.h:
    * Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
    (WebKit::WebPageProxy::setSelectElementIsOpen):
    * Source/WebKit/UIProcess/ios/forms/WKFormSelectPicker.mm:
    (-[WKSelectPicker 
contextMenuInteraction:willDisplayMenuForConfiguration:animator:]):
    (-[WKSelectPicker 
contextMenuInteraction:willEndForConfiguration:animator:]):
    (-[WKSelectPicker resetContextMenuPresenter]):
    * Source/WebKit/WebProcess/WebPage/WebPage.h:
    * Source/WebKit/WebProcess/WebPage/WebPage.messages.in:
    * Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
    (WebKit::WebPage::setSelectElementIsOpen):

    Identifier: 305413.571@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.610@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: f85e703ff591279331105e48908936783055766c
      
https://github.com/WebKit/WebKit/commit/f85e703ff591279331105e48908936783055766c
  Author: Vignesh Rao <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    M Source/JavaScriptCore/bytecode/GetByStatus.cpp
    M Source/JavaScriptCore/bytecode/GetByStatus.h
    M Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h
    M Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp
    M Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp
    M Source/JavaScriptCore/dfg/DFGNode.h

  Log Message:
  -----------
  Cherry-pick 305413.572@safari-7624-branch (2f13ea25a5fe). 
https://bugs.webkit.org/show_bug.cgi?id=309519

    [JSC] GetByStatus::computeFor should not walk proto chain for direct 
property access
    https://bugs.webkit.org/show_bug.cgi?id=309519
    rdar://171512268

    Reviewed by Keith Miller.

    When computing the GetByStatus, we should check if the property lookup is a
    direct property access before doing a prototype walk since direct accesses 
are
    not supposed to consult the prototype.

    * Source/JavaScriptCore/bytecode/GetByStatus.cpp:
    (JSC::GetByStatus::computeFor):
    * Source/JavaScriptCore/bytecode/GetByStatus.h:
    * Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:
    (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
    * Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:
    (JSC::DFG::ByteCodeParser::parseBlock):
    * Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:
    (JSC::DFG::ConstantFoldingPhase::foldConstants):
    * Source/JavaScriptCore/dfg/DFGNodeType.h:
    (JSC::DFG::propertyLookupMode):

    Identifier: 305413.572@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.611@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: 06cb742addd8da94a8403583b854a15d4f3c5a92
      
https://github.com/WebKit/WebKit/commit/06cb742addd8da94a8403583b854a15d4f3c5a92
  Author: Elika Etemad <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    M LayoutTests/TestExpectations
    M Source/WebCore/rendering/RenderBlockFlow.cpp

  Log Message:
  -----------
  Revert "column-count: 1 should create a multi-column container"
rdar://172306151

Reviewed by Alan Baradlay.

There are some iBooks that set `column-count: 1` where they probably
should use `column-count: auto`, and this is creating nested multicol
situations that are behaving badly. Reverting the fix where we made
`column-count: 1` be a multi-column container (per spec) on the branch
for now, while we follow up with a hopefully more correct fix on trunk.

This reverts commit e10b646accd306950141c89cbd4ef2697e44d6f8.

* LayoutTests/TestExpectations:
* Source/WebCore/rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::willCreateColumns const):

Identifier: 305413.580@safari-7624-branch
Canonical link: 
https://commits.webkit.org/305877.612@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: eecf3a1a45e36288742acf797f9f0e6a72cb0f0d
      
https://github.com/WebKit/WebKit/commit/eecf3a1a45e36288742acf797f9f0e6a72cb0f0d
  Author: Roberto Rodriguez <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    A 
LayoutTests/http/wpt/content-security-policy/base-uri/base-uri-self-sandboxed-srcdoc-expected.txt
    A 
LayoutTests/http/wpt/content-security-policy/base-uri/base-uri-self-sandboxed-srcdoc.html
    M 
LayoutTests/imported/w3c/web-platform-tests/content-security-policy/meta/sandbox-iframe-expected.txt
    M Source/WebCore/page/csp/ContentSecurityPolicy.cpp
    M Source/WebCore/page/csp/ContentSecurityPolicySource.cpp

  Log Message:
  -----------
  Cherry-pick 305413.582@safari-7624-branch (8ed9a1e4e1e0). 
https://bugs.webkit.org/show_bug.cgi?id=308756

    Fix CSP 'self' source matching for opaque-origin documents
    https://bugs.webkit.org/show_bug.cgi?id=308756
    rdar://171275989

    Reviewed by Ryan Reno.

    WebKit fails to enforce base-uri 'self' inside sandboxed srcdoc iframes
    because the origin that 'self' resolves to (inherited from the parent)
    gets reset to the opaque origin when a <meta> CSP tag is processed, and
    schemeMatches() incorrectly allows HTTPS URLs to match when that origin
    has an empty scheme (opaque origins lack scheme/host/port tuple fields).

    Preserve the inherited self-origin for opaque-origin documents by
    skipping updateSourceSelf() when the security origin is opaque. Guard
    the 'self' scheme upgrade in schemeMatches() to require a non-empty
    scheme, preventing any URL from matching an opaque 'self'.

    Test: 
http/wpt/content-security-policy/base-uri/base-uri-self-sandboxed-srcdoc.html

    * 
LayoutTests/http/wpt/content-security-policy/base-uri/base-uri-self-sandboxed-srcdoc-expected.txt:
 Added.
    * 
LayoutTests/http/wpt/content-security-policy/base-uri/base-uri-self-sandboxed-srcdoc.html:
 Added.
    * 
LayoutTests/imported/w3c/web-platform-tests/content-security-policy/meta/sandbox-iframe-expected.txt:
    * Source/WebCore/page/csp/ContentSecurityPolicy.cpp:
    (WebCore::ContentSecurityPolicy::applyPolicyToScriptExecutionContext):
    * Source/WebCore/page/csp/ContentSecurityPolicySource.cpp:
    (WebCore::isSelfSourceSchemeUpgrade):
    (WebCore::ContentSecurityPolicySource::schemeMatches const):

    Identifier: 305413.582@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.613@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: c726aaceacf09a478c01c45d4fe2435932660780
      
https://github.com/WebKit/WebKit/commit/c726aaceacf09a478c01c45d4fe2435932660780
  Author: Vignesh Rao <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    M Source/JavaScriptCore/wasm/WasmCalleeGroup.cpp

  Log Message:
  -----------
  Cherry-pick 305413.583@safari-7624-branch (3288160b72d5). 
https://bugs.webkit.org/show_bug.cgi?id=307669

    [JSC] BBQCallee should be kept alive between callsite collection and repatch
    https://bugs.webkit.org/show_bug.cgi?id=307669
    rdar://170223517

    Reviewed by Keith Miller.

    OMGOSREntryCallee is owned by BBQCallee, hence keeping the BBQCallee alive
    when we collect callsites to it should keep the OMGOSREntryCallee alive as
    well. We have to handle the edge case where there is an OMGOSREntryCallee
    alive without having a BBQCallee hence in such a case store a ref to this
    OMGOSREntryCallee in a separate vector.

    * Source/JavaScriptCore/wasm/WasmCalleeGroup.cpp:
    (JSC::Wasm::CalleeGroup::updateCallsitesToCallUs):

    Identifier: 305413.583@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.614@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: 3e87d5e89cde296a2938a48f8cb443ac31acface
      
https://github.com/WebKit/WebKit/commit/3e87d5e89cde296a2938a48f8cb443ac31acface
  Author: Sihui Liu <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    A 
LayoutTests/storage/indexeddb/index-unique-negative-zero-private-expected.txt
    A LayoutTests/storage/indexeddb/index-unique-negative-zero-private.html
    A LayoutTests/storage/indexeddb/resources/index-unique-negative-zero.js
    M Source/WebCore/Modules/indexeddb/IDBKeyData.h
    M Source/WebCore/Modules/indexeddb/server/MemoryIndex.cpp
    M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp
    M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h
    M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.h
    M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp
    M Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp

  Log Message:
  -----------
  Cherry-pick 305413.585@safari-7624-branch (95b97d3d6fc0). 
https://bugs.webkit.org/show_bug.cgi?id=307669

    [IndexedDB] Use-After-Free caused by use of `-0.0` for HashMap Key
    rdar://172834266

    Reviewed by Brady Eidson.

    IndexValueStore uses HashMap with key type IDBKeyData to store index 
records. For IDBKeyData, when its type is Number
    or Date, the value passed to Hasher is a double. Since Hasher uses the raw 
bits to create the hash, -0.0 and +0.0
    produce different hashes, meaning the HashMap can have two separate entries 
for IDBKeyData values of -0.0 and +0.0.
    However, IDBKeyData::operator== returns true for -0.0 and +0.0 because it 
uses IEEE 754 comparison. This inconsistency
    can corrupt the map: for example, an attempt to remove the entry for +0.0 
can match and destroy the entry for -0.0
    instead, leaving a cursor still referencing the freed entry (see the new 
test). To fix this, normalize -0.0 to +0.0
    before passing to Hasher.

    This patch also fixes two other issues. First, 
MemoryIndex::transactionAborted does not invalidate existing cursors when
    a transaction is aborted, so a cursor may hold a reference to an index 
record that is destroyed during the rollback.
    This patch fixes that by calling notifyCursorsOfAllRecordsChanged() before 
replaying the rollback.

    Second, the network process does not validate the 
DidFinishHandlingVersionChangeTransaction message. An uncompromised
    web content process will not send this message while the version change 
transaction is still in progress (i.e. before it
    is committed or aborted). The network process should verify this before 
proceeding, as the handler resets internal state
    such as UniqueIDBDatabase::m_versionChangeTransaction, which could lead to 
unexpected behavior.

    Test: storage/indexeddb/index-unique-negative-zero-private.html

    * 
LayoutTests/storage/indexeddb/index-unique-negative-zero-private-expected.txt: 
Added.
    * LayoutTests/storage/indexeddb/index-unique-negative-zero-private.html: 
Added.
    * LayoutTests/storage/indexeddb/resources/index-unique-negative-zero.js: 
Added.
    (prepareDatabase):
    (onOpenSuccess.transaction.onabort):
    (onOpenSuccess):
    (insertSecondRecord):
    (secondRecordFailed):
    (testCount.request.onsuccess):
    (testCount):
    (testCursor.request.onsuccess):
    (testCursor):
    * Source/WebCore/Modules/indexeddb/IDBKeyData.h:
    (WebCore::add):
    * Source/WebCore/Modules/indexeddb/server/MemoryIndex.cpp:
    (WebCore::IDBServer::MemoryIndex::transactionAborted):
    * Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.cpp:
    
(WebCore::IDBServer::UniqueIDBDatabase::isVersionChangeTransactionFinishingOrFinished
 const):
    * Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabase.h:
    * Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
    * Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
    (WebCore::IDBServer::UniqueIDBDatabaseTransaction::abort):
    (WebCore::IDBServer::UniqueIDBDatabaseTransaction::abortWithoutCallback):
    (WebCore::IDBServer::UniqueIDBDatabaseTransaction::commit):
    * Source/WebCore/Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
    (WebCore::IDBServer::UniqueIDBDatabaseTransaction::isFinishingOrFinished 
const):
    
(WebCore::IDBServer::UniqueIDBDatabaseTransaction::setIsFinishingOrFinished):
    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
    (WebKit::NetworkStorageManager::didFinishHandlingVersionChangeTransaction):

    Identifier: 305413.585@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.615@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: 184b2f63a5a19c775dbf24738841ddac043a7e31
      
https://github.com/WebKit/WebKit/commit/184b2f63a5a19c775dbf24738841ddac043a7e31
  Author: Brady Eidson <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/coreipc.js

  Log Message:
  -----------
  Cherry-pick 305413.590@safari-7624-branch (d9af1bf8d315). 
https://bugs.webkit.org/show_bug.cgi?id=307669

    DeclarativeWebPush-related message handlers accept arbitrary scopeURL
    rdar://172230225

    Reviewed by Simon Fraser.

    For declarative web push, web content processes message the networking 
process for
    4 different push related operations.

    As part of the message they include a scope URL for the push operation.
    A compromised web process can craft a message to spoof any scope URL.

    The fix is to have Networking validate the passed in scope URL to make sure 
the
    web process in question has access.

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

    * Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
    (WebKit::NetworkConnectionToWebProcess::navigatorSubscribeToPushService):
    
(WebKit::NetworkConnectionToWebProcess::navigatorUnsubscribeFromPushService):
    (WebKit::NetworkConnectionToWebProcess::navigatorGetPushSubscription):
    (WebKit::NetworkConnectionToWebProcess::navigatorGetPushPermissionState):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
    ((NetworkProcess, PushSubscribeOriginSpoof)):
    ((NetworkProcess, PushUnsubscribeOriginSpoof)):
    ((NetworkProcess, PushGetSubscriptionOriginSpoof)):
    ((NetworkProcess, PushGetPermissionStateOriginSpoof)):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/coreipc.js:
    (ArgumentSerializer):

    Identifier: 305413.590@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.616@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: 38452931a228829e430a6e72931784bd3867875c
      
https://github.com/WebKit/WebKit/commit/38452931a228829e430a6e72931784bd3867875c
  Author: Ryosuke Niwa <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    A 
LayoutTests/fast/events/popup-blocked-after-user-gesture-is-expired-after-post-message-expected.txt
    A 
LayoutTests/fast/events/popup-blocked-after-user-gesture-is-expired-after-post-message.html
    M Source/WebCore/page/LocalDOMWindow.cpp

  Log Message:
  -----------
  Cherry-pick 305413.591@safari-7624-branch (cb335a3aea4b). 
https://bugs.webkit.org/show_bug.cgi?id=310863

    postMessage can indefinitely extend the lifetime of a user gesture token
    https://bugs.webkit.org/show_bug.cgi?id=310863
    rdar://173355201

    Reviewed by Chris Dumez.

    Clear the user gesture token if it has been expired after postMessage.

    Test: 
fast/events/popup-blocked-after-user-gesture-is-expired-after-post-message.html

    * 
LayoutTests/fast/events/popup-blocked-after-user-gesture-is-expired-after-post-message-expected.txt:
 Added.
    * 
LayoutTests/fast/events/popup-blocked-after-user-gesture-is-expired-after-post-message.html:
 Added.
    * Source/WebCore/page/LocalDOMWindow.cpp:
    (WebCore::LocalDOMWindow::processPostMessage):

    Identifier: 305413.591@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.617@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: fbf00c5754e28ba62528527f8fc5f517144f3f69
      
https://github.com/WebKit/WebKit/commit/fbf00c5754e28ba62528527f8fc5f517144f3f69
  Author: Chris Dumez <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    M Source/WebCore/bindings/js/JSAttrCustom.cpp
    M Source/WebCore/dom/Attr.cpp
    M Source/WebCore/dom/Attr.h

  Log Message:
  -----------
  Cherry-pick 305413.607@safari-7624-branch (58480401ef67). 
https://bugs.webkit.org/show_bug.cgi?id=311242

    Potential use-after-free under JSAttr::visitAdditionalChildren()
    https://bugs.webkit.org/show_bug.cgi?id=311242
    rdar://173693441

    Reviewed by Ryosuke Niwa.

    The GC thread was dereferncing Attr::m_element to call opaqueRoot() on
    it. This could lead to use-after-free when the Attr's element gets
    destroyed concurrently by the main thread.

    Address the issue by making the following two changes:
    - Make Attr::m_element a CheckedPtr instead of a WeakPtr, to make it clear
      it only gets nulled out by Attr::detachFromElementWithValue().
    - Introduce a Lock that gets acquired by m_element gets updated on the
      main thread and then the GC thread is accessing it.

    * Source/WebCore/bindings/js/JSAttrCustom.cpp:
    (WebCore::JSAttr::visitAdditionalChildren):
    * Source/WebCore/dom/Attr.cpp:
    (WebCore::Attr::detachFromElementWithValue):
    (WebCore::Attr::attachToElement):
    (WebCore::Attr::visitOwnerElementInGCThread):
    * Source/WebCore/dom/Attr.h:

    Identifier: 305413.607@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.618@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: 29dca252e7e2404c46ae7b02337091bd94b3944c
      
https://github.com/WebKit/WebKit/commit/29dca252e7e2404c46ae7b02337091bd94b3944c
  Author: Anand Srinivasan <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    A JSTests/wasm/stress/wasm-imported-string-oom-exception.js
    M Source/JavaScriptCore/wasm/js/WebAssemblyCompileOptions.cpp

  Log Message:
  -----------
  Cherry-pick 305413.610@safari-7624-branch (5a151853d699). 
https://bugs.webkit.org/show_bug.cgi?id=310576

    WebAssemblyCompileOptions::tryCreate should throw on OOM
    https://bugs.webkit.org/show_bug.cgi?id=310576
    rdar://173135164

    Reviewed by Yusuke Suzuki, Yijia Huang, and Dan Hecht.

    When importing string constants, WebAssemblyCompileOptions::tryCreate
    may run out of memory when trying to convert a big enough rope to a
    string, in which case it should throw an out of memory exception,
    which is not currently done.

    Test: JSTests/wasm/stress/wasm-imported-string-oom-exception.js

    * JSTests/wasm/stress/wasm-imported-string-oom-exception.js: Added.
    (main):
    (catch):
    * Source/JavaScriptCore/wasm/js/WebAssemblyCompileOptions.cpp:
    (JSC::WebAssemblyCompileOptions::tryCreate):

    Identifier: 305413.610@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.619@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: 795fb96f9d3692e627de8bf0f78f264061d0547b
      
https://github.com/WebKit/WebKit/commit/795fb96f9d3692e627de8bf0f78f264061d0547b
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    M Source/JavaScriptCore/runtime/JSLock.cpp
    M Source/JavaScriptCore/runtime/JSLock.h

  Log Message:
  -----------
  Cherry-pick 305413.611@safari-7624-branch (729df7fb2917). 
https://bugs.webkit.org/show_bug.cgi?id=311431

    [JSC] JSLock m_hasOwnerThread has concurrency issue
    https://bugs.webkit.org/show_bug.cgi?id=311431
    rdar://173797266

    Reviewed by Dan Hecht.

    JSLock::lock is storing `true` flag to JSLock::m_hasOwnerThread after
    store-store-barrier. However loading this is not having a brrier. This
    is problemtic since JSLock is keeping two fields in sync: m_hasOwnerThread
    and m_ownerThread. But ordering of stores to them and visibility of the
    state of them must be strongly controlled, otherwise, random thread
    accidentlly think that "we are already taking a lock" while it is not.
    In particular, currentThreadIsHoldingLock has a bug that we are loading
    these two fields without any barriers. So CPU can freely change the
    visibility of the other thread's store to them. We may see a state that
    m_hasOwnerThread is true, but m_ownerThread is not stored yet.

    This patch fixes this issue by using release-acquire load/store for
    m_hasOwnerThread. This ensures the load and store ordering before and
    after this variable. So we can guarantee that m_ownerThread is not a
    stale state.

    * Source/JavaScriptCore/runtime/JSLock.cpp:
    * Source/JavaScriptCore/runtime/JSLock.h:
    (JSC::JSLock::ownerThread const):
    (JSC::JSLock::ownerThreadUID const):
    (JSC::JSLock::currentThreadIsHoldingLock):

    Identifier: 305413.611@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.620@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


  Commit: 41a81774ad6a4b59c55699dadc1838c6c198ef6e
      
https://github.com/WebKit/WebKit/commit/41a81774ad6a4b59c55699dadc1838c6c198ef6e
  Author: Vignesh Rao <[email protected]>
  Date:   2026-05-20 (Wed, 20 May 2026)

  Changed paths:
    M Source/JavaScriptCore/runtime/StringPrototypeInlines.h

  Log Message:
  -----------
  Cherry-pick 305413.612@safari-7624-branch (967ea3fc3a3a). 
https://bugs.webkit.org/show_bug.cgi?id=310901

    replaceAllWithCacheUsingRegExpSearchThreeArguments fails to throw exception 
in string resolution
    https://bugs.webkit.org/show_bug.cgi?id=310901
    rdar://173300626

    Reviewed by Keith Miller.

    String resolution in replaceAllWithCacheUsingRegExpSearchThreeArguments can
    OOM and set an exception. Hence we should check for exception after the
    resolution finishes.

    * Source/JavaScriptCore/runtime/StringPrototypeInlines.h:
    (JSC::replaceAllWithCacheUsingRegExpSearchThreeArguments):

    Identifier: 305413.612@safari-7624-branch

Canonical link: 
https://commits.webkit.org/305877.621@eng/backports-01KS12QJPYYAXWGD596DRZ4Z89


Compare: https://github.com/WebKit/WebKit/compare/4f541fa63f96...41a81774ad6a

To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to