Branch: refs/heads/webkitglib/2.52
  Home:   https://github.com/WebKit/WebKit
  Commit: fa063c4341847c2e191141bf227ab72f72b26e11
      
https://github.com/WebKit/WebKit/commit/fa063c4341847c2e191141bf227ab72f72b26e11
  Author: Charlie Wolfe <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A 
LayoutTests/http/tests/security/contentSecurityPolicy/iframe-srcdoc-import-bypass-expected.txt
    A 
LayoutTests/http/tests/security/contentSecurityPolicy/iframe-srcdoc-import-bypass.html
    A 
LayoutTests/http/tests/security/contentSecurityPolicy/resources/module-pass.py
    M 
LayoutTests/imported/w3c/web-platform-tests/content-security-policy/inheritance/inheritance-from-initiator.sub-expected.txt
    M Source/WebCore/loader/DocumentWriter.cpp

  Log Message:
  -----------
  Cherry-pick 305413.3@safari-7624-branch (ffc8c894635c). 
https://bugs.webkit.org/show_bug.cgi?id=304951

    Fix CSP bypass in sandboxed srcdoc iframes
    https://bugs.webkit.org/show_bug.cgi?id=304951
    rdar://154201938

    Reviewed by Ryan Reno and Pascoe.

    Only inherit the policy container from history item during back/forward 
navigations. Previously, iframes
    without an initial srcdoc attribute could bypass CSP when srcdoc was set 
dynamically because they
    incorrectly inherited from history instead of from the actual initiator.

    Test: 
http/tests/security/contentSecurityPolicy/iframe-srcdoc-import-bypass.html
    * 
LayoutTests/http/tests/security/contentSecurityPolicy/iframe-srcdoc-import-bypass-expected.txt:
 Added.
    * 
LayoutTests/http/tests/security/contentSecurityPolicy/iframe-srcdoc-import-bypass.html:
 Added.
    * 
LayoutTests/http/tests/security/contentSecurityPolicy/resources/module-pass.py: 
Added.
    * 
LayoutTests/imported/w3c/web-platform-tests/content-security-policy/inheritance/inheritance-from-initiator.sub-expected.txt:
    * Source/WebCore/loader/DocumentWriter.cpp:
    (WebCore::DocumentWriter::begin):

    Identifier: 305413.3@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.261@webkitglib/2.52


  Commit: 32becff2ee8f09a63ed1e9516bc8fd14b6b0bab2
      
https://github.com/WebKit/WebKit/commit/32becff2ee8f09a63ed1e9516bc8fd14b6b0bab2
  Author: Timothy Hatcher <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebCore/dom/Element.h
    M Source/WebCore/editing/markup.h
    M Source/WebCore/html/HTMLImageElement.h
    M Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp
    M Source/WebCore/page/PageSerializer.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm

  Log Message:
  -----------
  Cherry-pick 305413.31@safari-7624-branch (31eb1554d216). 
https://bugs.webkit.org/show_bug.cgi?id=304155

    safari-web-extension url masking bypass.
    https://webkit.org/b/304155
    rdar://problem/166499973

    Reviewed by Chris Dumez.

    Audited remaining ResolveURLs::No and ResolveURLs::Yes uses, and changed to 
ExcludingURLsForPrivacy
    versions to catch places where extension URLs could be returned unmasked 
including XMLSerializer.

    Test: Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm

    * Source/WebCore/dom/Element.h:
    * Source/WebCore/editing/markup.h:
    (WebCore::serializeFragment):
    * Source/WebCore/html/HTMLImageElement.h:
    * Source/WebCore/loader/archive/cf/LegacyWebArchive.cpp:
    (WebCore::LegacyWebArchive::createInternal):
    (WebCore::LegacyWebArchive::createFromSelection):
    * Source/WebCore/page/PageSerializer.cpp:
    
(WebCore::PageSerializer::SerializerMarkupAccumulator::SerializerMarkupAccumulator):
    * Source/WebCore/xml/XMLSerializer.cpp:
    (WebCore::XMLSerializer::serializeToString):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:
    (TEST(WebKit, ConfigurationMaskedURLSchemes)): Added XMLSerializer tests.

    Identifier: 305413.31@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.262@webkitglib/2.52


  Commit: c5344a6c2e67df94ca66092dbcc3a51adf66d601
      
https://github.com/WebKit/WebKit/commit/c5344a6c2e67df94ca66092dbcc3a51adf66d601
  Author: Frédéric Wang <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A 
LayoutTests/fast/dom/Document/open-triggered-by-mutation-observer-on-element-from-a-parsed-doc-crash-expected.txt
    A 
LayoutTests/fast/dom/Document/open-triggered-by-mutation-observer-on-element-from-a-parsed-doc-crash.html

  Log Message:
  -----------
  Cherry-pick [email protected] (cb9035f59bbb). 
https://bugs.webkit.org/show_bug.cgi?id=300372

    [WebKit][Main+SU?] [a3b9e8b1b7c6c7b7] ASAN_SEGV | WebCore::firstDOMWindow; 
WebCore::jsDocumentPrototypeFunction_write; ADDRESS
    https://bugs.webkit.org/show_bug.cgi?id=300372

    Reviewed by Ryosuke Niwa.

    Add a regression test for [1], which was later reverted in [2].

    [1] https://commits.webkit.org/300757@main
    [2] https://commits.webkit.org/300886@main

    * 
LayoutTests/fast/dom/Document/open-triggered-by-mutation-observer-on-element-from-a-parsed-doc-crash-expected.txt:
 Added.
    * 
LayoutTests/fast/dom/Document/open-triggered-by-mutation-observer-on-element-from-a-parsed-doc-crash.html:
 Added.

    Canonical link: https://commits.webkit.org/[email protected]

    Identifier: 301765.295@safari-7623-branch

    Identifier: 305413.77@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.263@webkitglib/2.52


  Commit: 511919d9e1ba49df0a544c1a7e15591794c6aad2
      
https://github.com/WebKit/WebKit/commit/511919d9e1ba49df0a544c1a7e15591794c6aad2
  Author: Simon Lewis <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/http/tests/security/registerBlobURL-expected.txt
    A LayoutTests/http/tests/security/registerBlobURL.html
    M LayoutTests/platform/mac/TestExpectations
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp

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

    NetworkConnectionToWebProcess::registerInternalFileBlobURL should check 
whether accessing replacementPath is allowed or not
    https://bugs.webkit.org/show_bug.cgi?id=305353
    rdar://134025127

    Reviewed by Per Arne Vollan and Chris Dumez.

    Adding a MESSAGE_CHECK for parameter: replacementPath.

    * LayoutTests/TestExpectations:
    * LayoutTests/http/tests/security/registerBlobURL-expected.txt: Added.
    * LayoutTests/http/tests/security/registerBlobURL.html: Added.
    * LayoutTests/platform/mac/TestExpectations:
    * Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
    (WebKit::NetworkConnectionToWebProcess::registerInternalFileBlobURL):

    Identifier: 305413.85@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.264@webkitglib/2.52


  Commit: ecf3b859b0e021c918a1075d2d072f3fbd3e6b05
      
https://github.com/WebKit/WebKit/commit/ecf3b859b0e021c918a1075d2d072f3fbd3e6b05
  Author: Anthony Tarbinian <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebCore/loader/CrossOriginPreflightChecker.cpp
    M Source/WebCore/loader/DocumentThreadableLoader.cpp

  Log Message:
  -----------
  Cherry-pick 301765.317@safari-7623-branch (f6b5d41d0e82). 
https://bugs.webkit.org/show_bug.cgi?id=301373

    [WebCore] Check for liveliness before dereferencing m_document WeakPtr in 
