Branch: refs/heads/webkitglib/2.50
  Home:   https://github.com/WebKit/WebKit
  Commit: 6423977ce0e32bb70c760b7e5051e0f83ae999ef
      
https://github.com/WebKit/WebKit/commit/6423977ce0e32bb70c760b7e5051e0f83ae999ef
  Author: Sihui Liu <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A 
LayoutTests/http/wpt/webaudio/the-audio-api/the-audioworklet-interface/options-range-error-expected.txt
    A 
LayoutTests/http/wpt/webaudio/the-audio-api/the-audioworklet-interface/options-range-error.html
    M Source/WebCore/Modules/webaudio/AudioWorkletNode.cpp

  Log Message:
  -----------
  Cherry-pick 297297.215@safari-7622-branch (d4b50b1f7725). rdar://156322582

    Avoid careating AudioWorkletNode with out-of-range parameters
    rdar://156322582

    Reviewed by Ryosuke Niwa.

    Existing implementation allows clients to create AudioWorkletNode with 
numberOfInputs and numberOfOutputs up to
    UINT32_MAX, and this could lead to web content process crash when 
AudioWorkletNode tries to constuct Vectors with big
    size. To avoid that, now we set the maximum allowed numbers to be 
UINT16_MAX (to match Firefox's behavior), and throw
    RangeError if parameter is out of range.

    * 
LayoutTests/http/wpt/webaudio/the-audio-api/the-audioworklet-interface/options-range-error-expected.txt:
 Added.
    * 
LayoutTests/http/wpt/webaudio/the-audio-api/the-audioworklet-interface/options-range-error.html:
 Added.
    * Source/WebCore/Modules/webaudio/AudioWorkletNode.cpp:
    (WebCore::AudioWorkletNode::create):

    Canonical link: https://commits.webkit.org/297297.215@safari-7622-branch

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


  Commit: 646c20a495a2b594d34755bcff4ce6fa079265e1
      
https://github.com/WebKit/WebKit/commit/646c20a495a2b594d34755bcff4ce6fa079265e1
  Author: Yijia Huang <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A JSTests/stress/loop-unrolling-with-a-switch-tail-terminal.js
    M Source/JavaScriptCore/dfg/DFGLoopUnrollingPhase.cpp

  Log Message:
  -----------
  Cherry-pick 297297.245@safari-7622-branch (dc6269bc685f). 
https://bugs.webkit.org/show_bug.cgi?id=297153

    [JSC] Skip loop unrolling when tail has non-branch terminal
    https://bugs.webkit.org/show_bug.cgi?id=297153
    rdar://157755838

    Reviewed by Yusuke Suzuki.

    The loop unrolling phase assumed tail blocks always have Branch terminals,
    but could encounter Switch terminals. Add an early check in locateTail() to
    skip loops with non-Branch terminals, as the current implementation only
    supports Branch-based loop structures.

    Canonical link: https://commits.webkit.org/297297.245@safari-7622-branch

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


  Commit: 0d8e0c66011f615eb7a1ce9b4166d465ddaf2fd9
      
https://github.com/WebKit/WebKit/commit/0d8e0c66011f615eb7a1ce9b4166d465ddaf2fd9
  Author: Said Abou-Hallawa <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A 
LayoutTests/http/tests/security/offscreen-canvas-remote-read-remote-image-expected.txt
    A 
LayoutTests/http/tests/security/offscreen-canvas-remote-read-remote-image.html
    M LayoutTests/platform/wpe/TestExpectations
    M Source/WebCore/html/OffscreenCanvas.cpp
    M Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp
    M Source/WebCore/html/canvas/PlaceholderRenderingContext.h

  Log Message:
  -----------
  Cherry-pick 297297.288@safari-7622-branch (bdeaba2e1881). 
https://bugs.webkit.org/show_bug.cgi?id=297566

    Offscreen canvas allows leaking cross-origin image
    https://bugs.webkit.org/show_bug.cgi?id=297566
    rdar://157055145

    Reviewed by Kimmo Kinnunen.

    If a cross-origin image is drawn to an ImageBitmap and it is transferred to 
an
    OffscreenCanvas, the context of the output canvas should be tainted.

    * 
LayoutTests/http/tests/security/offscreen-canvas-remote-read-remote-image-expected.txt:
 Added.
    * 
LayoutTests/http/tests/security/offscreen-canvas-remote-read-remote-image.html: 
Added.
    * Source/WebCore/html/OffscreenCanvas.cpp:
    (WebCore::OffscreenCanvas::commitToPlaceholderCanvas):
    * Source/WebCore/html/canvas/PlaceholderRenderingContext.cpp:
    (WebCore::PlaceholderRenderingContextSource::setPlaceholderBuffer):
    (WebCore::PlaceholderRenderingContext::setPlaceholderBuffer):
    * Source/WebCore/html/canvas/PlaceholderRenderingContext.h:

    Canonical link: https://commits.webkit.org/297297.288@safari-7622-branch

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


  Commit: 5c7a44aa11cd5071b688f6168c29d10bc5198364
      
https://github.com/WebKit/WebKit/commit/5c7a44aa11cd5071b688f6168c29d10bc5198364
  Author: Yusuke Suzuki <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A JSTests/stress/map-set-iterator-speculated-types.js
    M Source/JavaScriptCore/bytecode/SpeculatedType.cpp
    M Source/JavaScriptCore/bytecode/SpeculatedType.h
    M Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
    M Source/JavaScriptCore/dfg/DFGUseKind.h
    M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
    M Source/JavaScriptCore/runtime/JSType.h

  Log Message:
  -----------
  Cherry-pick 297297.289@safari-7622-branch (528c899d1d87). 
https://bugs.webkit.org/show_bug.cgi?id=297662

    [JSC] JSMapIterator and JSSetIterator need to have distinct SpeculatedTypes 
for Use edge filtering
    https://bugs.webkit.org/show_bug.cgi?id=297662
    rdar://158692260

    Reviewed by Yijia Huang.

    Each Use edge filtering needs distinct SpeculatedTypes. However
    JSMapIterator and JSSetIterator were using SpecObjectOther bucket, which
    can be used for different types. This fails to ensure that edge
    filtering's type guarantee. This patch adds SpecMapIteratorObject and
    SpecSetIteratorObject and uses them instead.

    * JSTests/stress/map-set-iterator-speculated-types.js: Added.
    (test):
    * Source/JavaScriptCore/bytecode/SpeculatedType.cpp:
    (JSC::speculationFromJSType):
    * Source/JavaScriptCore/bytecode/SpeculatedType.h:
    * Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
    * Source/JavaScriptCore/dfg/DFGUseKind.h:
    (JSC::DFG::typeFilterFor):
    * Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
    (JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
    * Source/JavaScriptCore/runtime/JSType.h:

    Canonical link: https://commits.webkit.org/297297.289@safari-7622-branch

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


  Commit: 47e5ad0bafb54cc4d06ecd183d6469e24d16f45e
      
https://github.com/WebKit/WebKit/commit/47e5ad0bafb54cc4d06ecd183d6469e24d16f45e
  Author: Keith Miller <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A JSTests/stress/map-rehash-oom.js
    A JSTests/stress/set-rehash-oom.js
    M Source/JavaScriptCore/runtime/OrderedHashTableHelper.h

  Log Message:
  -----------
  Cherry-pick 297297.293@safari-7622-branch (5b49a0d04fbe). 
https://bugs.webkit.org/show_bug.cgi?id=297708

    Clean up OrderedHashTable Resizing
    https://bugs.webkit.org/show_bug.cgi?id=297708
    rdar://158014775

    Reviewed by Yusuke Suzuki.

    When inserting into an OrderedHashTable, if the buffer is resized then 
subsequently an
    exception is thrown. The original buffer will be left in a inconsistent 
state. This patch
    takes two approaches to this problem:

    1) Compute the hash key before resizing. This isn't observable semantically 
since resizing
    can only OOM and that is free to happen anywhere.

    2) Only commit the new buffer once everything is set up. This way if we 
change our design
    in the future and throw somewhere in the middle we'll just roll back to the 
previous state.

    Lastly, convert some shifts into multiplications/divisions by the 
appropriate power of two.
    Clang will convert the muls/divs into the corresponding shifts so we should 
focus on
    readability.

    Canonical link: https://commits.webkit.org/297297.293@safari-7622-branch

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


  Commit: 226a5abb2a36d76979814a7b2e673f3c030f88a5
      
https://github.com/WebKit/WebKit/commit/226a5abb2a36d76979814a7b2e673f3c030f88a5
  Author: Phinehas Fuachie <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A LayoutTests/webaudio/AudioParam/exponential-ramp-crash-expected.txt
    A LayoutTests/webaudio/AudioParam/exponential-ramp-crash.html
    M Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp
    M Source/WebCore/Modules/webaudio/AudioParamTimeline.h
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    A Tools/TestWebKitAPI/Tests/WebCore/ExponentialRampAtTimeTest.cpp

  Log Message:
  -----------
  Cherry-pick 297297.313@safari-7622-branch (6d65d918b410). 
https://bugs.webkit.org/show_bug.cgi?id=297579

    Exponential ramp can produce NaN when starting value is zero
    https://bugs.webkit.org/show_bug.cgi?id=297579
    rdar://157301250

    Reviewed by Darin Adler and Youenn Fablet.

    Return the start value when value1 == 0 or value1 and value2 have opposite 
signs, matching Blink
    and the spec. This prevents invalid exponential ramps across zero. Added 
test cases for
    positive→negative, negative→positive, and zero start.

    * LayoutTests/webaudio/AudioParam/exponential-ramp-crash-expected.txt: 
