Branch: refs/heads/webkitglib/2.50
  Home:   https://github.com/WebKit/WebKit
  Commit: f0c49d1d0f19c7eeae8ce242bf598ae3cebc1a52
      
https://github.com/WebKit/WebKit/commit/f0c49d1d0f19c7eeae8ce242bf598ae3cebc1a52
  Author: Youenn Fablet <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    M Source/WebCore/loader/cache/CachedResourceLoader.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm

  Log Message:
  -----------
  Cherry-pick 301765.328@safari-7623-branch (00c47cad6649). 
https://bugs.webkit.org/show_bug.cgi?id=278659

    Safari allows CSRF by resetting the Sec-Fetch-Site header on refresh
    rdar://158416842

    Reviewed by Chris Dumez.

    In case of form resubmition, we were recomputing Sec-Fetch-Site and friends 
from the destination origin, which was wrong.
    Instead, given we already computed the Sec headers, we reuse them when 
resubmitting a form.

    Test: Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm
    * Source/WebCore/loader/cache/CachedResourceLoader.cpp:
    (WebCore::shouldReuseExistingFetchMetadata):
    (WebCore::shouldUpdateFetchMetadata):
    (WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/Navigation.mm:
    (TEST(Navigation, FormResubmited)):

    Identifier: 301765.328@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.446@webkitglib/2.50


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

  Changed paths:
    M JSTests/stress/regexp-duplicate-named-captures.js
    M Source/JavaScriptCore/yarr/YarrInterpreter.cpp
    M Source/JavaScriptCore/yarr/YarrJIT.cpp
    M Source/JavaScriptCore/yarr/YarrPattern.cpp
    M Source/JavaScriptCore/yarr/YarrPattern.h

  Log Message:
  -----------
  Cherry-pick 301765.330@safari-7623-branch (3b3f8ae21a23). 
https://bugs.webkit.org/show_bug.cgi?id=302560

    [JSC] Distinguish named and numbered backreferences in Yarr
    https://bugs.webkit.org/show_bug.cgi?id=302560
    rdar://164402403

    Reviewed by Keith Miller.

    The duplicate named capture group feature added the ability to have 
duplicate
    capture group names so long as they're in different disjuncts. The 
semantics is
    to check if any of the capture groups with the same name matched.  There 
can be
    a maximum of one match as they are restricted to different disjuncts. In 
this
    case, Yarr mints a special "duplicated named groups group" id along with an
    indirection table that can check if any of the groups with the same name
    matched.

    Currently both named and numbered backreferences are compiled to the same
    PatternTerm and ByteTerm type, with named capture groups resolved to the
    numbers. If the capture group number is part of a duplicated name groups 
group,
    the special id is used instead.

    The problem is that that duplicated named group resolution is done even when
    the backreference was explicitly numbered. That is, in 
/(?<k>...)|(?<k>...\1)/,
    \1 is supposed to refer to the first parentheses, but ends up referring to 
both
    disjuncts. As shown in this example, this can be recursive!

    This recursion can manifest as out of bounds when doing backtracking, 
because
    you can end up matching a group of size N, match a disjunct of size M, then
    backtrack expecting to undo size N, but end up rewinding size M.

    This PR fixes this issue by distinguishing numbered and named backreference
    PatternTerms, and only performing the duplicate named group logic for named
    backreferences.

    A new test function is added to regexp-duplicate-named-capture.js

    Identifier: 301765.330@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.447@webkitglib/2.50


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

  Changed paths:
    A LayoutTests/workers/worker-set-delete-terminate-crash-expected.txt
    A LayoutTests/workers/worker-set-delete-terminate-crash.html
    M Source/JavaScriptCore/runtime/OrderedHashTableHelper.h

  Log Message:
  -----------
  Cherry-pick 301765.357@safari-7623-branch (eccc2eed44f9). 
https://bugs.webkit.org/show_bug.cgi?id=303658

    [JSC] Modifying storage in OrderedHashTableHelper should 
DeferTerminationForAWhile
    https://bugs.webkit.org/show_bug.cgi?id=303658
    rdar://162356649

    Reviewed by Keith Miller.

    When resizing storage in OrderedHashTableHelper (via addImpl or 
shinkIfNeeded),
    it's possible to leave the storage in an inconsistent state if we handle a
    termination exception. For consistency, we should DeferTerminationForAWhile
    until the storage has been fully updated.

    Test: workers/worker-set-delete-terminate-crash.html

    * LayoutTests/workers/worker-set-delete-terminate-crash-expected.txt: Added.
    * LayoutTests/workers/worker-set-delete-terminate-crash.html: Added.
    * Source/JavaScriptCore/runtime/OrderedHashTableHelper.h:
    (JSC::OrderedHashTableHelper::addImpl):
    (JSC::OrderedHashTableHelper::shrinkIfNeeded):

    Identifier: 301765.357@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.448@webkitglib/2.50


  Commit: 651ac71c62e521569634ef365572775997437cdb
      
https://github.com/WebKit/WebKit/commit/651ac71c62e521569634ef365572775997437cdb
  Author: Jer Noble <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    M Source/WebCore/platform/audio/AudioResamplerKernel.cpp

  Log Message:
  -----------
  Cherry-pick 301765.369@safari-7623-branch (ee36b92f6f9f). 
https://bugs.webkit.org/show_bug.cgi?id=303959

    Integer underflow in AudioResamplerKernel::getSourceSpan()
    rdar://162552376
    https://bugs.webkit.org/show_bug.cgi?id=303959

    Reviewed by Eric Carlson.

    Protect against underflows when calculating the number of
    source frames needed using WTF::safeSub().

    * Source/WebCore/platform/audio/AudioResamplerKernel.cpp:
    (WebCore::AudioResamplerKernel::getSourceSpan):

    Identifier: 301765.369@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.449@webkitglib/2.50


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

  Changed paths:
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp

  Log Message:
  -----------
  Cherry-pick 301765.371@safari-7623-branch (167074a8e936). 
https://bugs.webkit.org/show_bug.cgi?id=304032

    [JSC] Store float instead of double for F32 in OMG tail calls
    https://bugs.webkit.org/show_bug.cgi?id=304032
    rdar://166285942

    Reviewed by Dan Hecht and Mark Lam.

    F32 and F64 were both doing a double store when spilling in OMG tail calls,
    while F32 should be doing a float store to avoid writing out of bounds of 
the
    spill slot.

    No test as cannot reliably and observably test this temporary stack 
corruption.

    Identifier: 301765.371@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.450@webkitglib/2.50


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

  Changed paths:
    A JSTests/wasm/gc/validate-unreachable-unset-local.js
    M Source/JavaScriptCore/wasm/WasmFunctionParser.h

  Log Message:
  -----------
  Cherry-pick 301765.372@safari-7623-branch (e2b2223e8a58). 
https://bugs.webkit.org/show_bug.cgi?id=304086

    [JSC] Fix Wasm validation of unreachable locals
    https://bugs.webkit.org/show_bug.cgi?id=304086
    rdar://166283484

    Reviewed by Dan Hecht.

    WebAssembly requires non-defaultable locals (i.e. locals with non-nullable 
ref
    types) to be set before they're used by local.get. Current implementation
    incorrectly performs this validation in the case the local.get/set are
    unreachable. While initialization is tracked in such unreachable local
    instructions, the locals stack is not correctly reset at control flow merge
    points. This PR resets the stack at such points.

    Test: JSTests/wasm/gc/validate-unreachable-unset-local.js
    Identifier: 301765.372@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.451@webkitglib/2.50


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

  Changed paths:
    A LayoutTests/fast/forms/onformdata-navigate-crash-expected.txt
    A LayoutTests/fast/forms/onformdata-navigate-crash.html
    M Source/WebCore/html/HTMLFormElement.cpp
    M Source/WebCore/loader/FormSubmission.cpp
    M Source/WebCore/loader/FormSubmission.h

  Log Message:
  -----------
  Cherry-pick 301765.373@safari-7623-branch (1acabe11a6b0). 
https://bugs.webkit.org/show_bug.cgi?id=301645

    [WebKit][Main+SU] [ea2e11e05711c082] ASAN_ILL | WebCore::FormState::create; 
WebCore::FormSubmission::create; WebCore::HTMLFormElement::submit
    https://bugs.webkit.org/show_bug.cgi?id=301645
    rdar://163480500

    Reviewed by Chris Dumez.

    When constructing FormSubmission the formdata event is dispatched. When 
combined
    with the Navigation API the event handling can cause the document frame to 
be
    detached, triggering a release assert in the FormState constructor. To fix 
this
    detect the frame removal after dispatching and end the submit operation 
early.

    * LayoutTests/fast/forms/onformdata-navigate-crash-expected.txt: Added.
    * LayoutTests/fast/forms/onformdata-navigate-crash.html: Added.
    * Source/WebCore/html/HTMLFormElement.cpp:
    (WebCore::HTMLFormElement::submit):
    * Source/WebCore/loader/FormSubmission.cpp:
    (WebCore::FormSubmission::create):
    * Source/WebCore/loader/FormSubmission.h:

    Canonical link: https://commits.webkit.org/[email protected]
    Identifier: 301765.373@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.452@webkitglib/2.50


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

  Changed paths:
    A 
LayoutTests/fast/webcodecs/resetting-audio-decoder-with-unsupported-codec-crash-expected.txt
    A 
LayoutTests/fast/webcodecs/resetting-audio-decoder-with-unsupported-codec-crash.html
    A 
LayoutTests/fast/webcodecs/resetting-audio-encoder-with-unsupported-codec-crash-expected.txt
    A 
LayoutTests/fast/webcodecs/resetting-audio-encoder-with-unsupported-codec-crash.html
    A 
LayoutTests/fast/webcodecs/resetting-video-decoder-with-unsupported-codec-crash-expected.txt
    A 
LayoutTests/fast/webcodecs/resetting-video-decoder-with-unsupported-codec-crash.html
    A 
LayoutTests/fast/webcodecs/resetting-video-encoder-with-unsupported-codec-crash-expected.txt
    A 
LayoutTests/fast/webcodecs/resetting-video-encoder-with-unsupported-codec-crash.html
    M Source/WebCore/Modules/webcodecs/WebCodecsAudioDecoder.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsAudioEncoder.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsBase.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.cpp

  Log Message:
  -----------
  Cherry-pick 301765.374@safari-7623-branch (13f8cb5f9bd5). 
https://bugs.webkit.org/show_bug.cgi?id=300958

    ASAN_SEGV | WebCore::JSCallbackData::invokeCallback; 
WebCore::JSWebCodecsErrorCallback::invoke; 
WebCore::WebCodecsVideoDecoder::closeDecoder
    https://bugs.webkit.org/show_bug.cgi?id=300958

    Reviewed by Youenn Fablet.

    When calling configure() on a webcodec with an unsupported config,
    postTaskToCodec() is called to "queue a task to run the Close
    AudioDecoder algorithm with NotSupportedError" as per
    https://www.w3.org/TR/webcodecs.

    If reset() is called before that task in dequeued, then the codec state
    becomes Unconfigured and WebCodecsBase::virtualHasPendingActivity() no
    longer ensures the JS wrapper stay alive, potentially causing a nullptr
    crash when trying to execute the associated error callback:

    ```
    bool WebCodecsBase::virtualHasPendingActivity() const
    {
     return m_state == WebCodecsCodecState::Configured && 
(m_codecControlMessagesPending || m_isMessageQueueBlocked);
    }
    ```

    This patch removes the assumption that the codec state must be
    Configured in order to keep the JS wrapper alive and that addresses the
    nullptr crash here. It makes sure that virtualHasPendingActivity()
    would eventually be reset to false though.

    Tests: 
fast/webcodecs/resetting-audio-decoder-with-unsupported-codec-crash.html
           
fast/webcodecs/resetting-audio-encoder-with-unsupported-codec-crash.html
           
fast/webcodecs/resetting-video-decoder-with-unsupported-codec-crash.html
           
fast/webcodecs/resetting-video-encoder-with-unsupported-codec-crash.html
    * 
LayoutTests/fast/webcodecs/resetting-audio-decoder-with-unsupported-codec-crash-expected.txt:
 Added.
    * 
LayoutTests/fast/webcodecs/resetting-audio-decoder-with-unsupported-codec-crash.html:
 Added.
    * 
LayoutTests/fast/webcodecs/resetting-audio-encoder-with-unsupported-codec-crash-expected.txt:
 Added.
    * 
LayoutTests/fast/webcodecs/resetting-audio-encoder-with-unsupported-codec-crash.html:
 Added.
    * 
LayoutTests/fast/webcodecs/resetting-video-decoder-with-unsupported-codec-crash-expected.txt:
 Added.
    * 
LayoutTests/fast/webcodecs/resetting-video-decoder-with-unsupported-codec-crash.html:
 Added.
    * 
LayoutTests/fast/webcodecs/resetting-video-encoder-with-unsupported-codec-crash-expected.txt:
 Added.
    * 
LayoutTests/fast/webcodecs/resetting-video-encoder-with-unsupported-codec-crash.html:
 Added.
    * Source/WebCore/Modules/webcodecs/WebCodecsBase.cpp:
    (WebCore::WebCodecsBase::virtualHasPendingActivity const): Don't release 
the codec when it's not in configured state.
    * Source/WebCore/Modules/webcodecs/WebCodecsAudioDecoder.cpp:
    (WebCore::WebCodecsAudioDecoder::configure): Ensure we clear 
m_isMessageQueueBlocked when done.
    * Source/WebCore/Modules/webcodecs/WebCodecsAudioEncoder.cpp:
    (WebCore::WebCodecsAudioEncoder::configure): Ditto.
    * Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp:
    (WebCore::WebCodecsVideoDecoder::configure): Ditto.
    * Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.cpp:
    (WebCore::WebCodecsVideoEncoder::configure): Ditto.

    Canonical link: https://commits.webkit.org/[email protected]
    Identifier: 301765.374@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.453@webkitglib/2.50


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

  Changed paths:
    A LayoutTests/fast/rendering/collapsed-scrollbar-crash-expected.txt
    A LayoutTests/fast/rendering/collapsed-scrollbar-crash.html
    M Source/WebCore/rendering/RenderElement.h
    M Source/WebCore/rendering/RenderScrollbarPart.h

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

    [WebKit][Main+SU] [292b7257c3a80358] ASAN_SEGV | 
WebCore::RenderBox::localRectsForRepaint; 
WebCore::RenderObject::clippedOverflowRect; 
WebCore::RenderObject::repaintSlowRepaintObject
    https://bugs.webkit.org/show_bug.cgi?id=302377

    Reviewed by Simon Fraser.

    RenderScrollbarPart doesn't have an enclosing layer,
    so we can short-circuit the check in RenderElement
    and return false always.

    Test: fast/rendering/collapsed-scrollbar-crash.html

    * LayoutTests/fast/rendering/collapsed-scrollbar-crash-expected.txt: Added.
    * LayoutTests/fast/rendering/collapsed-scrollbar-crash.html: Added.
    * Source/WebCore/rendering/RenderElement.h:
    * Source/WebCore/rendering/RenderScrollbarPart.h:

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

    Identifier: 301765.379@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.454@webkitglib/2.50


  Commit: 5c8079d5cd3894b8be2fcb58a89f0e752eabe42b
      
https://github.com/WebKit/WebKit/commit/5c8079d5cd3894b8be2fcb58a89f0e752eabe42b
  Author: Youenn Fablet <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    M 
Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encoder.h

  Log Message:
  -----------
  Cherry-pick 301765.383@safari-7623-branch (9d4b06b7a57c). 
https://bugs.webkit.org/show_bug.cgi?id=302377

    Potential 'out of bounds' issue committed to upstream libwebrtc
    rdar://166200109

    Reviewed by Chris Dumez.

    Cherry-picking of 
https://github.com/webmproject/libvpx/commit/d6e5cd7132d59d3cea86d06c9aae26f95fe00adb.

    Identifier: 301765.383@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.455@webkitglib/2.50


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

  Changed paths:
    A 
LayoutTests/fast/css-grid-layout/subgrid-with-changing-writing-mode-crash-expected.txt
    A 
LayoutTests/fast/css-grid-layout/subgrid-with-changing-writing-mode-crash.html
    M Source/WebCore/rendering/RenderGrid.cpp

  Log Message:
  -----------
  Cherry-pick 301765.380@safari-7623-branch (3c710b2a33ae). 
https://bugs.webkit.org/show_bug.cgi?id=301640

    [WebKit][Main+SU] [80bcc69aeb72643f] ASAN_ILL | 
WebCore::GridTrackSizingAlgorithm::copyUsedTrackSizesForSubgrid; 
WebCore::GridTrackSizingAlgorithm::run; WebCore::RenderGrid::layoutGrid
    https://bugs.webkit.org/show_bug.cgi?id=301640

    Reviewed by Sammy Gill.

    When the writing mode of a grid changes orthogonally, there might
    be incongruences in how parent and subgrid tracks relate. This needs
    to be taken into account so that later the track sizing algorithm can
    try to copy the track sizes for its subgrid. If the writing mode direction
     has changed during a style change for a grid, call setNeedsItemPlacement()
    for subgrid children.

    Test: fast/css-grid-layout/subgrid-with-changing-writing-mode-crash.html

    * 
LayoutTests/fast/css-grid-layout/subgrid-with-changing-writing-mode-crash-expected.txt:
 Added.
    * 
LayoutTests/fast/css-grid-layout/subgrid-with-changing-writing-mode-crash.html: 
Added.
    * Source/WebCore/rendering/RenderGrid.cpp:
    (WebCore::RenderGrid::styleDidChange):

    Canonical link: https://commits.webkit.org/[email protected]
    Identifier: 301765.380@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.456@webkitglib/2.50


  Commit: 1cb1de2cf3d91ce00d5876506677034f7e467f93
      
https://github.com/WebKit/WebKit/commit/1cb1de2cf3d91ce00d5876506677034f7e467f93
  Author: Yijia Huang <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    A JSTests/stress/map-forEach.js
    M Source/JavaScriptCore/dfg/DFGNodeType.h

  Log Message:
  -----------
  Cherry-pick 301765.392@safari-7623-branch (47b55468bf82). 
https://bugs.webkit.org/show_bug.cgi?id=304950

    [JSC] MapIterationEntryKey should have NodeResultJS, not NodeResultInt32
    https://bugs.webkit.org/show_bug.cgi?id=304950
    rdar://167200795

    Reviewed by Marcus Plutowski.

    MapIterationEntryKey returns arbitrary JSValues (map keys can be any type),
    so it should be declared with NodeResultJS to match MapIterationEntryValue.

    Test: JSTests/stress/map-forEach.js
    Identifier: 301765.392@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.457@webkitglib/2.50


  Commit: ae0ad782eb71a36addb49a1af984b93e0b8e3740
      
https://github.com/WebKit/WebKit/commit/ae0ad782eb71a36addb49a1af984b93e0b8e3740
  Author: Ryosuke Niwa <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    M Source/WebCore/xml/XMLSerializer.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm

  Log Message:
  -----------
  Cherry-pick 301765.396@safari-7623-branch (f6a3e33e70aa). 
https://bugs.webkit.org/show_bug.cgi?id=305020

    XMLSerializer.serializeToString leaks URLs used by web extensions
    https://bugs.webkit.org/show_bug.cgi?id=305020
    <rdar://165629762>

    Reviewed by Chris Dumez and Wenson Hsieh.

    Fix the bug by masking out custom scheme URLs in XMLSerializer.

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

    * Source/WebCore/xml/XMLSerializer.cpp:
    (WebCore::XMLSerializer::serializeToString):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewConfiguration.mm:
    (TEST(WebKit, ConfigurationMaskedURLSchemes)):

    Identifier: 301765.396@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.458@webkitglib/2.50


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

  Changed paths:
    A JSTests/stress/object-assign-inline-storage.js
    M Source/JavaScriptCore/runtime/ObjectConstructorInlines.h

  Log Message:
  -----------
  Cherry-pick 301765.401@safari-7623-branch (dabdca54351d). 
https://bugs.webkit.org/show_bug.cgi?id=305020

    Don't attempt to copy nonexistent inline storage in fast object cloning
    rdar://167110652

    Reviewed by Yusuke Suzuki.

    This prevents an attempt to access inline storage in Object.assign when
    there is no inline storage to copy.

    Added a test that crashed with an assertion failure in debug mode
    before these changes.

    * JSTests/stress/object-assign-inline-storage.js: Added.
    (shouldBe):
    (C):
    * Source/JavaScriptCore/runtime/ObjectConstructorInlines.h:
    (JSC::checkStructureForClone): Renamed from checkStrucureForClone.
    (JSC::objectCloneFast): Add a check for inline storage presence.
    (JSC::tryCreateObjectViaCloning): Updated an invocation name.
    (JSC::checkStrucureForClone): Renamed to checkStructureForClone.

    Identifier: 301765.401@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.459@webkitglib/2.50


  Commit: b7bc506b0ba86841fd3c983bb021e5b7ae4c610e
      
https://github.com/WebKit/WebKit/commit/b7bc506b0ba86841fd3c983bb021e5b7ae4c610e
  Author: Anand Srinivasan <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    A JSTests/stress/dfg-miscompiles-new-regexp.js
    M Source/JavaScriptCore/dfg/DFGOperations.cpp

  Log Message:
  -----------
  Cherry-pick 301765.415@safari-7623-branch (4175b9cec24d). 
https://bugs.webkit.org/show_bug.cgi?id=305161

    operationNewRegExpUntyped should call constructRegExp with a newTarget
    https://bugs.webkit.org/show_bug.cgi?id=305161
    rdar://167199047

    Reviewed by Mark Lam.

    If the RegExp constructor is invoked using "new" then it must have a
    valid newTarget, but not if it is invoked as a function call
    ("RegExp(...)" vs. "new RegExp(...)"). This patch updates DFG to
    follow the specification correctly, since previously the code did not
    pass in a newTarget to the RegExp constructor.

    operationNewRegExpUntyped() is only called for the NewRegExpUntyped DFG 
node.
    NewRegExpUntyped is only emitted by the bytecode parser if newTargetNode != 
callTargetNode.
    Hence, the newTarget value that should be passes is the callTargetNode i.e. 
the RegExp constructor.

    See https://262.ecma-international.org/#sec-regexp-pattern-flags
    specifying what should be passed in newTarget.

    ```
    2. If NewTarget is undefined, then
      a. Let newTarget be the active function object.
    ```

    Test: JSTests/stress/dfg-miscompiles-new-regexp.js

    * JSTests/stress/dfg-miscompiles-new-regexp.js: Added.
    (opt):
    (main):
    * Source/JavaScriptCore/dfg/DFGOperations.cpp:
    (JSC::DFG::JSC_DEFINE_JIT_OPERATION):

    Identifier: 301765.415@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.460@webkitglib/2.50


  Commit: b8a4658a67dbd7c8c56ffbbd1044a1215f74895a
      
https://github.com/WebKit/WebKit/commit/b8a4658a67dbd7c8c56ffbbd1044a1215f74895a
  Author: Gerald Squelart <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  -----------
  Cherry-pick 301765.416@safari-7623-branch (7c8da3f7f913). 
https://bugs.webkit.org/show_bug.cgi?id=305033

    Catch multiplication overflow in bytesPerRow() validator
    https://bugs.webkit.org/show_bug.cgi?id=305033
    rdar://167621238

    Reviewed by Dan Glastonbury.

    The multiplication `m_size->width() * *bytesPerPixel` could overflow
    into a negative number, allowing the validation to pass for very large
    widths.
    Fixed by using `WTF::safeMultiply`, which checks for overflows relative
    to the result type.

    * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

    Identifier: 301765.416@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.461@webkitglib/2.50


  Commit: a5ad2d0327993d3714d70081b3ce9308ac0b3d75
      
https://github.com/WebKit/WebKit/commit/a5ad2d0327993d3714d70081b3ce9308ac0b3d75
  Author: Tim Horton <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    A 
LayoutTests/http/tests/scroll-to-text-fragment/dynamic-content-is-found-expected.txt
    A 
LayoutTests/http/tests/scroll-to-text-fragment/dynamic-content-is-found.html
    M Source/WebCore/dom/FragmentDirectiveUtilities.cpp
    M Source/WebCore/dom/FragmentDirectiveUtilities.h
    M Source/WebCore/page/LocalFrameView.cpp
    M Source/WebCore/page/LocalFrameView.h

  Log Message:
  -----------
  Cherry-pick 300918@main (e4e149e651c9). 
https://bugs.webkit.org/show_bug.cgi?id=300059

    bsky.app: No highlight when navigating to text fragment link generated by 
Safari
    https://bugs.webkit.org/show_bug.cgi?id=300059
    rdar://150880542

    Reviewed by Abrar Rahman Protyasha.

    When we successfully parse a text fragment out of the URL, but fail to find
    the referenced content, start a 500ms repeating timer, and re-try finding
    the content each time it fires, up to 3 seconds, or when the user scrolls, 
or
    the content is found, whichever comes first.

    New test: http/tests/scroll-to-text-fragment/dynamic-content-is-found.html

    * Source/WebCore/dom/FragmentDirectiveUtilities.cpp:
    (WebCore::operator<<):
    * Source/WebCore/dom/FragmentDirectiveUtilities.h:
    Add overloads to dump parsed text fragments, for ease of debugging.

    * Source/WebCore/page/LocalFrameView.cpp:
    (WebCore::LocalFrameView::LocalFrameView):
    (WebCore::LocalFrameView::reset):
    (WebCore::LocalFrameView::scrollToFragment):
    Factor scrollToTextFragment out of scrollToFragment to make the flow a bit 
more clear.

    (WebCore::LocalFrameView::scrollToTextFragment):
    Invert the logic to be early-return-y.
    When we fail, start the retry timer, with the rules explained above.

    (WebCore::LocalFrameView::scrollToTextFragmentRetryTimerFired):
    Retry the scroll when the timer fires.

    (WebCore::LocalFrameView::scrollToAnchorFragment):
    Rename this from scrollToFragmentInternal to scrollToAnchorFragment to 
better explain
    which subset of the fragment scrolling mechanism it covers.

    
(WebCore::LocalFrameView::maintainScrollPositionAtScrollToTextFragmentRange):
    (WebCore::LocalFrameView::scrollToAnchorAndTextFragmentNowIfNeeded):
    (WebCore::LocalFrameView::scrollToPendingTextFragmentRange):
    Another clarity-related rename.

    (WebCore::LocalFrameView::scrollToFragmentInternal): Deleted.
    (WebCore::LocalFrameView::scrollToTextFragmentRange): Deleted.
    * Source/WebCore/page/LocalFrameView.h:

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

Canonical link: https://commits.webkit.org/298234.462@webkitglib/2.50


  Commit: 651b3b11a5851062b6d53ea1d462088a661c9121
      
https://github.com/WebKit/WebKit/commit/651b3b11a5851062b6d53ea1d462088a661c9121
  Author: Basuke Suzuki <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    A LayoutTests/http/tests/security/resources/page-with-text.html
    A 
LayoutTests/http/tests/security/text-fragment/popup-cross-origin-blocked-expected.txt
    A 
LayoutTests/http/tests/security/text-fragment/popup-cross-origin-blocked.html
    A 
LayoutTests/http/tests/security/text-fragment/popup-same-origin-allowed-expected.txt
    A 
LayoutTests/http/tests/security/text-fragment/popup-same-origin-allowed.html
    M Source/WebCore/page/LocalFrameView.cpp

  Log Message:
  -----------
  Cherry-pick 301765.417@safari-7623-branch (75bcb9f43cbe). 
https://bugs.webkit.org/show_bug.cgi?id=300059

    Block text fragments in cross-origin window.open() popups.
    rdar://163804356

    Reviewed by Chris Dumez.

    This implements a security defense against timing side-channel attacks
    using Text Fragments in cross-origin popups.

    The exploit pattern:
    w = window.open("attacker.com");
    w.location = "victim.com";
    w.location = "victim.com#:~:text=secret";
    w.location = "about:blank";
    // Measure timing to detect if text was found

    Defense mechanism:
    - Add checkTextFragmentSecurity() in LocalFrameView.cpp
    - Block text fragments when opener origin ≠ current document origin
    - Allow text fragments in same-origin popups (legitimate use)
    - Allow text fragments in top-level navigation (no opener)

    This aligns with Chrome's 2019 defense (commit c0d3c4cca8b16),
    which uses RelatedPages().size() check. WebKit uses a simpler
    cross-origin check that achieves the same security goal.

    The fix does not affect about:blank origin inheritance or WPT tests,
    as those don't use text fragments.

    Tests: http/tests/security/text-fragment/popup-cross-origin-blocked.html
           http/tests/security/text-fragment/popup-same-origin-allowed.html
    * LayoutTests/http/tests/security/resources/page-with-text.html: Added.
    * 
LayoutTests/http/tests/security/text-fragment/popup-cross-origin-blocked-expected.txt:
 Added.
    * 
LayoutTests/http/tests/security/text-fragment/popup-cross-origin-blocked.html: 
Added.
    * 
LayoutTests/http/tests/security/text-fragment/popup-same-origin-allowed-expected.txt:
 Added.
    * 
LayoutTests/http/tests/security/text-fragment/popup-same-origin-allowed.html: 
Added.
    * Source/WebCore/page/LocalFrameView.cpp:
    (WebCore::checkTextFragmentSecurity):
    (WebCore::LocalFrameView::scrollToTextFragment):

    Identifier: 301765.417@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.463@webkitglib/2.50


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

  Changed paths:
    A LayoutTests/svg/filters/filter-insert-button-crash-expected.txt
    A LayoutTests/svg/filters/filter-insert-button-crash.html
    M Source/WebCore/page/LocalFrameViewLayoutContext.cpp
    M Source/WebCore/page/LocalFrameViewLayoutContext.h
    M Source/WebCore/rendering/RenderObject.cpp
    M Source/WebCore/rendering/updating/RenderTreeBuilderInline.cpp

  Log Message:
  -----------
  Cherry-pick 301765.361@safari-7623-branch (e218dd58cf7e). 
https://bugs.webkit.org/show_bug.cgi?id=301140

      Cherry-pick [email protected] (6c8a256d475b). 
rdar://137178583

        [SVG] Don't repaint when referenced resources change if the renderer is 
not in-tree yet
        https://bugs.webkit.org/show_bug.cgi?id=301140
        rdar://137178583

        Reviewed by Alan Baradlay.

        When moving svg resources around it's possible to end up
        triggering a repaint before the renderer is in-tree. To
        fix that, add API for blocking repaints and start using that
        while in RenderTreeBuilder::Inline::splitFlow.

        Test: svg/filters/filter-insert-button-crash.html

        * LayoutTests/svg/filters/filter-insert-button-crash-expected.txt: 
Added.
        * LayoutTests/svg/filters/filter-insert-button-crash.html: Added.
        * Source/WebCore/page/LocalFrameViewLayoutContext.cpp:
        (WebCore::RepaintBlocker::RepaintBlocker):
        (WebCore::RepaintBlocker::~RepaintBlocker):
        * Source/WebCore/page/LocalFrameViewLayoutContext.h:
        * Source/WebCore/rendering/RenderObject.cpp:
        (WebCore::RenderObject::repaint const):
        * Source/WebCore/rendering/updating/RenderTreeBuilderInline.cpp:
        (WebCore::RenderTreeBuilder::Inline::splitFlow):

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

    Identifier: 301765.361@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.464@webkitglib/2.50


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

  Changed paths:
    A LayoutTests/highlight/highlight-crash-2-expected.txt
    A LayoutTests/highlight/highlight-crash-2.html
    M Source/WebCore/Modules/highlight/Highlight.cpp

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

    [WebKit][Main] [76d1bb47f067ac21] ASAN_SEGV | 
WebCore::Highlight::clearFromSetLike; WebCore::HighlightRegistry::clear; 
WebCore::Document::commonTeardown
    https://bugs.webkit.org/show_bug.cgi?id=304176

    Reviewed by Chris Dumez.

    With the right disposing order, it is possible to cause reentrancy to
    Highlight::clearFromSetLike(). This is due to the ownership relationship
    between 
Document->HighlightRegistry->Highlight->HighlightRange->Range->Document.

    The attached test shows an example of how to achieve this (a dangling 
document
    that is only attached to a Range gets disposed during another Document's 
disposing,
    causing a reentrant call to Highlight::clearFromSetLike()).

    Ensure Highlight::clearFromSetLike() is safely reentrant by exchanging
    Highlight::m_highlightRanges with an empty vector so that any potentially 
reentrant
    call is a no-op.

    Test: highlight/highlight-crash-2.html

    * LayoutTests/highlight/highlight-crash-2-expected.txt: Added.
    * LayoutTests/highlight/highlight-crash-2.html: Added.
    * Source/WebCore/Modules/highlight/Highlight.cpp:
    (WebCore::Highlight::clearFromSetLike):

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

    Identifier: 301765.424@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.465@webkitglib/2.50


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

  Changed paths:
    M Source/WebCore/Modules/highlight/Highlight.cpp

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

    [WebKit][Main] [76d1bb47f067ac21] ASAN_SEGV | 
WebCore::Highlight::clearFromSetLike; WebCore::HighlightRegistry::clear; 
WebCore::Document::commonTeardown
    https://bugs.webkit.org/show_bug.cgi?id=304176

    Reviewed by Chris Dumez.

    Follow-up after [email protected] to improve the bug fix.

    Covered by existing test.

    * Source/WebCore/Modules/highlight/Highlight.cpp:
    (WebCore::Highlight::clearFromSetLike):

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

    Identifier: 301765.426@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.466@webkitglib/2.50


  Commit: ed35da6a7a359a538d3e789e3d3891613881d838
      
https://github.com/WebKit/WebKit/commit/ed35da6a7a359a538d3e789e3d3891613881d838
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    A JSTests/stress/dfg-proto-fold-invalidate3.js
    M Source/JavaScriptCore/bytecode/GetByStatus.cpp

  Log Message:
  -----------
  Cherry-pick 744106342146. https://bugs.webkit.org/show_bug.cgi?id=305521

    [JSC] GetByStatus::computeFor has race condition around swapped object's 
structure checks
    https://bugs.webkit.org/show_bug.cgi?id=305521
    rdar://155413221

    Reviewed by Yijia Huang.

    Now ObjectPropertyCondition is propertly created. But it is possible
    that this finally registered ObjectPropertyCondition's structures are
    not having a proper condition we would like. We are obtainining objects
    from the condition and checking structure's characteristics.

    Test: JSTests/stress/dfg-proto-fold-invalidate3.js

    * JSTests/stress/dfg-proto-fold-invalidate3.js: Added.
    (shouldBe):
    (opt):
    (watchCalleeProperty):
    (async sleep):
    (createClonedArguments):
    (p):
    (async main):
    * Source/JavaScriptCore/bytecode/GetByStatus.cpp:
    (JSC::GetByStatus::computeFor):

    Identifier: 305413.33@safari-7624-branch

    Canonical link: https://commits.webkit.org/301765.428@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.467@webkitglib/2.50


  Commit: 85fae84d47ba553895ab867e87acbec636dbc224
      
https://github.com/WebKit/WebKit/commit/85fae84d47ba553895ab867e87acbec636dbc224
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    A JSTests/wasm/stress/ipint-variable-length-gc-opcodes.js
    M Source/JavaScriptCore/llint/InPlaceInterpreter64.asm
    M Source/JavaScriptCore/wasm/WasmBBQJIT.h
    M Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp
    M Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmFunctionParser.h
    M Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmIPIntGenerator.h
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp

  Log Message:
  -----------
  Cherry-pick 37d2b52a42b9. https://bugs.webkit.org/show_bug.cgi?id=305813

    [JSC] IPInt PC move should be recorded one for prefixed opcodes
    https://bugs.webkit.org/show_bug.cgi?id=305813
    rdar://168478682

    Reviewed by Keith Miller and Dan Hecht.

    Prefixed opcodes in IPInt (GC, SIMD, etc.) have subsequent sub-opcode to
    dispatch actual instruction. However this sub-opcode is encoded via
    VarUInt32 LEB. This means that opcode can have multiple different ways
    to be encoded (e.g. one value can be represeted via 2 byte, 3 byte,
    etc.). As a result, we should not use advancePC(constant) since
    instruction is variable-length. This patch fixes the issue using
    advancePC(constant).

    Test: JSTests/wasm/stress/ipint-variable-length-gc-opcodes.js

    * JSTests/wasm/stress/ipint-variable-length-gc-opcodes.js: Added.
    (createRedundantLEB128):
    (encodeVarUInt32):
    (testRefI31RedundantEncoding):
    (testI31GetRedundantEncoding):
    (testArrayLenRedundantEncoding):
    (testArrayFillRedundantEncoding):
    (testArrayCopyRedundantEncoding):
    (testExternAnyConvertRedundantEncoding):
    * Source/JavaScriptCore/llint/InPlaceInterpreter64.asm:
    * Source/JavaScriptCore/wasm/WasmBBQJIT.h:
    * Source/JavaScriptCore/wasm/WasmBBQJIT32_64.cpp:
    (JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDConstant):
    (JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDExtractLane):
    (JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDReplaceLane):
    (JSC::Wasm::BBQJITImpl::BBQJIT::addConstant): Deleted.
    (JSC::Wasm::BBQJITImpl::BBQJIT::addExtractLane): Deleted.
    (JSC::Wasm::BBQJITImpl::BBQJIT::addReplaceLane): Deleted.
    * Source/JavaScriptCore/wasm/WasmBBQJIT64.cpp:
    (JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDConstant):
    (JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDExtractLane):
    (JSC::Wasm::BBQJITImpl::BBQJIT::addSIMDReplaceLane):
    (JSC::Wasm::BBQJITImpl::BBQJIT::addConstant): Deleted.
    (JSC::Wasm::BBQJITImpl::BBQJIT::addExtractLane): Deleted.
    (JSC::Wasm::BBQJITImpl::BBQJIT::addReplaceLane): Deleted.
    * Source/JavaScriptCore/wasm/WasmConstExprGenerator.cpp:
    (JSC::Wasm::ConstExprGenerator::addSIMDConstant):
    * Source/JavaScriptCore/wasm/WasmFunctionParser.h:
    (JSC::Wasm::FunctionParser<Context>::simd):
    * Source/JavaScriptCore/wasm/WasmIPIntGenerator.cpp:
    (JSC::Wasm::IPIntGenerator::addSIMDSplat):
    (JSC::Wasm::IPIntGenerator::addSIMDShuffle):
    (JSC::Wasm::IPIntGenerator::addSIMDShift):
    (JSC::Wasm::IPIntGenerator::addSIMDExtmul):
    (JSC::Wasm::IPIntGenerator::addSIMDConstant):
    (JSC::Wasm::IPIntGenerator::addSIMDExtractLane):
    (JSC::Wasm::IPIntGenerator::addSIMDReplaceLane):
    (JSC::Wasm::IPIntGenerator::addSIMDI_V):
    (JSC::Wasm::IPIntGenerator::addSIMDV_V):
    (JSC::Wasm::IPIntGenerator::addSIMDBitwiseSelect):
    (JSC::Wasm::IPIntGenerator::addSIMDRelOp):
    (JSC::Wasm::IPIntGenerator::addSIMDV_VV):
    (JSC::Wasm::IPIntGenerator::addRefI31):
    (JSC::Wasm::IPIntGenerator::addI31GetS):
    (JSC::Wasm::IPIntGenerator::addI31GetU):
    (JSC::Wasm::IPIntGenerator::addArrayLen):
    (JSC::Wasm::IPIntGenerator::addArrayFill):
    (JSC::Wasm::IPIntGenerator::addArrayCopy):
    (JSC::Wasm::IPIntGenerator::addAnyConvertExtern):
    (JSC::Wasm::IPIntGenerator::addExternConvertAny):
    (JSC::Wasm::IPIntGenerator::addExtractLane): Deleted.
    (JSC::Wasm::IPIntGenerator::addReplaceLane): Deleted.
    * Source/JavaScriptCore/wasm/WasmIPIntGenerator.h:
    * Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:
    (JSC::Wasm::OMGIRGenerator::addSIMDConstant):
    (JSC::Wasm::OMGIRGenerator::addSIMDExtractLane):
    (JSC::Wasm::OMGIRGenerator::addSIMDReplaceLane):
    (JSC::Wasm::OMGIRGenerator::addExtractLane): Deleted.
    (JSC::Wasm::OMGIRGenerator::addReplaceLane): Deleted.
    * Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp:
    (JSC::Wasm::OMGIRGenerator::addSIMDConstant):
    (JSC::Wasm::OMGIRGenerator::addSIMDExtractLane):
    (JSC::Wasm::OMGIRGenerator::addSIMDReplaceLane):
    (JSC::Wasm::OMGIRGenerator::addExtractLane): Deleted.
    (JSC::Wasm::OMGIRGenerator::addReplaceLane): Deleted.

    Identifier: 301765.432@safari-7623-branch

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

Canonical link: https://commits.webkit.org/298234.468@webkitglib/2.50


  Commit: 46f817a61d5d4e5524972c8fec075ded85cf750f
      
https://github.com/WebKit/WebKit/commit/46f817a61d5d4e5524972c8fec075ded85cf750f
  Author: Chris Dumez <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    M Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.cpp

  Log Message:
  -----------
  Cherry-pick 301765.347@safari-7623-branch (fabe69c2dcb4). 
https://bugs.webkit.org/show_bug.cgi?id=303348

    Unsafe argument capture in EXTDisjointTimerQueryWebGL2::queryCounterEXT()
    https://bugs.webkit.org/show_bug.cgi?id=303348
    rdar://165125247

    Reviewed by Brent Fulgham.

    The lambda runs asynchronously and it is thus unsafe to capture by reference
    here. We need to capture a smart pointer to the query to make sure it is 
kept
    alive.

    * Source/WebCore/html/canvas/EXTDisjointTimerQueryWebGL2.cpp:
    (WebCore::EXTDisjointTimerQueryWebGL2::queryCounterEXT):

    Identifier: 301765.347@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.469@webkitglib/2.50


  Commit: a70ab2e560ecddc6d6fdf10e81333be43395579e
      
https://github.com/WebKit/WebKit/commit/a70ab2e560ecddc6d6fdf10e81333be43395579e
  Author: Matthew Finkel <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkSession.cpp
    M Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
    M 
Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.serialization.in
    M 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp
    M 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h
    M 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.cpp
    M 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.h
    M 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.cpp
    M 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.h
    M 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm
    M 
Source/WebKit/Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm
    M Source/WebKit/UIProcess/WebsiteData/soup/WebsiteDataStoreSoup.cpp

  Log Message:
  -----------
  Cherry-pick 22d708a2fd38. https://bugs.webkit.org/show_bug.cgi?id=305951

    [PCM] Connections for Private Click Measurement are not proxied
    https://bugs.webkit.org/show_bug.cgi?id=305951
    rdar://168552975

    Reviewed by Alex Christensen.

    This has a couple missing pieces. The expectation is that reports are sent 
via
    a proxied connection, and requests for fraud prevention key material is 
fetched
    over a proxied connection. Currently, these connections are not proxied 
because
    they are not:
      1) associated with the application bundle (e.g, Safari)
      2) considered "third party" resource requests

    This PR plumbs through the application bundle identifier or audit token,
    depending on which one is available, and it sets the request as a cross-site
    subresource request. As a safe guard, this patch also requires failing 