DocumentThreadableLoader
    https://bugs.webkit.org/show_bug.cgi?id=301373
    rdar://161561780

    Reviewed by Ryosuke Niwa.

    This patch adds liveliness checks for dereferencing a WeakPtr
    in WebCore::DocumentThreadableLoader.
    Previously the `m_document` `WeakPtr` was dereferenced by calling
    the `document()` or `protectedDocument()` member functions.

    Since it's possible for the `WeakPtr` `m_document` to be null, we
    should add checks before dereferencing it to avoid hitting
    a RELEASE_ASSERT in `WeakPtr`'s * operator. To ensure that
    m_document is kept alive after performing the null check,
    we convert it to a `RefPtr`.

    * Source/WebCore/loader/CrossOriginPreflightChecker.cpp:
    (WebCore::CrossOriginPreflightChecker::validatePreflightResponse):
    (WebCore::CrossOriginPreflightChecker::notifyFinished):
    (WebCore::CrossOriginPreflightChecker::startPreflight):
    (WebCore::CrossOriginPreflightChecker::doPreflight):
    * Source/WebCore/loader/DocumentThreadableLoader.cpp:
    (WebCore::DocumentThreadableLoader::shouldSetHTTPHeadersToKeep const):
    (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
    (WebCore::DocumentThreadableLoader::cancel):
    (WebCore::DocumentThreadableLoader::didReceiveResponse):
    (WebCore::DocumentThreadableLoader::didFail):
    (WebCore::DocumentThreadableLoader::preflightFailure):
    (WebCore::DocumentThreadableLoader::loadRequest):
    (WebCore::DocumentThreadableLoader::securityOrigin const):
    (WebCore::DocumentThreadableLoader::topOrigin const):
    (WebCore::DocumentThreadableLoader::contentSecurityPolicy const):
    (WebCore::DocumentThreadableLoader::crossOriginEmbedderPolicy const):
    (WebCore::DocumentThreadableLoader::logErrorAndFail):
    (WebCore::DocumentThreadableLoader::protectedDocument): Deleted.
    * Source/WebCore/loader/DocumentThreadableLoader.h:
    (WebCore::DocumentThreadableLoader::document): Deleted.

    Identifier: 301765.317@safari-7623-branch

    Identifier: 305413.89@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.265@webkitglib/2.52


  Commit: d9f1c30056c57860cddcb3e1032074ab6b6a1c79
      
https://github.com/WebKit/WebKit/commit/d9f1c30056c57860cddcb3e1032074ab6b6a1c79
  Author: Brandon Stewart <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebCore/Modules/compression/ZStream.cpp
    M Source/WebCore/Modules/compression/ZStream.h

  Log Message:
  -----------
  Cherry-pick 301765.318@safari-7623-branch (f0c4a925385f). 
https://bugs.webkit.org/show_bug.cgi?id=302216

    ZStream: deflateEnd() called after inflateInit2() via DecompressionStream → 
invalid free (UB/crash)
    https://bugs.webkit.org/show_bug.cgi?id=302216
    rdar://164363410

    Reviewed by Chris Dumez.

    Ensure that we properly select inflateEnd vs deflateEnd when closing a 
stream.

    No new test because I was not able to get this to crash locally, but it is 
the correct fix.

    * Source/WebCore/Modules/compression/ZStream.cpp:
    (WebCore::ZStream::initializeIfNecessary):
    (WebCore::ZStream::~ZStream):
    * Source/WebCore/Modules/compression/ZStream.h:

    Identifier: 301765.318@safari-7623-branch

    Identifier: 305413.113@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.266@webkitglib/2.52


  Commit: f31f79e95f7be8912e7fdca09dea4b344b33c30c
      
https://github.com/WebKit/WebKit/commit/f31f79e95f7be8912e7fdca09dea4b344b33c30c
  Author: Timothy Hatcher <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebCore/dom/Element.cpp

  Log Message:
  -----------
  Cherry-pick 305413.117@safari-7624-branch (a1d9944acf9d). 
https://bugs.webkit.org/show_bug.cgi?id=306036

    REGRESSION(305413.31@safari-7624-branch): Broke 
editing/pasteboard/img-srcset-copy-paste-canonicalization.html
    https://webkit.org/b/306036
    rdar://168512100

    Reviewed by Brian Weinstein.

    ResolveURLs::YesExcludingURLsForPrivacy was incorrectly not completing file 
URLs
    like ResolveURLs::Yes does. Drop the extra branch to match Yes.

    * LayoutTests/TestExpectations: Remove Failure exception.
    * Source/WebCore/dom/Element.cpp:
    (WebCore::Element::resolveURLStringIfNeeded const):

    Identifier: 305413.117@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.267@webkitglib/2.52


  Commit: 367bcdd137c5d9456df72254e41ce49e7d8b1848
      
https://github.com/WebKit/WebKit/commit/367bcdd137c5d9456df72254e41ce49e7d8b1848
  Author: Rupin Mittal <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebCore/page/Navigation.cpp
    M Tools/TestWebKitAPI/SourcesCocoa.txt
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    A Tools/TestWebKitAPI/Tests/WebKitCocoa/NavigationAPI.mm

  Log Message:
  -----------
  Cherry-pick 305413.125@safari-7624-branch (67e3366c7a2c). 
https://bugs.webkit.org/show_bug.cgi?id=306050

    [Navigation API] intercept() wrongly succeeds for cross-subdomain 
navigations
    https://bugs.webkit.org/show_bug.cgi?id=306050
    rdar://165690775

    Reviewed by Alex Christensen.

    Consider that we have two sites that differ in subdomain:
    1. page1.example.com
    2. page2.example.com

    If we navigate from page1 to page2, page1 should not be able to intercept 
the
    navigation because this is a cross-origin navigation. Our bug is that 
currently,
    the intercept succeeds.

    How it's supposed to work:

    One of the steps in firing a navigate event says:
    (Step 9 in 
https://html.spec.whatwg.org/multipage/nav-history-apis.html#inner-navigate-event-firing-algorithm)

    "If document can have its URL rewritten to destination's URL, and either
    destination's is same document is true or navigationType is not "traverse", 
then
    initialize event's canIntercept to true. Otherwise, initialize it to false."

    One of the steps for checking if the URL can be rewritten to destination's 
URL is:
    
(https://html.spec.whatwg.org/multipage/nav-history-apis.html#can-have-its-url-rewritten)

    "If targetURL and documentURL differ in their scheme, username, password, 
host,
    or port components, then return false."

    Our two URLs differ in host. so canIntercept should be set to false.

    Later on, when intercept() is called, it should fail because it's steps say:
    
(https://html.spec.whatwg.org/multipage/nav-history-apis.html#dom-navigateevent-intercept)

    "If this's canIntercept attribute was initialized to false, then throw a
    "SecurityError" DOMException."

    What's wrong:

    Our issue is that the "can-have-its-url-rewritten" check returns true, so
    canIntercept is set to true and later on the intercept succeeds. The check 
is
    implemented incorrectly. Instead of checking if the URLS differ in scheme,
    username, password, host, or port components, it simply does:

    bool isSameSite = documentOrigin->isSameSiteAs(targetOrigin);
    bool isSameOrigin = documentOrigin->isSameOriginAs(targetOrigin);
    if (!isSameSite && !isSameOrigin)
        return false;

    For our two URLs, isSameSite is true, so this check doesn't return false as 
it
    should. Also this check never compares the usernames and passwords. This 
means
    that not only does the cross-origin check fail in the case of URLs that 
differ by
    subdomain but it will also fail for URLs that differ in username and 
password.

    We fix this by changing to check to follow the spec. We also add new API 
tests for
    both the subdomain and username/password cases.

    * Source/WebCore/page/Navigation.cpp:
    (WebCore::documentCanHaveURLRewritten):
    * Tools/TestWebKitAPI/SourcesCocoa.txt:
    * Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/NavigationAPI.mm: Added.
    (TestWebKitAPI::TEST(NavigationAPI, InterceptFailsForDifferentSubdomain)):
    (TestWebKitAPI::TEST(NavigationAPI, 
InterceptFailsForDifferentUsernameAndPassword)):

    Identifier: 305413.125@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.268@webkitglib/2.52


  Commit: fce7de4c807dc806921edce189dffa5a739a5329
      
https://github.com/WebKit/WebKit/commit/fce7de4c807dc806921edce189dffa5a739a5329
  Author: Kai Tamkun <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A JSTests/wasm/stress/call-indirect-exceptions.js
    M Source/JavaScriptCore/llint/InPlaceInterpreter32_64.asm
    M Source/JavaScriptCore/llint/InPlaceInterpreter64.asm

  Log Message:
  -----------
  Cherry-pick 305413.149@safari-7624-branch (63358b77f417). 
https://bugs.webkit.org/show_bug.cgi?id=305148

    [JSC] Delay PC advancement until after operationCallMayThrow in IPInt
    https://bugs.webkit.org/show_bug.cgi?id=305148
    rdar://166602356

    Reviewed by Yusuke Suzuki.

    Currently, some IPInt instructions will advance the PC before invoking
    operationCallMayThrow. Because that invocation will save the call site 
index,
    this means that the call site index of the next instruction will be saved
    instead of the call site index of the instruction currently being executed.
    If the call does throw, it will then choose a handler based on the index of
    the next instruction. Therefore, it's necessary to move the PC advancement
    instructions past the invocation of operationCallMayThrow.

    An earlier iteration of this PR was reverted for accidental register 
clobbering
    on x86_64, which manifested as a crash. This version of the PR uses t3 (rcx)
    instead of t2 (rdx) to avoid clobbering one of the return values of the
    preceding calls.

    Test: JSTests/wasm/stress/call-indirect-exceptions.js

    * JSTests/wasm/stress/call-indirect-exceptions.js: Added.
    (async test): Tests that exceptions are properly handled.
    * Source/JavaScriptCore/llint/InPlaceInterpreter32_64.asm: Delay PC 
advancement
    * Source/JavaScriptCore/llint/InPlaceInterpreter64.asm: Delay PC advancement

    Identifier: 305413.149@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.269@webkitglib/2.52


  Commit: edce9ee6725347e4970cabd89b9715887f370e98
      
https://github.com/WebKit/WebKit/commit/edce9ee6725347e4970cabd89b9715887f370e98
  Author: David Kilzer <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebCore/workers/service/server/SWServer.cpp

  Log Message:
  -----------
  Cherry-pick 305413.160@safari-7624-branch (561472a83605). 
https://bugs.webkit.org/show_bug.cgi?id=305878

    Crash in SWServer::unregisterServiceWorkerClient() when client doesn't exist
    <https://bugs.webkit.org/show_bug.cgi?id=305878>
    <rdar://154918456>

    Reviewed by Youenn Fablet and Chris Dumez.

    A crash in SWServer::unregisterServiceWorkerClientInternal() occurred
    when clientRegistrableDomain was not found in
    m_clientsByRegistrableDomain.

    Fix this by adding an iterator check for end(), and skipping code that
    used the iterator when that was true.  We also add an iterator end()
    check in a second place in the same method.

    No test since this is a race condition with no known steps to reproduce.
    However, a similar crash was reproduced temporarily by adding code to
    call SWServer::unregisterServiceWorkerClient() twice.

    * Source/WebCore/workers/service/server/SWServer.cpp:
    (WebCore::SWServer::unregisterServiceWorkerClientInternal):
    - Add end() checks for iterators and skip code that assumed a match was
      found.
    (WebCore::SWServer::unregisterServiceWorkerClient):
    - Add comment that we're purposely calling
      unregisterServiceWorkerClientInternal() when the client identifier is
      not found in case maps get out-of-sync.

    Identifier: 305413.160@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.270@webkitglib/2.52


  Commit: a525b3aca074c553313c517ec51b7f5bc9d6f2e7
      
https://github.com/WebKit/WebKit/commit/a525b3aca074c553313c517ec51b7f5bc9d6f2e7
  Author: Vassili Bykov <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A JSTests/wasm/stress/resizable-buffer-grow-view-refresh.js
    M Source/JavaScriptCore/runtime/ArrayBuffer.cpp
    M Source/JavaScriptCore/runtime/JSArrayBufferView.h
    M Source/JavaScriptCore/runtime/JSArrayBufferViewInlines.h

  Log Message:
  -----------
  Cherry-pick 305413.190@safari-7624-branch (59c4a7a31ef6). 
https://bugs.webkit.org/show_bug.cgi?id=306136

    [JSC] Use-after-free after growing a resizable buffer on a WebAssembly 
memory
    https://bugs.webkit.org/show_bug.cgi?id=306136
    rdar://167095753

    Reviewed by Yijia Huang.

    This issue is related to earlier work on WebAssembly memory buffers. As 
part of that work, it became
    possible for an ArrayBuffer's underlying storage to change its location in 
memory as a result of
    growing. To deal with this change, two methods were introduced: 
ArrayBuffer::refreshAfterMemoryGrow
    and ArrayBufferContents::refreshAfterMemoryGrow. However:

    1. ArrayBufferContents::refreshAfterMemoryGrow does not update the m_data 
field, which is a direct
       pointer to the memory base.

    2. Refreshing array buffer objects is not enough because a 
JSArrayBufferView has its own direct
       pointer into the underlying buffer's data (m_vector).

    The patch makes the following changes to address this:

    * Source/JavaScriptCore/runtime/ArrayBuffer.cpp:
    (JSC::ArrayBuffer::refreshAfterWasmMemoryGrow):

    If the buffer location in memory changes as a result of growing,
    uses incoming references of the buffer to notify the existing views of the 
change.

    * Source/JavaScriptCore/runtime/ArrayBuffer.cpp:
    (JSC::ArrayBufferContents::refreshAfterWasmMemoryGrow):

    Properly updates the m_data field.

    * Source/JavaScriptCore/runtime/JSArrayBufferView.h:
    * Source/JavaScriptCore/runtime/JSArrayBufferViewInlines.h:

    A new method 'refreshVector' is added to be used by
    ArrayBuffer::refreshAfterWasmMemoryGrow.

    Test: JSTests/wasm/stress/resizable-buffer-grow-view-refresh.js
    Identifier: 305413.190@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.271@webkitglib/2.52


  Commit: c636d82549c48f5fe2b46a347be72a6f4b43c61f
      
https://github.com/WebKit/WebKit/commit/c636d82549c48f5fe2b46a347be72a6f4b43c61f
  Author: Kimmo Kinnunen <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
    M Source/WebCore/platform/graphics/GraphicsContextGLAttributes.h
    M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
    M Source/WebKit/Shared/WebGL.serialization.in

  Log Message:
  -----------
  Cherry-pick 305413.206@safari-7624-branch (d593ad8b45c3). 
https://bugs.webkit.org/show_bug.cgi?id=306323

    WebGL: GPUP should expose draft extension related extensions only if the 
setting is on
    https://bugs.webkit.org/show_bug.cgi?id=306323
    rdar://166537204

    Reviewed by Dan Glastonbury.

    Expose ANGLE extensions related to WebGL draft extensions only if
    the setting is on.

    Add the GraphicsContextGLAttributes.supportWebGLDraftExtensions property
    since that is what controls the GraphicsContextGLANGLE. Validate this
    property against the real settings.

    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
    * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:
    (WebCore::resolveGraphicsContextGLAttributes):
    (WebCore::WebGLRenderingContextBase::create):
    * Source/WebCore/platform/graphics/GraphicsContextGLAttributes.h:
    * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:
    (WebCore::GraphicsContextGLANGLE::initialize):
    * Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
    (WebKit::GPUConnectionToWebProcess::createGraphicsContextGL):
    * Source/WebKit/Shared/WebGL.serialization.in:

    Identifier: 305413.206@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.272@webkitglib/2.52


  Commit: 9704d447b5c5a07f352e28a9f5416cefdf04e542
      
https://github.com/WebKit/WebKit/commit/9704d447b5c5a07f352e28a9f5416cefdf04e542
  Author: Vassili Bykov <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/JavaScriptCore/wasm/js/WebAssemblyGCStructure.cpp

  Log Message:
  -----------
  Cherry-pick 305413.210@safari-7624-branch (f0eba4757433). 
https://bugs.webkit.org/show_bug.cgi?id=306479

    [JSC] `WebAssemblyGCStructureTypeDependencies::process` should traverse 
expanded types
    https://bugs.webkit.org/show_bug.cgi?id=306479
    rdar://165898811

    Reviewed by Yusuke Suzuki.

    The patch changes WebAssemblyGCStructureTypeDependencies::process so that 
the type added to the work
    list is the effective (expanded) type of a field. Without the patch, if the 
type is a Subtype, the
    effective type is not reached and never scanned for dependencies.

    Testing: not testable directly. The original steps to reproduce require a 
Debug+ASan build with a
    special diagnostic patch applied to StructParameterTypes::equal().

    Identifier: 305413.210@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.273@webkitglib/2.52


  Commit: 049c589878e343dfd13132abef2c9e709a929ee3
      
https://github.com/WebKit/WebKit/commit/049c589878e343dfd13132abef2c9e709a929ee3
  Author: David Kilzer <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M 
Source/ThirdParty/libwebrtc/Source/third_party/boringssl/src/include/openssl/asm_base.h

  Log Message:
  -----------
  Cherry-pick 305413.211@safari-7624-branch (718d5fa2ffc3). 
https://bugs.webkit.org/show_bug.cgi?id=306486

    [boringssl] Fix .note.gnu.property section emission on non-ELF platforms
    <https://bugs.webkit.org/show_bug.cgi?id=306486>
    <rdar://168952064>

    Reviewed by Matthew Finkel.

    Bug 303938 enabled PAC (return address signing) for boringssl by adding
    `-mbranch-protection=pac-ret+b-key` flags to ARM64 assembly files.  This
    caused a `.note.gnu.property` section to be emitted on all platforms,
    including Apple/Mach-O targets where it's invalid and caused crashes in
    ktrace/libtrace.

    The root cause is that boringssl's `asm_base.h` lacks an `__ELF__` guard
    around the `.note.gnu.property` section emission.

    No new tests since this change is not directly testable.

    * 
Source/ThirdParty/libwebrtc/Source/third_party/boringssl/src/include/openssl/asm_base.h:

    Identifier: 305413.211@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.274@webkitglib/2.52


  Commit: 9d819f2219f3c7cca40ed87f7557bd74efa3bcb5
      
https://github.com/WebKit/WebKit/commit/9d819f2219f3c7cca40ed87f7557bd74efa3bcb5
  Author: Kristian Monsen <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WTF/wtf/Vector.h

  Log Message:
  -----------
  Cherry-pick 305413.213@safari-7624-branch (51da13afbf99). 
https://bugs.webkit.org/show_bug.cgi?id=305884

    Upgrade vector.grow() assert to release assert
    https://bugs.webkit.org/show_bug.cgi?id=305884
    rdar://168546677

    Reviewed by Vitor Roriz and Alan Baradlay.

    Making the assert a RELEASE_ assert means it is always protecting the user.

    * Source/WTF/wtf/Vector.h:
    (WTF::Malloc>::growImpl):

    Identifier: 305413.213@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.275@webkitglib/2.52


  Commit: 925aee5b2cf4c8b6ae9abb24f74d7e2a4558704e
      
https://github.com/WebKit/WebKit/commit/925aee5b2cf4c8b6ae9abb24f74d7e2a4558704e
  Author: Yulun Wu <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A 
LayoutTests/fast/css3-text/css3-text-wrap/text-wrap-pretty-line-break-crash-6-expected.txt
    A 
LayoutTests/fast/css3-text/css3-text-wrap/text-wrap-pretty-line-break-crash-6.html
    M 
Source/WebCore/layout/formattingContexts/inline/InlineContentConstrainer.cpp

  Log Message:
  -----------
  Cherry-pick 305413.232@safari-7624-branch (551e424600a5). 
https://bugs.webkit.org/show_bug.cgi?id=306377

    d[text-wrap] Fix crash in text-wrap-pretty due to index type confusion
    https://bugs.webkit.org/show_bug.cgi?id=306377
    <rdar://168927397>

    Reviewed by Alan Baradlay.

    The text-wrap-pretty algorithm was storing indices into the 
breakOpportunities
    array in InlineItemPosition::index, but this field expects inline item 
indices.
    This type confusion caused out-of-bounds access when hyphenation created 
additional breaks.

    This patch fixes the crash by:
    1. Storing actual inline item indices (breakOpportunities[i]) instead of 
breakOpportunities
    array indices in state[].lineEnd
    2. Adding bounds checking before accessing m_inlineItemList
    3. Fixing unsigned integer underflow in hasEnoughItemsForNextLine check by 
rewriting the comparison to use addition instead of subtraction

    * 
LayoutTests/fast/css3-text/css3-text-wrap/text-wrap-pretty-line-break-crash-6-expected.txt:
 Added.
    * 
LayoutTests/fast/css3-text/css3-text-wrap/text-wrap-pretty-line-break-crash-6.html:
 Added.
    * 
Source/WebCore/layout/formattingContexts/inline/InlineContentConstrainer.cpp:
    (WebCore::Layout::InlineContentConstrainer::layoutSingleLineForPretty):
    (WebCore::Layout::InlineContentConstrainer::prettifyRange):

    Identifier: 305413.232@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.276@webkitglib/2.52


  Commit: f4fa0b616a94d3b610c363d66ccc84f56d1d14a7
      
https://github.com/WebKit/WebKit/commit/f4fa0b616a94d3b610c363d66ccc84f56d1d14a7
  Author: Vassili Bykov <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A JSTests/wasm/regress/wasm-tag-retains-reachable-types.js
    M Source/JavaScriptCore/wasm/WasmTag.h
    M Source/JavaScriptCore/wasm/WasmTypeDefinition.cpp
    M Source/JavaScriptCore/wasm/WasmTypeDefinition.h
    M Source/JavaScriptCore/wasm/js/WebAssemblyGCStructure.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyGCStructure.h

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

    [JSC] JSWebAssemblyTag should retain FunctionSignature types
    https://bugs.webkit.org/show_bug.cgi?id=306559
    rdar://168041308

    Reviewed by Marcus Plutowski.

    This problem is similar to the problem from a few months ago with 
WebAssemblyGCStructure not
    retaining all TypeDefinitions it depends on. That problem was fixed by 
introducing
    WebAssemblyGCStructureTypeDependencies which holds a transitive closure of 
all types reachable from
    a given root type (a StructType or ArrayType). It is retained by a 
WebAssemblyGCStructure to ensure
    all reachable TypeDefinitions stay alive for as long as the structure can 
reference them.

    This patch adapts WebAssemblyGCStructureTypeDependencies to also ensure 
that a Wasm::Tag retains all
    TypeDefinitions reachable from its 'm_type' (a FunctionSignature).

    Specifically:

    - WebAssemblyGCStructureTypeDependencies is moved from 
WebAssemblyGCStructure.h/.cpp to
      WasmTypeDefinition.h/.cpp and renamed WebAssemblyGCTypeDependencies.

    - The implementation is extended to traverse FunctionSignatures.

    - An instance of WebAssemblyGCTypeDependencies is created and stored by 
Wasm::Tag constructor to
      capture all TypeDefinitions reachable from the tag's function signature.

    Test: JSTests/wasm/regress/wasm-tag-retains-reachable-types.js
    Identifier: 305413.237@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.277@webkitglib/2.52


  Commit: bd533118036eda99636836957372976d01150555
      
https://github.com/WebKit/WebKit/commit/bd533118036eda99636836957372976d01150555
  Author: Per Arne Vollan <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp
    M Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h
    M Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp

  Log Message:
  -----------
  Cherry-pick 305413.239@safari-7624-branch (b87ed58db51b). 
https://bugs.webkit.org/show_bug.cgi?id=306827

    The WebContent process should not start local files loads for files it 
cannot access
    https://bugs.webkit.org/show_bug.cgi?id=306827
    rdar://168696983

    Reviewed by Chris Dumez.

    This will prevent local file loads from succeeding when the WebContent 
process does not have access to the file,
    but the Networking process does.

    * Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:
    
(WebKit::NetworkResourceLoadParameters::createSandboxExtensionHandlesIfNecessary):
    * Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.h:
    * Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
    (WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):

    Identifier: 305413.239@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.278@webkitglib/2.52


  Commit: 657ace3d28f57eb78accb153ff9ccc0a32f0c2ee
      
https://github.com/WebKit/WebKit/commit/657ace3d28f57eb78accb153ff9ccc0a32f0c2ee
  Author: Alex Christensen <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebCore/page/UserMessageHandler.cpp
    M Source/WebCore/page/UserMessageHandler.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm

  Log Message:
  -----------
  Cherry-pick 305413.250@safari-7624-branch (c4006ba4ad2a). 
https://bugs.webkit.org/show_bug.cgi?id=307014

    UserMessageHandler.postMessage should fail if called from another frame
    https://bugs.webkit.org/show_bug.cgi?id=307014
    rdar://168617144

    Reviewed by Chris Dumez.

    Before this fix, a reference to the UserMessageHandler can be stored 
outside the
    frame, then the frame can be navigated, then the stored reference can be 
used to
    post messages that appeared to come from the navigated frame.  This adds a 
restriction
    to make it so a UserMessageHandler can only be used by an origin that is 
the same
    as the frame's current origin.

    I considered an alternative solution where I just make sure the global 
objects are
    the same, but that would be more of a restriction than this, and it's 
normal for
    frames to be able to access and use each other's JS objects when they are 
in the same
    origin, and this change is less drastic of a change.

    Test: Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm

    * Source/WebCore/page/UserMessageHandler.cpp:
    (WebCore::passesSameOriginCheck):
    (WebCore::UserMessageHandler::postMessage):
    (WebCore::UserMessageHandler::postLegacySynchronousMessage):
    * Source/WebCore/page/UserMessageHandler.h:
    (WebCore::UserMessageHandler::descriptor const):
    (WebCore::UserMessageHandler::descriptor): Deleted.
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewEvaluateJavaScript.mm:
    (-[ScriptMessageHandlerThatShouldNotReceiveAnything 
userContentController:didReceiveScriptMessage:]):
    (TEST(WKWebView, MessageHandlerFromIframe)):

    Identifier: 305413.250@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.279@webkitglib/2.52


  Commit: a41e6bd278e306b9baeffa27e27967ae59808d02
      
https://github.com/WebKit/WebKit/commit/a41e6bd278e306b9baeffa27e27967ae59808d02
  Author: Shu-yu Guo <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/JavaScriptCore/dfg/DFGValueRepReductionPhase.cpp

  Log Message:
  -----------
  Cherry-pick 305413.251@safari-7624-branch (d2086e16a217). 
https://bugs.webkit.org/show_bug.cgi?id=306986

    [JSC] Escape MultiGetByOffset constants that aren't convertible to double
    https://bugs.webkit.org/show_bug.cgi?id=306986
    rdar://169245825

    Reviewed by Yusuke Suzuki.

    ValueRepReduction for doubles needs to eagerly convert constants in
    MultiGetByoffset cases to doubles. This patch escapes MultiGetByOffset
    constants that cannot be converted to doubles purely.

    * Source/JavaScriptCore/dfg/DFGValueRepReductionPhase.cpp:
    (JSC::DFG::ValueRepReductionPhase::convertValueRepsToUnboxed):

    Identifier: 305413.251@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.280@webkitglib/2.52


  Commit: db06e99e2bde09a0b624f20597431009e41ddc40
      
https://github.com/WebKit/WebKit/commit/db06e99e2bde09a0b624f20597431009e41ddc40
  Author: Zak Ridouh <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebCore/platform/graphics/Color.h

  Log Message:
  -----------
  Cherry-pick 305413.270@safari-7624-branch (ff676342841b). 
https://bugs.webkit.org/show_bug.cgi?id=306157

    [MTE] Harden `WebCore::Color` and `WebCore::Color::OutOfLineComponents` 
objects
    <https://bugs.webkit.org/show_bug.cgi?id=306157>
    <rdar://168435437>

    Reviewed by Darin Adler.

    `WebCore::Color` is made of a single field that contains flags in the upper 
bits
     and can eventually contain a pointer to an `OutOfLineComponents` as well.

    This compact pointer is untagged by libpas, so we should manually clear it
    to prevent any security issues if the Color object is Use After Free'd.

    * Source/WebCore/platform/graphics/Color.h:
    (WebCore::Color::~Color):

    Identifier: 305413.270@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.281@webkitglib/2.52


  Commit: 85d66aa6fc6ad69d9ac1c5f70e8716e691c7eb87
      
https://github.com/WebKit/WebKit/commit/85d66aa6fc6ad69d9ac1c5f70e8716e691c7eb87
  Author: Frédéric Wang <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A 
LayoutTests/fast/pdf-plugin-destruction-dispatches-print-event-crash-expected.txt
    A LayoutTests/fast/pdf-plugin-destruction-dispatches-print-event-crash.html
    M Source/WebCore/loader/DocumentLoader.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (308756637681). 
https://bugs.webkit.org/show_bug.cgi?id=303411

    [WebKit][Main+SU] [fdae418b9cd3d6ba] WK_SEC | 
WebCore::EventTarget::fireEventListeners; 
WebCore::LocalDOMWindow::dispatchEvent; WebCore::dispatchPrintEvent
    https://bugs.webkit.org/show_bug.cgi?id=303411

    Reviewed by Ryosuke Niwa.

    Document::updateStyleIfNeeded() forbids script execution in main thread
    by creating a ScriptDisallowedScope. However, it can also trigger the
    destruction of a PluginView, which may end up dispatching a print event,
    triggering an assertion with security implication for
    ScriptDisallowedScope::isScriptAllowedInMainThread(). In order to avoid
    that issue, we ensure the print event is dispatched asynchronously.

    Test: fast/pdf-plugin-destruction-dispatches-print-event-crash.html

    * 
LayoutTests/fast/pdf-plugin-destruction-dispatches-print-event-crash-expected.txt:
 Added.
    * 
LayoutTests/fast/pdf-plugin-destruction-dispatches-print-event-crash.html: 
Added.
    * Source/WebCore/loader/DocumentLoader.cpp:
    (WebCore::DocumentLoader::removePlugInStreamLoader): Perform the load 
completion check asynchronously, so that we don't execute any script in this 
context.

    Canonical link: 
https://commits.webkit.org/[email protected]

    Identifier: 305413.282@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.282@webkitglib/2.52


  Commit: fa32d78c4b4110a26a387175f7cd01534bec2375
      
https://github.com/WebKit/WebKit/commit/fa32d78c4b4110a26a387175f7cd01534bec2375
  Author: Rob Buis <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A LayoutTests/fast/loader/navigate-on-pageswap-crash-expected.txt
    A LayoutTests/fast/loader/navigate-on-pageswap-crash.html
    M Source/WebCore/loader/FrameLoader.cpp
    M Source/WebCore/loader/FrameLoader.h
    M Source/WebCore/page/Navigation.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (7f4921b7e92c). 
https://bugs.webkit.org/show_bug.cgi?id=303364

    [WebKit][Main+SU] [3473ae787b8859f0] ASAN_SEGV | 
WebCore::DocumentLoader::urlForHistory; 
WebCore::HistoryController::updateForStandardLoad; 
WebCore::FrameLoader::transitionToCommitted
    https://bugs.webkit.org/show_bug.cgi?id=303364
    rdar://165387940

    Reviewed by Chris Dumez.

    The test shows a case where a reload that is transitioning to be committed
    can be interupted by a naigation.navigate during pageswap dispatching, which
    does a sync policy check and so can clear the provisional loader, causing
    a crash when executing the commitProvisionalLoad code after the pageswap 
event
    dispatch is done.

    To fix this abort the navigate when this gets detected.

    Test: fast/loader/navigate-on-pageswap-crash.html

    * LayoutTests/fast/loader/navigate-on-pageswap-crash-expected.txt: Added.
    * LayoutTests/fast/loader/navigate-on-pageswap-crash.html: Added.
    * Source/WebCore/loader/FrameLoader.cpp:
    (WebCore::FrameLoader::commitProvisionalLoad):
    * Source/WebCore/loader/FrameLoader.h:
    * Source/WebCore/page/Navigation.cpp:
    (WebCore::Navigation::navigate):

    Canonical link: 
https://commits.webkit.org/[email protected]

    Identifier: 305413.285@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.283@webkitglib/2.52


  Commit: 8f6129771db350d02260b257773ab4051bad8b8c
      
https://github.com/WebKit/WebKit/commit/8f6129771db350d02260b257773ab4051bad8b8c
  Author: Youenn Fablet <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M LayoutTests/http/tests/navigation/post-basic-expected.txt
    M LayoutTests/http/tests/navigation/post-frames-expected.txt
    M LayoutTests/http/tests/navigation/post-frames-goback1-expected.txt
    M LayoutTests/http/tests/navigation/post-goback1-expected.txt
    M LayoutTests/http/tests/navigation/resources/form-target.pl
    M 
LayoutTests/http/tests/security/contentSecurityPolicy/1.1/form-action-src-allowed-expected.txt
    M 
LayoutTests/http/tests/security/contentSecurityPolicy/1.1/form-action-src-default-ignored-expected.txt
    M 
LayoutTests/http/tests/security/contentSecurityPolicy/1.1/form-action-src-get-allowed-expected.txt
    M Source/WebCore/loader/cache/CachedResourceLoader.cpp

  Log Message:
  -----------
  Cherry-pick 305413.287@safari-7624-branch (41592221f73c). 
https://bugs.webkit.org/show_bug.cgi?id=303364

    ASSERTION FAILED: request.hasHTTPHeaderField(HTTPHeaderName::SecFetchDest)
    rdar://169836073

    Reviewed by Chris Dumez.

    In rdar://158416842, we made sure to reuse Sec-Fetch headers in case of 
form resubmission, which happens when reloading for instance 
(FrameLoader::reload).
    The other case where form resubmission happens is in 
FrameLoader::loadDifferentDocumentItem, where the request is recreated from 
scratch.
    In that case, there is no Sec-Fetch headers in the request, and we should 
populate those headers.
    We update shouldReuseExistingFetchMetadata to return false when there is no 
Sec-Fetch headers.
    We update a test to cover this change.

    Identifier: 305413.287@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.284@webkitglib/2.52


  Commit: 9ed75119d1b2f8e859ab7d86ccd0d4f5c7b80ab5
      
https://github.com/WebKit/WebKit/commit/9ed75119d1b2f8e859ab7d86ccd0d4f5c7b80ab5
  Author: Shu-yu Guo <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A 
JSTests/stress/growable-sharedarraybuffer-parallel-grow-during-prototype-methods.js
    M Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h

  Log Message:
  -----------
  Cherry-pick 305413.294@safari-7624-branch (17128d39f814). 
https://bugs.webkit.org/show_bug.cgi?id=307723

    [JSC] Snapshot span of TypedArrays in toSorted, toReversed, and with
    https://bugs.webkit.org/show_bug.cgi?id=307723
    rdar://170264253

    Reviewed by Mark Lam.

    The TypedArray.prototype.toSorted, toReversed, and with methods all create a
    new TA and copies from the original. This copying is currently done with a
    typedSpan(), which reads the TA's length. If the TA is backed by a growable
    SharedArrayBuffer, this typedSpan may have a different length than the copy 
as
    it may have grown in parallel. This PR fixes this by snapshotting the span
    ahead of the time.

    Test: 
JSTests/stress/growable-sharedarraybuffer-parallel-grow-during-prototype-methods.js

    * 
JSTests/stress/growable-sharedarraybuffer-parallel-grow-during-prototype-methods.js:
 Added.
    (round.agent.start.agent.receiveBroadcast):
    (round.i.catch):
    * Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h:
    (JSC::genericTypedArrayViewProtoFuncToReversed):
    (JSC::genericTypedArrayViewProtoFuncToSorted):
    (JSC::genericTypedArrayViewProtoFuncWith):

    Identifier: 305413.294@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.285@webkitglib/2.52


  Commit: a1326085f8fe95db95d6f27775b25c4115b1356d
      
https://github.com/WebKit/WebKit/commit/a1326085f8fe95db95d6f27775b25c4115b1356d
  Author: David Kilzer <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebKit/Shared/Extensions/WebExtensionUtilities.cpp
    M Source/WebKit/Shared/Extensions/WebExtensionUtilities.h
    M 
Source/WebKit/UIProcess/Extensions/API/WebExtensionContextAPIDeclarativeNetRequest.cpp
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm
    M 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm
    M 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIActionCocoa.mm
    M 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPICookiesCocoa.mm
    M 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDeclarativeNetRequestCocoa.mm
    M 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIMenusCocoa.mm
    M 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm
    M 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIScriptingCocoa.mm
    M 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPISidebarActionCocoa.mm
    M Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm
    M 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsCocoa.mm
    M 
Source/WebKit/WebProcess/Extensions/Cocoa/_WKWebExtensionWebNavigationURLFilter.mm
    M 
Source/WebKit/WebProcess/Extensions/Cocoa/_WKWebExtensionWebRequestFilter.mm

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

    Fix format string issue in WebExtension error handling
    <https://bugs.webkit.org/show_bug.cgi?id=307732>
    <rdar://146743429>

    Reviewed by Timothy Hatcher.

    Remove variadic formatting from `toErrorString()` entirely by changing
    the function signature to accept only fixed parameters and replacing all
    `formatString()` calls with safe `makeString()` concatenation.

    Covered by existing tests in 
Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebExtensionAPI*.mm.

    * Source/WebKit/Shared/Extensions/WebExtensionUtilities.cpp:
    (WebKit::toErrorString):
    * Source/WebKit/Shared/Extensions/WebExtensionUtilities.h:
    * 
Source/WebKit/UIProcess/Extensions/API/WebExtensionContextAPIDeclarativeNetRequest.cpp:
    (WebKit::WebExtensionContext::declarativeNetRequestUpdateEnabledRulesets):
    * 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIDeclarativeNetRequestCocoa.mm:
    (WebKit::WebExtensionContext::declarativeNetRequestGetEnabledRulesets):
    * 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIScriptingCocoa.mm:
    (WebKit::WebExtensionContext::scriptingGetRegisteredContentScripts):
    (WebKit::WebExtensionContext::scriptingRegisterContentScripts):
    (WebKit::WebExtensionContext::scriptingUnregisterContentScripts):
    (WebKit::WebExtensionContext::scriptingUpdateContentScripts):
    (WebKit::WebExtensionContext::scriptingRemoveCSS):
    (WebKit::WebExtensionContext::scriptingInsertCSS):
    (WebKit::WebExtensionContext::scriptingExecuteScript):
    * 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPITabsCocoa.mm:
    (WebKit::WebExtensionContext::tabsUpdate):
    (WebKit::WebExtensionContext::tabsReload):
    * 
Source/WebKit/UIProcess/Extensions/Cocoa/API/WebExtensionContextAPIWindowsCocoa.mm:
    (WebKit::WebExtensionContext::windowsUpdate):
    * 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIActionCocoa.mm:
    (WebKit::WebExtensionAPIAction::parseActionDetails):
    * 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPICookiesCocoa.mm:
    (WebKit::WebExtensionAPICookies::get):
    * 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDeclarativeNetRequestCocoa.mm:
    (WebKit::WebExtensionAPIDeclarativeNetRequest::updateEnabledRulesets):
    (WebKit::WebExtensionAPIDeclarativeNetRequest::getEnabledRulesets):
    (WebKit::WebExtensionAPIDeclarativeNetRequest::updateSessionRules):
    (WebKit::WebExtensionAPIDeclarativeNetRequest::getSessionRules):
    * 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIDevToolsInspectedWindowCocoa.mm:
    (WebKit::WebExtensionAPIDevToolsInspectedWindow::eval):
    * 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIMenusCocoa.mm:
    (WebKit::WebExtensionAPIMenus::parseMenuProperties):
    (WebKit::WebExtensionAPIMenus::update):
    * 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIPermissionsCocoa.mm:
    (WebKit::WebExtensionAPIPermissions::request):
    * 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIScriptingCocoa.mm:
    (WebKit::WebExtensionAPIScripting::insertCSS):
    (WebKit::WebExtensionAPIScripting::removeCSS):
    (WebKit::WebExtensionAPIScripting::executeScript):
    (WebKit::WebExtensionAPIScripting::registerContentScripts):
    * 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPISidebarActionCocoa.mm:
    (WebKit::WebExtensionAPISidebarAction::parseActionDetails):
    (WebKit::WebExtensionAPISidebarAction::setTitle):
    (WebKit::WebExtensionAPISidebarAction::setIcon):
    (WebKit::WebExtensionAPISidebarAction::setPanel):
    * Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPITabsCocoa.mm:
    (WebKit::WebExtensionAPITabs::parseTabQueryOptions):
    (WebKit::WebExtensionAPITabs::parseTabCreateOptions):
    (WebKit::WebExtensionAPITabs::parseTabUpdateOptions):
    (WebKit::WebExtensionAPITabs::parseTabMoveOptions):
    (WebKit::WebExtensionAPITabs::parseTabReloadOptions):
    (WebKit::WebExtensionAPITabs::get):
    (WebKit::WebExtensionAPITabs::create):
    (WebKit::WebExtensionAPITabs::duplicate):
    (WebKit::WebExtensionAPITabs::query):
    (WebKit::WebExtensionAPITabs::update):
    (WebKit::WebExtensionAPITabs::move):
    (WebKit::WebExtensionAPITabs::reload):
    (WebKit::WebExtensionAPITabs::goBack):
    (WebKit::WebExtensionAPITabs::goForward):
    * 
Source/WebKit/WebProcess/Extensions/API/Cocoa/WebExtensionAPIWindowsCocoa.mm:
    (WebKit::WebExtensionAPIWindows::parseWindowCreateOptions):
    (WebKit::WebExtensionAPIWindows::parseWindowUpdateOptions):
    * 
Source/WebKit/WebProcess/Extensions/Cocoa/_WKWebExtensionWebNavigationURLFilter.mm:
    (-[_WKWebExtensionWebNavigationURLFilter 
_initWithDictionary:callingAPIName:]):
    (+[_WKWebExtensionWebNavigationURLFilter 
filtersWithArray:callingAPIName:outErrorMessage:]):
    * 
Source/WebKit/WebProcess/Extensions/Cocoa/_WKWebExtensionWebRequestFilter.mm:
    (-[_WKWebExtensionWebRequestFilter _initWithDictionary:callingAPIName:]):

    Identifier: 305413.295@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.286@webkitglib/2.52


  Commit: 54d37e2c5f5c1924a6d9d7d71c8224e0be05b348
      
https://github.com/WebKit/WebKit/commit/54d37e2c5f5c1924a6d9d7d71c8224e0be05b348
  Author: Shu-yu Guo <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A JSTests/wasm/stress/const-expr-evaluate-error-offset.js
    M Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmConstExprGenerator.h
    M Source/JavaScriptCore/wasm/WasmModuleInformation.h
    M Source/JavaScriptCore/wasm/WasmSectionParser.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp
    M Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.h

  Log Message:
  -----------
  Cherry-pick 305413.298@safari-7624-branch (248a2c0ce1cb). 
https://bugs.webkit.org/show_bug.cgi?id=307841

    [JSC] Save source offset for evaluating Wasm constant expressions
    https://bugs.webkit.org/show_bug.cgi?id=307841
    rdar://166778509

    Reviewed by Mark Lam.

    Constant expressions may throw exceptions during evaluation, which need the
    source offset. This PR saves the source offset until evaluation time so that
    errors can be thrown with the correct offset.

    Test: JSTests/wasm/stress/const-expr-evaluate-error-offset.js
    * JSTests/wasm/stress/const-expr-evaluate-error-offset.js: Added.
    (catch):
    (error.message.indexOf):
    * Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp:
    (JSC::Wasm::ConstExprGenerator::ConstExprGenerator):
    (JSC::Wasm::evaluateExtendedConstExpr):
    * Source/JavaScriptCore/wasm/WasmConstExprGenerator.h:
    * Source/JavaScriptCore/wasm/WasmModuleInformation.h:
    * Source/JavaScriptCore/wasm/WasmSectionParser.cpp:
    (JSC::Wasm::SectionParser::parseInitExpr):
    * Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:
    (JSC::WebAssemblyModuleRecord::evaluateConstantExpression):
    * Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.h:

    Identifier: 305413.298@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.287@webkitglib/2.52


  Commit: 6fed574d5bf8d27394cd55d38a6dd31181e395a2
      
https://github.com/WebKit/WebKit/commit/6fed574d5bf8d27394cd55d38a6dd31181e395a2
  Author: Jer Noble <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A LayoutTests/media/iframe-load-html-as-m2ts-expected.txt
    A LayoutTests/media/iframe-load-html-as-m2ts.html
    M Source/WebCore/dom/DOMImplementation.cpp
    M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm

  Log Message:
  -----------
  Cherry-pick 305413.302@safari-7624-branch (ee94245e338e). 
https://bugs.webkit.org/show_bug.cgi?id=305859

    Content served as video/mp2t can be loaded as html
    rdar://166121363
    https://bugs.webkit.org/show_bug.cgi?id=305859

    Reviewed by Eric Carlson.

    FrameLoader will ask whether content can be displayed by calling
    MIMETypeRegistry::canShowMIMEType(type) with the mime type provided
    by the network. Later, DOMImplementation will decide which type of
    document (HTMLDocument, MediaDocument, ImageDocument, etc.) to
    instantiate by asking MediaPlayer if the given mime is playable.
    However, a MSE media player can report supported MIME types which
    cannot be played as bare file URLs, which leads to the DOMImplementation
    creating a HTMLDocument for a non-playable media type.

    Rather than calling all the way to MediaPlayer, DOMImplementation
    should just use MIMETypeRegistry to decide which document type to
    instantiate. In addition to being more correct, this may even speed
    up document creation as it avoids a round-trip to the GPU process.

    Test: media/iframe-load-html-as-m2ts.html

    * LayoutTests/media/iframe-load-html-as-m2ts-expected.txt: Added.
    * LayoutTests/media/iframe-load-html-as-m2ts.html: Added.
    * Source/WebCore/dom/DOMImplementation.cpp:
    (WebCore::DOMImplementation::createDocument):
    * 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
    (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::getSupportedTypes):

    Identifier: 305413.302@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.288@webkitglib/2.52


  Commit: 437be7a446c2e3dab66f5e013396bbfa7733c4b9
      
https://github.com/WebKit/WebKit/commit/437be7a446c2e3dab66f5e013396bbfa7733c4b9
  Author: Ruthvik Konda <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A 
LayoutTests/ipc/mark-surfaces-volatile-during-prepare-for-display-expected.txt
    A LayoutTests/ipc/mark-surfaces-volatile-during-prepare-for-display.html
    M Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.h
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp

  Log Message:
  -----------
  Cherry-pick 305413.309@safari-7624-branch (939a2f7876f3). 
https://bugs.webkit.org/show_bug.cgi?id=307138

    Surfaces should not be marked volatile while preparing for display
    https://bugs.webkit.org/show_bug.cgi?id=307138
    rdar://167565825

    Reviewed by Kimmo Kinnunen.

    The WebProcess can send MarkSurfacesVolatile while prepareBufferForDisplay 
is still active on the GPU Process.
    This is semantically invalid.

    MarkSurfacesVolatile calls makeBuffersVolatile, which calls 
releaseGraphicsContext() on each image buffer — destroying the graphics
    context that prepareBufferForDisplay is actively using through m_context. 
This leads to a dangling reference.

    The only concerning path here is the 
makeBuffersVolatile()->releaseGraphicsContext() path.
    Since RemoteImageBufferGraphicsContext holds a strong reference to the 
context's ImageBuffer,
    other paths releasing the ImageBuffer and ImageBuffer destructor paths are 
not of concern.
    And WebProcess only local paths to releaseGraphicsContext() are also not of 
concern.

    To fix, we add a MESSAGE_CHECK to reject when markSurfacesVolatile is 
called while drawing is ongoing.

    Test: ipc/mark-surfaces-volatile-during-prepare-for-display.html

    * 
LayoutTests/ipc/mark-surfaces-volatile-during-prepare-for-display-expected.txt: 
Added.
    * LayoutTests/ipc/mark-surfaces-volatile-during-prepare-for-display.html: 
Added.
    * Source/WebKit/GPUProcess/graphics/RemoteImageBufferSet.h:
    (WebKit::RemoteImageBufferSet::isPreparingForDisplay const):
    * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
    (WebKit::RemoteRenderingBackend::markSurfacesVolatile):

    Identifier: 305413.309@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.289@webkitglib/2.52


  Commit: d585f651bf4c1f9b3723de29451ff308b1b8c268
      
https://github.com/WebKit/WebKit/commit/d585f651bf4c1f9b3723de29451ff308b1b8c268
  Author: Kristian Monsen <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp

  Log Message:
  -----------
  Cherry-pick 305413.312@safari-7624-branch (3b1d5b1637bb). 
https://bugs.webkit.org/show_bug.cgi?id=307843

    Disable remote display list rendering mode
    https://bugs.webkit.org/show_bug.cgi?id=307843
    rdar://169719630

    Reviewed by Said Abou-Hallawa.

    This fixes the bug by aborting with MESSAGE_CHECK if 
remoteSnapshottingEnabled is not true.

    Missing test infrastructure

    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
    * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
    (WebKit::RemoteRenderingBackend::createImageBuffer):

    Identifier: 305413.312@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.290@webkitglib/2.52


  Commit: a6eb7d4ff0c3402c9f5f64986c4983f760910085
      
https://github.com/WebKit/WebKit/commit/a6eb7d4ff0c3402c9f5f64986c4983f760910085
  Author: Kristian Monsen <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations
    M Source/WebCore/page/PageGroup.cpp

  Log Message:
  -----------
  Cherry-pick 305413.322@safari-7624-branch (6e48549c1cfa). 
https://bugs.webkit.org/show_bug.cgi?id=308104

    Use WeakHashSet::forEach to iterate over set where the iterator might be 
invalidated
    https://bugs.webkit.org/show_bug.cgi?id=308104
    rdar://170475145

    Reviewed by Geoffrey Garen and Chris Dumez.

    WeakHashSet::forEach handles invalidation internally

    This is pretty hard to reproduce, the testcase reproduces ~16% and takes 
~11 seconds

    * Source/WebCore/SaferCPPExpectations/UncountedLocalVarsCheckerExpectations:
    * Source/WebCore/page/PageGroup.cpp:
    (WebCore::PageGroup::captionPreferencesChanged):

    Identifier: 305413.322@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.291@webkitglib/2.52


  Commit: c5941bda7559977e7f70c4267750b45ff6dd319f
      
https://github.com/WebKit/WebKit/commit/c5941bda7559977e7f70c4267750b45ff6dd319f
  Author: Zak Ridouh <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WTF/wtf/StdLibExtras.h

  Log Message:
  -----------
  Cherry-pick 305413.323@safari-7624-branch (e8a1e7ae4c99). 
https://bugs.webkit.org/show_bug.cgi?id=306483

    secureMemsetSpan does not use memset_s, and is likely compiled out due to 
Dead Store Elimination
    <https://bugs.webkit.org/show_bug.cgi?id=306483>
    <rdar://problem/169132865>

    Reviewed by Darin Adler (OOPS\!).

    The secureMemsetSpan implementation introduced in 287670@main has two 
issues:

      1. It passes 3 arguments to memset_s, which actually takes 4 arguments.
         This shouldn't compile, but since we gate usage behind
         #ifdef __STDC_LIB_EXT1__ without the implementation defining that 
macro,
         the memset_s branch was never taken and we fell back to regular memset.

      2. The fallback to memset provides no security guarantees since compilers
         can optimize it away when the buffer is not subsequently read.

    Fix by:
      - Fixing the memset_s call to use the correct 4-argument signature

      - Replacing the insecure memset fallback with a volatile function pointer
        indirect call to memset, which prevents the compiler from recognizing
        the call as a dead store and optimizing it away

    The __STDC_LIB_EXT1__ configuration issue that also contributed to the
    memset_s branch never being taken will be addressed separately.

    * Source/WTF/wtf/StdLibExtras.h:
    (WTF::secureMemsetSpan):

    Identifier: 305413.323@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.292@webkitglib/2.52


  Commit: f55d208fed84c1cd46a87030e1066691cdcb3942
      
https://github.com/WebKit/WebKit/commit/f55d208fed84c1cd46a87030e1066691cdcb3942
  Author: Claudio Saavedra <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A 
LayoutTests/animations/animation-apply-pending-animation-crash-expected.txt
    A LayoutTests/animations/animation-apply-pending-animation-crash.html
    M Source/WebCore/animation/KeyframeEffect.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (2e52d07ce2b7). 
https://bugs.webkit.org/show_bug.cgi?id=306595

    [WebKit][Main+SU] [73e157cc9e45c104] ASAN_SEGV | 
WebCore::WebAnimation::currentTime; 
WebCore::KeyframeEffect::applyPendingAcceleratedActions; 
WebCore::KeyframeEffect::applyPendingAcceleratedActions
    https://bugs.webkit.org/show_bug.cgi?id=306595

    Reviewed by Antoine Quint.

    KeyframeEffect::applyPendingAcceleratedActions() can be called from an
    asynchronous micro task scheduled from KeyframeEffect::wasRemovedFromStack()
    and, while that method keeps a reference to the effect's animation, the 
lambda
    doesn't, so it's possible for the weak pointer that tracks it to become 
nullptr
    before it gets called. It's safer to check if there's still an animation
    before applying anything.

    Test: animations/animation-apply-pending-animation-crash.html

    * 
LayoutTests/animations/animation-apply-pending-animation-crash-expected.txt: 
Added.
    * LayoutTests/animations/animation-apply-pending-animation-crash.html: 
Added.
    * Source/WebCore/animation/KeyframeEffect.cpp:
    (WebCore::KeyframeEffect::applyPendingAcceleratedActions):

    Canonical link: https://commits.webkit.org/[email protected]

    Identifier: 305413.327@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.293@webkitglib/2.52


  Commit: 0cef62778770d052c2513923b2a70289d1272dce
      
https://github.com/WebKit/WebKit/commit/0cef62778770d052c2513923b2a70289d1272dce
  Author: Frédéric Wang <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/platform/glib/TestExpectations
    A 
LayoutTests/svg/dom/SVGGeometry-isPointInStroke-with-null-path-expected.txt
    A LayoutTests/svg/dom/SVGGeometry-isPointInStroke-with-null-path.html
    M Source/WebCore/rendering/svg/RenderSVGShape.cpp
    M Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (82934b97537c). 
https://bugs.webkit.org/show_bug.cgi?id=306154

    Crash in shapeDependentStrokeContains() via isPointInStroke()
    https://bugs.webkit.org/show_bug.cgi?id=306154

    Reviewed by Darin Adler.

    Ensure the path exists when calling the function with legacy and LSBE code
    from isPointInStroke() (which implies pointCoordinateSpace is
    LocalCoordinateSpace). This is similar to 
https://commits.webkit.org/292730@main

    Test: svg/dom/SVGGeometry-isPointInStroke-with-null-path.html

    * LayoutTests/TestExpectations: Skip the test because it hits an assertion 
failure.
    * LayoutTests/platform/glib/TestExpectations: Ditto.
    * 
LayoutTests/svg/dom/SVGGeometry-isPointInStroke-with-null-path-expected.txt: 
Added.
    * LayoutTests/svg/dom/SVGGeometry-isPointInStroke-with-null-path.html: 
Added.
    * Source/WebCore/rendering/svg/RenderSVGShape.cpp:
    (WebCore::RenderSVGShape::shapeDependentStrokeContains): Ensure path exists.
    * Source/WebCore/rendering/svg/legacy/LegacyRenderSVGShape.cpp:
    (WebCore::LegacyRenderSVGShape::shapeDependentStrokeContains): Ditto.

    Canonical link: https://commits.webkit.org/[email protected]

    Identifier: 305413.329@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.294@webkitglib/2.52


  Commit: 9b097940d49fd7b086629db51f6bc8f5dcee70b9
      
https://github.com/WebKit/WebKit/commit/9b097940d49fd7b086629db51f6bc8f5dcee70b9
  Author: Claudio Saavedra <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    A LayoutTests/fast/reflections/reflection-removed-crash-2-expected.txt
    A LayoutTests/fast/reflections/reflection-removed-crash-2.html
    M Source/WebCore/rendering/RenderLayer.cpp

  Log Message:
  -----------
  Cherry-pick [email protected] (218d25f508a7). 
https://bugs.webkit.org/show_bug.cgi?id=306841

    [WebKit][Main] [Fuzz Blocker] [e5518f91af2befa2] WK_SEC | 
WebCore::RenderLayerCompositor::repaintInCompositedAncestor; 
WebCore::RenderLayerCompositor::layerWillBeRemoved; 
WebCore::RenderLayer::removeChild
    https://bugs.webkit.org/show_bug.cgi?id=306841

    Reviewed by Simon Fraser.

    When a render layer that contains a reflection layer is deleted, we first
    remove that reflection layer. The code path for layer removal causes
    the layer to be repainted in its composited ancestor. However, when
    the compositor ancestor is the original layer that is being deleted,
    we are actually dealing with a layer that is in the process of destruction.

    In order to prevent this reentrancy, we can avoid going
    down RenderLayerCompositor::layerWillBeRemoved() if the layer being removed
    is a reflection layer, since this doesn't seem to be needed in reality (and
    all tests involving -webkit-reflect-box pass after this change).

    This bug was uncovered in main after 306315@main introduced a checked 
pointer
    for the compositedAncestor variable in 
RenderLayerCompositor::repaintInCompositedAncestor(),
    which fails an assertion when it goes out of scope, because the underlying
    RenderLayer is already in the process of destruction. This doesn't assert
    or crash before that change, but assuming that we don't want to take risks
    I prefer to land this change in embargoed instead so that it's backported
    wherever it's necessary before making this change public in main.

    Test: fast/reflections/reflection-removed-crash-2.html

    * LayoutTests/fast/reflections/reflection-removed-crash-2-expected.txt: 
Added.
    * LayoutTests/fast/reflections/reflection-removed-crash-2.html: Added.
    * Source/WebCore/rendering/RenderLayer.cpp:
    (WebCore::RenderLayer::removeChild):

    Canonical link: https://commits.webkit.org/[email protected]

    Identifier: 305413.330@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.295@webkitglib/2.52


  Commit: ea1297e174e82d37e0f7bef73518bb2aafdaae94
      
https://github.com/WebKit/WebKit/commit/ea1297e174e82d37e0f7bef73518bb2aafdaae94
  Author: Per Arne Vollan <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp
    M Source/WebKit/Shared/WebProcessCreationParameters.h
    M Source/WebKit/Shared/WebProcessCreationParameters.serialization.in
    M Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm
    M Source/WebKit/WebProcess/WebProcess.h
    M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

  Log Message:
  -----------
  Cherry-pick 305413.335@safari-7624-branch (00906723527a). 
https://bugs.webkit.org/show_bug.cgi?id=308348

    The WebContent process should not prevent local file loads where the 
Networking process has access by extension
    https://bugs.webkit.org/show_bug.cgi?id=308348
    rdar://170610201

    Reviewed by Chris Dumez.

    The UI process is granting the Networking process access to its temp 
directory. If the UI process is performing
    a load of a local file inside that directory, the WebContent process should 
not block it.

    * Source/WebKit/NetworkProcess/NetworkResourceLoadParameters.cpp:
    (WebKit::networkProcessHasAccessByExtensions):
    
(WebKit::NetworkResourceLoadParameters::createSandboxExtensionHandlesIfNecessary):
    * Source/WebKit/Shared/WebProcessCreationParameters.h:
    * Source/WebKit/Shared/WebProcessCreationParameters.serialization.in:
    * Source/WebKit/UIProcess/Cocoa/WebProcessPoolCocoa.mm:
    (WebKit::WebProcessPool::platformInitializeWebProcess):
    * Source/WebKit/WebProcess/WebProcess.h:
    * Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
    (WebKit::WebProcess::accessibilityFocusedUIElement):

    Identifier: 305413.335@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.296@webkitglib/2.52


  Commit: 8fdca82aba0e7f02a5999db8be9426ad0b9b14b0
      
https://github.com/WebKit/WebKit/commit/8fdca82aba0e7f02a5999db8be9426ad0b9b14b0
  Author: Rupin Mittal <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebKit/UIProcess/API/APINavigationResponse.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm

  Log Message:
  -----------
  Cherry-pick 305413.338@safari-7624-branch (816b1f464d4d). 
https://bugs.webkit.org/show_bug.cgi?id=308396

    Download Prompt Origin Spoofing via Back-Forward Navigation
    https://bugs.webkit.org/show_bug.cgi?id=308396
    rdar://153668219

    Reviewed by Brady Eidson.

    When a navigation occurs, WebKit calls the delegate function:
    webView:decidePolicyForNavigationResponse:decisionHandler: and passes in a
    WKNavigationResponse object. The client may use the 
_navigationInitiatingFrame
    property to show which triggered this Navigation (or is requesting a 
download)

    In the case where the navigation is started as a result of a back-forward
    navigation, WebKit currently says the initiating frame is the frame that
    is currently displayed in the WebView that is on the screen. Which means
    the following sequence of events is possible:

    1. Navigate to site1.com
    2. Navigate to site2.com
    3. Go back <--- somehow this starts a download
                    (maybe a malicicous script intervenes)
    4. A prompt may show saying that "site2.com wants to start a download"

    But site2 did not start the download. This message is misleading.

    We fix this by ensuring that in a back-forward navigation, the initiating
    frame information is empty, rather than being the information of the site
    currently displayed in the WebView.

    A second scenario is also possible:

    1. Navigate to site1.com
    2. User types in site2.com to navigate there <--- somehow starting a 
download
                                                      (maybe a malicicous 
script intervenes)
    3. A prompt may show saying that "site1.com wants to start a download"

    Again, the download should not be attributed to site1.

    We make the same change here--for a client initiated navigation, the
    initiating frame information is empty, rather than being the information of
    the site currently displayed in the WebView.

    This is tested by two new API tests.

    A similar fix was made in https://commits.webkit.org/298732@main

    * Source/WebKit/UIProcess/API/APINavigationResponse.cpp:
    (API::NavigationResponse::navigationInitiatingFrame):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
    (TEST(Navigation, NavigationInitiatingFrameInGoBackNavigation)):
    (TEST(Navigation, NavigationInitiatingFrameInClientInputNavigation)):

    Identifier: 305413.338@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.297@webkitglib/2.52


  Commit: 3e59292b95de1c22169fc939999ddd84d746319e
      
https://github.com/WebKit/WebKit/commit/3e59292b95de1c22169fc939999ddd84d746319e
  Author: Zak Ridouh <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.cpp

  Log Message:
  -----------
  Cherry-pick 305413.340@safari-7624-branch (035f36c175f9). 
https://bugs.webkit.org/show_bug.cgi?id=308248

    Copy the glyph buffer in RemoteGraphicsContext::drawGlyphs
    <https://bugs.webkit.org/show_bug.cgi?id=308248>
    <rdar://169563888>

    Reviewed by Simon Fraser.

    Copy the glyph buffer in RemoteGraphicsContext::drawGlyphs

    Slight variant of Kimmo's patch, using inline vector capacity to attempt
    clawing back some performance impact when copying the buffer.

    No new tests.

    * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContext.cpp:
    (WebKit::RemoteGraphicsContext::drawGlyphs):

    Identifier: 305413.340@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.298@webkitglib/2.52


  Commit: 01069bf242f419c2b8138bf335f85cf2bff035f9
      
https://github.com/WebKit/WebKit/commit/01069bf242f419c2b8138bf335f85cf2bff035f9
  Author: Kimmo Kinnunen <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WebCore/html/canvas/WebGL2RenderingContext.cpp
    M Source/WebCore/html/canvas/WebGLProgram.cpp
    M Source/WebCore/html/canvas/WebGLProgram.h
    M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
    M Source/WebCore/platform/graphics/GraphicsContextGL.h
    M Source/WebCore/platform/graphics/GraphicsContextGLActiveInfo.h
    M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp
    M Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h
    M Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in
    M 
Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.cpp
    M 
Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/Shared/WebGL.serialization.in
    M Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h
    M 
Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp
    M Tools/Scripts/generate-gpup-webgl

  Log Message:
  -----------
  Cherry-pick 65c9777a8d88. https://bugs.webkit.org/show_bug.cgi?id=300784

    REGRESSION (301944@main): nio.com: car configurator is failing to render
    rdar://171253212

    Reviewed by Cameron McCormack.

    Revert WebGL parts of 301944@main.
    Keep CString std::string utilities part of the change.

    * Source/WebCore/html/canvas/WebGL2RenderingContext.cpp:
    (WebCore::WebGL2RenderingContext::getTransformFeedbackVarying):
    (WebCore::WebGL2RenderingContext::getUniformIndices):
    (WebCore::WebGL2RenderingContext::getActiveUniforms):
    (WebCore::WebGL2RenderingContext::getActiveUniformBlockName):
    * Source/WebCore/html/canvas/WebGLProgram.cpp:
    (WebCore::WebGLProgram::getLinkStatus):
    (WebCore::WebGLProgram::increaseLinkCount):
    (WebCore::WebGLProgram::cacheInfoIfNeeded):
    (WebCore::WebGLProgram::linkStatus): Deleted.
    (WebCore::WebGLProgram::activeAttribs): Deleted.
    (WebCore::WebGLProgram::attribLocations): Deleted.
    (WebCore::WebGLProgram::activeUniforms): Deleted.
    (WebCore::WebGLProgram::uniformLocations): Deleted.
    (WebCore::WebGLProgram::uniformIndices): Deleted.
    (WebCore::WebGLProgram::requiredTransformFeedbackBufferCount): Deleted.
    * Source/WebCore/html/canvas/WebGLProgram.h:
    * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:
    (WebCore::WebGLRenderingContextBase::getActiveAttrib):
    (WebCore::WebGLRenderingContextBase::getActiveUniform):
    (WebCore::WebGLRenderingContextBase::getAttribLocation):
    (WebCore::WebGLRenderingContextBase::getProgramParameter):
    (WebCore::WebGLRenderingContextBase::getUniform):
    (WebCore::WebGLRenderingContextBase::getUniformLocation):
    (WebCore::WebGLRenderingContextBase::useProgram):
    * Source/WebCore/platform/graphics/GraphicsContextGL.h:
    * Source/WebCore/platform/graphics/GraphicsContextGLActiveInfo.h:
    (): Deleted.
    * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp:
    (WebCore::GraphicsContextGLANGLE::getActiveUniforms):
    (WebCore::GraphicsContextGLANGLE::getActiveAttrib):
    (WebCore::GraphicsContextGLANGLE::getActiveUniform):
    (WebCore::GraphicsContextGLANGLE::getAttribLocation):
    (WebCore::GraphicsContextGLANGLE::getUniformLocation):
    (WebCore::GraphicsContextGLANGLE::getTransformFeedbackVarying):
    (WebCore::GraphicsContextGLANGLE::getUniformIndices):
    (WebCore::GraphicsContextGLANGLE::activeAttribs): Deleted.
    (WebCore::GraphicsContextGLANGLE::activeUniforms): Deleted.
    * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h:
    * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in:
    * 
Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.cpp:
    (WebKit::RemoteGraphicsContextGL::getActiveAttrib):
    (WebKit::RemoteGraphicsContextGL::getActiveUniform):
    (WebKit::RemoteGraphicsContextGL::getAttribLocation):
    (WebKit::RemoteGraphicsContextGL::getUniformLocation):
    (WebKit::RemoteGraphicsContextGL::getTransformFeedbackVarying):
    (WebKit::RemoteGraphicsContextGL::getUniformIndices):
    (WebKit::RemoteGraphicsContextGL::getActiveUniforms):
    (WebKit::RemoteGraphicsContextGL::activeAttribs): Deleted.
    (WebKit::RemoteGraphicsContextGL::activeUniforms): Deleted.
    * 
Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h:
    * Source/WebKit/Scripts/webkit/messages.py:
    (headers_for_type):
    * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
    * Source/WebKit/Shared/WebGL.serialization.in:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h:
    * 
Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp:
    (WebKit::RemoteGraphicsContextGLProxy::getActiveAttrib):
    (WebKit::RemoteGraphicsContextGLProxy::getActiveUniform):
    (WebKit::RemoteGraphicsContextGLProxy::getAttribLocation):
    (WebKit::RemoteGraphicsContextGLProxy::getUniformLocation):
    (WebKit::RemoteGraphicsContextGLProxy::getTransformFeedbackVarying):
    (WebKit::RemoteGraphicsContextGLProxy::getUniformIndices):
    (WebKit::RemoteGraphicsContextGLProxy::getActiveUniforms):
    (WebKit::RemoteGraphicsContextGLProxy::activeAttribs): Deleted.
    (WebKit::RemoteGraphicsContextGLProxy::activeUniforms): Deleted.
    * Tools/Scripts/generate-gpup-webgl:
    (main):

    Identifier: 305413.388@safari-7624-branch

    Canonical link: 
https://commits.webkit.org/[email protected]

Canonical link: https://commits.webkit.org/305877.299@webkitglib/2.52


  Commit: d7dcbe103d420677525cc8e88e00cd20e432d737
      
https://github.com/WebKit/WebKit/commit/d7dcbe103d420677525cc8e88e00cd20e432d737
  Author: Zak Ridouh <[email protected]>
  Date:   2026-03-25 (Wed, 25 Mar 2026)

  Changed paths:
    M Source/WTF/wtf/CompactRefPtrTuple.h

  Log Message:
  -----------
  Cherry-pick 305413.284@safari-7624-branch (705b81865328). 
https://bugs.webkit.org/show_bug.cgi?id=306357

    [MTE] Harden WebCore::ThreadTimerHeapItem and WTF::CompactPointerTuple
    <https://bugs.webkit.org/show_bug.cgi?id=306357>
    <rdar://168524490>

    Reviewed by Darin Adler.

    With MTE tagging currently unable to tag compact ptrs, we need to manually 
clear the memory to mitigate any MTE bypasses.

    Do this on WTF::CompactRefPtrTuple to protect WebCore::ThreadTimerHeapItem 
and related subclasses that use this type.

    * Source/WTF/wtf/CompactRefPtrTuple.h:

    Identifier: 305413.284@safari-7624-branch

Canonical link: https://commits.webkit.org/305877.300@webkitglib/2.52


Compare: https://github.com/WebKit/WebKit/compare/cd22f398cfae...d7dcbe103d42

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

Reply via email to