Added.
    * LayoutTests/webaudio/AudioParam/exponential-ramp-crash.html: Added.
    * Source/WebCore/Modules/webaudio/AudioParamTimeline.cpp:
    (WebCore::AudioParamTimeline::exponentialRampAtTime):
    * Source/WebCore/Modules/webaudio/AudioParamTimeline.h:
    * Source/WebCore/WebCore.xcodeproj/project.pbxproj:
    * Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
    * Tools/TestWebKitAPI/Tests/WebCore/ExponentialRampAtTimeTest.cpp: Added.
    (expInterp):
    (TEST(WebCore, AudioParamTimeline_OppositeSigns_PositiveToNegative)):
    (TEST(WebCore, AudioParamTimeline_OppositeSigns_NegativeToPositive)):
    (TEST(WebCore, AudioParamTimeline_OppositeSigns_MultipleTimes)):
    (TEST(WebCore, AudioParamTimeline_OppositeSigns_SmallMagnitudes)):
    (TEST(WebCore, AudioParamTimeline_OppositeSigns_LargeMagnitudes)):
    (TEST(WebCore, AudioParamTimeline_SameSign_PositiveFollowsExponential)):
    (TEST(WebCore, AudioParamTimeline_SameSign_NegativeFollowsExponential)):

    Canonical link: https://commits.webkit.org/297297.313@safari-7622-branch

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


  Commit: 84c55112580c86ff9897ba2c084af734917e06ee
      
https://github.com/WebKit/WebKit/commit/84c55112580c86ff9897ba2c084af734917e06ee
  Author: Kimmo Kinnunen <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/ThirdParty/ANGLE/src/compiler/translator/Compiler.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ValidateOutputs.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp

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

    rdar://157514194

    Reviewed by Dan Glastonbury.

    Translator: Fix location validation for inout

      Without this validation, a shader using an inout variable can
    write into a memory beyond the limit set by MaxDrawBuffers when
    shader framebuffer fetch is enabled.

    * Extended the location check in visitSymbol() to include InOut
      qualifiers (EvqFragmentInOut) as well (in ValidateOutputsTraverser).

    * Moved RewritePixelLocalStorage() after ValidateOutputs() to avoid
      issues related to locations not being specified in the InOut nodes
      from the PLS implementation.

    * Added a unit test to test that this case results in a compilation
      error: GLSLTest_ES3.CompileFSWithInoutLocBeyondMaxDrawBuffers

    Bug: chromium:435139154
    Change-Id: I44c729377a2e1d3126c2d279172217b2ab92b57b
    Reviewed-on: 
https://chromium-review.googlesource.com/c/angle/angle/+/6806230
    Reviewed-by: Shahbaz Youssefi <[email protected]>
    Reviewed-by: Yuxin Hu <[email protected]>
    Commit-Queue: Shahbaz Youssefi <[email protected]>

    Canonical link: https://commits.webkit.org/297297.317@safari-7622-branch

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


  Commit: 5005cb7bbbc6405f4badc859337840bdf20ad430
      
https://github.com/WebKit/WebKit/commit/5005cb7bbbc6405f4badc859337840bdf20ad430
  Author: Youenn Fablet <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A LayoutTests/http/tests/media/resources/hls/.htaccess
    M LayoutTests/http/tests/media/resources/video-cookie-check-cookie.py
    A 
LayoutTests/http/tests/performance/performance-resource-timing-cross-origin-media-expected.txt
    A 
LayoutTests/http/tests/performance/performance-resource-timing-cross-origin-media-with-cors-expected.txt
    A 
LayoutTests/http/tests/performance/performance-resource-timing-cross-origin-media-with-cors.html
    A 
LayoutTests/http/tests/performance/performance-resource-timing-cross-origin-media.html
    A 
LayoutTests/http/tests/performance/performance-resource-timing-redirection-cross-origin-media-expected.txt
    A 
LayoutTests/http/tests/performance/performance-resource-timing-redirection-cross-origin-media-with-cors-expected.txt
    A 
LayoutTests/http/tests/performance/performance-resource-timing-redirection-cross-origin-media-with-cors.html
    A 
LayoutTests/http/tests/performance/performance-resource-timing-redirection-cross-origin-media.html
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/loader/MediaResourceLoader.cpp
    M Source/WebCore/loader/MediaResourceLoader.h

  Log Message:
  -----------
  Cherry-pick 297297.327@safari-7622-branch (73b19a9b10d5). 
https://bugs.webkit.org/show_bug.cgi?id=297579

    HLS: Performance.getEntries() leaks contents of cross-site playlists
    rdar://133406290

    Reviewed by Eric Carlson.

    When loading a manifest and the manifest is opaque, we cannot let the web 
page know about loads triggered from that manifest.
    We thus need to use LoadedFromOpaqueSource, like done for CSS. This will 
prevent service worker interception and performance exposure.

    We do not know whether a media load is triggered from a particular manifest 
unfortunately.
    We do the following heuristic as a workaround:
    - As long as opaque source loading is not enabled, we check each opaque 
response mime type.
    - If an opaque response mime type is a manifest mime type, all remaining 
loads of the current media will be LoadedFromOpaqueSource::Yes.
    - If a load was previously done in non opaque mode, we continue doing so, 
to not disrupt successive media range requests.

    * LayoutTests/http/tests/media/resources/hls/.htaccess: Added.
    * LayoutTests/http/tests/media/resources/video-cookie-check-cookie.py:
    * 
LayoutTests/http/tests/performance/performance-resource-timing-cross-origin-media-expected.txt:
 Added.
    * 
LayoutTests/http/tests/performance/performance-resource-timing-cross-origin-media-with-cors-expected.txt:
 Added.
    * 
LayoutTests/http/tests/performance/performance-resource-timing-cross-origin-media-with-cors.html:
 Added.
    * 
LayoutTests/http/tests/performance/performance-resource-timing-cross-origin-media.html:
 Added.
    * 
LayoutTests/http/tests/performance/performance-resource-timing-redirection-cross-origin-media-expected.txt:
 Added.
    * 
LayoutTests/http/tests/performance/performance-resource-timing-redirection-cross-origin-media-with-cors-expected.txt:
 Added.
    * 
LayoutTests/http/tests/performance/performance-resource-timing-redirection-cross-origin-media-with-cors.html:
 Added.
    * 
LayoutTests/http/tests/performance/performance-resource-timing-redirection-cross-origin-media.html:
 Added.
    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
    * Source/WebCore/loader/MediaResourceLoader.cpp:
    (WebCore::computeLoadedFromOpaqueSource):
    (WebCore::MediaResourceLoader::requestResource):
    (WebCore::isManifestMIMEType):
    (WebCore::MediaResourceLoader::verifyMediaResponse):
    (WebCore::MediaResourceLoader::redirectReceived):
    (WebCore::MediaResource::redirectReceived):
    * Source/WebCore/loader/MediaResourceLoader.h:

    Canonical link: https://commits.webkit.org/297297.327@safari-7622-branch

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


  Commit: c6d829423fa0ac74221ff099cd5d077e7dd13aca
      
https://github.com/WebKit/WebKit/commit/c6d829423fa0ac74221ff099cd5d077e7dd13aca
  Author: Darryl Parkinson <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkBroadcastChannelRegistry.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.h
    M Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp
    M 
Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.cpp

  Log Message:
  -----------
  Cherry-pick 297297.328@safari-7622-branch (cb36c0c6b490). 
https://bugs.webkit.org/show_bug.cgi?id=296444

    fix potential lifetime issues retrieving sharedpreferences
    https://bugs.webkit.org/show_bug.cgi?id=296444
    rdar://problem/156628694

    Reviewed by Sihui Liu.

    Potential lifetime issue when accessing 
webProcessConnection->sharedPreferencesForWebProcess() as webProcessConnection 
could be null, fixed this by holding references correctly

    * Source/WebKit/NetworkProcess/NetworkProcess.cpp:
    (WebKit::NetworkProcess::protectedWebProcessConnection const):
    * Source/WebKit/NetworkProcess/NetworkProcess.h:
    * Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp:
    (WebKit::NetworkNotificationManager::sharedPreferencesForWebProcess const):
    * 
Source/WebKit/NetworkProcess/SharedWorker/WebSharedWorkerServerConnection.cpp:
    (WebKit::WebSharedWorkerServerConnection::sharedPreferencesForWebProcess 
const):

    Canonical link: https://commits.webkit.org/297297.328@safari-7622-branch

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


  Commit: 1fe4cba93d189504074226b94d6668453e3a34b9
      
https://github.com/WebKit/WebKit/commit/1fe4cba93d189504074226b94d6668453e3a34b9
  Author: Darryl Parkinson <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in

  Log Message:
  -----------
  Cherry-pick 297297.333@safari-7622-branch (8d500b316ffc). 
https://bugs.webkit.org/show_bug.cgi?id=298049

    Remove FileSystemEnabled guard on endpoints
    https://bugs.webkit.org/show_bug.cgi?id=298049
    rdar://159340350

    Reviewed by Sihui Liu.

    Remove incorrect flags added to NetworkStorageManager messages.

    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in:

    Canonical link: https://commits.webkit.org/297297.333@safari-7622-branch

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


  Commit: 0c2dab9632199f417d1697c9e0369d87ae7f2203
      
https://github.com/WebKit/WebKit/commit/0c2dab9632199f417d1697c9e0369d87ae7f2203
  Author: Rob Buis <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A 
LayoutTests/fast/css/content-visibility-container-with-oof-child-crash-expected.txt
    A 
LayoutTests/fast/css/content-visibility-container-with-oof-child-crash.html
    M Source/WebCore/rendering/RenderBlock.cpp

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

    ASAN_SEGV | WebCore::Path::strokeContains; 