closed
    when the connection is not proxied.

    * Source/WebKit/NetworkProcess/NetworkSession.cpp:
    (WebKit::managerOrProxy):
    * 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:
    (WebKit::PrivateClickMeasurementManager::create):
    (WebKit::PrivateClickMeasurementManager::PrivateClickMeasurementManager):
    (WebKit::PrivateClickMeasurementManager::getTokenPublicKey):
    (WebKit::PrivateClickMeasurementManager::getSignedUnlinkableTokenForSource):
    
(WebKit::PrivateClickMeasurementManager::getSignedUnlinkableTokenForDestination):
    (WebKit::PrivateClickMeasurementManager::fireConversionRequestImpl):
    * 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.h:
    * 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.cpp:
    (WebKit::PCM::initializePCMStorageInDirectory):
    * 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManagerInterface.h:
    * 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.cpp:
    (WebKit::PCM::NetworkLoader::start):
    * 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementNetworkLoader.h:
    * 
Source/WebKit/NetworkProcess/PrivateClickMeasurement/cocoa/PrivateClickMeasurementNetworkLoaderCocoa.mm:
    (WebKit::PCM::statelessSessionWithoutRedirectsSingleton):
    (WebKit::PCM::NetworkLoader::start):
    * 
Source/WebKit/Shared/EntryPointUtilities/Cocoa/Daemon/PCMDaemonEntryPoint.mm:
    (WebKit::PCMDaemonMain):

    Identifier: 301765.433@safari-7623-branch
    (cherry picked from commit 22d708a2fd385c9649f4d2f1f96a1e2f76070649)

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