WebCore::LegacyRenderSVGPath::shapeDependentStrokeContains; 
WebCore::SVGGeometryElement::isPointInStroke
    https://bugs.webkit.org/show_bug.cgi?id=295244
    rdar://154646149

    Reviewed by Alan Baradlay.

    Prevent simplified layout on a c-v root with a previously skipped subtree, 
since that means any out of flow
    children in the subtree have not been processed yet, and only the normal 
layout path handles them correctly.

    * 
LayoutTests/fast/css/content-visibility-container-with-oof-child-crash-expected.txt:
 Added.
    * 
LayoutTests/fast/css/content-visibility-container-with-oof-child-crash.html: 
Added.
    * Source/WebCore/rendering/RenderBlock.cpp:
    (WebCore::RenderBlock::canPerformSimplifiedLayout const):

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

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


  Commit: 66ffaaf7c97da7f5d384448e68e4d1ff975c0bd2
      
https://github.com/WebKit/WebKit/commit/66ffaaf7c97da7f5d384448e68e4d1ff975c0bd2
  Author: Claudio Saavedra <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A LayoutTests/fast/css/immutable-properties-crash-expected.txt
    A LayoutTests/fast/css/immutable-properties-crash.html
    M Source/WTF/wtf/text/StringHash.h
    M Source/WebCore/css/ImmutableStyleProperties.cpp

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

    ASAN_ILL | WebCore::ImmutableStyleProperties::createDeduplicating; 
WebCore::createStyleProperties; WebCore::CSSParser::parseInlineStyleDeclaration
    https://bugs.webkit.org/show_bug.cgi?id=295927
    rdar://155792201

    Reviewed by Simon Fraser.

    AlreadyHashed::avoidDeletedValue() always returns the passed hash, as
    the or-bitwise operator doesn't really do anything. If the expected
    behavior of this method is to avoid the special 0xFFFFFFFF value,
    then I strongly suspect that what was intended was to use a xor-bitwise
    operation; this will indeed flip the topmost bit if the hash is
    0xFFFFFFFF but leave it unchanged for any other value (except 0,
    of course).

    ImmutableStyleProperties should use this method when adding elements
    to its hash map, to make sure that it doesn't accidentally try to
    insert a value whose hash key is 0xFFFFFFFF. Otherwise it will
    hit an assertion.

    * LayoutTests/fast/css/immutable-properties-crash-expected.txt: Added.
    * LayoutTests/fast/css/immutable-properties-crash.html: Added.
    * Source/WTF/wtf/text/StringHash.h:
    (WTF::AlreadyHashed::avoidDeletedValue):
    * Source/WebCore/css/ImmutableStyleProperties.cpp:
    (WebCore::ImmutableStyleProperties::createDeduplicating):

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

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


  Commit: ef2c77d589fc722a568915c513ab9d52527b7551
      
https://github.com/WebKit/WebKit/commit/ef2c77d589fc722a568915c513ab9d52527b7551
  Author: Rob Buis <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A LayoutTests/svg/animations/key-times-zero-path-crash-expected.html
    A LayoutTests/svg/animations/key-times-zero-path-crash.html
    M Source/WebCore/svg/SVGAnimationElement.cpp

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

    ASAN_ILL | WTF::Markable::operator*; 
WebCore::LegacyRenderSVGRoot::repaintRectInLocalCoordinates; 
WebCore::LegacyRenderSVGRoot::localClippedOverflowRect
    https://bugs.webkit.org/show_bug.cgi?id=295930
    rdar://155792445

    Reviewed by Said Abou-Hallawa.

    Ending the keyTimes list with 0 should be treated as an invalid animation 
for animateMotion. While this
    does not seem specified, it is what Chrome does.

    * LayoutTests/svg/animations/key-times-zero-path-crash-expected.html: Added.
    * LayoutTests/svg/animations/key-times-zero-path-crash.html:
    * Source/WebCore/svg/SVGAnimationElement.cpp:
    (WebCore::parseKeyTimes):

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

    Canonical link: https://commits.webkit.org/297297.336@safari-7622-branch

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


  Commit: 2baada1a313172ffb06d126966cab8e965f9930f
      
https://github.com/WebKit/WebKit/commit/2baada1a313172ffb06d126966cab8e965f9930f
  Author: Rob Buis <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A 
LayoutTests/fast/css/content-visibility-with-multi-column-and-view-transition-crash-expected.txt
    A 
LayoutTests/fast/css/content-visibility-with-multi-column-and-view-transition-crash.html
    M Source/WebCore/rendering/RenderBlockFlow.cpp

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

    Bug 295932 ASAN_SEGV | WebCore::RenderFragmentedFlow::boxIsFragmented; 
WebCore::rendererIsFragmented; WebCore::forEachRendererInPaintOrder
    https://bugs.webkit.org/show_bug.cgi?id=295932
    rdar://155792317

    Reviewed by Alan Baradlay.

    View transition algorithms test whether a renderer is frsgmented or not, 
however when content-visibility: hidden
    causes a subtree to be hidden the fragmentation information is not always 
fully computed. To fix this avoid
    early returns due to content-visibility: hidden when fragmented flows are 
involved.

    * 
LayoutTests/fast/css/content-visibility-with-multi-column-and-view-transition-crash-expected.txt:
 Added.
    * 
LayoutTests/fast/css/content-visibility-with-multi-column-and-view-transition-crash.html:
 Added.
    * Source/WebCore/rendering/RenderBlockFlow.cpp:
    (WebCore::RenderBlockFlow::layoutInFlowChildren):
    (WebCore::RenderBlockFlow::layoutBlockChildren):

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

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


  Commit: 5ff405d17dd1b93ca1f5ad71c37aa74d1c63deaf
      
https://github.com/WebKit/WebKit/commit/5ff405d17dd1b93ca1f5ad71c37aa74d1c63deaf
  Author: Frédéric Wang <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A LayoutTests/fast/grid/nested-grid-and-subgrid-crash-expected.txt
    A LayoutTests/fast/grid/nested-grid-and-subgrid-crash.html
    M Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp

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

    ASAN_TRAP | WebCore::GridTrackSizingAlgorithm::gridAreaBreadthForGridItem
    https://bugs.webkit.org/show_bug.cgi?id=295928
    rdar://155792516

    Reviewed by Alan Baradlay.

    After https://commits.webkit.org/296300@main, it's possible that
    `GridTrackSizingAlgorithm::gridAreaBreadthForGridItem()` dereferences
    `spannedRowsSize`, causing a release crash if the value returned by
    `GridTrackSizingAlgorithm::estimatedGridAreaBreadthForGridItem()` is a
    `nullopt`, as it is the case in the new test added by this patch.

    Checking carefully, such a nullopt can only be returned for indefinite
    grid area with an a grid item parallel to the `m_renderGrid`. In
    https://commits.webkit.org/206127@main, a debug assert was added to
    guarantee grid item is actually orthogonal, which is probably why the
    code is written in a way that assumes the return value is not a nullopt.
    However, this assert fails for the simple configuration below. Indeed,
    `minContentContributionForGridItem` is called with m_renderGrid being
    (the div of) id=grid and arguments (the div of) id=griditem. Because
    of id=griditem's `writing-mode`, this in turn calls the method
    `updateOverridingContainingBlockContentSizeForGridItem` with
    parameters id=griditem and `GridTrackSizingDirection::Rows`. Because of
    id=subgrid's `grid-template-columns`, the same method is called
    recursively with arguments id=subgrid and
    `GridTrackSizingDirection::Rows`. Finally, `gridAreaBreadthForGridItem`
    is called with parallel m_renderGrid(id=grid) and gridItem(id=subgrid).

    ```
    <div id="grid" style="display: grid">
      <div id="subgrid" style="grid-template-columns: subgrid;">
        <div id="griditem" style="writing-mode: vertical-lr"></div>
      </div>
    </div>

    ASSERTION FAILED: GridLayoutFunctions::isOrthogonalGridItem(*m_renderGrid, 
gridItem)
    
WebCore::GridTrackSizingAlgorithm::gridAreaBreadthForGridItem(WebCore::RenderBox
 const&, WebCore::Style::GridTrackSizingDirection) const
    
WebCore::GridTrackSizingAlgorithmStrategy::updateOverridingContainingBlockContentSizeForGridItem(WebCore::RenderBox&,
 WebCore::Style::GridTrackSizingDirection, std::optional<WebCore::LayoutUnit>) 
const
    
WebCore::GridTrackSizingAlgorithmStrategy::updateOverridingContainingBlockContentSizeForGridItem(WebCore::RenderBox&,
 WebCore::Style::GridTrackSizingDirection, std::optional<WebCore::LayoutUnit>) 
const
    
WebCore::GridTrackSizingAlgorithmStrategy::minContentContributionForGridItem(WebCore::RenderBox&,
 WebCore::GridLayoutState&) const
    ```

    It's very likely that some wrong assumptions were made when subgrid
    were introduced, `updateOverridingContainingBlockContentSizeForGridItem`
    should probably now perform something more clever in order to handle the
    case when `gridItem` can change its direction in the recursive call. But
    in order to minimize behavior changes, this patch just makes
    gridAreaBreadthForGridItem return a nullopt in the case where current
    code tries to derefence a nullopt rowSpanForGridItem. The obsolete debug
    ASSERT is removed.

    * LayoutTests/fast/grid/nested-grid-and-subgrid-crash-expected.txt: Added.
    * LayoutTests/fast/grid/nested-grid-and-subgrid-crash.html: Added.
    * Source/WebCore/rendering/GridTrackSizingAlgorithm.cpp:
    (WebCore::GridTrackSizingAlgorithm::gridAreaBreadthForGridItem const): 
Remove obsolete ASSERT and return nullopt if spannedRowsSize is nullopt.

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

    Canonical link: https://commits.webkit.org/297297.338@safari-7622-branch

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


  Commit: 4b34a9f245113691c4ac5331f7e8042c0c892cde
      
https://github.com/WebKit/WebKit/commit/4b34a9f245113691c4ac5331f7e8042c0c892cde
  Author: Daniel Liu <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/JavaScriptCore/b3/B3WasmBoundsCheckValue.cpp
    M Source/JavaScriptCore/b3/B3WasmBoundsCheckValue.h
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp

  Log Message:
  -----------
  Cherry-pick 297297.360@safari-7622-branch (f5ded472170d). 
https://bugs.webkit.org/show_bug.cgi?id=298129

    OMG Wasm memory access should emit a full 64-bit immediate
    https://bugs.webkit.org/show_bug.cgi?id=298129
    rdar://159439036

    Reviewed by Yusuke Suzuki.

    Previously, OMG computed memory indices using a 32-bit integer, which could 
overflow
    at higher offsets. We switch this over to a 64-bit integer, allowing us to 
avoid any
    overflow conditions.

    * Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp:
    (JSC::Wasm::OMGIRGenerator::emitCheckAndPreparePointer):

    Canonical link: https://commits.webkit.org/297297.360@safari-7622-branch

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


  Commit: 06075a516c0ea9ee1b3eb0afc37385f2ea3f8129
      
https://github.com/WebKit/WebKit/commit/06075a516c0ea9ee1b3eb0afc37385f2ea3f8129
  Author: Daniel Liu <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

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

  Log Message:
  -----------
  Cherry-pick 297297.362@safari-7622-branch (cb6fcc0b908c). 
https://bugs.webkit.org/show_bug.cgi?id=298126

    DFG Constant Folding should ignore results of blocks which CFA has marked 
unreachable
    https://bugs.webkit.org/show_bug.cgi?id=298126
    rdar://158662405

    Reviewed by Yusuke Suzuki.

    DFG's constant folding pass included value result information from blocks 
which were found to be unreachable
    through control flow analysis. This could lead to weaker type guarantees 
during further analysis.

    * Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:
    (JSC::DFG::ConstantFoldingPhase::foldConstants):

    Canonical link: https://commits.webkit.org/297297.362@safari-7622-branch

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


  Commit: 54f90600a44ee83f5727438348d9da5bc5d6f1e8
      
https://github.com/WebKit/WebKit/commit/54f90600a44ee83f5727438348d9da5bc5d6f1e8
  Author: Kimmo Kinnunen <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/ThirdParty/ANGLE/src/compiler/translator/Compiler.cpp
    M 
Source/ThirdParty/ANGLE/src/tests/compiler_tests/SeparateDeclarations_test.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/UniformTest.cpp

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

    rdar://159643967

    Reviewed by Mike Wyrzykowski.

    Cherry-pick ANGLE upstream 7cbb77a881028d07958395c1b7c7b36e169b59ed
    rdar://159643967

    Fix the uniform reorder bug

    When sorting uniforms, we should first check if both uniforms are
    structs, and make sure to place the uniforms with specifier in front
    of the uniforms without specifier.

    Bug: chromium:431318231
    Change-Id: I8be9501f34073983b7f3d040780b749a7366e3d2
    Reviewed-on: 
https://chromium-review.googlesource.com/c/angle/angle/+/6733547
    Reviewed-by: Amirali Abdolrashidi <[email protected]>
    Commit-Queue: Yuxin Hu <[email protected]>

    Cherry-pick ANGLE upstream 1d8279a2b7b6ce99ec7697d97db4eee3268bc52a
    rdar://159643967

    Fix sort uniform bug

    Current sort doesn't take care of the case when both uniforms
    are struct specfiers. Given that struct types are easily broken by
    sort, make the sort not reordering uniforms if both are structs.

    Bug: b/437825940
    Change-Id: Idda1810ac4234f7e1547735e4e09658ab0a57eed
    Reviewed-on: 
https://chromium-review.googlesource.com/c/angle/angle/+/6842936
    Reviewed-by: Charlie Lao <[email protected]>
    Reviewed-by: Amirali Abdolrashidi <[email protected]>
    Reviewed-by: Shahbaz Youssefi <[email protected]>

    Cherry-pick ANGLE upstream 1d8279a2b7b6ce99ec7697d97db4eee3268bc52a
    rdar://159643967

    Do not sort ANGLE internal uniforms or built-in uniforms

    On Mac, for webGL app on chrome, if the uniforms added by ANGLE
    are not placed at the top of the ANGLE_UserUniforms struct, the user
    defined uniforms in the same ANGLE_UserUniforms struct seem to be
    messed up and not read correctly by shader code. This change fixes
    it by moving the sortUniforms() function call to the place before we
    add ANGLE internal uniforms. That way ANGLE internal uniforms will
    be inserted later and stay on top of ANGLE_UserUniforms struct.

    Bug: chromium:437678149
    Change-Id: I34a0d3dcb98c5fe30ad248381ecb5f7f78252275
    Reviewed-on: 
https://chromium-review.googlesource.com/c/angle/angle/+/6847281
    Auto-Submit: Yuxin Hu <[email protected]>
    Commit-Queue: Yuxin Hu <[email protected]>
    Reviewed-by: Shahbaz Youssefi <[email protected]>
    Reviewed-by: Amirali Abdolrashidi <[email protected]>

    Cherry-pick ANGLE upstream f63751db4c7fa10292eba38eda748e216b075d16
    rdar://159643967

    Fix the UniformSortComparator not following strict weak order

    If one uniform is lowp and the other uniform is mediump, then the
    compare(a, b) and compare (b, a) both return true. This violates the
    strict weak order rule where:

    If comp(a, b) == true then comp(b, a) == false

    This change fixes the bug.

    Bug: angleproject:405795981
    Change-Id: I47e2668fc0fa87ecea9d3f9bce511c9823a39929
    Reviewed-on: 
https://chromium-review.googlesource.com/c/angle/angle/+/6876519
    Reviewed-by: Amirali Abdolrashidi <[email protected]>
    Commit-Queue: Yuxin Hu <[email protected]>

    Canonical link: https://commits.webkit.org/297297.367@safari-7622-branch

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


  Commit: b4d0dda8dc41a7b506356b2505188b323ccac91d
      
https://github.com/WebKit/WebKit/commit/b4d0dda8dc41a7b506356b2505188b323ccac91d
  Author: Antoine Quint <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A LayoutTests/webanimations/null-timeline-crash-expected.txt
    A LayoutTests/webanimations/null-timeline-crash.html
    M Source/WebCore/animation/ElementAnimationRareData.cpp
    M Source/WebCore/animation/KeyframeEffect.cpp
    M Source/WebCore/animation/KeyframeEffect.h

  Log Message:
  -----------
  Cherry-pick 297297.371@safari-7622-branch (02618abc17c4). 
https://bugs.webkit.org/show_bug.cgi?id=298317

    ASAN_ILL | WebCore::KeyframeEffectStack::allowsAcceleration; 
WebCore::KeyframeEffectStack::removeEffect; 
WebCore::KeyframeEffect::updateEffectStackMembership
    https://bugs.webkit.org/show_bug.cgi?id=298317
    rdar://157023038

    Reviewed by Cameron McCormack.

    When a document is torn down, we call into 
`AnimationTimelinesController::detachFromDocument()` which
    will call `AnimationTimeline::detachFromDocument()` for each known timeline 
and then `WebAnimation::remove()`
    for each animation associated with that timeline. This will eventually 
disassociate animation effects
    from the `KeyframeEffectStack` of their target, ensuring there are no null 
references in the stack's
    list of effects.

    However, with the advent of scroll-driven animations, an animation's 
timeline may be set to null, which
    will not perform such a disassociation since that animation may remain 
"relevant" [0]. However, since
    the cleanup described above occurs for animations associated with a 
timeline, such timeline-less
    animations will not be processed and thus it's possible that an effect is 
destroyed but a (weak)
    reference remains in the effect stack.

    To address this issue, we add logic in the `KeyframeEffect` destructor to 
remove itself from any associated
    effect stack, and add an assertion that it is indeed no longer in that 
stack. Additionally, we now check
    in the `ElementAnimationRareData` destructor that it no longer has an 
effect stack or that the stack is empty.

    [0] https://drafts.csswg.org/web-animations-1/#relevant-animations-section

    * LayoutTests/webanimations/null-timeline-crash-expected.txt: Added.
    * LayoutTests/webanimations/null-timeline-crash.html: Added.
    * Source/WebCore/animation/ElementAnimationRareData.cpp:
    (WebCore::ElementAnimationRareData::~ElementAnimationRareData):
    * Source/WebCore/animation/KeyframeEffect.cpp:
    (WebCore::KeyframeEffect::~KeyframeEffect):
    * Source/WebCore/animation/KeyframeEffect.h:

    Canonical link: https://commits.webkit.org/297297.371@safari-7622-branch

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


  Commit: da7d0e5ebab38e68c2bdc105eb8f450b1e291dad
      
https://github.com/WebKit/WebKit/commit/da7d0e5ebab38e68c2bdc105eb8f450b1e291dad
  Author: Antti Koivisto <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A 
LayoutTests/fast/css/custom-properties/registered-custom-property-revert-layer-crash-expected.txt
    A 
LayoutTests/fast/css/custom-properties/registered-custom-property-revert-layer-crash.html
    M Source/WebCore/style/StyleBuilder.cpp

  Log Message:
  -----------
  Cherry-pick 297297.373@safari-7622-branch (3800cebd8f22). 
https://bugs.webkit.org/show_bug.cgi?id=298314

    Registered properties and revert-layer may dereference disengaged 
std::optional
    https://bugs.webkit.org/show_bug.cgi?id=298314
    rdar://157023648

    Reviewed by Alan Baradlay.

    * 
LayoutTests/fast/css/custom-properties/registered-custom-property-revert-layer-crash-expected.txt:
 Added.
    * 