Canonical link: https://commits.webkit.org/298234.470@webkitglib/2.50


  Commit: 45ad4bc261feb61fb1bd54dde311e0fb7921e41d
      
https://github.com/WebKit/WebKit/commit/45ad4bc261feb61fb1bd54dde311e0fb7921e41d
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h
    M Source/JavaScriptCore/assembler/X86Assembler.h
    M Source/JavaScriptCore/assembler/testmasm.cpp
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp

  Log Message:
  -----------
  Cherry-pick 305087@main (2fe3a6e9c518). 
https://bugs.webkit.org/show_bug.cgi?id=304897

    [JSC] Allow same registers for src and dst in 
MacroAssemblerX86_64::negateDouble / negateFloat
    https://bugs.webkit.org/show_bug.cgi?id=304897
    rdar://167491947

    Reviewed by Sosuke Suzuki.

    Relax X86_64's negateDouble / negateFloat invariants. loadDouble /
    loadFloat are already using scratchRegister() so it is still requiring
    scratchRegister(), but by using _mr variant, we can avoid
    `ASSEERT(src != dst)` restriction. This simplifies BBQ implementations.

    Test: Source/JavaScriptCore/assembler/testmasm.cpp

    * Source/JavaScriptCore/assembler/MacroAssemblerX86_64.h:
    (JSC::MacroAssemblerX86_64::negateDouble):
    (JSC::MacroAssemblerX86_64::negateFloat):
    * Source/JavaScriptCore/assembler/X86Assembler.h:
    (JSC::X86Assembler::xorps_mr):
    (JSC::X86Assembler::xorpd_mr):
    (JSC::X86Assembler::vxorps_mrr):
    (JSC::X86Assembler::vxorpd_mrr):
    * Source/JavaScriptCore/assembler/testmasm.cpp:
    (floatOperands):
    (JSC::testNegateDouble):
    (JSC::testNegateFloat):
    * Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
    (JSC::Wasm::BBQJITImpl::BBQJIT::addF32Neg):
    (JSC::Wasm::BBQJITImpl::BBQJIT::addF64Neg):

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