LayoutTests/fast/css/custom-properties/registered-custom-property-revert-layer-crash.html:
 Added.
    * Source/WebCore/style/StyleBuilder.cpp:
    (WebCore::Style::Builder::applyRollbackCascadeCustomProperty):

    With registered properties custom property resolution may fail. Return 
guaranteed-invalid value in this case.

    Canonical link: https://commits.webkit.org/297297.373@safari-7622-branch

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


  Commit: fe9f36df4d3dfe88ea242c53bf65c2cf5f2558d0
      
https://github.com/WebKit/WebKit/commit/fe9f36df4d3dfe88ea242c53bf65c2cf5f2558d0
  Author: Ronan Turner <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A 
LayoutTests/fast/speechsynthesis/lockdown-mode/speech-synthesis-expected.txt
    A LayoutTests/fast/speechsynthesis/lockdown-mode/speech-synthesis.html
    M LayoutTests/platform/glib/TestExpectations
    M LayoutTests/platform/mac-wk1/TestExpectations
    M LayoutTests/platform/win/TestExpectations
    M LayoutTests/platform/wpe/TestExpectations
    M Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl
    M Source/WebCore/bindings/js/WebCoreBuiltinNames.h

  Log Message:
  -----------
  Cherry-pick 297297.375@safari-7622-branch (7d5ef34062b7). 
https://bugs.webkit.org/show_bug.cgi?id=298382

    Prevent speechSynthesis from being accessible in LDM.
    https://bugs.webkit.org/show_bug.cgi?id=298382
    rdar://159462101

    Reviewed by Alex Christensen.

    We were missing an EnabledBySetting=SpeechSynthesisAPIEnabled guard on the
    DOMWindow+SpeechSynthesis.idl file. This results in window.speechSynthesis
    still remaining accessible to sites, even when the setting is disabled. This
    then results in process termination when the IPC message is attempted and 
the
    privileged process marks the IPC message as invalid.

    This adds the guard, and a new test to ensure this is sufficiently disabled
    when in Lockdown Mode.

    * 
LayoutTests/fast/speechsynthesis/lockdown-mode/speech-synthesis-expected.txt: 
Added.
    * LayoutTests/fast/speechsynthesis/lockdown-mode/speech-synthesis.html: 
Added.
    * LayoutTests/platform/glib/TestExpectations:
    * LayoutTests/platform/mac-wk1/TestExpectations:
    * LayoutTests/platform/win/TestExpectations:
    * LayoutTests/platform/wpe/TestExpectations:
    * Source/WebCore/Modules/speech/DOMWindow+SpeechSynthesis.idl:
    * Source/WebCore/bindings/js/WebCoreBuiltinNames.h:

    Canonical link: https://commits.webkit.org/297297.375@safari-7622-branch

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


  Commit: 23f1b25666b36a76737abb644ec0a71b0141f13e
      
https://github.com/WebKit/WebKit/commit/23f1b25666b36a76737abb644ec0a71b0141f13e
  Author: Yijia Huang <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A JSTests/stress/array-allocation-sink-escape-materialize-15.js
    M Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp

  Log Message:
  -----------
  Cherry-pick 297297.382@safari-7622-branch (a1cadb6e8070). 
https://bugs.webkit.org/show_bug.cgi?id=298356

    [JSC] Ensure Sink+Escape+Materialize ArrayButterfly allocations are not 
Escaped kind
    rdar://159801389
    https://bugs.webkit.org/show_bug.cgi?id=298356

    Reviewed by Keith Miller.

    When we Sink+Escape+Materialize an array, we also need to do
    the same for its corresponding GetButterfly (ArrayButterfly allocation).
    This is because GetButterfly cannot refer to a phantom array node - it
    requires a materialized array. Therefore, when we Sink+Escape+Materialize
    an ArrayButterfly allocation, we must ensure its allocation kind is
    ArrayButterfly, not Escaped, so that createMaterialization() can properly
    handle it.

    Canonical link: https://commits.webkit.org/297297.382@safari-7622-branch

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


  Commit: 3f1e9093da43621c56c7d5a8db60653a86804e99
      
https://github.com/WebKit/WebKit/commit/3f1e9093da43621c56c7d5a8db60653a86804e99
  Author: Sihui Liu <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp
    M Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.h

  Log Message:
  -----------
  Cherry-pick 297297.386@safari-7622-branch (70a1e97f4ce6). 
https://bugs.webkit.org/show_bug.cgi?id=298356

    Fix use-after-free in MemoryBackingStoreTransaction::abort
    rdar://159649671

    Reviewed by Per Arne Vollan and Rupin Mittal.

    MemoryIndex can be destroyed after the last reference is removed in 
MemoryBackingStoreTransaction::removeNewIndex(), but
    MemoryBackingStoreTransaction::m_originalIndexNames might still keep the 
raw pointer to the MemoryIndex, and when
    transaction is aborted later, MemoryBackingStoreTransaction::abort would 
access the pointer. To fix this, ensure
    the MemoryIndex is removed from m_originalIndexNames in removeNewIndex(). 
Also, to avoid this use-after-free issue,
    make m_originalIndexNames store RefPtr instead of raw pointer.

    * Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
    (WebCore::IDBServer::MemoryBackingStoreTransaction::removeNewIndex):
    (WebCore::IDBServer::MemoryBackingStoreTransaction::abort):
    * Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.h:

    Canonical link: https://commits.webkit.org/297297.386@safari-7622-branch

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


  Commit: f661a52c83d4fa3348ba05632c62fd5e21f7ff7b
      
https://github.com/WebKit/WebKit/commit/f661a52c83d4fa3348ba05632c62fd5e21f7ff7b
  Author: Sihui Liu <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/WebKit/Platform/IPC/Connection.cpp

  Log Message:
  -----------
  Cherry-pick 297297.390@safari-7622-branch (cef844c4512c). 
https://bugs.webkit.org/show_bug.cgi?id=298489

    Stop using raw pointer in syncMessageStateMap()
    https://bugs.webkit.org/show_bug.cgi?id=298489
    rdar://156584462

    Reviewed by Chris Dumez.

    Connection::SyncMessageStateRelease::operator() only removes entry from 
syncMessageStateMap() if instance's dispatcher
    is not null (i.e. dispatcher has not been destroyed). This means if 
dispatcher is destroyed, the map would keep a
    dangling pointer that is not to be removed.

    * Source/WebKit/Platform/IPC/Connection.cpp:

    Canonical link: https://commits.webkit.org/297297.390@safari-7622-branch

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


  Commit: 77750fd03a278aae44055021a610c0d6cc6c4c06
      
https://github.com/WebKit/WebKit/commit/77750fd03a278aae44055021a610c0d6cc6c4c06
  Author: Vassili Bykov <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/JavaScriptCore/wasm/WasmGlobal.h
    M Source/JavaScriptCore/wasm/WasmTable.cpp
    M Source/JavaScriptCore/wasm/WasmTable.h
    M Source/JavaScriptCore/wasm/WasmTypeDefinition.h
    M Source/JavaScriptCore/wasm/WasmTypeDefinitionInlines.h

  Log Message:
  -----------
  Cherry-pick 297297.393@safari-7622-branch (b3e1519a9399). 
https://bugs.webkit.org/show_bug.cgi?id=297958

    Retain the TypeDefinition underlying the Wasm::Type in Wasm::Global and 
Wasm::Table
    https://bugs.webkit.org/show_bug.cgi?id=297958
    rdar://159278266

    Reviewed by Yusuke Suzuki.

    Wasm::Global and Wasm::Table both have a field containing a Wasm::Type 
describing the
    value of the global or the contents of the table. Wasm::Type has a field 
`index` of type
    `TypeIndex`. Formally, `TypeIndex` is an alias for `uintptr_t`. However, 
the field may
    actually be a pointer to the `TypeDefinition` instance corresponding to the 
type.

    Because TypeDefinitions are refcounted but Wasm::Type contains a raw 
unmanaged pointer, it
    is possible for a pointer in Wasm::Type to outlive the TypeDefinition it 
points to. This
    can happen with Wasm Globals and Tables because an exported global or a 
table (if it's
    empty) may outlive their associated Wasm instance when they are retained by 
JavaScript
    code. In that situation TypeDefinitions referenced by the instance may be
    garbage-collected while pointers to them from the globals or tables still 
exist. After
    that, an attempt to set the value of the global or a table entry will 
dereference the
    dangling pointer as the value is validated against the type of the global 
or the table.

    This patch adds an explicit counted TypeDefinition reference to Wasm::Global
    and Wasm::Table to ensure the TypeDefinition lives long enough.

    Ideally, we might want to redesign Wasm::Type to have it carry a proper 
counted reference
    to its TypeDefinition instead of a disguised raw pointer. But that is a 
larger
    undertaking, while in the meantime this patch fixes the known vulnerability.

    Canonical link: https://commits.webkit.org/297297.393@safari-7622-branch

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


  Commit: cc19452abc3ba4926113a904d0d6f9435d25896a
      
https://github.com/WebKit/WebKit/commit/cc19452abc3ba4926113a904d0d6f9435d25896a
  Author: Gavin Phillips <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

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

  Log Message:
  -----------
  Cherry-pick 297297.395@safari-7622-branch (03d5765621f7). 
https://bugs.webkit.org/show_bug.cgi?id=298092

    Verify resolutionScale() in GPU Process Before Calling putPixelBuffer
    https://bugs.webkit.org/show_bug.cgi?id=298092
    rdar://problem/78164875

    Reviewed by Said Abou-Hallawa.

    Verify resoultionScale is equal to 1 before calling putPixelBuffer.
    Currently, this is validated on the client (WebContent) side but
    not in the GPUP.

    * Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.cpp:
    (WebKit::RemoteImageBuffer::putPixelBuffer):

    Canonical link: https://commits.webkit.org/297297.395@safari-7622-branch

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


  Commit: 2fe1461d6a3c492e6b45a90ab0dc4735825a50a0
      
https://github.com/WebKit/WebKit/commit/2fe1461d6a3c492e6b45a90ab0dc4735825a50a0
  Author: Daniel Liu <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A JSTests/wasm/stress/ipint-bbq-osr-check-try-implicit-slot-overlap.js
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp
    M Source/JavaScriptCore/wasm/WasmOperations.cpp

  Log Message:
  -----------
  Cherry-pick 297297.400@safari-7622-branch (d3b258b586e6). 
https://bugs.webkit.org/show_bug.cgi?id=298196

    BBQ stackmap should not write to try implicit slots
    https://bugs.webkit.org/show_bug.cgi?id=298196
    rdar://159610745

    Reviewed by Yusuke Suzuki.

    BBQ places the try block's implicit slot in the same Temp as the arguments. 
This
    can lead to Debug assertions firing since it doesn't expect a real value at 
that
    location. We should just not write to that slot when we parse the exception 
slot
    reserved by IPInt's OSR.

    * JSTests/wasm/stress/ipint-bbq-osr-check-try-implicit-slot-overlap.js: 
Added.
    (instantiate):
    (async let):
    * Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
    (JSC::Wasm::BBQJITImpl::ControlData::implicitSlots const):
    (JSC::Wasm::BBQJITImpl::BBQJIT::makeStackMap):
    * Source/JavaScriptCore/wasm/WasmOperations.cpp:
    (JSC::Wasm::JSC_DEFINE_NOEXCEPT_JIT_OPERATION):

    Canonical link: https://commits.webkit.org/297297.400@safari-7622-branch

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


  Commit: d7a650c33ec953c92cae3052f88db6bc1e783145
      
https://github.com/WebKit/WebKit/commit/d7a650c33ec953c92cae3052f88db6bc1e783145
  Author: Yusuke Suzuki <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A JSTests/stress/switch-imm-int32-max.js
    M Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h
    M Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
    M Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
    M Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
    M Source/JavaScriptCore/runtime/CachedTypes.cpp

  Log Message:
  -----------
  Cherry-pick 297297.406@safari-7622-branch (9585bfc103fc). 
https://bugs.webkit.org/show_bug.cgi?id=298628

    [JSC] Have m_isList flag separately in UnlinkedSimpleJumpTable
    https://bugs.webkit.org/show_bug.cgi?id=298628
    rdar://159953039

    Reviewed by Yijia Huang.

    UnlinkedSimpleJumpTable should have a separate flag for m_isList not to
    confuse with a switch which only has INT32_MAX entry for `case` clause.

    * JSTests/stress/switch-imm-int32-max.js: Added.
    (try.switch):
    (catch):
    * Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h:
    (JSC::UnlinkedSimpleJumpTable::isList const):
    * Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:
    (JSC::BytecodeGenerator::endSwitch):
    * Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm:
    * Source/JavaScriptCore/llint/LowLevelInterpreter64.asm:
    * Source/JavaScriptCore/runtime/CachedTypes.cpp:
    (JSC::CachedSimpleJumpTable::encode):
    (JSC::CachedSimpleJumpTable::decode const):

    Canonical link: https://commits.webkit.org/297297.406@safari-7622-branch

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


  Commit: 524e07ff57389a4ffe05bb8bc734f174f9cd7527
      
https://github.com/WebKit/WebKit/commit/524e07ff57389a4ffe05bb8bc734f174f9cd7527
  Author: Shu-yu Guo <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A JSTests/wasm/stress/omg-tail-call-clobber-scratch-register.js
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator.cpp
    M Source/JavaScriptCore/wasm/WasmOMGIRGenerator32_64.cpp

  Log Message:
  -----------
  Cherry-pick 297297.410@safari-7622-branch (cf7eb4a4e9c4). 
https://bugs.webkit.org/show_bug.cgi?id=298496

    [JSC] Fix spilling macro scratch reg in OMG tail calls

    https://bugs.webkit.org/show_bug.cgi?id=298496
    rdar://158613168

    Reviewed by Mark Lam.

    OMG does manual saving of the MacroAssembler scratch register when preparing
    the frame for tail calls, because it uses it as a temp and it may interfere
    with an input GPR. This logic is currently wrong in several ways:

    - In assert-enabled builds, the register is spilled after it is already
      clobbered.
    - In assert-enabled builds, the stack spill location is overwritten before 
it
      is restored.
    - The spill offset is relative to the original SP, and it is restored 
relative
      to the new SP after the frame is set up for the tail call.

    This PR fixes these and adds the following modest safeguards:

    - For tail call patchpoints that have an AnyRegister input, disallow
      MacroAssembler scratch register usage by default so that after 
prepareCall,
      it is not accidentally clobbered in case it is an input GPR.
    - Explicitly disallow scratch usage before saving and after restoring the
      scratch register in prepareTailCallImpl. Stack clobbering is rewritten
      to accommodate.

    Canonical link: https://commits.webkit.org/297297.410@safari-7622-branch

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


  Commit: 930255ea665080de71998bec77897a06f70e40f1
      
https://github.com/WebKit/WebKit/commit/930255ea665080de71998bec77897a06f70e40f1
  Author: Antoine Quint <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A 
LayoutTests/webanimations/pause-after-switching-to-finite-timeline-expected.txt
    A LayoutTests/webanimations/pause-after-switching-to-finite-timeline.html
    M Source/WebCore/animation/WebAnimation.cpp

  Log Message:
  -----------
  Cherry-pick 297297.417@safari-7622-branch (9a1fcd2847a2). 
https://bugs.webkit.org/show_bug.cgi?id=298869

    [WebKit][Main+SU] [bcdfa3892054a35c] ASAN_TRAP | 
WebCore::WebAnimationTime::approximatelyLessThan; 
WebCore::AnimationEffectTiming::getBasicTiming; 
WebCore::AnimationEffect::getBasicTiming
    https://bugs.webkit.org/show_bug.cgi?id=298869
    rdar://160116687

    Reviewed by Anne van Kesteren.

    As part of 294049@main we started storing a "pending start time" for each 
animation which we would
    set to be the start time when marking the animation as ready. When 
switching from a monotonic to a
    progress-based timeline, we may be in a situation where that "pending start 
time" was recorded based
    on the monotonic timeline, and if the animation is paused with a monotonic 
"pending start time" then
    we will try to run some logic based on both monotonic and progress-based 
times in `WebAnimation::runPendingPauseTask()`.

    To address this, we reset the "pending start time" when switching 
timelines, which makes sense regardless
    of the type of timeline we're dealing with.

    * 
LayoutTests/webanimations/pause-after-switching-to-finite-timeline-expected.txt:
 Added.
    * LayoutTests/webanimations/pause-after-switching-to-finite-timeline.html: 
Added.
    * Source/WebCore/animation/WebAnimation.cpp:
    (WebCore::WebAnimation::setTimelineInternal):

    Canonical link: https://commits.webkit.org/297297.417@safari-7622-branch

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


  Commit: 695fe6142c13827782bb875fbaabc52c6dcd504d
      
https://github.com/WebKit/WebKit/commit/695fe6142c13827782bb875fbaabc52c6dcd504d
  Author: Daniel Liu <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/JavaScriptCore/runtime/StringPrototype.cpp
    M Source/WTF/wtf/unicode/icu/ICUHelpers.h

  Log Message:
  -----------
  Cherry-pick 297297.419@safari-7622-branch (03c4ee731559). 
https://bugs.webkit.org/show_bug.cgi?id=298232

    Limit JSString length during Unicode operations to 1G characters
    https://bugs.webkit.org/show_bug.cgi?id=298232
    rdar://159665462

    Reviewed by Yusuke Suzuki.

    Unicode has some limits on string length, which can cause issues
    when large strings are passed in. We should limit the max length
    of strings to avoid hitting these limits, and raise an OOM if we
    exceed this limit.

    * Source/JavaScriptCore/runtime/StringPrototype.cpp:
    (JSC::normalize):

    Canonical link: https://commits.webkit.org/297297.419@safari-7622-branch

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


  Commit: 90d2c088b6063ae8fe4a00e9a338b95ae8abc2b3
      
https://github.com/WebKit/WebKit/commit/90d2c088b6063ae8fe4a00e9a338b95ae8abc2b3
  Author: Yijia Huang <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A JSTests/stress/loop-unrolling-multi-get-and-put-by-offset.js
    M Source/JavaScriptCore/dfg/DFGCloneHelper.cpp
    M Source/JavaScriptCore/dfg/DFGCloneHelper.h

  Log Message:
  -----------
  Cherry-pick 297297.428@safari-7622-branch (0369cf4f5755). 
https://bugs.webkit.org/show_bug.cgi?id=298851

    [JSC] Fix DFG node cloning to properly copy mutable data structures
    rdar://160593174
    https://bugs.webkit.org/show_bug.cgi?id=298851

    Reviewed by Yusuke Suzuki.

    The DFG clone helper was incorrectly sharing mutable data structures between
    original and cloned nodes during loop unrolling optimizations. This caused
    inconsistent state when subsequent optimization phases modified the shared 
data.
    This patch ensures that nodes with mutable data structures are properly 
cloned with
    independent copies of their associated data.

    Canonical link: https://commits.webkit.org/297297.428@safari-7622-branch

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


  Commit: 9fdc2596a3d48993db7df5c1fa06c7f0f3d96b6b
      
https://github.com/WebKit/WebKit/commit/9fdc2596a3d48993db7df5c1fa06c7f0f3d96b6b
  Author: David Kilzer <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/WebCore/platform/sql/SQLiteDatabase.cpp

  Log Message:
  -----------
  Cherry-pick 297297.445@safari-7622-branch (9acf4b8eff51). 