Canonical link: https://commits.webkit.org/298234.471@webkitglib/2.50


  Commit: 6c99c16e79ed9823b8419a5e190952653e396aa2
      
https://github.com/WebKit/WebKit/commit/6c99c16e79ed9823b8419a5e190952653e396aa2
  Author: Yusuke Suzuki <[email protected]>
  Date:   2026-03-03 (Tue, 03 Mar 2026)

  Changed paths:
    A JSTests/stress/stack-overflow-llint-large-params-and-large-locals.js
    M Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
    M Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
    M Source/JavaScriptCore/llint/LowLevelInterpreter64.asm

  Log Message:
  -----------
  Cherry-pick 301765.393@safari-7623-branch (a0aac3a0fa8f). 
https://bugs.webkit.org/show_bug.cgi?id=304973

    [JSC] LLInt arity fix needs to be done against sp
    https://bugs.webkit.org/show_bug.cgi?id=304973
    rdar://167110398

    Reviewed by Yijia Huang.

    When performing LLInt arity fixup, it is done after checking local
    frame's adjustment. This means that we should do stack overflow check
    with `newlyAddedSlots + sp` with soft-stack-limit instead of
    `newlyAddedSlots + cfr`.
    Note that JIT code is doing the right things already.

    Test: JSTests/stress/stack-overflow-llint-large-params-and-large-locals.js

    * JSTests/stress/stack-overflow-llint-large-params-and-large-locals.js: 
Added.
    (shouldThrow):
    * Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:
    (JSC::LLInt::arityCheckFor):
    * Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:
    * Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:

    Identifier: 301765.393@safari-7623-branch

Canonical link: https://commits.webkit.org/298234.472@webkitglib/2.50


Compare: https://github.com/WebKit/WebKit/compare/e8cd0f61201f...6c99c16e79ed

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

Reply via email to