https://bugs.webkit.org/show_bug.cgi?id=299218

    Network process crash due to environment variable race in 
libsystem_coreservices.dylib: _dirhelper_update_tmpdir
    <https://bugs.webkit.org/show_bug.cgi?id=299218>
    <rdar://160718740>

    Reviewed by Per Arne Vollan and Darin Adler.

    * Source/WebCore/platform/sql/SQLiteDatabase.cpp:
    (WebCore::initializeSQLiteIfNecessary):
    - Ensure that sqlite3_initialize() is called from the main thread to
      avoid race conditions.

    Canonical link: https://commits.webkit.org/297297.445@safari-7622-branch

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


  Commit: 1d5b8111776e1e2dcda92425a1dd288a84ed5fe4
      
https://github.com/WebKit/WebKit/commit/1d5b8111776e1e2dcda92425a1dd288a84ed5fe4
  Author: Youenn Fablet <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M 
Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/libvpx/test/encode_api_test.cc
    M 
Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c
    M 
Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.c
    M 
Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c

  Log Message:
  -----------
  Cherry-pick 297297.446@safari-7622-branch (010e247adf52). 
https://bugs.webkit.org/show_bug.cgi?id=299218

    Potential 'overflow' issue commited to upstream libwebrtc
    rdar://159773684

    Reviewed by Jean-Yves Avenard.

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

    * 
Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/libvpx/test/encode_api_test.cc:
    * 
Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/libvpx/vp9/encoder/vp9_bitstream.c:
    * 
Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/libvpx/vp9/encoder/vp9_encodeframe.c:
    (choose_partitioning):
    * 
Source/ThirdParty/libwebrtc/Source/third_party/libvpx/source/libvpx/vp9/encoder/vp9_pickmode.c:
    (vp9_pick_intra_mode):

    Canonical link: https://commits.webkit.org/297297.446@safari-7622-branch

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


  Commit: 0653b8fb9d569aa7b451f449cfacc3470c31b66a
      
https://github.com/WebKit/WebKit/commit/0653b8fb9d569aa7b451f449cfacc3470c31b66a
  Author: Yusuke Suzuki <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

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

  Log Message:
  -----------
  Cherry-pick 297297.455@safari-7622-branch (fb078f3ea09e). 
https://bugs.webkit.org/show_bug.cgi?id=299307

    [JSC] DFG compiler-side concurrent prototype access folding needs to 
validate ObjectConditionSet
    https://bugs.webkit.org/show_bug.cgi?id=299307
    rdar://154481123

    Reviewed by Yijia Huang.

    DFG does concurrent prototype access folding. Before calling 
generateConditionsForPrototypePropertyHitConcurrently,
    DFG does its own lookup to avoid installing watchpoints for
    non-beneficial cases (generateConditionsForPrototypePropertyHitConcurrently 
is just creating ObjectConditionSet,
    so in the most of cases, it succeeds regardless). But this lookup and 
generateConditionsForPrototypePropertyHitConcurrently
    are different, so we should validate the output 
generateConditionsForPrototypePropertyHitConcurrently after calling it,
    since generateConditionsForPrototypePropertyHitConcurrently may return
    some weird ObjectConditionSet because of concurrent mutator. If 
ObjectConditionSet is weried, installing this means we will
    ensure that condition, but that does not mean that it can be usable for
    prototype folding. So we should check whether the resulted
    ObjectConditionSet is meeting the criteria we would like to guarantee
    for prototype folding.

    In this case, it is not necessary to strictly align ObjectConditionSet
    to what we saw in the first lookup. What we must ensure is the output is
    meeting some critical criteria. If they are met, then it is fine.
    This patch adds these checks after ObjectConditionSet is created.

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

    Canonical link: https://commits.webkit.org/297297.455@safari-7622-branch

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


  Commit: 99ee81a754ec04524c4700b9224bba535d5616d4
      
https://github.com/WebKit/WebKit/commit/99ee81a754ec04524c4700b9224bba535d5616d4
  Author: Daniel Liu <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/JavaScriptCore/wasm/WasmFunctionParser.h

  Log Message:
  -----------
  Cherry-pick 297297.469@safari-7622-branch (57746c0c92d0). 
https://bugs.webkit.org/show_bug.cgi?id=299313

    WasmFunctionParser should reference its signature
    https://bugs.webkit.org/show_bug.cgi?id=299313
    rdar://159603856

    Reviewed by Yijia Huang and Keith Miller.

    The WasmFunctionParser needs to ref its signature, or else we could end up
    in a state where the signature is referenced by just the FunctionParser.

    This patch updates m_signature to become a Ref<>, and edits all uses.

    * Source/JavaScriptCore/wasm/WasmFunctionParser.h:
    (JSC::Wasm::FunctionParser<Context>::parse):
    (JSC::Wasm::FunctionParser<Context>::parseConstantExpression):
    (JSC::Wasm::FunctionParser<Context>::parseBody):
    (JSC::Wasm::FunctionParser<Context>::parseExpression):

    Canonical link: https://commits.webkit.org/297297.469@safari-7622-branch

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


  Commit: a5645a2867e2637a887520adda07dafd9b7a816f
      
https://github.com/WebKit/WebKit/commit/a5645a2867e2637a887520adda07dafd9b7a816f
  Author: Shu-yu Guo <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A JSTests/wasm/stress/simd-global-v128.js
    M Source/JavaScriptCore/wasm/WasmSectionParser.cpp

  Log Message:
  -----------
  Cherry-pick 297297.470@safari-7622-branch (be2f211a40c2). 
https://bugs.webkit.org/show_bug.cgi?id=299331

    [JSC] Fix Wasm global V128 parsing

    https://bugs.webkit.org/show_bug.cgi?id=299331
    rdar://161060967

    Reviewed by Dan Hecht.

    This PR fix Wasm global parsing which assumes that a V128 type always has a
    constant vector, while it will only have it for constant SIMD opcodes.

    Also fixes a related issue where when parsing SIMD constant initializers, 
the
    extended SIMD opcode is treated as a non-extension opcode.

    * JSTests/wasm/stress/simd-global-v128.js: Added.

    Canonical link: https://commits.webkit.org/297297.470@safari-7622-branch

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


  Commit: 3175f423b3ccc45938965405e8be6b6e7780267f
      
https://github.com/WebKit/WebKit/commit/3175f423b3ccc45938965405e8be6b6e7780267f
  Author: Claudio Saavedra <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A LayoutTests/fast/html/crash-marquee-fullscreen-expected.txt
    A LayoutTests/fast/html/crash-marquee-fullscreen.html
    M Source/WebCore/rendering/RenderElement.cpp

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

    ASAN_ILL | LayoutIntegration::LineLayout::paint; 
WebCore::RenderBlock::paintObject; WebCore::RenderBlock::paint
    https://bugs.webkit.org/show_bug.cgi?id=296869

    Reviewed by Alan Baradlay.

    This crash is caused by how RenderMarquee (which is not an actual render)
    handles internally its state. When the marquee is in a seemingly active
    state but it has been stopped, RenderMarquee will mark its renderer
    as needing layout. However, when the marquee is part of inline content,
    this information is not available when the style difference is adjusted --
    so it can easily be skipped for layout, creating an inconsistent state
    and trigger an assertion after layout has finished and it is detected
    that there is still a renderer that is dirty.

    Address this by checking in RenderElement::adjustStyleDifference() whether
    the renderer is used for a Marquee, in which case we make the difference
    include layout as well as any other needed change.

    The conditions for this to happen seem to be that the marquee is stopped
    early on, nearby elements have to be reparented so as to trigger a rebuild 
of the
    render tree, and the marquee block renderer ends up as part of inline 
content.
    In the test case added, the asynchronous fullscreen call forces a relayout
    after the conditions are met, so we end up with a dirty render tree after
    layout. It seems to be very time-sensitive, hence the test is not so 
elegant,
    but it's as good as it gets considering it's a reduction from a fuzzing 
test case.

    * LayoutTests/fast/html/crash-marquee-fullscreen-expected.txt: Added.
    * LayoutTests/fast/html/crash-marquee-fullscreen.html: Added.
    * Source/WebCore/rendering/RenderElement.cpp:
    (WebCore::RenderElement::adjustStyleDifference const):

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

    Canonical link: https://commits.webkit.org/297297.472@safari-7622-branch

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


  Commit: 1e0576e6baf8d77195287e775d87119ecb698257
      
https://github.com/WebKit/WebKit/commit/1e0576e6baf8d77195287e775d87119ecb698257
  Author: Vassili Bykov <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A JSTests/wasm/regress/299491.js
    M Source/JavaScriptCore/wasm/WasmFunctionParser.h

  Log Message:
  -----------
  Cherry-pick 297297.473@safari-7622-branch (9a6b5549c26a). 
https://bugs.webkit.org/show_bug.cgi?id=299491

    FunctionParser::resetLocalInitStackToHeight should capture the stack size 
before iterating
    https://bugs.webkit.org/show_bug.cgi?id=299491
    rdar://161097132

    Reviewed by Yijia Huang.

    The loop is intended to repeat (stackSize - height) times, popping an 
element each time.
    Because popping an element reduces the current stack size, it should save 
the size in a
    local variable and use the saved value instead of retrieving it repeatedly 
while
    iterating.

    I'm also using this as an opportunity to make this and a couple of 
surrounding multi-line
    functions more readable by adding line breaks between them.

    Canonical link: https://commits.webkit.org/297297.473@safari-7622-branch

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


  Commit: f7b4b1c0c0487d5731d2efa9419d45403bb769f2
      
https://github.com/WebKit/WebKit/commit/f7b4b1c0c0487d5731d2efa9419d45403bb769f2
  Author: Keith Miller <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A LayoutTests/workers/worker-terminate-crash-expected.txt
    A LayoutTests/workers/worker-terminate-crash.html
    M Source/JavaScriptCore/runtime/JSObject.cpp

  Log Message:
  -----------
  Cherry-pick 297297.475@safari-7622-branch (552426566310). 
https://bugs.webkit.org/show_bug.cgi?id=299499

    Creating ArrayStorage should DeferTerminationForAWhile during setup
    https://bugs.webkit.org/show_bug.cgi?id=299499
    rdar://156134962

    Reviewed by Yijia Huang.

    While converting to ArrayStorage if we handle a termination exception we 
can leave the object
    in an inconsistent state. We should just DeferTermination while doing this 
transisition for
    consistency.

    Canonical link: https://commits.webkit.org/297297.475@safari-7622-branch

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


  Commit: bce391542867cdfe7a502cce1df03ae9a7402fda
      
https://github.com/WebKit/WebKit/commit/bce391542867cdfe7a502cce1df03ae9a7402fda
  Author: Youenn Fablet <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/WebCore/loader/MediaResourceLoader.cpp

  Log Message:
  -----------
  Cherry-pick 297297.477@safari-7622-branch (6cfacf6782cd). 
https://bugs.webkit.org/show_bug.cgi?id=299499

    Crash under MediaResourceLoader::requestResource()
    rdar://161217814

    Reviewed by Jean-Yves Avenard.

    We add checks to protect from empty URLs.

    * Source/WebCore/loader/MediaResourceLoader.cpp:
    (WebCore::computeLoadedFromOpaqueSource):
    (WebCore::MediaResourceLoader::requestResource):
    (WebCore::MediaResourceLoader::redirectReceived):

    Canonical link: https://commits.webkit.org/297297.477@safari-7622-branch

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


  Commit: fb62cc4d0ae357a30063a9f63f9c75c9b4ef5cae
      
https://github.com/WebKit/WebKit/commit/fb62cc4d0ae357a30063a9f63f9c75c9b4ef5cae
  Author: Ronan Turner <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/WebCore/css/CSSFontFace.cpp
    M Source/WebCore/css/CSSFontFace.h
    M Source/WebCore/css/CSSFontFaceSource.cpp
    M Source/WebCore/css/CSSFontFaceSource.h
    M Source/WebCore/css/CSSFontSelector.cpp
    M Source/WebCore/loader/cache/CachedFont.cpp
    M Source/WebCore/loader/cache/CachedFont.h
    M Source/WebCore/platform/graphics/Font.cpp
    M Source/WebCore/platform/graphics/Font.h
    M Source/WebCore/workers/WorkerFontLoadRequest.cpp
    M Source/WebCore/workers/WorkerFontLoadRequest.h
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/LockdownModeFonts.mm
    A Tools/TestWebKitAPI/Tests/WebKitCocoa/SafeFontParser-Invalid.ttf
    A Tools/TestWebKitAPI/Tests/WebKitCocoa/SafeFontParser-Worker.html

  Log Message:
  -----------
  Cherry-pick 297297.479@safari-7622-branch (0d4976340f1d). 
https://bugs.webkit.org/show_bug.cgi?id=299511

    Ensure SafeFontParser is used more widely.
    https://bugs.webkit.org/show_bug.cgi?id=299511
    rdar://160955353

    Reviewed by Vitor Roriz and Brent Fulgham.

    SafeFontParser is adopted either when we enable Lockdown Mode, or when
    an explicit setting is set to force it to be used. There were several
    cases where we still did not use SafeFontParser for custom fonts - when
    creating a font request in a Worker, and primarily when supplying
    immediate font sources that did not require a network load.

    This adopts SafeFontParser for these cases too and adjusts several calls
    to be more explicitly clear in their function.

    Testing this is quite tricky as we do not expose anything about being
    handled by SafeFontParser. Instead, currently, a canary font is used in
    two additional test cases that should fail to parse in SafeFontParser,
    but succeeds in FontParser. This allows a proxy measure for identifying
    if we've been loaded in SafeFontParser.

    * Source/WebCore/css/CSSFontFace.cpp:
    (WebCore::CSSFontFace::CSSFontFace):
    (WebCore::CSSFontFace::opportunisticallyStartFontDataURLLoading):
    (WebCore::CSSFontFace::pump):
    (WebCore::CSSFontFace::font):
    * Source/WebCore/css/CSSFontFace.h:
    * Source/WebCore/css/CSSFontFaceSource.cpp:
    (WebCore::CSSFontFaceSource::opportunisticallyStartFontDataURLLoading):
    (WebCore::CSSFontFaceSource::loadCustomFont):
    (WebCore::CSSFontFaceSource::load):
    * Source/WebCore/css/CSSFontFaceSource.h:
    * Source/WebCore/css/CSSFontSelector.cpp:
    (WebCore::CSSFontSelector::opportunisticallyStartFontDataURLLoading):
    * Source/WebCore/loader/cache/CachedFont.cpp:
    (WebCore::CachedFont::ensureCustomFontData):
    (WebCore::CachedFont::createCustomFontData):
    (WebCore::CachedFont::createCustomFontDataWithPolicy):
    (WebCore::CachedFont::createCustomFontDataSystemParser):
    (WebCore::CachedFont::createCustomFontDataSafeFontParser):
    (WebCore::CachedFont::createCustomFontDataExperimentalParser): Deleted.
    * Source/WebCore/loader/cache/CachedFont.h:
    * Source/WebCore/platform/graphics/Font.cpp:
    (WebCore::Font::create):
    * Source/WebCore/platform/graphics/Font.h:
    * Source/WebCore/workers/WorkerFontLoadRequest.cpp:
    (WebCore::WorkerFontLoadRequest::loadCustomFont):
    (WebCore::WorkerFontLoadRequest::ensureCustomFontData):
    * Source/WebCore/workers/WorkerFontLoadRequest.h:
    * Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/LockdownModeFonts.mm:
    (TestWebKitAPI::EncodeResourceAsArrayString):
    (TestWebKitAPI::TEST(LockdownMode, NotAllowedFontLoadingAPI)):
    (TestWebKitAPI::TEST(LockdownMode, AllowedFontLoadingAPI)):
    (TestWebKitAPI::TEST(LockdownMode, NotSupportedFontLoadingAPI)):
    (TestWebKitAPI::TEST(LockdownMode, 
DISABLED_ImmediateParsedViaSafeFontParser)):
    (TestWebKitAPI::TEST(LockdownMode, 
DISABLED_CanaryFontSucceedsInFontParser)):
    (TestWebKitAPI::TEST(LockdownMode, 
DISABLED_WorkerFontParsedViaSafeFontParser)):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/SafeFontParser-Invalid.ttf: Added.
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/SafeFontParser-Worker.html: Added.

    Canonical link: https://commits.webkit.org/297297.479@safari-7622-branch

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


  Commit: 649b9350a9c4c2c3db982ba154f72374d9468855
      
https://github.com/WebKit/WebKit/commit/649b9350a9c4c2c3db982ba154f72374d9468855
  Author: Daniel Liu <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    M Source/bmalloc/bmalloc/TZoneHeapManager.cpp

  Log Message:
  -----------
  Cherry-pick 297297.481@safari-7622-branch (4d7b31cea437). 
https://bugs.webkit.org/show_bug.cgi?id=299486

    Strengthen TZone bucket allocation randomization
    https://bugs.webkit.org/show_bug.cgi?id=299486
    rdar://157014281

    Reviewed by Keith Miller.

    This patch strengthens TZone's bucket allocation randomization by utilizing
    HMAC instead of a PRNG. For systems without CommonCrypto, the fallback is a
    PRNG.

    * Source/bmalloc/bmalloc/TZoneHeapManager.cpp:
    (bmalloc::api::TZoneHeapManager::tzoneBucketForKey):

    Canonical link: https://commits.webkit.org/297297.481@safari-7622-branch

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


  Commit: 9b821c0cc81f3f1158441f198efba596c23bf022
      
https://github.com/WebKit/WebKit/commit/9b821c0cc81f3f1158441f198efba596c23bf022
  Author: Dan Hecht <[email protected]>
  Date:   2025-11-10 (Mon, 10 Nov 2025)

  Changed paths:
    A JSTests/wasm/stress/ipint-bbq-osr-check-try-implicit-slot-overlap2.js
    M Source/JavaScriptCore/wasm/WasmBBQJIT.cpp

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

    [JSC] BBQ does not have implicit exception slot inside Try
    https://bugs.webkit.org/show_bug.cgi?id=300350
    rdar://158848294

    Reviewed by Yusuke Suzuki.

    Follow up to 297297.400@safari-7622-branch: do not access
    BBQJIT::exception() for Try blocks, and fill the Void stack map
    entry with a zero constant so that loadValuesIntoBuffer() will
    zero fill this placeholder slot when constructing the scratch buffer
    for BBQ -> OMG loop OSR.

    * JSTests/wasm/stress/ipint-bbq-osr-check-try-implicit-slot-overlap2.js: 
Added.
    (instantiate):
    (async let.fn0):
    (let.fn1):
    (let.fn2):
    (let.fn3):
    (let.fn4):
    (let.fn5):
    (async let):
    * Source/JavaScriptCore/wasm/WasmBBQJIT.cpp:
    (JSC::Wasm::BBQJITImpl::BBQJIT::exception):
    (JSC::Wasm::BBQJITImpl::BBQJIT::makeStackMap):

    Canonical link: https://commits.webkit.org/297297.520@safari-7622-branch

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

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


Compare: https://github.com/WebKit/WebKit/compare/9ddc37ff3fa3...9b821c0cc81f

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

Reply via email to