[webkit-changes] [WebKit/WebKit] 85bdf3: Cherry-pick 261075 at main (11dd252ef67c). rdar://106...

Sammy Gill noreply at github.com
Thu May 18 16:08:23 PDT 2023


  Branch: refs/heads/safari-7615-branch
  Home:   https://github.com/WebKit/WebKit
  Commit: 85bdf36d80767a1057f13627a7d37e19e1741384
      https://github.com/WebKit/WebKit/commit/85bdf36d80767a1057f13627a7d37e19e1741384
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitbugspy/setup.py
    M Tools/Scripts/libraries/webkitbugspy/webkitbugspy/__init__.py
    M Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py

  Log Message:
  -----------
  Cherry-pick 261075 at main (11dd252ef67c). rdar://106092628

    [webkitbugspy] Handle empty issue members for bugzilla
    https://bugs.webkit.org/show_bug.cgi?id=253167
    rdar://106092628

    Reviewed by Aakash Jain.

    * Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitbugspy/webkitbugspy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:
    (Tracker.populate): Treat 'None' as an empty list when invoking 'in' checks.
    (Tracker.cc_radar): Ditto.

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

Canonical link: https://commits.webkit.org/259548.351@safari-7615-branch


  Commit: 9f301d9e042ec74d5ae3abd0fb3e2bdd7a022e0c
      https://github.com/WebKit/WebKit/commit/9f301d9e042ec74d5ae3abd0fb3e2bdd7a022e0c
  Author: Chirag M Shah <chirag_m_shah at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    A LayoutTests/fullscreen/element-clear-during-fullscreen-crash-expected.txt
    A LayoutTests/fullscreen/element-clear-during-fullscreen-crash.html
    M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp

  Log Message:
  -----------
  Bail out early if m_element is deleted
https://bugs.webkit.org/show_bug.cgi?id=253129
rdar://104290899

Reviewed by Jer Noble.

A call to WebFullScreenManager::willEnterFullScreen() can end up calling
WebFullScreenManager::clearElement() which can happen when location.hash
is changed. This clears the m_element which is then later used in
willEnterFullScreen(). This change bails out early if this happens and
cleans up the state-machine.

* LayoutTests/fullscreen/element-clear-during-fullscreen-crash-expected.txt: Added.
* LayoutTests/fullscreen/element-clear-during-fullscreen-crash.html: Added.
* Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::willEnterFullScreen):

Canonical link: https://commits.webkit.org/259548.352@safari-7615-branch


  Commit: b82284c1f8c5c2dd555179a18bd0d2053cb537b4
      https://github.com/WebKit/WebKit/commit/b82284c1f8c5c2dd555179a18bd0d2053cb537b4
  Author: Chirag M Shah <chirag_m_shah at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    A LayoutTests/fast/html/element-moving-to-new-document-crash-expected.txt
    A LayoutTests/fast/html/element-moving-to-new-document-crash.html
    M Source/WebCore/dom/Element.cpp
    M Source/WebCore/dom/UserActionElementSet.cpp
    M Source/WebCore/dom/UserActionElementSet.h

  Log Message:
  -----------
  Clear UserActionElement state for the node when it is moved from the Document to a different one
https://bugs.webkit.org/show_bug.cgi?id=253012
rdar://105876245

Reviewed by Ryosuke Niwa.

Before this change, when an element was moved from oldDocument to
newDocument, and we had UserActionElementSet state for it, we never
cleared that. This meant that the element was still marked to have this
state, which the newDocument doesn't know about. This change fixes
that.

* LayoutTests/fast/html/element-moving-to-new-document-crash-expected.txt: Added.
* LayoutTests/fast/html/element-moving-to-new-document-crash.html: Added.
* Source/WebCore/dom/Element.cpp:
(WebCore::Element::removedFromAncestor):
* Source/WebCore/dom/UserActionElementSet.cpp:
(WebCore::UserActionElementSet::clear):
* Source/WebCore/dom/UserActionElementSet.h:
(WebCore::UserActionElementSet::clearAllForElement):

Canonical link: https://commits.webkit.org/259548.353@safari-7615-branch


  Commit: c2279007a3a558da49081d5a92b0451af620d8fd
      https://github.com/WebKit/WebKit/commit/c2279007a3a558da49081d5a92b0451af620d8fd
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitcorepy/setup.py
    M Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py
    M Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py

  Log Message:
  -----------
  Cherry-pick 261097 at main (752a2873e756). rdar://106095209

    [webkitcorepy] AutoInstall unable to install pytest-asyncio (or other packages without setup.py)
    https://bugs.webkit.org/show_bug.cgi?id=253066
    rdar://106095209

    Reviewed by Aakash Jain.

    * Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:
    (Package.install): If a project has a setup.cfg, a dummy setup.py in the same location can be
    invoked with our existing code to install the package.

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

Canonical link: https://commits.webkit.org/259548.354@safari-7615-branch


  Commit: 630b1e2aa50f600a30e749d677220ab9550ffdbb
      https://github.com/WebKit/WebKit/commit/630b1e2aa50f600a30e749d677220ab9550ffdbb
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M Source/WebCore/html/OffscreenCanvas.cpp

  Log Message:
  -----------
  Disable main-thread WebGL in OffscreenCanvas.
https://bugs.webkit.org/show_bug.cgi?id=253267
<rdar://105684718>

Reviewed by Simon Fraser.

* Source/WebCore/html/OffscreenCanvas.cpp:
(WebCore::shouldEnableWebGL):

Canonical link: https://commits.webkit.org/259548.355@safari-7615-branch


  Commit: 76096d8aa52c88daa06d994ef54eb75ecd8fb870
      https://github.com/WebKit/WebKit/commit/76096d8aa52c88daa06d994ef54eb75ecd8fb870
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.

WebKit-7615.2.1

Canonical link: https://commits.webkit.org/259548.356@safari-7615-branch


  Commit: e8aa828f10daa163541888be25471906251a0ad4
      https://github.com/WebKit/WebKit/commit/e8aa828f10daa163541888be25471906251a0ad4
  Author: Tadeu Zagallo <tzagallo at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp

  Log Message:
  -----------
  Cherry-pick 05b9d3d37cb2. rdar://problem/105887432

    [JSC] Avoid unnecessary move in FunctionCallResolveNode
    https://bugs.webkit.org/show_bug.cgi?id=252912
    rdar://105887432

    Reviewed by Yusuke Suzuki.

    When generating bytecode for FunctionCallResolveNode, if the target function is
    a local variable, we don't need to move it into a new temporary unless there's
    an assignment in the call arguments. E.g. we need to copy `f` for `f(f=x)`, but
    not for `f(x)`.

    * Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:
    (JSC::FunctionCallResolveNode::emitBytecode):

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

Canonical link: https://commits.webkit.org/259548.357@safari-7615-branch


  Commit: dc7e063da2661c0d77e3c2c59e2f7ef699c7ce9f
      https://github.com/WebKit/WebKit/commit/dc7e063da2661c0d77e3c2c59e2f7ef699c7ce9f
  Author: Tadeu Zagallo <tzagallo at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M Source/JavaScriptCore/parser/ASTBuilder.h

  Log Message:
  -----------
  Cherry-pick cbbc1673e3e5. rdar://problem/105883674

    [JSC] Fix unnecessary moves in read/modify assignment
    https://bugs.webkit.org/show_bug.cgi?id=252902
    <rdar://problem/105883674>

    Reviewed by Yusuke Suzuki.

    When generating bytecode for read/modify assignments, e.g. `x += y`, we have to
    guard against the right-hand side modifying the variables (e.g. `x += y[x=z]`
    or `x += y[y=z]`). In order to do so, the variables are copied after reading.
    We detect whether there are assignments on the left- and right-hand sides by
    recording the number of assignments the code contains at three points: before
    and after parsing the left-hand side and after parsing the right-hand side
    expression. We then check if the values before and after parsing the left are
    equal to determine if it contains any assignments on the left, and compare the
    values after parsing the left and after parsing the right. However, we never
    take into account that we are actively parsing an assignment, so the values
    after parsing the left-hand side and after parsing the right-hand side could
    never be the same. The fix is to simply take into account the assignment we
    just parsed, so we say the right doesn't contain any assignments if after
    parsing the right-hand side expression we have 1 more assingment than after
    parsing the left-hand side expression.

    * Source/JavaScriptCore/parser/ASTBuilder.h:
    (JSC::ASTBuilder::createAssignment):

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

Canonical link: https://commits.webkit.org/259548.358@safari-7615-branch


  Commit: 7b9dcc71d6e9ebe97ca01b7c3e8286b807749378
      https://github.com/WebKit/WebKit/commit/7b9dcc71d6e9ebe97ca01b7c3e8286b807749378
  Author: Myles C. Maxfield <mmaxfield at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M LayoutTests/platform/mac-wk1/editing/mac/attributed-string/font-style-variant-effect-expected.txt

  Log Message:
  -----------
  Cherry-pick 5f719dd2df1a. rdar://problem/105997287

    Revert 260295 at main because it was unnecessary
    https://bugs.webkit.org/show_bug.cgi?id=253033
    rdar://105997287

    Unreviewed gardening.

    1. https://commits.webkit.org/260130@main caused the test to fail
    2. https://commits.webkit.org/260295@main updated the test's expected results (which is what this radar was originally about)
    3. https://commits.webkit.org/260447@main caused the test to fail the opposite way

    So https://commits.webkit.org/260447@main fixed the bug, and https://commits.webkit.org/260295@main was wrong.

    * LayoutTests/platform/mac-wk1/editing/mac/attributed-string/font-style-variant-effect-expected.txt:

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

Canonical link: https://commits.webkit.org/259548.359@safari-7615-branch


  Commit: f101053a3f1ad6aef17d1ec8c261a1fd8fc427eb
      https://github.com/WebKit/WebKit/commit/f101053a3f1ad6aef17d1ec8c261a1fd8fc427eb
  Author: Brandon Stewart <brandonstewart at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

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

  Log Message:
  -----------
  Cherry-pick fe58e5cd0281. rdar://problem/106003684

    Disable Apple Compression API in Compression Streams
    https://bugs.webkit.org/show_bug.cgi?id=253042

    Reviewed by Brent Fulgham.

    Disable Compression API for Compression Streams right now as it is causing issues
    on web sites.

    * Source/WebCore/Modules/compression/DecompressionStreamDecoder.cpp:
    (WebCore::DecompressionStreamDecoder::decompress):
    * Source/WebCore/Modules/compression/DecompressionStreamDecoder.h:
    (WebCore::DecompressionStreamDecoder::DecompressionStreamDecoder):

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

Canonical link: https://commits.webkit.org/259548.360@safari-7615-branch


  Commit: 742cec095c8f00cc5b4a4d6fcfd3f2d70970bda4
      https://github.com/WebKit/WebKit/commit/742cec095c8f00cc5b4a4d6fcfd3f2d70970bda4
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm

  Log Message:
  -----------
  Cherry-pick 96230945f879. rdar://problem/94878533

    CRASH: GPUP at -[WebCoreNSURLSessionDataTask _cancel]
    https://bugs.webkit.org/show_bug.cgi?id=253044
    rdar://94878533

    Reviewed by Eric Carlson.

    -[WebCoreNSURLSessionDataTask session] currently converts a WeakObjC pointer (safely) into
    a RetainPtr, then returns a raw pointer from that RetainPtr. The RetainPtr is destroyed after
    returning, which reduces the retain count. It is then stored into a RetainPtr again by the
    caller inside -_cancel;

    Meanwhile, on another thread, the WebCoreNSURLSession can be released by the system, leaving
    an opportunity to release the WebCoreNSURLSession and reduce it's retain count to zero in
    between the two RetainPtr calls on the main thread, leading to the client retaining a dealloc'd
    object.

    Instead, -session should return an autorelease()'d pointer, thereby ensuring the session is
    retained long enough for the client to retain it. This will increase retain-count churn, but
    will also guarantee the object cannot be destroyed on a background thread while it's still
    being used on the main thread.

    * Source/WebCore/platform/network/cocoa/WebCoreNSURLSession.mm:
    (-[WebCoreNSURLSessionDataTask session]):

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

Canonical link: https://commits.webkit.org/259548.361@safari-7615-branch


  Commit: eb8c7e2308388f3560b425d65b4510834dae496e
      https://github.com/WebKit/WebKit/commit/eb8c7e2308388f3560b425d65b4510834dae496e
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    A LayoutTests/fast/screen-orientation/natural-orientation-expected.txt
    A LayoutTests/fast/screen-orientation/natural-orientation.html
    M LayoutTests/imported/w3c/web-platform-tests/screen-orientation/orientation-reading-expected.txt
    A LayoutTests/platform/ios/fast/screen-orientation/natural-orientation-expected.txt
    M Source/WebCore/page/ScreenOrientation.cpp
    M Source/WebCore/page/ScreenOrientationType.h
    M Source/WebCore/platform/ScreenOrientationProvider.cpp
    M Source/WebKit/WebProcess/WebCoreSupport/WebScreenOrientationManager.cpp

  Log Message:
  -----------
  Cherry-pick 541ca5a79560. rdar://problem/105891522

    Regression(255659 at main) Unable to log into twitch.tv
    https://bugs.webkit.org/show_bug.cgi?id=253026
    rdar://105891522

    Reviewed by Wenson Hsieh and Darin Adler.

    The Twitch.tv login was failing because `screen.orientation` was returning
    "portrait-primary" on macOS. The natural/default orientation on desktop should
    be "landscape-primary" so this was confusing Twitch.

    Also update our `screen.angle` logic to take into account the natural
    orientation based on:
    - https://w3c.github.io/screen-orientation/#dfn-screen-orientation-values-table

    I have verified that Chrome on macOS returns "landscape-primary" for the type
    and 0 for the angle. Our behavior is now aligned.

    * LayoutTests/fast/screen-orientation/natural-orientation-expected.txt: Added.
    * LayoutTests/fast/screen-orientation/natural-orientation.html: Added.
    * LayoutTests/platform/ios/screen-orientation/natural-orientation-expected.txt: Added.
    * Source/WebCore/page/ScreenOrientation.cpp:
    (WebCore::ScreenOrientation::lock):
    * Source/WebCore/page/ScreenOrientationType.h:
    (WebCore::naturalScreenOrientationType):
    * Source/WebCore/platform/ScreenOrientationProvider.cpp:
    (WebCore::ScreenOrientationProvider::currentOrientation):
    * Source/WebKit/WebProcess/WebCoreSupport/WebScreenOrientationManager.cpp:
    (WebKit::WebScreenOrientationManager::currentOrientation):

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

Canonical link: https://commits.webkit.org/259548.362@safari-7615-branch


  Commit: 668fa3829165ebb159805543d1a56b9af9cd5f2e
      https://github.com/WebKit/WebKit/commit/668fa3829165ebb159805543d1a56b9af9cd5f2e
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-nested-inside-nested-inline-expected.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-float-nested-inside-nested-inline.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-floats-adjacent-to-containing-block-should-be-trimmed-only-expected.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-floats-adjacent-to-containing-block-should-be-trimmed-only.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-intersecting-other-float-to-fit-expected.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-intersecting-other-float-to-fit.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-expected.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-rtl-expected.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-rtl.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-vert-lr-expected.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-vert-lr.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-orthogonal-float-overconstraining-line-box-to-fit-expected.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-orthogonal-float-overconstraining-line-box-to-fit.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-intersecting-other-float-to-fit-expected.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-intersecting-other-float-to-fit.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-expected.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-rtl-expected.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-rtl.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-vert-lr-expected.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-vert-lr.html
    A LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-nested-inside-nested-inline-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-nested-inside-nested-inline.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-floats-adjacent-to-containing-block-should-be-trimmed-only-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-floats-adjacent-to-containing-block-should-be-trimmed-only.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-intersecting-other-float-to-fit-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-intersecting-other-float-to-fit.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-rtl-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-rtl.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-vert-lr-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-vert-lr.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-orthogonal-float-overconstraining-line-box-to-fit-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-orthogonal-float-overconstraining-line-box-to-fit.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-intersecting-other-float-to-fit-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-intersecting-other-float-to-fit.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-rtl-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-rtl.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-vert-lr-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-vert-lr.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit.html
    M Source/WebCore/rendering/line/BreakingContext.h

  Log Message:
  -----------
  Cherry-pick bad6e12c6625. rdar://problem/105984917

    Trim margins for overconstraining floats that are adjacent to the containing block inner without clear and other intrusive floats
    https://bugs.webkit.org/show_bug.cgi?id=253008
    rdar://105984917

    Reviewed by Alan Baradlay.

    When going through float layout and determining their position within a
    containing block we check to see if they would overconstrain any lines
    boxes or would intersect with any other floats at that candidate
    position. If they would, we would hold off on positioning them until we
    finish inline layout with the current line. However, with margin-trim
    it is possible that these floats would fit at these positions with their
    margins trimmed.

    In order to determine whether we can trim such a margin, the following
    must be true for the float:
    1.) The float's candidate position is adjacent to the containing block's
        inner edge
    2.) margin-trim is set for that edge (e.g. margin-trim:
        inline/inline-start for a left positioned float)
    3.) The float overconstrains a line box or intersects with another float
        at that vertical position but would not overconstrain a line
        box/intersect a float if that margin were trimmed

    In these scenarios we can trim the appropriate margin for the float and
    place it at that vertical position.

    container {
        display: block;
        border: 1px solid black;
        inline-size: 100px;
        font-family: monospace;
        font-size: 10px;
        margin-trim: inline;
    }
    item {
        display: block;
        inline-size: 25px;
        block-size: 80px;
        background-color: green;
        margin-inline-end: 80px;
        float: right;
    }
    </style>
    <container>
        <span>The text</span>
        <item></item>
        <span>should wrap alongside the float to the right</span>
    </container>
    Without margin-trim the float would overconstrain the first line box
    and would not get placed at the same vertical position. However, since
    margin-trim is specified, resulting box would fit at that position, and
    it would get placed against the containing block's inner edge,
    then we can trim its margins and place it there.

    container {
        display: block;
        inline-size: 100px;
        font-family: monospace;
        font-size: 10px;
        margin-trim: inline;
    }
    item {
        display: block;
        inline-size: 50px;
        block-size: 100px;
        background-color: green;
    }
    .float-right {
        float: right;
        margin-inline-end: 80px;
    }
    .float-left {
        float: left;
    }
    </style>
    <container>
        <span>Test passes if there is a filled green square below.</span></br>
         <item class="float-left"></item>
        <item class="float-right"></item>
    </container>

    Similarly, after placing the first float we would not normally be able
    to position the second one since the margin would result in it
    intersecting with the other one. However due to the same conditions
    in the first example we can trim the inline-end margin and place it at
    the same vertical position as the other float.
    * LayoutTests/TestExpectations:
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-nested-inside-nested-inline-expected.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-float-nested-inside-nested-inline.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-floats-adjacent-to-containing-block-should-be-trimmed-only-expected.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-floats-adjacent-to-containing-block-should-be-trimmed-only.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-intersecting-other-float-to-fit-expected.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-intersecting-other-float-to-fit.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-expected.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-rtl-expected.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-rtl.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-vert-lr-expected.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-vert-lr.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-orthogonal-float-overconstraining-line-box-to-fit-expected.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-orthogonal-float-overconstraining-line-box-to-fit.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-intersecting-other-float-to-fit-expected.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-intersecting-other-float-to-fit.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-expected.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-rtl-expected.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-rtl.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-vert-lr-expected.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-vert-lr.html: Added.
    * LayoutTests/fast/inline/legacy-margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-nested-inside-nested-inline-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-float-nested-inside-nested-inline.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-floats-adjacent-to-containing-block-should-be-trimmed-only-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-floats-adjacent-to-containing-block-should-be-trimmed-only.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-intersecting-other-float-to-fit-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-intersecting-other-float-to-fit.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-rtl-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-rtl.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-vert-lr-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit-vert-lr.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-left-positioned-float-overconstraining-line-box-to-fit.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-orthogonal-float-overconstraining-line-box-to-fit-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-orthogonal-float-overconstraining-line-box-to-fit.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-intersecting-other-float-to-fit-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-intersecting-other-float-to-fit.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-rtl-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-rtl.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-vert-lr-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit-vert-lr.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-trimmed-margin-allows-right-positioned-float-overconstraining-line-box-to-fit.html: Added.
    * Source/WebCore/rendering/line/BreakingContext.h:
    (WebCore::BreakingContext::handleFloat):

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

Canonical link: https://commits.webkit.org/259548.363@safari-7615-branch


  Commit: cde9671150333d33a991333f239881ce265798ef
      https://github.com/WebKit/WebKit/commit/cde9671150333d33a991333f239881ce265798ef
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp
    M Source/WebCore/platform/mediastream/RealtimeMediaSource.h
    M Source/WebCore/platform/mediastream/RealtimeVideoSource.h
    M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.h
    M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm

  Log Message:
  -----------
  Cherry-pick c9e35ddc3cab. rdar://problem/105677398

    REGRESSION (iOS 16.4 Public Beta) getUserMedia ignores facingMode constraint
    https://bugs.webkit.org/show_bug.cgi?id=252560
    rdar://problem/105677398

    Reviewed by Eric Carlson.

    We added a way to favor some back cameras (those that have a great focal range) against other back cameras.
    We did this by increasing the facingMode fitness distance for the telephoto back cameras.

    The base fitness distance for user/environment facingMode constraint is either 0 (match) or 1 (no match).
    When facingMode is environement, the front camera will have a base fitness distance of 1 and a final fitness distance of 1.

    The back camera will have a base fitness distance of 0 and a final fitness distance of 0 + the fitness distance increase.
    The fitness distance increase is either 0, 1, 2...

    The issue is that RealtimeMediaSource::supportsConstraints computes the fitness score by checking whether distance is 0 or something else.
    If distance is 0, the score is 32 otherwise it is 1.
    This ensures that facingMode has a big weight on the global fitness score.

    We now apply facingModeFitnessDistanceAdjustment directly to the global fitness score.
    This requires having good devices with a high value.

    Renaming facingModeFitnessDistanceAdjustment to facingModeFitnessScoreAdjustment for that reason.

    * Source/WebCore/platform/mediastream/RealtimeMediaSource.cpp:
    (WebCore::RealtimeMediaSource::fitnessDistance):
    (WebCore::RealtimeMediaSource::supportsConstraints):
    * Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:
    (WebCore::AVVideoCaptureSource::facingModeFitnessDistanceAdjustment const):

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

Canonical link: https://commits.webkit.org/259548.364@safari-7615-branch


  Commit: d7c09962f75d027a933579050ec84e24d02527b9
      https://github.com/WebKit/WebKit/commit/d7c09962f75d027a933579050ec84e24d02527b9
  Author: Tim Nguyen <ntim at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/fullscreen/model/move-fullscreen-element-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/fullscreen/model/move-fullscreen-element.html
    M Source/WebCore/dom/FullscreenManager.cpp

  Log Message:
  -----------
  Cherry-pick d8b353380562. rdar://problem/105713729

    REGRESSION(257542 at main): Video is misaligned on YouTube site's PiP player after transitioning from full screen
    https://bugs.webkit.org/show_bug.cgi?id=253121
    rdar://105713729

    Reviewed by Ryosuke Niwa.

    There is a bug with the fullscreen spec that leaves a dangling fullscreen flag when moving elements: https://github.com/whatwg/fullscreen/issues/217
    This causes fullscreen styles to unintentionally apply on the YouTube site even though the player element which has moved in the DOM tree, has exited
    fullscreen.

    To fix this, we follow Chromium's pattern of running an extra "unfullscreen element" step in the synchronous exit fullscreen steps when the element to
    be exited is disconnected.

    * LayoutTests/imported/w3c/web-platform-tests/fullscreen/model/move-fullscreen-element-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/fullscreen/model/move-fullscreen-element.html: Added.
    * Source/WebCore/dom/FullscreenManager.cpp:
    (WebCore::FullscreenManager::exitFullscreen):

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

Canonical link: https://commits.webkit.org/259548.365@safari-7615-branch


  Commit: c21723ddf108084d87c4f0e8b4f78ac2afc883ec
      https://github.com/WebKit/WebKit/commit/c21723ddf108084d87c4f0e8b4f78ac2afc883ec
  Author: Tadeu Zagallo <tzagallo at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    A JSTests/stress/tdz-check-catch-read.js
    M Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp

  Log Message:
  -----------
  Cherry-pick e7b74be2715f. rdar://problem/106019944

    [JSC] ResolveNode can't always skip the extra move
    https://bugs.webkit.org/show_bug.cgi?id=253142
    rdar://106076478

    Reviewed by Keith Miller.

    In http://commits.webkit.org/260555@main I landed an optimization avoid the extra
    move in ResolveNode. However, that's not valid when we actually need the TDZ check.
    If the check fails, we throw an exception, but we already wrote to the destination.
    As a compromise, we still avoid the move unless we actually need the TDZ check.

    * JSTests/stress/tdz-check-catch-read.js: Added.
    (f):
    * Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:
    (JSC::ResolveNode::emitBytecode):

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

Canonical link: https://commits.webkit.org/259548.366@safari-7615-branch


  Commit: 074f14fa6c38736e51d6599a9cc5f6b0fd8cfe77
      https://github.com/WebKit/WebKit/commit/074f14fa6c38736e51d6599a9cc5f6b0fd8cfe77
  Author: Cameron McCormack <heycam at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M Source/WebCore/page/MemoryRelease.cpp

  Log Message:
  -----------
  Cherry-pick 69098ebe6b1e. rdar://problem/106065668

    Make memory pressure handler call deleteAllCode with PreventCollectionAndDeleteAllCode
    https://bugs.webkit.org/show_bug.cgi?id=253133
    <rdar://problem/106065668>

    Reviewed by Mark Lam and Yusuke Suzuki.

    The memory pressure handler currently calls
    GCController::deleteAllCode(DeleteAllCodeIfNotCollecting), but it turns out we
    hit the case of a collection being in progress moderately often. We already
    do a bunch of blocky work here to get memory usage down, so let's change this
    to PreventCollectionAndDeleteAllCode to guarantee we can drop all JIT code.

    * Source/WebCore/page/MemoryRelease.cpp:
    (WebCore::releaseCriticalMemory):

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

Canonical link: https://commits.webkit.org/259548.367@safari-7615-branch


  Commit: a273d4a745fb982c8000892bbb574eef5fb430d5
      https://github.com/WebKit/WebKit/commit/a273d4a745fb982c8000892bbb574eef5fb430d5
  Author: Aditya Keerthi <akeerthi at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M Source/WebKit/UIProcess/ios/WKPDFView.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm

  Log Message:
  -----------
  Cherry-pick ad5c950167f1. rdar://problem/105784161

    REGRESSION (259655 at main): [iOS] Crash when opening a PDF after searching for text in a webpage
    https://bugs.webkit.org/show_bug.cgi?id=253194
    rdar://105784161

    Reviewed by Wenson Hsieh, Megan Gardner and Tim Horton.

    259655 at main fixed find-in-PDF behavior by ensuring the `UIFindSession`'s
    "searchable object" is always up-to-date.

    When switching from a webpage to a PDF, WebKit switches the type of the
    searchable object from `WKContentView` to `WKPDFView`. UIKit is not robust
    against searchable object modification, as they cache the existence of
    optional protocol methods and do not update the result when the object changes.
    Consequently, optional protocol methods are called unconditionally on
    `WKPDFView`, simply because `WKContentView` implements them.

    Ideally, WebKit would recreate the `UIFindSession` itself when the searchable
    object changes. However, this is not possible with existing API/SPI.

    To fix, implement "optional" protocol methods that UIKit may end up calling
    when searching for text. This prevents crashing due to unrecognized selectors.

    * Source/WebKit/UIProcess/ios/WKPDFView.mm:
    (-[WKPDFView supportsTextReplacement]):
    (-[WKPDFView scrollRangeToVisible:inDocument:]):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/FindInPage.mm:
    (TEST):

    Add a regression test that opens and closes the find panel on web content, loads
    a PDF, and then attempts to open and close the find panel on the PDF content.

    The test crashes without this patch.

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

Canonical link: https://commits.webkit.org/259548.368@safari-7615-branch


  Commit: 8d02384f8461819df3d149c8f94978a4ccb962f7
      https://github.com/WebKit/WebKit/commit/8d02384f8461819df3d149c8f94978a4ccb962f7
  Author: Antti Koivisto <antti at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M Source/WebCore/style/AttributeChangeInvalidation.cpp

  Log Message:
  -----------
  Cherry-pick 2c5baee03fa2. rdar://problem/105628059

    nullptr crash in WebCore::SelectorChecker::attributeSelectorMatches
    https://bugs.webkit.org/show_bug.cgi?id=253067
    rdar://105628059

    Reviewed by Geoffrey Garen and Alan Baradlay.

    Speculative fix.

    * Source/WebCore/style/AttributeChangeInvalidation.cpp:
    (WebCore::Style::AttributeChangeInvalidation::invalidateStyle):

    Check that we actually have an attribute selector.

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

Canonical link: https://commits.webkit.org/259548.369@safari-7615-branch


  Commit: 959c62ac0cf1fc8730ed49cdd793d39a30fe9f3c
      https://github.com/WebKit/WebKit/commit/959c62ac0cf1fc8730ed49cdd793d39a30fe9f3c
  Author: Cameron McCormack <heycam at apple.com>
  Date:   2023-03-02 (Thu, 02 Mar 2023)

  Changed paths:
    M Source/WebKit/WebProcess/WebProcess.cpp
    M Source/WebKit/WebProcess/WebProcess.h
    M Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm

  Log Message:
  -----------
  Cherry-pick 0668d887feed. rdar://problem/106009868

    Ask system malloc to free up memory in non-visible Web processes
    https://bugs.webkit.org/show_bug.cgi?id=253173
    rdar://106009868

    Reviewed by Geoffrey Garen.

    We currently do some memory reduction work in non-visible Web processes (those
    that only have background tabs) off a timer. We can ask the system malloc to
    free up memory off one of these timers too.

    malloc_zone_pressure_relief will block the thread it's called on, so we
    call it on a background thread, which is allowed. Local testing shows it
    can run for several ms, but it will only cause regular malloc
    contention, not block other threads entirely.

    This patch repurposes the "graphics cleanup timer" to be an "early
    memory cleanup timer", and we perform the system malloc cleanup off it.
    The more aggressive cleanup tasks that can clear caches etc. remain off
    the other memory cleanup timer, which runs later.

    * Source/WebKit/WebProcess/WebProcess.cpp:
    (WebKit::WebProcess::pageDidEnterWindow):
    (WebKit::WebProcess::pageWillLeaveWindow):
    (WebKit::WebProcess::nonVisibleProcessEarlyMemoryCleanupTimerFired):
    (WebKit::WebProcess::nonVisibleProcessGraphicsCleanupTimerFired): Deleted.
    * Source/WebKit/WebProcess/WebProcess.h:
    * Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:
    (WebKit::WebProcess::releaseSystemMallocMemory):

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

Canonical link: https://commits.webkit.org/259548.370@safari-7615-branch


  Commit: 6f9b18dfa549e47f5006aa5f8fec5ae36261a443
      https://github.com/WebKit/WebKit/commit/6f9b18dfa549e47f5006aa5f8fec5ae36261a443
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-03-03 (Fri, 03 Mar 2023)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/fast/editing/ruby-with-edited-text-crash-expected.txt
    A LayoutTests/fast/editing/ruby-with-edited-text-crash.html
    M Source/WebCore/rendering/RenderBlock.cpp

  Log Message:
  -----------
  Cherry-pick 261063 at main (02bb8ae9d573). rdar://problem/105848359

    Make sure child is a RenderElement before trying to pass it into shouldChildInlineMarginContributeToContainerIntrinsicSize in RenderBlock::computeBlockPreferredLogicalWidths

    https://bugs.webkit.org/show_bug.cgi?id=253165
    rdar://105848359

    Reviewed by Alan Baradlay.

    We should not be assuming that child is always doing to be a
    RenderElement in this method. It can sometimes be a RenderText (like
    in the attached test case), which will cause a nullptr dereference.
    Instead, we should check the result of the dynamicDowncast before
    passing it into shouldChildInlineMarginContributeToContainerIntrinsicSize.

    The only other change is that we use the default constructor for
    startMarginLength and endMarginLength. This should be ok even if we do
    not enter the code guarded by the if statement because the isFixed()
    call will return false and not impact the margins.

    * LayoutTests/TestExpectations:
    * LayoutTests/fast/editing/ruby-with-edited-text-crash-expected.txt: Added.
    * LayoutTests/fast/editing/ruby-with-edited-text-crash.html: Added.
    * Source/WebCore/rendering/RenderBlock.cpp:
    (WebCore::RenderBlock::computeBlockPreferredLogicalWidths const):

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

Canonical link: https://commits.webkit.org/259548.371@safari-7615-branch


  Commit: ac22fd93ff2e77be4517324f7785ebf5d06c8464
      https://github.com/WebKit/WebKit/commit/ac22fd93ff2e77be4517324f7785ebf5d06c8464
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-03-03 (Fri, 03 Mar 2023)

  Changed paths:
    M Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp
    M Source/WebCore/loader/cache/CachedResourceLoader.cpp
    M Source/WebCore/page/Quirks.cpp
    M Source/WebCore/page/Quirks.h

  Log Message:
  -----------
  Cherry-pick eb5cfc861737. rdar://problem/104818312

    Regression(256456 at main) Express checkout is broken on victoriassecret.com
    https://bugs.webkit.org/show_bug.cgi?id=253265
    rdar://104818312

    Reviewed by Brent Fulgham and Youenn Fablet.

    Temporarily disable the Fetch Metadata feature on victoriassecret.com since it
    breaks express checkout and while we're investigate the root cause.

    * Source/WebCore/Modules/websockets/ThreadableWebSocketChannel.cpp:
    (WebCore::ThreadableWebSocketChannel::webSocketConnectRequest):
    * Source/WebCore/loader/cache/CachedResourceLoader.cpp:
    (WebCore::CachedResourceLoader::updateRequestAfterRedirection):
    (WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
    * Source/WebCore/page/Quirks.cpp:
    (WebCore::Quirks::shouldDisableFetchMetadata const):
    * Source/WebCore/page/Quirks.h:

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


  Commit: 93a64d9ea625c24087246bf551f14b83ab422ad9
      https://github.com/WebKit/WebKit/commit/93a64d9ea625c24087246bf551f14b83ab422ad9
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2023-03-03 (Fri, 03 Mar 2023)

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

  Log Message:
  -----------
  Cherry-pick 6dd3a73e5aa2. rdar://problem/105201326

    REGRESSION(255420 at main) Embed-loading PDFs from newly opened about:blank terminates web process
    https://bugs.webkit.org/show_bug.cgi?id=253285
    rdar://105201326

    Reviewed by J Pascoe.

    In 255420 at main I introduced checks in the network process to make sure that firstPartyForCookies
    is an allowed domain for that process.  There are a few places in WebKit where we still have
    about:blank or a null firstPartyForCookies, which is fine most of the time because
    ResourceRequest::allowCookies is false so it doesn't matter that there's no firstPartyForCookies.
    Sometimes, though, we have a piece of code that loads without a firstPartyForCookies and allows
    cookies.  This is an existing bug and should probably be fixed, but it is not catastrophic
    because the result is that no cookie access is given.  However, with 255420 at main it became catastrophic
    because we terminate the web content process, which I'm told is undesirable when a user is trying to do
    something like download a PDF.  This change makes it no longer terminate the web content process.

    * Source/WebKit/NetworkProcess/NetworkProcess.cpp:
    (WebKit::NetworkProcess::allowsFirstPartyForCookies):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/CookiePrivateBrowsing.mm:
    (TEST):

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


  Commit: 1aa80d9409992605f1f65d31ec73aab3cd5c449d
      https://github.com/WebKit/WebKit/commit/1aa80d9409992605f1f65d31ec73aab3cd5c449d
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2023-03-03 (Fri, 03 Mar 2023)

  Changed paths:
    M Source/WebKit/NetworkProcess/storage/CacheStorageCache.cpp
    M Source/WebKit/NetworkProcess/storage/CacheStorageCache.h

  Log Message:
  -----------
  Cherry-pick 5c2607837be6. rdar://problem/105122133

    Add assertions in CacheStorageCache to help debug threading issues
    https://bugs.webkit.org/show_bug.cgi?id=253223
    rdar://106124999

    Reviewed by Chris Dumez.

    rdar://105122133 indicates CacheStorageCache may have threading issues (e.g. record url may become AtomString at some
    point), so adding some assertion to help debug that.

    This patch also make an isolated copy for record url before passing it to CacheStorageCache.

    * Source/WebKit/NetworkProcess/storage/CacheStorageCache.cpp:
    (WebKit::computeKeyURL):
    (WebKit::CacheStorageCache::CacheStorageCache):
    (WebKit::CacheStorageCache::getSize):
    (WebKit::CacheStorageCache::open):
    (WebKit::CacheStorageCache::retrieveRecords):
    (WebKit::CacheStorageCache::removeRecords):
    (WebKit::CacheStorageCache::findExistingRecord):
    (WebKit::CacheStorageCache::putRecords):
    (WebKit::CacheStorageCache::putRecordsAfterQuotaCheck):
    (WebKit::CacheStorageCache::putRecordsInStore):
    (WebKit::CacheStorageCache::removeAllRecords):
    (WebKit::CacheStorageCache::close):
    * Source/WebKit/NetworkProcess/storage/CacheStorageCache.h:
    (WebKit::CacheStorageCache::assertIsOnCorrectQueue):

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


  Commit: 841ab1df8b81be5a4240b5e50036c6533dfb0cdf
      https://github.com/WebKit/WebKit/commit/841ab1df8b81be5a4240b5e50036c6533dfb0cdf
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-03-03 (Fri, 03 Mar 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/GraphicsContext.h
    M Source/WebCore/platform/graphics/ImageBuffer.cpp
    M Source/WebCore/platform/graphics/cg/NativeImageCG.cpp

  Log Message:
  -----------
  Cherry-pick 9180e60fc30a. rdar://problem/106017462

    REGRESSION(260512 at main): HDR images should be drawn directly if the destination context has HDR color space
    https://bugs.webkit.org/show_bug.cgi?id=253275
    rdar://106055782

    Reviewed by Simon Fraser.

    CoreGraphics should draw the HDR images directly to the destination context if
    it has HDR color space.

    ImageBuffer::draw() should call GraphicsContext::drawNativeImageInternal() to
    prevent the possible recursion from NativeImage::draw() to ImageBuffer::draw().

    * Source/WebCore/platform/graphics/GraphicsContext.h:
    * Source/WebCore/platform/graphics/ImageBuffer.cpp:
    (WebCore::ImageBuffer::draw):
    (WebCore::ImageBuffer::drawConsuming):
    * Source/WebCore/platform/graphics/cg/NativeImageCG.cpp:
    (WebCore::NativeImage::draw):

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


  Commit: 189d480c5fbdf4275ff64b95d182f60ba753fbcf
      https://github.com/WebKit/WebKit/commit/189d480c5fbdf4275ff64b95d182f60ba753fbcf
  Author: Arunsundar Kannan <arunsundar_kannan at apple.com>
  Date:   2023-03-03 (Fri, 03 Mar 2023)

  Changed paths:
    A LayoutTests/fast/css-grid-layout/gridmatrix-columnSize-failure-expected.txt
    A LayoutTests/fast/css-grid-layout/gridmatrix-columnSize-failure.html
    M Source/WebCore/rendering/Grid.cpp
    M Source/WebCore/rendering/Grid.h

  Log Message:
  -----------
  Assertion failure in GridIterator ASSERT(m_grid.numTracks(ForColumns))
https://bugs.webkit.org/show_bug.cgi?id=253127
rdar://105548703

Reviewed by Matt Woodrow.

The grid matrix for a subgrid of an element in the row-axis has one row with no columns, which are then lazily created as needed. An assertion in GridIterator constructor fails as column size is zero. This change additionally checks the maximum Columns ivar of the grid class to assert only for valid cases.

* Source/WebCore/rendering/Grid.cpp:
(WebCore::Grid::gridItemSpanIgnoringCollapsedTracks const):
(WebCore::GridIterator::GridIterator):
(WebCore::GridIterator::nextGridItem):
(WebCore::GridIterator::isEmptyAreaEnough const):
(WebCore::GridIterator::nextEmptyGridArea):
* Source/WebCore/rendering/Grid.h:

Canonical link: https://commits.webkit.org/259548.376@safari-7615-branch


  Commit: 25a414a61f3e31137deaef19bcc055235ddb2754
      https://github.com/WebKit/WebKit/commit/25a414a61f3e31137deaef19bcc055235ddb2754
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-03-06 (Mon, 06 Mar 2023)

  Changed paths:
    A JSTests/stress/ftl-bound-check-for-enumerator-next-update-index-and-mode.js
    M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp

  Log Message:
  -----------
  FTL missing bound check of for-in loop
https://bugs.webkit.org/show_bug.cgi?id=252801
rdar://105820083

Reviewed by Michael Saboff.

EnumeratorNextUpdateIndexAndMode for IndexedMode uses HasIndexProperty internally. But
this node does not do bound check when ArrayMode is inBounds in FTL since FTL SSALowering
phase extracts this bound check as a separate CheckInBounds node. But EnumeratorNextUpdateIndexAndMode,
we cannot do that since EnumeratorNextUpdateIndexAndMode's index is incremented internally. Thus,
we need to do bound check inside EnumeratorNextUpdateIndexAndMode when it is not done in HasIndexProperty's
code.

* JSTests/stress/ftl-bound-check-for-enumerator-next-update-index-and-mode.js: Added.
(shouldBe):
(opt):
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

Canonical link: https://commits.webkit.org/259548.377@safari-7615-branch


  Commit: 3d135908241d5bf6c0ec77159e8185ee648de269
      https://github.com/WebKit/WebKit/commit/3d135908241d5bf6c0ec77159e8185ee648de269
  Author: Michael Saboff <msaboff at apple.com>
  Date:   2023-03-06 (Mon, 06 Mar 2023)

  Changed paths:
    A JSTests/stress/regexp-lookbehind-greedy-backreference.js
    M Source/JavaScriptCore/yarr/YarrInterpreter.cpp

  Log Message:
  -----------
  ASAN_BUS | Yarr::Interpreter::matchDisjunction; Yarr::Interpreter::backtrackParentheses; Yarr::Interpreter::matchDisjunction
https://bugs.webkit.org/show_bug.cgi?id=253466
rdar://105669717

Reviewed by Yusuke Suzuki.

When backtracking, i.e. unmatching a greedy backreference in a lookbehind, the unmatch requires moving the input pointer
forward.  THis means we need to do a checkInput() instead of a rewind() in this case.

* JSTests/stress/regexp-lookbehind-greedy-backreference.js: Added.
(arrayToString):
(dumpValue):
(compareArray):
(testRegExp):
* Source/JavaScriptCore/yarr/YarrInterpreter.cpp:
(JSC::Yarr::Interpreter::backtrackBackReference):

Canonical link: https://commits.webkit.org/259548.378@safari-7615-branch


  Commit: 04c8873c0803d47ea1629c5b841b7e032e6360a7
      https://github.com/WebKit/WebKit/commit/04c8873c0803d47ea1629c5b841b7e032e6360a7
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/compat/idlharness.window-expected.txt
    M Source/WTF/wtf/PlatformEnable.h
    M Source/WTF/wtf/PlatformEnableCocoa.h
    M Source/WebCore/html/HTMLBodyElement+Compat.idl
    M Source/WebCore/page/DOMWindow+Compat.idl
    M Source/WebCore/page/DOMWindow.cpp
    M Source/WebCore/page/DOMWindow.h

  Log Message:
  -----------
  Cherry-pick b35ab41a5c7a. rdar://problem/106273441

    Revert 256469 at main as it violates the specification
    https://bugs.webkit.org/show_bug.cgi?id=253435
    rdar://106273441

    Reviewed by Alex Christensen.

    Revert 256469 at main. The specification [1] says that we should not expose this
    API on non-mobile devices. This broke the Final Cut Pro download page as it
    relies on this API being missing to detect we're on desktop.

    Note that neither Firefox not Chrome expose the window orientation API on
    Desktop.

    [1] https://compat.spec.whatwg.org/#windoworientation-interface

    * LayoutTests/imported/w3c/web-platform-tests/compat/idlharness.window-expected.txt:
    * Source/WTF/wtf/PlatformEnable.h:
    * Source/WTF/wtf/PlatformEnableCocoa.h:
    * Source/WebCore/html/HTMLBodyElement+Compat.idl:
    * Source/WebCore/page/DOMWindow+Compat.idl:
    * Source/WebCore/page/DOMWindow.cpp:
    (WebCore::DOMWindow::orientation const):
    * Source/WebCore/page/DOMWindow.h:

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

Canonical link: https://commits.webkit.org/259548.379@safari-7615-branch


  Commit: 966f6830a3855d5855e2cac0704fc26bfe30391c
      https://github.com/WebKit/WebKit/commit/966f6830a3855d5855e2cac0704fc26bfe30391c
  Author: Rose <83477269+AtariDreams at users.noreply.github.com>
  Date:   2023-03-07 (Tue, 07 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitcorepy/webkitcorepy/terminal.py

  Log Message:
  -----------
  Cherry-pick 261332 at main (3b16fd1ed523). rdar://106367061

    Scripts: Run the start command to open a URL in a browser on Windows
    https://bugs.webkit.org/show_bug.cgi?id=253515
    rdar://106367061

    Reviewed by Jonathan Bedard.

    On Windows, running explorer https://www.github.com opens a File
    Explorer window, not a web browser window.

    The start command on the other hand opens the URL in the correct
    browser, so let's use that instead.

    * Tools\Scripts\libraries\webkitcorepy\webkitcorepy\terminal.py: Run
      'start' command instead of 'explorer'

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

Canonical link: https://commits.webkit.org/259548.380@safari-7615-branch


  Commit: 1de648970cbf71514df7edf55deaf35c1dcf1445
      https://github.com/WebKit/WebKit/commit/1de648970cbf71514df7edf55deaf35c1dcf1445
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-03-08 (Wed, 08 Mar 2023)

  Changed paths:
    M Source/ThirdParty/libwebrtc/Source/third_party/libaom/source/libaom/av1/common/resize.c
    M Source/ThirdParty/libwebrtc/Source/third_party/libaom/source/libaom/av1/common/resize.h
    M Source/ThirdParty/libwebrtc/Source/third_party/libaom/source/libaom/av1/encoder/encoder_utils.c

  Log Message:
  -----------
  av1/encoder/encoder_utils.c & a/av1/common/resize: Stack-buffer-overflow in aom_scaled_2d_ssse3
https://bugs.webkit.org/show_bug.cgi?id=253498
rdar://106063201

Reviewed by Eric Carlson.

Cherry-pick upstream change from https://aomedia.googlesource.com/aom/+/6318378f833b2a0d8e67fb3d12bcdc4e1c26b0e6%5E%21/#F2.

* Source/ThirdParty/libwebrtc/Source/third_party/libaom/source/libaom/av1/common/resize.c:
(av1_realloc_and_scale_if_required):
* Source/ThirdParty/libwebrtc/Source/third_party/libaom/source/libaom/av1/common/resize.h:
* Source/ThirdParty/libwebrtc/Source/third_party/libaom/source/libaom/av1/encoder/encoder_utils.c:
(av1_scale_references):

Canonical link: https://commits.webkit.org/259548.381@safari-7615-branch


  Commit: adde9296b1b17025287513c8738c16b5c5edb278
      https://github.com/WebKit/WebKit/commit/adde9296b1b17025287513c8738c16b5c5edb278
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-03-08 (Wed, 08 Mar 2023)

  Changed paths:
    M Source/ThirdParty/libwebrtc/Source/webrtc/api/stats/rtc_stats_report.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/pc/rtc_stats_collector.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/pc/rtc_stats_collector_unittest.cc
    M Source/ThirdParty/libwebrtc/Source/webrtc/pc/test/fake_peer_connection_for_stats.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/stats/rtc_stats_report.cc

  Log Message:
  -----------
  [WebRTC] heap-use-after-free : webrtc::`anonymous namespace'::ProduceRemoteInboundRtpStreamStatsFromReportBlockData
https://bugs.webkit.org/show_bug.cgi?id=253510
rdar://106063452

Reviewed by Eric Carlson.

We first cherry-pick libwebrc b2be392c708c975ff5a81d8cd4dba588752a8dad to remove duplicate RTCCodec entries.
We then apply da6297dc53cb2eaae7b1c5381652de9d707a7d48.

* Source/ThirdParty/libwebrtc/Source/webrtc/api/stats/rtc_stats_report.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/pc/rtc_stats_collector.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/pc/rtc_stats_collector_unittest.cc:
* Source/ThirdParty/libwebrtc/Source/webrtc/pc/test/fake_peer_connection_for_stats.h:
(webrtc::FakePeerConnectionForStats::AddVoiceChannel):
(webrtc::FakePeerConnectionForStats::AddVideoChannel):
(webrtc::FakePeerConnectionForStats::GetOrCreateFirstTransceiverOfType):
(webrtc::FakePeerConnectionForStats::CreateTransceiverOfType):
* Source/ThirdParty/libwebrtc/Source/webrtc/stats/rtc_stats_report.cc:

Canonical link: https://commits.webkit.org/259548.382@safari-7615-branch


  Commit: 4b0ac875e7fa419e4ac73227835e9ad5102254ce
      https://github.com/WebKit/WebKit/commit/4b0ac875e7fa419e4ac73227835e9ad5102254ce
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-03-08 (Wed, 08 Mar 2023)

  Changed paths:
    M Source/ThirdParty/libwebrtc/Source/third_party/libaom/source/libaom/av1/encoder/arm/neon/av1_fwd_txfm2d_neon.c

  Log Message:
  -----------
  ASan global-buffer-overflow READ in com.apple.WebKit.WebContent.Development at libwebrtc.dylib: av1_lowbd_fwd_txfm2d_8x8_neon
https://bugs.webkit.org/show_bug.cgi?id=253512
rdar://105650593

Reviewed by Eric Carlson.

Cherry-pick from upstream the corresponding fix (582d2fd1e9b6a212cb7d30bcf63d3c1e78aa8fca).
Remove the call to vld1_s8, which reads 8 bytes while only 3 bytes are available, even though only 2 are used.

* Source/ThirdParty/libwebrtc/Source/third_party/libaom/source/libaom/av1/encoder/arm/neon/av1_fwd_txfm2d_neon.c:
(av1_lowbd_fwd_txfm2d_4x8_neon):
(av1_lowbd_fwd_txfm2d_4x16_neon):
(av1_lowbd_fwd_txfm2d_8x4_neon):
(av1_lowbd_fwd_txfm2d_8x8_neon):
(av1_lowbd_fwd_txfm2d_8x16_neon):
(av1_lowbd_fwd_txfm2d_8x32_neon):
(av1_lowbd_fwd_txfm2d_16x4_neon):
(av1_lowbd_fwd_txfm2d_16x8_neon):
(av1_lowbd_fwd_txfm2d_16x16_neon):
(av1_lowbd_fwd_txfm2d_16x32_neon):
(av1_lowbd_fwd_txfm2d_32x8_neon):
(av1_lowbd_fwd_txfm2d_32x16_neon):

Canonical link: https://commits.webkit.org/259548.383@safari-7615-branch


  Commit: 7a4d4c345b7ba0bc658a37508f123826e6355e7c
      https://github.com/WebKit/WebKit/commit/7a4d4c345b7ba0bc658a37508f123826e6355e7c
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-08 (Wed, 08 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/publish.py

  Log Message:
  -----------
  Cherry-pick 261334 at main (8f7664b5f011). rdar://106202718

    [git-webkit] Expose stdout and stderr of push during publish operation
    https://bugs.webkit.org/show_bug.cgi?id=253330
    rdar://106202718

    Reviewed by Elliott Williams.

    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/publish.py:
    (Publish.main): Do not capture output of 'git push' commands.

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

Canonical link: https://commits.webkit.org/259548.384@safari-7615-branch


  Commit: 4bf0507391a9ef1a560f3979cb6a91ba1795c379
      https://github.com/WebKit/WebKit/commit/4bf0507391a9ef1a560f3979cb6a91ba1795c379
  Author: Chirag M Shah <chirag_m_shah at apple.com>
  Date:   2023-03-08 (Wed, 08 Mar 2023)

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

  Log Message:
  -----------
  DocumentLoader might be null when calling HistoryController::updateCurrentItem (
https://bugs.webkit.org/show_bug.cgi?id=253465
rdar://106276228

Reviewed by Ryosuke Niwa.

FrameLoader::transitionToCommitted can set the documentLoader to nullptr
before it calls HistoryController::updateCurrentItem(), in which case we
crash. This change makes it so that we bail our early in that case.

* Source/WebCore/loader/HistoryController.cpp:
(WebCore::FrameLoader::HistoryController::updateCurrentItem):

Canonical link: https://commits.webkit.org/259548.385@safari-7615-branch


  Commit: b521ddf1d98f41467af5a7706f11703eda0effbe
      https://github.com/WebKit/WebKit/commit/b521ddf1d98f41467af5a7706f11703eda0effbe
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-03-09 (Thu, 09 Mar 2023)

  Changed paths:
    M Source/WebKit/UIProcess/WebFrameProxy.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm

  Log Message:
  -----------
  Cherry-pick e3cbd8226ecc. rdar://problem/106316283

    Regression(258149 at main) 1Password autofill is broken on nytimes.com
    https://bugs.webkit.org/show_bug.cgi?id=253576
    rdar://106316283

    Reviewed by Timothy Hatcher.

    Before 258149 at main, the [WKWebView _frames:completionHander:] SPI was relying
    on the WebProcess's FrameTree to return the state of the frames as a tree.
    However, after the refactoring in 258149 at main, we do the tree traversal on
    the UIProcess side and IPC each frame independently. To do this traversal,
    we rely on WebFrameProxy::m_childFrames.

    However, we have a bug where WebFrameProxy::m_childFrames could contain
    subframes from previous pages that were previously visited in this view.
    The reason for this is that the main frame (and thus the main WebFrameProxy)
    gets reused on navigation. However, WebFrameProxy::m_childFrames is not getting
    cleared whenever the frame navigates.

    I initially tried to clear m_childFrames when a load gets committed in the
    frame. However, this introduced crashes when restoring a back/forward cache
    entry. The reason for this is that we currently don't notify the UIProcess
    when restoring frames from the back/forward cache. As a result, m_childFrames
    would not correctly get re-populated after restoring a back/forward cache
    entry and it would lead to issues later on.

    To make the fix as minimal and as safe as possible for the branch, I am opting
    to update WebFrameProxy::getFrameInfo() to filter out frameData for frames
    whose parentFrameID doesn't match the current frame's ID. This makes sure
    that we only report about iframes that are currently in the frame tree, just
    like we used to before 258149 at main.

    In a follow-up, we should refactor this to make sure that m_childFrames is
    an accurate and current representation of the frame tree, since we're going
    to rely on it more and more for site isolation.

    * Source/WebKit/UIProcess/WebFrameProxy.cpp:
    (WebKit::WebFrameProxy::didCommitLoad):
    (WebKit::WebFrameProxy::didFailLoad):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/SiteIsolation.mm:
    (TestWebKitAPI::TEST):

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


  Commit: dd026e944caad22965789714877697f335096fb0
      https://github.com/WebKit/WebKit/commit/dd026e944caad22965789714877697f335096fb0
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    A LayoutTests/accessibility/changing-aria-hidden-with-display-none-parent-expected.txt
    A LayoutTests/accessibility/changing-aria-hidden-with-display-none-parent.html
    A LayoutTests/platform/ios-simulator/accessibility/changing-aria-hidden-with-display-none-parent-expected.txt
    M LayoutTests/platform/ios/TestExpectations
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp

  Log Message:
  -----------
  Improve Ref / RefPtr hygiene in AXObjectCache::handleAttributeChange and AccessibilityNodeObject::textUnderElement
rdar://problem/106557770

Reviewed by Chris Fleizach.

Bring these two functions in line with the WebKit smart pointer style
guide (https://github.com/WebKit/WebKit/wiki/Smart-Pointer-Usage-Guidelines) by
reference counting AccessibilityObjects before passing them into non-trivial functions.

* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::handleAttributeChange):
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::textUnderElement const):
* LayoutTests/platform/ios/TestExpectations:
Mark new test as passing.
* LayoutTests/accessibility/changing-aria-hidden-with-display-none-parent-expected.txt: Added.
* LayoutTests/accessibility/changing-aria-hidden-with-display-none-parent.html: Added.
* LayoutTests/platform/ios-simulator/accessibility/changing-aria-hidden-with-display-none-parent-expected.txt: Added.

Canonical link: https://commits.webkit.org/259548.387@safari-7615-branch


  Commit: 00c69a96fd2fddee718a2e51fef66dc6aee41d8b
      https://github.com/WebKit/WebKit/commit/00c69a96fd2fddee718a2e51fef66dc6aee41d8b
  Author: Brian Weinstein <bweinstein at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M Source/WebKit/UIProcess/API/APIContentRuleList.cpp
    M Source/WebKit/UIProcess/API/APIContentRuleList.h
    M Source/WebKit/UIProcess/API/Cocoa/WKContentRuleList.mm
    M Source/WebKit/UIProcess/API/Cocoa/WKContentRuleListPrivate.h
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm

  Log Message:
  -----------
  Cherry-pick a423cde6af09. rdar://problem/99753935

    Expose WebCore::ContentExtensions::parseRuleList as WebKit SPI
    https://bugs.webkit.org/show_bug.cgi?id=251465
    <rdar://problem/99753935>

    Reviewed by Alex Christensen.

    This patch also adds tests for passing and failing rule parsing.

    * Source/WebKit/UIProcess/API/APIContentRuleList.cpp:
    (API::ContentRuleList::parseRuleList): Call into WebCore::ContentExtensions::parseRuleList and return the error code if it exists.
    * Source/WebKit/UIProcess/API/APIContentRuleList.h:
    * Source/WebKit/UIProcess/API/Cocoa/WKContentRuleList.mm:
    (+[WKContentRuleList _parseRuleList:]): Call into API::ContentRuleList::parseRuleList and wrap the error code in an NSError if necessary.
    * Source/WebKit/UIProcess/API/Cocoa/WKContentRuleListPrivate.h:

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

Canonical link: https://commits.webkit.org/259548.388@safari-7615-branch


  Commit: 8e55f2341217fc6297e6e6cbf07ed23f3d232e4c
      https://github.com/WebKit/WebKit/commit/8e55f2341217fc6297e6e6cbf07ed23f3d232e4c
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M LayoutTests/fast/images/cached-clipped-pdf-expected.html
    M LayoutTests/fast/images/cached-clipped-pdf.html
    M LayoutTests/fast/images/displaced-non-cached-pdf.html
    M LayoutTests/fast/images/pdf-as-image-dest-rect-change-expected.txt
    M LayoutTests/fast/images/pdf-as-image-dest-rect-change.html
    M LayoutTests/fast/images/pdf-in-canvas.html
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    R Source/WebCore/page/PDFImageCachingPolicy.h
    M Source/WebCore/page/Settings.yaml
    M Source/WebCore/page/SettingsBase.h
    A Source/WebCore/platform/graphics/CachedSubimage.cpp
    A Source/WebCore/platform/graphics/CachedSubimage.h
    M Source/WebCore/platform/graphics/FloatRect.h
    M Source/WebCore/platform/graphics/GeneratedImage.h
    M Source/WebCore/platform/graphics/GraphicsContext.cpp
    M Source/WebCore/platform/graphics/Image.cpp
    M Source/WebCore/platform/graphics/Image.h
    M Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp
    M Source/WebCore/platform/graphics/cg/PDFDocumentImage.h
    M Source/WebCore/platform/mediastream/WebRTCProvider.h
    M Source/WebCore/rendering/RenderImage.cpp
    M Source/WebCore/svg/graphics/SVGImage.h
    M Source/WebCore/svg/graphics/SVGImageForContainer.h
    M Source/WebCore/testing/InternalSettings.cpp
    M Source/WebCore/testing/InternalSettings.h
    M Source/WebCore/testing/InternalSettings.idl
    M Source/WebCore/testing/Internals.cpp
    M Source/WebCore/testing/Internals.h
    M Source/WebCore/testing/Internals.idl

  Log Message:
  -----------
  Cherry-pick 8382d4d3c6e3. rdar://problem/97254192

    [CG] A large PDFDocumentImage may be displayed pixelated
    https://bugs.webkit.org/show_bug.cgi?id=245664
    rdar://97254192

    Reviewed by Simon Fraser.

    Introduce a new class called CachedSubimage. This class will be responsible of
    creating a local ImageBuffer, drawing the source rectangle of the Image to the
    ImageBuffer then drawing this ImageBuffer to the destination GraphicsContext.

    The geometry of CachedSubimage will be calculated such that the resolution of
    the CachedSubimage ImageBuffer matches the effective resolution of the destination
    retangle when it is drawm to GraphicsContext.

    For GPU Process rendering, we have to draw the PDF image in WebProcess into a local
    ImageBuffer, get a NativeImage from this ImageBuffer and then send it to GPUProcess.
    CachedSubimage will be used to do this seemlessly for all PDFDocumentImages regardless
    of their size.

    If Image::shouldDrawFromCachedSubimage() is true, a CachedSubimage of the Image
    with the current resolution will be generated. If the local ImageBuffer can't be
    created and Image::mustDrawFromCachedSubimage() is true, a pixelated CachedSubimage
    of the Image will be created. If the pixelated CachedSubimage could not be created,
    the Image will not be drawn.

    * LayoutTests/fast/images/cached-clipped-pdf-expected.html:
    * LayoutTests/fast/images/cached-clipped-pdf.html:
    * LayoutTests/fast/images/displaced-non-cached-pdf.html:
    * LayoutTests/fast/images/pdf-as-image-dest-rect-change-expected.txt:
    * LayoutTests/fast/images/pdf-as-image-dest-rect-change.html:
    * LayoutTests/fast/images/pdf-in-canvas.html:
    * Source/WebCore/Headers.cmake:
    * Source/WebCore/Sources.txt:
    * Source/WebCore/WebCore.xcodeproj/project.pbxproj:
    * Source/WebCore/page/PDFImageCachingPolicy.h: Removed.
    * Source/WebCore/page/Settings.yaml:
    * Source/WebCore/page/SettingsBase.h:
    * Source/WebCore/platform/graphics/CachedSubimage.cpp: Added.
    (WebCore::CachedSubimage::create):
    (WebCore::calculateCachedSubimageSourceRect):
    (WebCore::CachedSubimage::createCachedSubimage):
    (WebCore::CachedSubimage::createPixelatedCachedSubimage):
    (WebCore::CachedSubimage::CachedSubimage):
    (WebCore::CachedSubimage::canBeUsed const):
    (WebCore::CachedSubimage::draw):
    * Source/WebCore/platform/graphics/CachedSubimage.h: Added.
    * Source/WebCore/platform/graphics/FloatRect.h:
    (WebCore::areEssentiallyEqual):
    * Source/WebCore/platform/graphics/GeneratedImage.h:
    * Source/WebCore/platform/graphics/GraphicsContext.cpp:
    (WebCore::GraphicsContext::drawImage):
    * Source/WebCore/platform/graphics/Image.cpp:
    (WebCore::Image::drawCachedSubimage):
    (WebCore::Image::destroyDecodedData):
    * Source/WebCore/platform/graphics/Image.h:
    (WebCore::Image::cachedSubimageCreateCountForTesting const):
    (WebCore::Image::cachedSubimageDrawCountForTesting const):
    (WebCore::Image::shouldDrawFromCachedSubimage const):
    (WebCore::Image::mustDrawFromCachedSubimage const):
    (WebCore::Image::drawCachedSubimage):
    * Source/WebCore/platform/graphics/cg/PDFDocumentImage.cpp:
    (WebCore::PDFDocumentImage::decodedSizeChanged):
    (WebCore::PDFDocumentImage::shouldDrawFromCachedSubimage const):
    (WebCore::PDFDocumentImage::mustDrawFromCachedSubimage const):
    (WebCore::PDFDocumentImage::draw):
    (WebCore::PDFDocumentImage::destroyDecodedData):
    (WebCore::PDFDocumentImage::createPDFDocument):
    (WebCore::PDFDocumentImage::setPdfImageCachingPolicy): Deleted.
    (WebCore::PDFDocumentImage::cacheParametersMatch const): Deleted.
    (WebCore::transformContextForPainting): Deleted.
    (WebCore::cachedImageRect): Deleted.
    (WebCore::PDFDocumentImage::updateCachedImageIfNeeded): Deleted.
    * Source/WebCore/platform/graphics/cg/PDFDocumentImage.h:
    * Source/WebCore/platform/mediastream/WebRTCProvider.h:
    * Source/WebCore/rendering/RenderImage.cpp:
    (WebCore::RenderImage::paintIntoRect):
    * Source/WebCore/svg/graphics/SVGImage.h:
    * Source/WebCore/svg/graphics/SVGImageForContainer.h:
    * Source/WebCore/testing/InternalSettings.cpp:
    (WebCore::InternalSettings::Backup::Backup):
    (WebCore::InternalSettings::Backup::restoreTo):
    (WebCore::InternalSettings::setStorageBlockingPolicy):
    (WebCore::InternalSettings::setPDFImageCachingPolicy): Deleted.
    * Source/WebCore/testing/InternalSettings.h:
    * Source/WebCore/testing/InternalSettings.idl:
    * Source/WebCore/testing/Internals.cpp:
    (WebCore::Internals::imageCachedSubimageCreateCount):
    (WebCore::pdfDocumentImageFromImageElement): Deleted.
    (WebCore::Internals::pdfDocumentCachingCount): Deleted.
    * Source/WebCore/testing/Internals.h:
    * Source/WebCore/testing/Internals.idl:

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

Canonical link: https://commits.webkit.org/259548.389@safari-7615-branch


  Commit: 4960ddf60b1e2d5cd439fef56369cb93024bce2f
      https://github.com/WebKit/WebKit/commit/4960ddf60b1e2d5cd439fef56369cb93024bce2f
  Author: Patrick Angle <pangle at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.css
    M Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.js

  Log Message:
  -----------
  Cherry-pick 80669e5b296b. rdar://problem/105298123

    Web Inspector: Regression(258675 at main) "Selected element" console entry fills entire row
    https://bugs.webkit.org/show_bug.cgi?id=252081
    rdar://105298123

    Reviewed by Devin Rousso.

    Fix up some console-related styling after 258675 at main. The key change is to not set display: flex; on the console
    message body and to return to using `span` for a few elements, undoing that change from the regression point and instead
    making sure the timestamp itself is a span.

    * Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.css:
    (.console-message-body):
    (.console-message .timestamp):
    * Source/WebInspectorUI/UserInterface/Views/ConsoleMessageView.js:
    (WI.ConsoleMessageView.prototype.render):
    (WI.ConsoleMessageView.prototype.renderTimestamp):

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

Canonical link: https://commits.webkit.org/259548.390@safari-7615-branch


  Commit: e4bdf1740a86e74c8ccd694217cca33e09c619ae
      https://github.com/WebKit/WebKit/commit/e4bdf1740a86e74c8ccd694217cca33e09c619ae
  Author: Patrick Angle <pangle at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M Source/WebInspectorUI/UserInterface/Models/Color.js
    M Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js

  Log Message:
  -----------
  Cherry-pick f6173b46292f. rdar://problem/105254118

    Web Inspector: Add initial support for color-mix CSS values
    https://bugs.webkit.org/show_bug.cgi?id=252031
    rdar://105254118

    Reviewed by Tim Nguyen.

    Correct the display of `color-mix` to not truncate itself when not being edited, and to correctly show nested color
    swatches within itself. This is achieved by sending tokens within a function's parentheses back through _addColorTokens
    so that they in turn can be parsed for functions and color keywords. We also now enforce that a function keyword is
    followed by a parenthesis to form a function, since some keywords like `rgb` and `hsl` are now also used to denote the
    color space in which mixing should occur.

    * Source/WebInspectorUI/UserInterface/Models/Color.js:
    * Source/WebInspectorUI/UserInterface/Views/SpreadsheetStyleProperty.js:
    (WI.SpreadsheetStyleProperty.prototype._addColorTokens):

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

Canonical link: https://commits.webkit.org/259548.391@safari-7615-branch


  Commit: bf1251ff01e9fffdaa883289add033182724bf22
      https://github.com/WebKit/WebKit/commit/bf1251ff01e9fffdaa883289add033182724bf22
  Author: Eric Carlson <eric.carlson at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M Source/WebKit/UIProcess/Cocoa/UIDelegate.mm

  Log Message:
  -----------
  Cherry-pick f3eb8e384292. rdar://problem/96305779

    [iOS 15.3+] Crash at -[UIViewController presentViewController:withAnimationController:completion:], called on a wrong thread
    https://bugs.webkit.org/show_bug.cgi?id=242235
    rdar://96305779

    Reviewed by Youenn Fablet.

    * Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:
    (WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest): Always call request
    methods that may prompt on the main runloop.

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

Canonical link: https://commits.webkit.org/259548.392@safari-7615-branch


  Commit: 816e9d4cd72bad177a9a12230fbfbd1a350c4484
      https://github.com/WebKit/WebKit/commit/816e9d4cd72bad177a9a12230fbfbd1a350c4484
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    A LayoutTests/fast/multicol/dynamic-column-count-change-expected.html
    A LayoutTests/fast/multicol/dynamic-column-count-change.html
    M Source/WebCore/rendering/RenderBlockFlow.cpp
    M Source/WebCore/rendering/RenderBlockFlow.h
    M Source/WebCore/rendering/RenderView.cpp

  Log Message:
  -----------
  Cherry-pick e0b27b7e1c9b. rdar://problem/71808738

    (REGRESSION) Increasing column-count above 2 at runtime has no effect
    https://bugs.webkit.org/show_bug.cgi?id=219291
    <rdar://problem/71808738>

    Reviewed by Antti Koivisto.

    In order to trigger column layout, we need to dirty the root RenderMultiColumnFlow(RenderMultiColumnSet).

    * LayoutTests/fast/multicol/dynamic-column-count-change-expected.html: Added.
    * LayoutTests/fast/multicol/dynamic-column-count-change.html: Added.
    * Source/WebCore/rendering/RenderBlockFlow.cpp:
    (WebCore::RenderBlockFlow::styleDidChange):
    (WebCore::RenderBlockFlow::updateStylesForColumnChildren):
    * Source/WebCore/rendering/RenderBlockFlow.h:
    * Source/WebCore/rendering/RenderView.cpp:
    (WebCore::RenderView::styleDidChange):

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

Canonical link: https://commits.webkit.org/259548.393@safari-7615-branch


  Commit: 9e1263b8ead159ec5236c74608a78283ca36f4e9
      https://github.com/WebKit/WebKit/commit/9e1263b8ead159ec5236c74608a78283ca36f4e9
  Author: Megan Gardner <megan_gardner at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    A LayoutTests/http/tests/scroll-to-text-fragment/start-text-fancy-quote-expected.html
    A LayoutTests/http/tests/scroll-to-text-fragment/start-text-fancy-quote.html
    A LayoutTests/platform/glib/http/tests/scroll-to-text-fragment/start-text-fancy-quote-expected.html
    A LayoutTests/platform/wincairo/http/tests/scroll-to-text-fragment/start-text-fancy-quote-expected.html
    M Source/WebCore/dom/FragmentDirectiveRangeFinder.cpp

  Log Message:
  -----------
  Cherry-pick 23b973250328. rdar://problem/103416130

    Some Scroll To Text Fragment URLs do not find existing text on the page.
    https://bugs.webkit.org/show_bug.cgi?id=253118
    rdar://103416130

    Reviewed by Aditya Keerthi.

    We were carefully folding the quotes for the text to make sure that we would match
    against all kinds of fancy quotes, but failed to fold the input quotes,
    so if you had a query string with a fancy quote, it would fail to find matching
    quotes on the page. Easily fixed by folding the quotes on the input string.

    * LayoutTests/http/tests/scroll-to-text-fragment/start-text-fancy-quote-expected.html: Added.
    * LayoutTests/http/tests/scroll-to-text-fragment/start-text-fancy-quote.html: Added.
    * Source/WebCore/dom/FragmentDirectiveRangeFinder.cpp:
    (WebCore::FragmentDirectiveRangeFinder::findRangeFromNodeList):

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

Canonical link: https://commits.webkit.org/259548.394@safari-7615-branch


  Commit: 3f56e4a4353fbf95288162f5a9d1e4d20a25f7bf
      https://github.com/WebKit/WebKit/commit/3f56e4a4353fbf95288162f5a9d1e4d20a25f7bf
  Author: Justin Michaud <justin_michaud at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    A JSTests/wasm/stress/simd-regress.js
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h

  Log Message:
  -----------
  Cherry-pick 03e6b1ff539c. rdar://problem/106264278

    WASM SIMD VectorDotProduct should output lanes in the correct order.
    https://bugs.webkit.org/show_bug.cgi?id=253307
    rdar://106264278

    Reviewed by Yusuke Suzuki.

    We fix a surprising and silly vectorDotProduct bug. It is surprising that
    the spec tests didn't catch this.

    * JSTests/wasm/stress/simd-regress.js: Added.
    (from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.func.main.export.string_appeared_here.result.i32.v128.const.i64x2.27866447905751188.27866447902605412.v128.const.i32x4.0x00080008.0x00080008.0x00080008.0x00080008.i32x4.dot_i16x8_s.i64x2.extract_lane.0.i64.const.6867652708672.i64.eq.async test):
    * Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
    (JSC::MacroAssemblerARM64::vectorDotProduct):

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

Canonical link: https://commits.webkit.org/259548.395@safari-7615-branch


  Commit: 84f396b298749b53f33c7be991d36c7d0c4e0b80
      https://github.com/WebKit/WebKit/commit/84f396b298749b53f33c7be991d36c7d0c4e0b80
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M Source/WebCore/html/MediaElementSession.cpp
    M Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj
    M Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm
    A Tools/TestWebKitAPI/Tests/WebKitCocoa/webrtc-remote-iframe.html
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/webrtc-remote.html

  Log Message:
  -----------
  Cherry-pick 89829aa9cfdd. rdar://problem/104571980

    A page with one document doing capture and another playing will not handle correctly remote commands
    https://bugs.webkit.org/show_bug.cgi?id=253559
    rdar://104571980

    Reviewed by Eric Carlson.

    We are processing the pause/play remote commands as mute/unmute capture in case document is capturing and playing several media streams.
    Some video conference websites do capture in one document and play media streams in another document.
    Handle this by changing the heuristic to check whether page is capturing instead of the document.

    Covered by updated API test.

    * Source/WebCore/html/MediaElementSession.cpp:
    (WebCore::isDocumentPlayingSeveralMediaStreams):
    * Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
    * Tools/TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/webrtc-remote-iframe.html: Added.
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/webrtc-remote.html:

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

Canonical link: https://commits.webkit.org/259548.396@safari-7615-branch


  Commit: bcad05c2a260a993002f5c6ee089ad76d1069a5e
      https://github.com/WebKit/WebKit/commit/bcad05c2a260a993002f5c6ee089ad76d1069a5e
  Author: Patrick Angle <pangle at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M LayoutTests/inspector/console/messagesCleared-expected.txt
    M LayoutTests/inspector/console/messagesCleared.html
    M Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.cpp
    M Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.h
    M Source/JavaScriptCore/inspector/protocol/Console.json
    M Source/WebCore/inspector/InspectorInstrumentation.cpp
    M Source/WebInspectorUI/UserInterface/Controllers/ConsoleManager.js
    M Source/WebInspectorUI/UserInterface/Protocol/ConsoleObserver.js

  Log Message:
  -----------
  Cherry-pick 77830d12bea6. rdar://problem/104303833

    Web Inspector: Console messages may be lost on main frame navigation depending on timing
    https://bugs.webkit.org/show_bug.cgi?id=251659
    rdar://104303833

    Reviewed by Devin Rousso.

    The existing heuristic to determine if console messages are being cleared as the result of a main frame navigation made
    the assumption that console messages won't be received between the call to clear messages and the next tick in Web
    Inspector. This isn't a safe assumption, and can be observed when logging immediately after a navigation on some
    computers/under certain types of loads. Instead of inferring why the console is being cleared, introduce a `reason`
    parameter that tells us if the request to clear is the result of a main frame navigation, removing any doubt. For
    compatibility with older remote ends, we keep the existing heuristic, since its better than nothing.

    * LayoutTests/inspector/console/messagesCleared-expected.txt:
    * LayoutTests/inspector/console/messagesCleared.html:
    - Ensure that a new session was signalled due to a refresh when the console is cleared.

    * Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.cpp:
    (Inspector::InspectorConsoleAgent::clearMessages):
    (Inspector::InspectorConsoleAgent::mainFrameNavigated):
    (Inspector::InspectorConsoleAgent::clearMessages):
    (Inspector::InspectorConsoleAgent::reset): Deleted.
    - Provide a reason for the clearing of the console.

    * Source/JavaScriptCore/inspector/agents/InspectorConsoleAgent.h:
    * Source/JavaScriptCore/inspector/protocol/Console.json:
    * Source/WebCore/inspector/InspectorInstrumentation.cpp:
    (WebCore::InspectorInstrumentation::didCommitLoadImpl):

    * Source/WebInspectorUI/UserInterface/Controllers/ConsoleManager.js:
    (WI.ConsoleManager):
    (WI.ConsoleManager.prototype.messagesCleared):
    - Use the reason to immediately determine how to handle clearing the console, instead of waiting until the next tick.

    (WI.ConsoleManager.prototype._clearMessages):
    - Extract the common logic that actually clears the console so we can reuse it for both the new reason-based path as
    well as the compatibility path.

    (WI.ConsoleManager.prototype._delayedMessagesCleared):
    * Source/WebInspectorUI/UserInterface/Protocol/ConsoleObserver.js:
    (WI.ConsoleObserver.prototype.messagesCleared):

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

Canonical link: https://commits.webkit.org/259548.397@safari-7615-branch


  Commit: 1e5f09d8a0a3d4cfe33172b24d839b30f3447671
      https://github.com/WebKit/WebKit/commit/1e5f09d8a0a3d4cfe33172b24d839b30f3447671
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    A LayoutTests/editing/pasteboard/copy-paste-text-with-trailing-colon-expected.txt
    A LayoutTests/editing/pasteboard/copy-paste-text-with-trailing-colon.html
    M LayoutTests/platform/ios-wk2/TestExpectations
    M Source/WebCore/page/Page.cpp

  Log Message:
  -----------
  Cherry-pick cb882e942695. rdar://problem/105603708

    Copying text on a GitHub pull request in split mode sometimes lowercases the first letter
    https://bugs.webkit.org/show_bug.cgi?id=250119
    rdar://105603708

    Reviewed by Aditya Keerthi.

    When running lookalike character sanitization upon pasting text, allow the original text to pass
    through unchanged in the case where lookalike character sanitization didn't adjust the URL.

    Test: editing/pasteboard/copy-paste-text-with-trailing-colon.html

    * LayoutTests/editing/pasteboard/copy-paste-text-with-trailing-colon-expected.txt: Added.
    * LayoutTests/editing/pasteboard/copy-paste-text-with-trailing-colon.html: Added.
    * LayoutTests/platform/ios-wk2/TestExpectations:

    Mark the test as failing on iOS for now, while I investigate a fix in <https://webkit.org/b/253708>.

    * Source/WebCore/page/Page.cpp:
    (WebCore::Page::sanitizeLookalikeCharacters const):

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

Canonical link: https://commits.webkit.org/259548.398@safari-7615-branch


  Commit: b461eed1124cb45d32a64c4928619affa5cb8232
      https://github.com/WebKit/WebKit/commit/b461eed1124cb45d32a64c4928619affa5cb8232
  Author: Razvan Caliman <rcaliman at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M Source/WebInspectorUI/UserInterface/Base/Main.js
    M Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js

  Log Message:
  -----------
  Cherry-pick 3c2de1a4af30. rdar://problem/105565615

    Uncaught Exception: 'Page.setShowRulers' was not found
    https://bugs.webkit.org/show_bug.cgi?id=252432

    Reviewed by Patrick Angle.

    * Source/WebInspectorUI/UserInterface/Base/Main.js:
    (WI.initializeTarget):
    * Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js:
    (WI.DOMTreeContentView.prototype._showRulersChanged):

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

Canonical link: https://commits.webkit.org/259548.399@safari-7615-branch


  Commit: b0519bdcdd5f84234c049e352659b9f5671257f7
      https://github.com/WebKit/WebKit/commit/b0519bdcdd5f84234c049e352659b9f5671257f7
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M Source/WebCore/html/OffscreenCanvas.cpp

  Log Message:
  -----------
  Cherry-pick 229b3dbf26eb. rdar://problem/105770085

    ImageBuffer::clone can fail, and pass nullptr to sinkIntoSerializedImageBuffer
    https://bugs.webkit.org/show_bug.cgi?id=252965
    <rdar:105770085>

    Reviewed by Said Abou-Hallawa.

    ImageBuffer::clone can fail if the GPU process has crashed, and we can silently fail here and while waiting for it to restart.

    * Source/WebCore/html/OffscreenCanvas.cpp:
    (WebCore::OffscreenCanvas::commitToPlaceholderCanvas):

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

Canonical link: https://commits.webkit.org/259548.400@safari-7615-branch


  Commit: ab802b9a842bbfd80dfb6ed5b00389e7660234f1
      https://github.com/WebKit/WebKit/commit/ab802b9a842bbfd80dfb6ed5b00389e7660234f1
  Author: Justin Michaud <justin at justinmichaud.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    A JSTests/wasm/stress/simd-regalloc-stress-2-export-mutable-v128.wasm
    A JSTests/wasm/stress/simd-regalloc-stress-2-module0.wasm
    A JSTests/wasm/stress/simd-regalloc-stress-2-module1.wasm
    A JSTests/wasm/stress/simd-regalloc-stress-2.js
    M Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp

  Log Message:
  -----------
  Cherry-pick c83189eceb5f. rdar://problem/105878987

    Do not coalesce unspillable tmps
    https://bugs.webkit.org/show_bug.cgi?id=253006
    rdar://105878987

    Reviewed by Yusuke Suzuki.

    We have been encountering multiple test cases where we make a graph
    uncolourable by coalescing too aggressively. If a tmp is marked as unspillable
    because its live range is too small, it will never be un-marked if it gets
    coalesced. Let's try not coalescing these registers ever.

    * Source/JavaScriptCore/b3/air/AirAllocateRegistersByGraphColoring.cpp:

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

Canonical link: https://commits.webkit.org/259548.401@safari-7615-branch


  Commit: 9dbe527d7a5f266b8419cc055f6e3affbe5be155
      https://github.com/WebKit/WebKit/commit/9dbe527d7a5f266b8419cc055f6e3affbe5be155
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/dom/nodes/adoption.window-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-content-hierarcy-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/html/syntax/serializing-html-fragments/template-expected.txt
    M Source/WebCore/dom/ContainerNode.cpp
    M Source/WebCore/dom/Document.cpp

  Log Message:
  -----------
  Cherry-pick dd0a5a2fd2e2. rdar://problem/106542160

    document.adoptNode is a no-op when called on a template element's document fragment
    https://bugs.webkit.org/show_bug.cgi?id=246899

    Reviewed by Chris Dumez.

    Partially revert 252098 at main as this change turned out to be not web compatible.

    * LayoutTests/imported/w3c/web-platform-tests/dom/nodes/adoption.window-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-template-element/template-element/template-content-hierarcy-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/html/syntax/serializing-html-fragments/template-expected.txt:
    * Source/WebCore/dom/ContainerNode.cpp:
    (WebCore::containsIncludingHostElements):
    * Source/WebCore/dom/Document.cpp:
    (WebCore::Document::adoptNode):

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

Canonical link: https://commits.webkit.org/259548.402@safari-7615-branch


  Commit: 46403b47eceada5a65acf9bf7611816e8745689a
      https://github.com/WebKit/WebKit/commit/46403b47eceada5a65acf9bf7611816e8745689a
  Author: Razvan Caliman <rcaliman at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M LayoutTests/inspector/css/overrideUserPreferenceMatchedStyles.html
    M Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js
    M Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js
    M Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js
    M Source/WebInspectorUI/UserInterface/Views/OverrideUserPreferencesPopover.js

  Log Message:
  -----------
  Cherry-pick b0b51e5bb269. rdar://problem/105177370

    Web Inspector: Typo in Override User Preferences Popover: "overriden" should be spelled "overridden"
    https://bugs.webkit.org/show_bug.cgi?id=253731

    Reviewed by Patrick Angle.

    Fix the typo in the localization as well as in the variable and method names for this feature.

    * Source/WebInspectorUI/Localizations/en.lproj/localizedStrings.js:
    * Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js:
    (WI.CSSManager):
    (WI.CSSManager.prototype.get overriddenUserPreferences):
    (WI.CSSManager.prototype.overrideUserPreference):
    (WI.CSSManager.prototype.get overridenUserPreferences): Deleted.
    * Source/WebInspectorUI/UserInterface/Views/DOMTreeContentView.js:
    (WI.DOMTreeContentView):
    (WI.DOMTreeContentView.prototype._overriddenUserPreferencesDidChange):
    (WI.DOMTreeContentView.prototype._overridenUserPreferencesDidChange): Deleted.
    * Source/WebInspectorUI/UserInterface/Views/OverrideUserPreferencesPopover.js:
    (WI.OverrideUserPreferencesPopover.prototype._createSelectElement):

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

Canonical link: https://commits.webkit.org/259548.403@safari-7615-branch


  Commit: 9fdf738648e2499c0724de1b8e7a98b573fd6107
      https://github.com/WebKit/WebKit/commit/9fdf738648e2499c0724de1b8e7a98b573fd6107
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h

  Log Message:
  -----------
  Cherry-pick 1eb1d409c2d8. rdar://problem/105876093

    [IFC][Partial layout] Do not run partial invalidation when IFC has out-of-flow content
    https://bugs.webkit.org/show_bug.cgi?id=252930
    <rdar://105876093>

    Reviewed by Antti Koivisto.

    Disable partial invalidation when out-of-flow content is present. This is not supported yet.

    * Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp:
    (WebCore::LayoutIntegration::shouldInvalidateLineLayoutPathAfterContentChangeFor):
    * Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
    (WebCore::LayoutIntegration::LineLayout::hasOutOfFlowContent const):
    * Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h:

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

Canonical link: https://commits.webkit.org/259548.404@safari-7615-branch


  Commit: 5bfbc4a518889c71749529610ed9fdaf30ba6179
      https://github.com/WebKit/WebKit/commit/5bfbc4a518889c71749529610ed9fdaf30ba6179
  Author: Gerald Squelart <g_squelart at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    A LayoutTests/http/tests/paymentrequest/ApplePayModifier-deferredPaymentRequest.https-expected.txt
    A LayoutTests/http/tests/paymentrequest/ApplePayModifier-deferredPaymentRequest.https.html
    M LayoutTests/platform/ios-wk2/TestExpectations
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WTF/wtf/PlatformEnableCocoa.h
    M Source/WTF/wtf/PlatformHave.h
    M Source/WebCore/DerivedSources-input.xcfilelist
    M Source/WebCore/DerivedSources-output.xcfilelist
    M Source/WebCore/DerivedSources.make
    A Source/WebCore/Modules/applepay/ApplePayDeferredPaymentRequest.h
    A Source/WebCore/Modules/applepay/ApplePayDeferredPaymentRequest.idl
    M Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.h
    M Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl
    M Source/WebCore/Modules/applepay/ApplePayFeature.h
    M Source/WebCore/Modules/applepay/ApplePayFeature.idl
    M Source/WebCore/Modules/applepay/ApplePayPaymentRequest.h
    M Source/WebCore/Modules/applepay/ApplePayPaymentRequest.idl
    M Source/WebCore/Modules/applepay/ApplePaySession.cpp
    M Source/WebCore/Modules/applepay/ApplePaySessionPaymentRequest.h
    M Source/WebCore/Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm
    M Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.h
    M Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.idl
    M Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp
    M Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.h
    M Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.mm
    M Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h
    M Source/WebCore/PlatformMac.cmake
    M Source/WebCore/SourcesCocoa.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/testing/MockPaymentCoordinator.cpp
    M Source/WebCore/testing/MockPaymentCoordinator.h
    M Source/WebCore/testing/MockPaymentCoordinator.idl
    M Source/WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm
    A Source/WebKit/Shared/ApplePay/DeferredPaymentRequest.h
    A Source/WebKit/Shared/ApplePay/cocoa/DeferredPaymentRequestCocoa.mm
    M Source/WebKit/Shared/ApplePay/cocoa/PaymentTokenContextCocoa.mm
    M Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm
    M Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.mm
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj

  Log Message:
  -----------
  Cherry-pick 1fdc00a92679. rdar://problem/104562407

    Implement the Apple Pay JS API for deferred payment requests
    https://bugs.webkit.org/show_bug.cgi?id=253219
    rdar://104562407

    Reviewed by Aditya Keerthi and Dean Jackson.

    The new Apple Pay JS API ApplePayDeferredPaymentRequest corresponds to PKDeferredPaymentRequest https://developer.apple.com/documentation/passkit/pkdeferredpaymentrequest

    Payment requests now accept an optional property 'deferredPaymentRequest', which may contain an item with a deferred payment timing, and optionally a free cancellation date. This may be used for e.g.: pre-orders.

    * LayoutTests/http/tests/paymentrequest/ApplePayModifier-deferredPaymentRequest.https-expected.txt: Added.
    * LayoutTests/http/tests/paymentrequest/ApplePayModifier-deferredPaymentRequest.https.html: Added.
    * LayoutTests/platform/ios-wk2/TestExpectations:
    * LayoutTests/platform/mac-wk2/TestExpectations:
    * Source/WTF/wtf/PlatformEnableCocoa.h:
    * Source/WTF/wtf/PlatformHave.h:
    * Source/WebCore/DerivedSources-input.xcfilelist:
    * Source/WebCore/DerivedSources-output.xcfilelist:
    * Source/WebCore/DerivedSources.make:
    * Source/WebCore/Modules/applepay/ApplePayDeferredPaymentRequest.h: Copied from Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl.
    * Source/WebCore/Modules/applepay/ApplePayDeferredPaymentRequest.idl: Copied from Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl.
    * Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.h:
    * Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl:
    * Source/WebCore/Modules/applepay/ApplePayFeature.h:
    * Source/WebCore/Modules/applepay/ApplePayFeature.idl:
    * Source/WebCore/Modules/applepay/ApplePayPaymentRequest.h:
    * Source/WebCore/Modules/applepay/ApplePayPaymentRequest.idl:
    * Source/WebCore/Modules/applepay/ApplePaySession.cpp:
    (WebCore::convertAndValidate):
    * Source/WebCore/Modules/applepay/ApplePaySessionPaymentRequest.h:
    (WebCore::ApplePaySessionPaymentRequest::deferredPaymentRequest const):
    (WebCore::ApplePaySessionPaymentRequest::setDeferredPaymentRequest):
    * Source/WebCore/Modules/applepay/cocoa/PaymentAPIVersionCocoa.mm:
    (WebCore::PaymentAPIVersion::current):
    * Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.h:
    * Source/WebCore/Modules/applepay/paymentrequest/ApplePayModifier.idl:
    * Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
    (WebCore::ApplePayPaymentHandler::show):
    (WebCore::validate):
    (WebCore::ApplePayPaymentHandler::shippingAddressUpdated):
    (WebCore::ApplePayPaymentHandler::shippingOptionUpdated):
    (WebCore::ApplePayPaymentHandler::paymentMethodUpdated):
    * Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.h:
    * Source/WebCore/PAL/pal/cocoa/PassKitSoftLink.mm:
    * Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h:
    * Source/WebCore/PlatformMac.cmake:
    * Source/WebCore/SourcesCocoa.txt:
    * Source/WebCore/WebCore.xcodeproj/project.pbxproj:
    * Source/WebCore/testing/MockPaymentCoordinator.cpp:
    (WebCore::MockPaymentCoordinator::showPaymentUI):
    (WebCore::MockPaymentCoordinator::completeShippingMethodSelection):
    (WebCore::MockPaymentCoordinator::completeShippingContactSelection):
    (WebCore::MockPaymentCoordinator::completePaymentMethodSelection):
    (WebCore::MockPaymentCoordinator::completeCouponCodeChange):
    * Source/WebCore/testing/MockPaymentCoordinator.h:
    * Source/WebCore/testing/MockPaymentCoordinator.idl:
    * Source/WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm:
    (WebKit::PaymentAuthorizationPresenter::completePaymentMethodSelection):
    (WebKit::PaymentAuthorizationPresenter::completeShippingContactSelection):
    (WebKit::PaymentAuthorizationPresenter::completeShippingMethodSelection):
    (WebKit::PaymentAuthorizationPresenter::completeCouponCodeChange):
    * Source/WebKit/Shared/ApplePay/DeferredPaymentRequest.h: Copied from Source/WebCore/Modules/applepay/ApplePayDetailsUpdateBase.idl.
    * Source/WebKit/Shared/ApplePay/cocoa/DeferredPaymentRequestCocoa.mm: Added.
    (WebKit::platformDeferredPaymentRequest):
    * Source/WebKit/Shared/ApplePay/cocoa/PaymentTokenContextCocoa.mm:
    (WebKit::toDecimalNumber): Deleted.
    * Source/WebKit/Shared/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
    (WebKit::WebPaymentCoordinatorProxy::platformPaymentRequest):
    * Source/WebKit/Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
    (IPC::ArgumentCoder<WebCore::ApplePaySessionPaymentRequest>::encode):
    (IPC::ArgumentCoder<WebCore::ApplePaySessionPaymentRequest>::decode):
    * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
    * Source/WebKit/SourcesCocoa.txt:
    * Source/WebKit/WebKit.xcodeproj/project.pbxproj:

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

Canonical link: https://commits.webkit.org/259548.405@safari-7615-branch


  Commit: 51b8d43ae3c96e2667b139080470363422d1e8de
      https://github.com/WebKit/WebKit/commit/51b8d43ae3c96e2667b139080470363422d1e8de
  Author: Gerald Squelart <g_squelart at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h
    M Source/WebKit/Shared/ApplePay/cocoa/DeferredPaymentRequestCocoa.mm

  Log Message:
  -----------
  Cherry-pick 633a76e24024. rdar://problem/106239467

    Ensure that [PKDeferredPaymentRequest setFreeCancellationDateTimeZone] exists before using it
    https://bugs.webkit.org/show_bug.cgi?id=253395
    rdar://106239467

    Reviewed by Aditya Keerthi.

    [PKDeferredPaymentRequest setFreeCancellationDateTimeZone] was added in a recent SDK, so we should ensure it's present before trying to use it.

    * Source/WebCore/PAL/pal/spi/cocoa/PassKitSPI.h:
    * Source/WebKit/Shared/ApplePay/cocoa/DeferredPaymentRequestCocoa.mm:
    (WebKit::platformDeferredPaymentRequest):

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

Canonical link: https://commits.webkit.org/259548.406@safari-7615-branch


  Commit: 520550ae398dd78f41115ad12a6acd0fbc6d90ba
      https://github.com/WebKit/WebKit/commit/520550ae398dd78f41115ad12a6acd0fbc6d90ba
  Author: Patrick Angle <pangle at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M LayoutTests/inspector/css/getMatchedStylesForNode-expected.txt
    M LayoutTests/inspector/css/getMatchedStylesForNodeNestingStyleGrouping-expected.txt
    M LayoutTests/inspector/css/getMatchedStylesForNodeNestingStyleGrouping.html
    M LayoutTests/inspector/css/modify-css-property-expected.txt
    M LayoutTests/inspector/css/modify-css-property.html
    M LayoutTests/inspector/css/resources/modify-css-property.css
    M Source/JavaScriptCore/inspector/protocol/CSS.json
    M Source/WebCore/css/CSSPropertySourceData.h
    M Source/WebCore/css/parser/CSSParserImpl.cpp
    M Source/WebCore/css/parser/CSSParserImpl.h
    M Source/WebCore/css/parser/CSSParserObserver.h
    M Source/WebCore/inspector/InspectorStyleSheet.cpp
    M Source/WebCore/inspector/InspectorStyleSheet.h
    M Source/WebCore/inspector/agents/InspectorCSSAgent.cpp
    M Source/WebInspectorUI/UserInterface/Models/CSSRule.js
    M Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js
    M Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js

  Log Message:
  -----------
  Cherry-pick b1dd655b710e. rdar://problem/104821946

    Web Inspector: Implicitly nested property declarations inside non-style rules results in nested content being deleted during editing or displaying incorrect matched styles for elements
    https://bugs.webkit.org/show_bug.cgi?id=251565
    rdar://104821946

    Reviewed by Devin Rousso.

    InspectorStyleSheet was built with the assumption that Style rules contained property declarations, and nothing else.
    CSS nesting has proven this assumption wrong in significant ways by allowing properties and other rules to be declared,
    interleaved inside a rule. This includes inside @ rules, which previously could not contain property delcarations
    directly.

    This means during editing, we only want to replace the property declarations, not the full body of a rule, since the
    rule may contain other rules. Luckily, canonically all property declarations occur before all nested rules, so we can
    safely move nested rules below to make our lives a bit easier with no harm to the meaning of the style sheet.

    This fix adds instrumentation to the CSS parser so we can be informed of the new "implicit" nested rule that contains
    properties inside of non-style rules. It also overhauls how rule body text is edited, much like we had to last year for
    rule header text.

    * LayoutTests/inspector/css/getMatchedStylesForNode-expected.txt:
    - Account for new property of CSSRule.

    * LayoutTests/inspector/css/getMatchedStylesForNodeNestingStyleGrouping-expected.txt:
    * LayoutTests/inspector/css/getMatchedStylesForNodeNestingStyleGrouping.html:
    * LayoutTests/inspector/css/modify-css-property-expected.txt:
    * LayoutTests/inspector/css/modify-css-property.html:
    * LayoutTests/inspector/css/resources/modify-css-property.css:
    - Add test cases for implicitly nested rules and their siblings, children, and parents.

    * Source/JavaScriptCore/inspector/protocol/CSS.json:
    - Mark implicitly nested rules so that the frontend can prevent the editing of their selector.

    * Source/WebCore/css/CSSPropertySourceData.h:
    (WebCore::CSSRuleSourceData::CSSRuleSourceData):
    - The container rule types can now contain properties, so we always need to have the buffer for that information ready,
    since we won't be informed by the parser that an implicit nested context was created until after we have observed the
    properties themselves.

    * Source/WebCore/css/parser/CSSParserImpl.cpp:
    (WebCore::CSSParserImpl::consumeRegularRuleList):
    (WebCore::CSSParserImpl::consumeDeclarationListOrStyleBlockHelper):
    (WebCore::CSSParserImpl::consumeStyleBlock):
    * Source/WebCore/css/parser/CSSParserImpl.h:
    - Don't send duplicate bodyStart/bodyEnd messages to the observer.
    - Notify the observer when the engine has created an implict nested rule inside a body.

    * Source/WebCore/css/parser/CSSParserObserver.h:

    * Source/WebCore/inspector/InspectorStyleSheet.cpp:
    (WebCore::atRuleIdentifierForType):
    (WebCore::isValidRuleHeaderText):
    - Pull the mapping of types to their keyword text for reuse in setting new style text.

    (WebCore::StyleSheetHandler::endRuleBody):
    - In order to maintain parity with CSSOM's representation of styles, we need to create an implictly nested rule to
    match against the CSSOM's implicitly nested rule. This also allows us to inform the frontend that said CSSOM rule was
    implicitly nested, since the OM itself doesn't carry this information.

    (WebCore::StyleSheetHandler::markRuleBodyContainsImplicitlyNestedProperties):
    - Observe to mark the style rule data as containing implicitly nested properties, which will then trigger us to take those properties and mvoe them to a special implicit style rule data object.

    (WebCore::InspectorStyleSheet::buildObjectForRule):

    (WebCore::isNotSpaceOrTab):
    (WebCore::InspectorStyleSheet::setRuleStyleText):
    - Overhaul the setting of style text.
    - Undo/oldText is handled specially because we want to restore the sheet back to the non-canonical form after an edit.
    - The frontend does not provide nested rules as part of its new text, so we must readd them ourselves, which we can do
    from the original style sheet.
    - Indentation is matched to the new property delcartion text provided by the frontend.

    (WebCore::InspectorStyleSheetForInlineStyle::setRuleStyleText):
    - Match the method signature for non-inline styles, and simplify the indirection previously present for setting a style
    rule's/inline style's text.

    (WebCore::InspectorStyle::setText): Deleted.
    (WebCore::InspectorStyleSheet::setStyleText): Deleted.
    (WebCore::InspectorStyleSheetForInlineStyle::setStyleText): Deleted.
    * Source/WebCore/inspector/InspectorStyleSheet.h:

    * Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:
    - Adopt new method to set the body text of a rule.

    * Source/WebInspectorUI/UserInterface/Models/CSSRule.js:
    (WI.CSSRule):
    (WI.CSSRule.prototype.get isImplicitlyNested):
    * Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js:
    (WI.CSSStyleDeclaration.prototype.get selectorEditable):
    * Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js:
    (WI.DOMNodeStyles.prototype._parseRulePayload):
    - Mark the selector of implicitly nested rules as non-editable.

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

Canonical link: https://commits.webkit.org/259548.407@safari-7615-branch


  Commit: 0489426718c94fef7a671eebb957bc58d541de8c
      https://github.com/WebKit/WebKit/commit/0489426718c94fef7a671eebb957bc58d541de8c
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    A LayoutTests/fast/canvas/offscreen-disabled-construct3-quirk-expected.txt
    A LayoutTests/fast/canvas/offscreen-disabled-construct3-quirk.html
    M Source/WebCore/bindings/js/JSDOMWindowCustom.cpp

  Log Message:
  -----------
  OffscreenCanvas support without WebGL breaks Construct 3 content.
https://bugs.webkit.org/show_bug.cgi?id=253431
<rdar://106341361>

Reviewed by Chris Dumez.

Construct 3 is testing for the presence of OffscreenCanvas on the main thread, and then assumes
that a WebGL context will be able to be constructed from it.
We've only enabled Canvas2D on OffscreenCanvas currently, so detect this library and disable
OffscreenCanvas entirely.

* LayoutTests/fast/canvas/offscreen-disabled-construct3-quirk-expected.txt: Added.
* LayoutTests/fast/canvas/offscreen-disabled-construct3-quirk.html: Added.
* Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::getOwnPropertySlot):

Canonical link: https://commits.webkit.org/259548.408@safari-7615-branch


  Commit: 17b8448a819fb56da4be8b30f6b86fd77d8f7a81
      https://github.com/WebKit/WebKit/commit/17b8448a819fb56da4be8b30f6b86fd77d8f7a81
  Author: Patrick Griffis <pgriffis at igalia.com>
  Date:   2023-03-13 (Mon, 13 Mar 2023)

  Changed paths:
    M LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any-expected.txt
    M LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any.serviceworker-expected.txt
    M LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any.sharedworker-expected.txt
    M LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any.worker-expected.txt
    M Source/WebCore/loader/CrossOriginAccessControl.cpp
    M Source/WebCore/loader/CrossOriginAccessControl.h
    M Source/WebCore/loader/CrossOriginPreflightChecker.cpp
    M Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp
    M Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.h
    M Source/WebKit/NetworkProcess/NetworkLoadChecker.cpp

  Log Message:
  -----------
  Cherry-pick fc63906f700d. rdar://problem/106187113

    Include FetchMetadata on preflight requests
    https://bugs.webkit.org/show_bug.cgi?id=253300

    Reviewed by Brent Fulgham and Youenn Fablet.

    * LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any-expected.txt:
    * LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any.serviceworker-expected.txt:
    * LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any.sharedworker-expected.txt:
    * LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/metadata/fetch-preflight.https.sub.any.worker-expected.txt:
    * Source/WebCore/loader/CrossOriginAccessControl.cpp:
    (WebCore::createAccessControlPreflightRequest):
    * Source/WebCore/loader/CrossOriginAccessControl.h:
    * Source/WebCore/loader/CrossOriginPreflightChecker.cpp:
    (WebCore::CrossOriginPreflightChecker::startPreflight):
    (WebCore::CrossOriginPreflightChecker::doPreflight):
    * Source/WebKit/NetworkProcess/NetworkCORSPreflightChecker.cpp:
    (WebKit::NetworkCORSPreflightChecker::startPreflight):
    * Source/WebKit/WebProcess/Network/WebLoaderStrategy.cpp:
    (WebKit::addParametersShared):

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

Canonical link: https://commits.webkit.org/259548.409@safari-7615-branch


  Commit: b5b8a1c83775684a0c1177584878d41c218ee9c2
      https://github.com/WebKit/WebKit/commit/b5b8a1c83775684a0c1177584878d41c218ee9c2
  Author: Sam Sneddon <gsnedders at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py

  Log Message:
  -----------
  Cherry-pick 261370 at main (0505ac5005b9). rdar://106428885

    [AutoInstall] updates to implicit_deps don't get applied
    https://bugs.webkit.org/show_bug.cgi?id=253566

    Reviewed by Jonathan Bedard.

    * Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py:
    (Package.is_cached): Recurse into implicit_deps.

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

Canonical link: https://commits.webkit.org/259548.410@safari-7615-branch


  Commit: b241e3297326e957c122c94bd0905437ec6fdf16
      https://github.com/WebKit/WebKit/commit/b241e3297326e957c122c94bd0905437ec6fdf16
  Author: Aakash Jain <aakash_jain at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M Tools/CISupport/ews-build/steps_unittest.py

  Log Message:
  -----------
  Cherry-pick 261585 at main (a358af782fce). rdar://106659604

    EWS unit-tests are getting stuck trying to talk to live bugzilla instance
    https://bugs.webkit.org/show_bug.cgi?id=253839

    Reviewed by Ryan Haddad.

    Unit-tests shouldn't talk to live bugzilla instance. In fact EWS bots do
    not store any bugzilla credentials and IIRC shouldn't talk to bugzilla.

    * Tools/CISupport/ews-build/steps_unittest.py:

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

Canonical link: https://commits.webkit.org/259548.411@safari-7615-branch


  Commit: 8331f8ec7522b28799987539cbeba3ef06486085
      https://github.com/WebKit/WebKit/commit/8331f8ec7522b28799987539cbeba3ef06486085
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitcorepy/setup.py
    M Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py
    M Tools/Scripts/libraries/webkitcorepy/webkitcorepy/terminal.py
    M Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/terminal_unittest.py
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py

  Log Message:
  -----------
  Cherry-pick 261487 at main (2ce712d55076). rdar://106201813

    [git-webkit] Handle interupts while pushing
    https://bugs.webkit.org/show_bug.cgi?id=253327
    rdar://106201813

    Reviewed by Elliott Williams.

    We should gracefully handle keyboard interupts when running push commands,
    since that is a common (and expected) place for engineers to interupt git-webkit.

    * Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitcorepy/webkitcorepy/terminal.py:
    (Terminal.disable_keyboard_interrupt_stacktracktrace): Disable KeyboardInterupt stacktraces based on logging level.
    * Tools/Scripts/libraries/webkitcorepy/webkitcorepy/tests/terminal_unittest.py:
    (TerminalTests.test_interrupt_decorator):
    * Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitcorepy/webkitcorepy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py: Disable KeyboardInterupt stacktraces
    at the default logging level.

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

Canonical link: https://commits.webkit.org/259548.412@safari-7615-branch


  Commit: 182d422f31947a01e96bc85b0e41140eee42757d
      https://github.com/WebKit/WebKit/commit/182d422f31947a01e96bc85b0e41140eee42757d
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    R JSTests/microbenchmarks/map-iteration-and-array-destructuring.js
    M JSTests/stress/destructuring-assignment-accepts-iterables.js
    M Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp
    M Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp

  Log Message:
  -----------
  Revert [255681 at main] [JSC] Use fast iteration for array destructuring
rdar://106578250

Reviewed by Mark Lam.

Revert 255681 at main based on regression in rdar://106578250.

* JSTests/microbenchmarks/map-iteration-and-array-destructuring.js: Removed.
* JSTests/stress/destructuring-assignment-accepts-iterables.js:
(set shouldBe):
(set new):
* Source/JavaScriptCore/bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitEnumeration):
* Source/JavaScriptCore/bytecompiler/NodesCodegen.cpp:
(JSC::ArrayPatternNode::bindValue const):

Canonical link: https://commits.webkit.org/259548.413@safari-7615-branch


  Commit: f4ae724ad01650ef91152eb3c7928e1ae3b11dc9
      https://github.com/WebKit/WebKit/commit/f4ae724ad01650ef91152eb3c7928e1ae3b11dc9
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/track_unittest.py
    M metadata/git_config_extension

  Log Message:
  -----------
  Cherry-pick 261500 at main (e6817dacbecc). rdar://106447269

    [git-webkit] Make remote security level explicit
    https://bugs.webkit.org/show_bug.cgi?id=253598
    rdar://106447269

    Reviewed by Elliott Williams.

    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
    (Git.source_remotes): Sort remotes by security level.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
    (Setup.git): Extract remote URL specifically.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/track_unittest.py:
    (TestTrack.test_branch):
    (TestTrack.test_eng_branch):
    * metadata/git_config_extension: Add explicit security level declarations.

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

Canonical link: https://commits.webkit.org/259548.414@safari-7615-branch


  Commit: 16c7018215b70f681a7dce65a432912cf463afc1
      https://github.com/WebKit/WebKit/commit/16c7018215b70f681a7dce65a432912cf463afc1
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    A Tools/Scripts/hooks/pre-push
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/clean.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/publish.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py

  Log Message:
  -----------
  Cherry-pick 261526 at main (604395a516c1). rdar://106216593

    [git-webkit] Add pre-push hook to prevent publication of security sensative commits
    https://bugs.webkit.org/show_bug.cgi?id=253354
    rdar://106216593

    Reviewed by Elliott Williams.

    Write a pre-push hook to block or prompt the user in 3 situations to prevent the
    inadvertent publication of security sensative commits:
    - Class 1: A commit exists on a remote more secure than the one a contributor is pushing to
    - Class 2: A commit is a cherry-pick of a commit from a more secure remote
    - Class 3: The commit references a security bug the target remote is public

    The goal of this hook is to prevent class 1 and 2 without relying on code in the checkout, while
    class 3 relies on webkitbugspy to determine if a linked issue is redacted.

    * Tools/Scripts/hooks/pre-push: Added.
    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
    (Git): Add `git config --get-regexp`
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/clean.py:
    (Clean.cleanup): Forward verbosity into `git push`.
    (Clean.main): Ditto.
    (DeletePRBranches.main): Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:
    (Land.main): Forward verbosity into `git push`.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/publish.py:
    (Publish.main): Change operating mode of our pre-push hook to allow class-1 security
    publication with a prompt.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
    (PullRequest.create_pull_request): Forward verbosity into `git push`.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
    (Setup._security_levels): Provide a security level for source and fork remotes based on
    the order of our source remotes.
    (Setup.git): Pass arguments to template for our pre-push hook.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/git_unittest.py:
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:

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

Canonical link: https://commits.webkit.org/259548.415@safari-7615-branch


  Commit: 82aa7c668a54c82f593de600fac3ca43e86eb9a0
      https://github.com/WebKit/WebKit/commit/82aa7c668a54c82f593de600fac3ca43e86eb9a0
  Author: Per Arne Vollan <pvollan at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M Source/WebKit/Scripts/process-entitlements.sh

  Log Message:
  -----------
  Cherry-pick 927c75f9049d. rdar://problem/106504425

    Add entitlement for creating sandbox extensions to local files
    https://bugs.webkit.org/show_bug.cgi?id=253831
    rdar://106504425

    Reviewed by Brent Fulgham.

    Add entitlement for creating sandbox extensions to local files in the WebContent process.
    These extensions are being sent to the Network process to provide read access.

    * Source/WebKit/Scripts/process-entitlements.sh:

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

Canonical link: https://commits.webkit.org/259456.508@safari-7615-branch


  Commit: 403610f445063d05bb90dc56f160ee62ec34b255
      https://github.com/WebKit/WebKit/commit/403610f445063d05bb90dc56f160ee62ec34b255
  Author: Richard Robinson <richard_robinson2 at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M Source/WebCore/editing/EditorCommand.cpp
    M Source/WebCore/page/EventHandler.cpp
    M Source/WebKit/UIProcess/mac/WebViewImpl.mm

  Log Message:
  -----------
  Cherry-pick 1dc77463aa23. rdar://problem/106201169

    REGRESSION (macOS 13.3 Beta): WKWebView doesn't scroll in response to NSResponder.scrollPageDown(_:)
    https://bugs.webkit.org/show_bug.cgi?id=253785
    rdar://106201169

    Reviewed by Simon Fraser.

    259146 at main caused this regression since it directly removed these selectors and their
    corresponding functions. They were removed so that the new key-repeat behavior was consistent
    between Page Up/Down and the space bar.

    This PR fixes this by reverting the part of 259146 at main that altered these functions to restore
    their original behavior, while also maintaining the consistency of the key-repeat behavior that 259146 at main implemented.

    * Source/WebCore/editing/EditorCommand.cpp:
    (WebCore::executeScrollPageBackward):
    (WebCore::executeScrollPageForward):
    (WebCore::createCommandMap):
    * Source/WebCore/page/EventHandler.cpp:
    (WebCore::EventHandler::defaultKeyboardEventHandler):
    (WebCore::EventHandler::defaultPageUpDownEventHandler):
    * Source/WebKit/UIProcess/mac/WebViewImpl.mm:
    (WebKit::selectorExceptionMap):

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

Canonical link: https://commits.webkit.org/259456.509@safari-7615-branch


  Commit: 47015dea77b8b2c85896a8cf8e3f51951e437200
      https://github.com/WebKit/WebKit/commit/47015dea77b8b2c85896a8cf8e3f51951e437200
  Author: David Kilzer <ddkilzer at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.h

  Log Message:
  -----------
  Revert "Cherry-pick 1eb1d409c2d8. rdar://problem/105876093"

This reverts commit 9fdf738648e2499c0724de1b8e7a98b573fd6107.

Unreviewed build fix.

Canonical link: https://commits.webkit.org/259548.418@safari-7615-branch


  Commit: 56d07b6880c2673b9c21cb141ff7662afd871095
      https://github.com/WebKit/WebKit/commit/56d07b6880c2673b9c21cb141ff7662afd871095
  Author: David Kilzer <ddkilzer at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj

  Log Message:
  -----------
  rdar://106711950 (Unreviewed build fix for "Cherry-pick 1fdc00a92679. rdar://problem/104562407")

Unreviewed build fix.

    Cherry-pick 1fdc00a92679. rdar://problem/104562407

        Implement the Apple Pay JS API for deferred payment requests
        https://bugs.webkit.org/show_bug.cgi?id=253219
        rdar://104562407

Canonical link: https://commits.webkit.org/259548.419@safari-7615-branch


  Commit: db594115f7a9c7dd8d36f378e6c2fb73e3df3857
      https://github.com/WebKit/WebKit/commit/db594115f7a9c7dd8d36f378e6c2fb73e3df3857
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M LayoutTests/inspector/css/getMatchedStylesForNode-expected.txt
    M LayoutTests/inspector/css/getMatchedStylesForNodeNestingStyleGrouping-expected.txt
    M LayoutTests/inspector/css/getMatchedStylesForNodeNestingStyleGrouping.html
    M LayoutTests/inspector/css/modify-css-property-expected.txt
    M LayoutTests/inspector/css/modify-css-property.html
    M LayoutTests/inspector/css/resources/modify-css-property.css
    M Source/JavaScriptCore/inspector/protocol/CSS.json
    M Source/WebCore/css/CSSPropertySourceData.h
    M Source/WebCore/css/parser/CSSParserImpl.cpp
    M Source/WebCore/css/parser/CSSParserImpl.h
    M Source/WebCore/css/parser/CSSParserObserver.h
    M Source/WebCore/inspector/InspectorStyleSheet.cpp
    M Source/WebCore/inspector/InspectorStyleSheet.h
    M Source/WebCore/inspector/agents/InspectorCSSAgent.cpp
    M Source/WebInspectorUI/UserInterface/Models/CSSRule.js
    M Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js
    M Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js

  Log Message:
  -----------
  Revert 259548.407 at safari-7615-branch (520550ae398d) Cherry-pick b1dd655b710e. rdar://problem/104821946

Unreviewed revert.

Fix the build.

* LayoutTests/inspector/css/getMatchedStylesForNode-expected.txt:
* LayoutTests/inspector/css/getMatchedStylesForNodeNestingStyleGrouping-expected.txt:
* LayoutTests/inspector/css/getMatchedStylesForNodeNestingStyleGrouping.html:
* LayoutTests/inspector/css/modify-css-property-expected.txt:
* LayoutTests/inspector/css/modify-css-property.html:
* LayoutTests/inspector/css/resources/modify-css-property.css:
(.rule-e):
(.rule-f): Deleted.
(color: green;): Deleted.
(.rule-g): Deleted.
* Source/JavaScriptCore/inspector/protocol/CSS.json:
* Source/WebCore/css/CSSPropertySourceData.h:
(WebCore::CSSRuleSourceData::CSSRuleSourceData):
* Source/WebCore/css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeRegularRuleList):
(WebCore::CSSParserImpl::consumeDeclarationListOrStyleBlockHelper):
(WebCore::CSSParserImpl::consumeStyleBlock):
* Source/WebCore/css/parser/CSSParserImpl.h:
* Source/WebCore/css/parser/CSSParserObserver.h:
* Source/WebCore/inspector/InspectorStyleSheet.cpp:
(WebCore::isValidRuleHeaderText):
(WebCore::StyleSheetHandler::endRuleBody):
(WebCore::InspectorStyle::setText):
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::InspectorStyleSheet::setStyleText):
(WebCore::InspectorStyleSheetForInlineStyle::setStyleText):
(WebCore::atRuleIdentifierForType): Deleted.
(WebCore::StyleSheetHandler::markRuleBodyContainsImplicitlyNestedProperties): Deleted.
(WebCore::isNotSpaceOrTab): Deleted.
(WebCore::InspectorStyleSheet::setRuleStyleText): Deleted.
(WebCore::InspectorStyleSheetForInlineStyle::setRuleStyleText): Deleted.
* Source/WebCore/inspector/InspectorStyleSheet.h:
* Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:
* Source/WebInspectorUI/UserInterface/Models/CSSRule.js:
(WI.CSSRule):
(WI.CSSRule.prototype.get groupings):
(WI.CSSRule.prototype.get isImplicitlyNested): Deleted.
* Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration.prototype.get selectorEditable):
* Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js:
(WI.DOMNodeStyles.prototype._parseRulePayload):

Canonical link: https://commits.webkit.org/259548.420@safari-7615-branch


  Commit: 5d7823982c2fcb6f47704f60addf5826b1da697d
      https://github.com/WebKit/WebKit/commit/5d7823982c2fcb6f47704f60addf5826b1da697d
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/supports-rule-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/supports-rule-ref.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/supports-rule.html
    M Source/WebCore/Headers.cmake
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/css/parser/CSSParser.cpp
    M Source/WebCore/css/parser/CSSParser.h
    A Source/WebCore/css/parser/CSSParserEnum.h
    M Source/WebCore/css/parser/CSSParserImpl.cpp
    M Source/WebCore/css/parser/CSSSelectorParser.cpp
    M Source/WebCore/css/parser/CSSSelectorParser.h
    M Source/WebCore/css/parser/CSSSupportsParser.cpp
    M Source/WebCore/css/parser/CSSSupportsParser.h
    M Source/WebCore/inspector/InspectorStyleSheet.cpp

  Log Message:
  -----------
  Cherry-pick c4adae4df0f3. rdar://problem/106712577

    Implement @supports with CSS nesting
    https://bugs.webkit.org/show_bug.cgi?id=252301
    rdar://105485711

    Reviewed by Brent Fulgham.

    The @supports(selector(...)) feature need to be aware of the
    parser nesting context to properly works with relative nested selector.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/supports-rule-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/supports-rule-ref.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/supports-rule.html: Added.
    * Source/WebCore/Headers.cmake:
    * Source/WebCore/WebCore.xcodeproj/project.pbxproj:
    * Source/WebCore/css/parser/CSSParser.cpp:
    (WebCore::CSSParser::parseSupportsCondition):
    (WebCore::CSSParser::parseSelector):
    * Source/WebCore/css/parser/CSSParser.h:
    * Source/WebCore/css/parser/CSSParserEnum.h: Added
    * Source/WebCore/css/parser/CSSParserImpl.cpp:
    (WebCore::CSSParserImpl::consumeSupportsRule):
    (WebCore::CSSParserImpl::consumeStyleRule):
    * Source/WebCore/css/parser/CSSSelectorParser.cpp:
    (WebCore::parseCSSSelector):
    (WebCore::CSSSelectorParser::CSSSelectorParser):
    (WebCore::CSSSelectorParser::consumeNestedSelectorList):
    (WebCore::CSSSelectorParser::supportsComplexSelector):
    (WebCore::CSSSelectorParser::consumeNestedComplexSelector):
    (WebCore::CSSSelectorParser::consumeSimpleSelector):
    * Source/WebCore/css/parser/CSSSelectorParser.h:
    * Source/WebCore/css/parser/CSSSupportsParser.cpp:
    (WebCore::CSSSupportsParser::supportsCondition):
    (WebCore::CSSSupportsParser::consumeSupportsSelectorFunction):
    * Source/WebCore/css/parser/CSSSupportsParser.h:
    (WebCore::CSSSupportsParser::CSSSupportsParser):
    * Source/WebCore/inspector/InspectorStyleSheet.cpp:
    (WebCore::isValidRuleHeaderText):
    (WebCore::isNestedContext):

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


  Commit: 2632cd893f8ecf56a5d5db4ce3810f694563163c
      https://github.com/WebKit/WebKit/commit/2632cd893f8ecf56a5d5db4ce3810f694563163c
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py
    A Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py

  Log Message:
  -----------
  Cherry-pick 261653 at main (a4daad5b9fbd). rdar://106716871

    [git-webkit] Allow independent installation of hooks
    https://bugs.webkit.org/show_bug.cgi?id=253897
    rdar://106716871

    Reviewed by Elliott Williams.

    Move hook installation into an independent program so services can install specific hooks.

    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py: Include InstallHooks program.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py: Added.
    (InstallHooks.parser): Allow caller to specify default mode and specific hook to install.
    (InstallHooks._security_levels): Moved from Setup._security_levels.
    (InstallHooks.main): Moveed hook installation from Setup.git.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
    (Setup.git): Move hook installation to InstallHooks.
    (Setup._security_levels): Move to InstallHooks._security_levels.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:

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

Canonical link: https://commits.webkit.org/259548.422@safari-7615-branch


  Commit: 0ebd0ef02734857d49f843b46d69bd82889c7bee
      https://github.com/WebKit/WebKit/commit/0ebd0ef02734857d49f843b46d69bd82889c7bee
  Author: Patrick Angle <pangle at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M LayoutTests/inspector/css/getMatchedStylesForNode-expected.txt
    M LayoutTests/inspector/css/getMatchedStylesForNodeNestingStyleGrouping-expected.txt
    M LayoutTests/inspector/css/getMatchedStylesForNodeNestingStyleGrouping.html
    M LayoutTests/inspector/css/modify-css-property-expected.txt
    M LayoutTests/inspector/css/modify-css-property.html
    M LayoutTests/inspector/css/resources/modify-css-property.css
    M Source/JavaScriptCore/inspector/protocol/CSS.json
    M Source/WebCore/css/CSSPropertySourceData.h
    M Source/WebCore/css/parser/CSSParserImpl.cpp
    M Source/WebCore/css/parser/CSSParserImpl.h
    M Source/WebCore/css/parser/CSSParserObserver.h
    M Source/WebCore/inspector/InspectorStyleSheet.cpp
    M Source/WebCore/inspector/InspectorStyleSheet.h
    M Source/WebCore/inspector/agents/InspectorCSSAgent.cpp
    M Source/WebInspectorUI/UserInterface/Models/CSSRule.js
    M Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js
    M Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js

  Log Message:
  -----------
  Cherry-pick 261329 at main (b1dd655b710e). rdar://104821946

    Web Inspector: Implicitly nested property declarations inside non-style rules results in nested content being deleted during editing or displaying incorrect matched styles for elements
    https://bugs.webkit.org/show_bug.cgi?id=251565
    rdar://104821946

    Reviewed by Devin Rousso.

    InspectorStyleSheet was built with the assumption that Style rules contained property declarations, and nothing else.
    CSS nesting has proven this assumption wrong in significant ways by allowing properties and other rules to be declared,
    interleaved inside a rule. This includes inside @ rules, which previously could not contain property delcarations
    directly.

    This means during editing, we only want to replace the property declarations, not the full body of a rule, since the
    rule may contain other rules. Luckily, canonically all property declarations occur before all nested rules, so we can
    safely move nested rules below to make our lives a bit easier with no harm to the meaning of the style sheet.

    This fix adds instrumentation to the CSS parser so we can be informed of the new "implicit" nested rule that contains
    properties inside of non-style rules. It also overhauls how rule body text is edited, much like we had to last year for
    rule header text.

    * LayoutTests/inspector/css/getMatchedStylesForNode-expected.txt:
    - Account for new property of CSSRule.

    * LayoutTests/inspector/css/getMatchedStylesForNodeNestingStyleGrouping-expected.txt:
    * LayoutTests/inspector/css/getMatchedStylesForNodeNestingStyleGrouping.html:
    * LayoutTests/inspector/css/modify-css-property-expected.txt:
    * LayoutTests/inspector/css/modify-css-property.html:
    * LayoutTests/inspector/css/resources/modify-css-property.css:
    - Add test cases for implicitly nested rules and their siblings, children, and parents.

    * Source/JavaScriptCore/inspector/protocol/CSS.json:
    - Mark implicitly nested rules so that the frontend can prevent the editing of their selector.

    * Source/WebCore/css/CSSPropertySourceData.h:
    (WebCore::CSSRuleSourceData::CSSRuleSourceData):
    - The container rule types can now contain properties, so we always need to have the buffer for that information ready,
    since we won't be informed by the parser that an implicit nested context was created until after we have observed the
    properties themselves.

    * Source/WebCore/css/parser/CSSParserImpl.cpp:
    (WebCore::CSSParserImpl::consumeRegularRuleList):
    (WebCore::CSSParserImpl::consumeDeclarationListOrStyleBlockHelper):
    (WebCore::CSSParserImpl::consumeStyleBlock):
    * Source/WebCore/css/parser/CSSParserImpl.h:
    - Don't send duplicate bodyStart/bodyEnd messages to the observer.
    - Notify the observer when the engine has created an implict nested rule inside a body.

    * Source/WebCore/css/parser/CSSParserObserver.h:

    * Source/WebCore/inspector/InspectorStyleSheet.cpp:
    (WebCore::atRuleIdentifierForType):
    (WebCore::isValidRuleHeaderText):
    - Pull the mapping of types to their keyword text for reuse in setting new style text.

    (WebCore::StyleSheetHandler::endRuleBody):
    - In order to maintain parity with CSSOM's representation of styles, we need to create an implictly nested rule to
    match against the CSSOM's implicitly nested rule. This also allows us to inform the frontend that said CSSOM rule was
    implicitly nested, since the OM itself doesn't carry this information.

    (WebCore::StyleSheetHandler::markRuleBodyContainsImplicitlyNestedProperties):
    - Observe to mark the style rule data as containing implicitly nested properties, which will then trigger us to take those properties and mvoe them to a special implicit style rule data object.

    (WebCore::InspectorStyleSheet::buildObjectForRule):

    (WebCore::isNotSpaceOrTab):
    (WebCore::InspectorStyleSheet::setRuleStyleText):
    - Overhaul the setting of style text.
    - Undo/oldText is handled specially because we want to restore the sheet back to the non-canonical form after an edit.
    - The frontend does not provide nested rules as part of its new text, so we must readd them ourselves, which we can do
    from the original style sheet.
    - Indentation is matched to the new property delcartion text provided by the frontend.

    (WebCore::InspectorStyleSheetForInlineStyle::setRuleStyleText):
    - Match the method signature for non-inline styles, and simplify the indirection previously present for setting a style
    rule's/inline style's text.

    (WebCore::InspectorStyle::setText): Deleted.
    (WebCore::InspectorStyleSheet::setStyleText): Deleted.
    (WebCore::InspectorStyleSheetForInlineStyle::setStyleText): Deleted.
    * Source/WebCore/inspector/InspectorStyleSheet.h:

    * Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:
    - Adopt new method to set the body text of a rule.

    * Source/WebInspectorUI/UserInterface/Models/CSSRule.js:
    (WI.CSSRule):
    (WI.CSSRule.prototype.get isImplicitlyNested):
    * Source/WebInspectorUI/UserInterface/Models/CSSStyleDeclaration.js:
    (WI.CSSStyleDeclaration.prototype.get selectorEditable):
    * Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js:
    (WI.DOMNodeStyles.prototype._parseRulePayload):
    - Mark the selector of implicitly nested rules as non-editable.

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

Canonical link: https://commits.webkit.org/259456.515@safari-7615-branch


  Commit: c58d7acb5608de5649fa519ce2d72af556c34cca
      https://github.com/WebKit/WebKit/commit/c58d7acb5608de5649fa519ce2d72af556c34cca
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-03-14 (Tue, 14 Mar 2023)

  Changed paths:
    M Source/WebKit/Scripts/process-entitlements.sh

  Log Message:
  -----------
  Revert 927c75f9049d. rdar://problem/106504425

Canonical link: https://commits.webkit.org/259456.516@safari-7615-branch


  Commit: 499c0bf6a8a9885141c231d43d16f89eadb2c9c3
      https://github.com/WebKit/WebKit/commit/499c0bf6a8a9885141c231d43d16f89eadb2c9c3
  Author: Chirag M Shah <chirag_m_shah at apple.com>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    A LayoutTests/svg/filters/feconvolve-matrix-invalid-target-offset-crash-expected.txt
    A LayoutTests/svg/filters/feconvolve-matrix-invalid-target-offset-crash.html
    M Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp
    M Source/WebCore/platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.cpp
    M Source/WebCore/platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.h
    M Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp
    M Source/WebCore/svg/SVGFEConvolveMatrixElement.h

  Log Message:
  -----------
  Fix buffer overflow in FEConvolveMatrixSoftwareApplier
https://bugs.webkit.org/show_bug.cgi?id=253721
rdar://97909186

Reviewed by Said Abou-Hallawa.

This change fixes a buffer overflow issue in the
FEConvolveMatrixSoftwareApplier code which happens when dealing with the
interior area and setting the destination pixels. This happens because
when the targetX/targetY doesn't fit in the convolution kernel, we don't
clip it, and that ends up moving the pixel offset by more than what is
needed. This change fixes that by making sure that when the SVG
attribute changes, we detect the invalid offset and rebuild the filter.

* LayoutTests/svg/filters/feconvolve-matrix-invalid-target-offset-crash-expected.txt: Added.
* LayoutTests/svg/filters/feconvolve-matrix-invalid-target-offset-crash.html: Added.
* Source/WebCore/platform/graphics/filters/FEConvolveMatrix.cpp:
(WebCore::FEConvolveMatrix::FEConvolveMatrix):
* Source/WebCore/platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.cpp:
(WebCore::FEConvolveMatrixSoftwareApplier::FEConvolveMatrixSoftwareApplier):
* Source/WebCore/platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.h:
* Source/WebCore/svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::isValidTargetXOffset const):
(WebCore::SVGFEConvolveMatrixElement::isValidTargetYOffset const):
(WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged):
(WebCore::SVGFEConvolveMatrixElement::createFilterEffect const):
* Source/WebCore/svg/SVGFEConvolveMatrixElement.h:

Canonical link: https://commits.webkit.org/259548.425@safari-7615-branch


  Commit: dde3cbd3402746d9c37140696222fe900bbe520c
      https://github.com/WebKit/WebKit/commit/dde3cbd3402746d9c37140696222fe900bbe520c
  Author: David Degazio <d_degazio at apple.com>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    A JSTests/stress/loop-osr-with-inlined-create-rest.js

  Log Message:
  -----------
  Add stress test for liveness-based interference analysis across loop OSR
https://bugs.webkit.org/show_bug.cgi?id=253902
rdar://105671759

Reviewed by Yusuke Suzuki.

Adds a stress test that breaks without https://bugs.webkit.org/show_bug.cgi?id=252798,
to ensure we don't regress this behavior in the future.

* JSTests/stress/loop-osr-with-inlined-create-rest.js: Added.
(bar):
(foo):

Canonical link: https://commits.webkit.org/259548.426@safari-7615-branch


  Commit: 0a78c0fbc8a8a2e692dd1c2a86e71973e96cee53
      https://github.com/WebKit/WebKit/commit/0a78c0fbc8a8a2e692dd1c2a86e71973e96cee53
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-default-object-height-constrained-by-max-width-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-default-object-height-constrained-by-max-width.html
    A LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-default-object-width-constrained-by-max-height-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-default-object-width-constrained-by-max-height.html
    A LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-inline-size-containment-no-crash.html
    M LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-intrinsic-width-height.html
    M LayoutTests/platform/gtk/TestExpectations
    M Source/WebCore/rendering/RenderReplaced.cpp

  Log Message:
  -----------
  Cherry-pick 260851 at main (e6a31953a657). rdar://105489410

    RenderReplaced::computeAspectRatioInformationForRenderBox does not need to call into RenderBox::computeReplacedLogicalWidth
    https://bugs.webkit.org/show_bug.cgi?id=252589
    rdar://105489410

    Reviewed by Alan Baradlay.

    The call to RenderBox::computeReplacedLogicalWidth from RenderReplaced::computeAspectRatioInformationForRenderBox
    when the object was a video with a default object size was extraneous
    and can be safely removed without changing any functionality. It could
    also result in a stack overflow in certain conditions. At this
    point we know the intrinsic sizes of the object anyway since it is a
    video with a default object size (300px x 150px). This is
    because:

    1.) RenderBox::computeReplacedLogicalWidth would call into computeReplacedLogicalWidthUsing(MainOrPreferredSize, style().logicalWidth())
        com compute the width value to use
    2.) The caller (RenderReplaced::computeReplacedLogicalWidth in this case)
        will only use the width value of style().logicalWidth().isAuto()
        returns true.
    3.) If this is true RenderBox::computeReplacedLogicalWidth would have
        returned the intrinsic width but constrained to min/max sizes. However,
        the caller constrains the intrinsic width anyway.
    4.) If this is false (style().logicalWidth().isAuto() returns false),
        then the caller (RenderReplaced::computeReplacedLogicalWidth) will
        use the intrinsic width anyway by calling into intrinsicLogicalWidth.

    We can also take advantage of the existing logic to constrain the
    intrinsic sizes in each dimension by transferred constraints from the
    opposite one.

    Here is an example of when this extra call could cause a stack overflow:

    <style>
    video {
      aspect-ratio: 1;
      container-type: inline-size;
      inset: 0 auto;
      min-width: min-content;
      position: fixed;
    }
    </style>
    <video></video>

    WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth(WebCore::LayoutUnit, WebCore::ShouldComputePreferred) const
    WebCore::RenderBox::computeReplacedLogicalWidth(WebCore::ShouldComputePreferred) const
    WebCore::RenderReplaced::computeIntrinsicSizesConstrainedByTransferredMinMaxSizes(WebCore::RenderBox*, WebCore::FloatSize&, WebCore::FloatSize&) const
    WebCore::RenderReplaced::computeReplacedLogicalHeight(std::__1::optional<WebCore::LayoutUnit>) const
    WebCore::RenderImage::computeReplacedLogicalHeight(std::__1::optional<WebCore::LayoutUnit>) const
    WebCore::RenderBox::computePositionedLogicalHeightReplaced(WebCore::RenderBox::LogicalExtentComputedValues&) const
    WebCore::RenderBox::computePositionedLogicalHeight(WebCore::RenderBox::LogicalExtentComputedValues&) const
    WebCore::RenderBox::computeLogicalHeight(WebCore::LayoutUnit, WebCore::LayoutUnit) const
    WebCore::RenderBox::computeLogicalWidthFromAspectRatioInternal() const
    WebCore::RenderBox::computeIntrinsicLogicalWidthUsing(WebCore::Length, WebCore::LayoutUnit, WebCore::LayoutUnit) const
    WebCore::RenderBox::computeReplacedLogicalWidthUsing(WebCore::SizeType, WebCore::Length) const
    WebCore::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth(WebCore::LayoutUnit, WebCore::ShouldComputePreferred) const
    WebCore::RenderVideo::computeReplacedLogicalWidth(WebCore::ShouldComputePreferred) const
    WebCore::RenderBox::computePositionedLogicalWidthReplaced(WebCore::RenderBox::LogicalExtentComputedValues&) const
    WebCore::RenderBox::computePositionedLogicalWidth(WebCore::RenderBox::LogicalExtentComputedValues&, WebCore::RenderFragmentContainer*) const
    WebCore::RenderBox::computeLogicalWidthInFragment(WebCore::RenderBox::LogicalExtentComputedValues&, WebCore::RenderFragmentContainer*) const
    WebCore::RenderBox::updateLogicalWidth()
    WebCore::RenderReplaced::layout()
    WebCore::RenderImage::layout()
    WebCore::RenderMedia::layout()
    WebCore::RenderVideo::layout()

    After we have computed the width for the video, we call RenderBox::RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth
    to restrict it within any min and max constraints. This eventually calls into RenderBox::computeIntrinsicLogicalWidthUsing to compute the
    min-width using MinContent as the width type.

    The container-type: inline-size; and inset: 0 auto; properties cause RenderBox::shouldComputeLogicalWidthFromAspectRatio to return true
    because the call to shouldComputeLogicalWidthFromAspectRatioAndInsets returns true. This last method returns true because:
    1.) Applying the inline size containment causes hasConstrainedWidth to be false when it would normally be true from the video’s intrinsic width.
    2.) hasConstrainedHeight gets set to false because inset causes the logical top and property values to get set to a fixed value
    3.) The final call to style.logicalHeight().isAuto() returns true

    Due to these series of events we end up calling computeLogicalWidthFromAspectRatioInternal inside RenderBox::computeIntrinsicLogicalWidthUsing.
    This eventually recurses its way back into RenderBox::computeReplacedLogicalWidthRespectingMinMaxWidth through the reset of the stack trace.

    * LayoutTests/TestExpectations:
    * LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-default-object-height-constrained-by-max-width-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-default-object-height-constrained-by-max-width.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-default-object-width-constrained-by-max-height-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-default-object-width-constrained-by-max-height.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-inline-size-containment-no-crash.html: Added.
    This test currently crashes due to a different reason (webkit.org/b/252594),
    but is still useful to this patch as it was causing the stack
    overflow.

    * LayoutTests/imported/w3c/web-platform-tests/html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-intrinsic-width-height.html:
    One of the test cases was incorrectly changed in a previous patch and
    is being restored to its previous version. The height for this test
    should be 150px and not 300px because it falls under the case:

    If 'height' and 'width' both have computed values of 'auto' and the
    element also has an intrinsic height, then that intrinsic height is
    the used value of 'height'.
    https://www.w3.org/TR/CSS22/visudet.html#inline-replaced-height

    * LayoutTests/platform/gtk/TestExpectations:
    * LayoutTests/platform/wpe/TestExpectations:
    * Source/WebCore/rendering/RenderReplaced.cpp:
    (WebCore::RenderReplaced::computeIntrinsicSizesConstrainedByTransferredMinMaxSizes const):

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

Canonical link: https://commits.webkit.org/259456.519@safari-7615-branch


  Commit: 0f3c0493792c09aa9dfbbe4c26dfdb7687840c45
      https://github.com/WebKit/WebKit/commit/0f3c0493792c09aa9dfbbe4c26dfdb7687840c45
  Author: Rose <83477269+AtariDreams at users.noreply.github.com>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitcorepy/webkitcorepy/terminal.py
    M Tools/Scripts/webkitpy/common/system/user.py

  Log Message:
  -----------
  Cherry-pick 261687 at main (82bd766bd89d). rdar://106367061

    Scripts: Use webbrowser package in Python to open a URL in a web browser
    https://bugs.webkit.org/show_bug.cgi?id=253515

    Reviewed by Jonathan Bedard.

    I made a mistake. Because "start" worked on the command line, I assumed
    that it would work under the Terminal.run() command. Now I realize this
    is not what actually happens. Instead of reverting that commit, commit
    https://commits.webkit.org/261332@main, I am instead introducing a
    proper fix, which is using the URL and opening it in a browser via the
    webbrowser package.

    * Tools\Scripts\libraries\webkitcorepy\webkitcorepy\terminal.py: Change
      'start' back to 'explorer.' Teach open_url to call the webbrowser
      url method to open webpages if the scheme is http or https.

    * Tools\Scripts\webkitpy\common\system\user.py: Inline redundant method.

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

Canonical link: https://commits.webkit.org/259548.428@safari-7615-branch


  Commit: b19945f7bd58b297be98f527f5fb904451fcf0ce
      https://github.com/WebKit/WebKit/commit/b19945f7bd58b297be98f527f5fb904451fcf0ce
  Author: Rose <83477269+AtariDreams at users.noreply.github.com>
  Date:   2023-03-15 (Wed, 15 Mar 2023)

  Changed paths:
    M Tools/Scripts/hooks/pre-push

  Log Message:
  -----------
  Cherry-pick 261606 at main (18dbbee3f2c7). rdar://106674052

    Hooks: Fix typo in pre-push script
    https://bugs.webkit.org/show_bug.cgi?id=253822
    rdar://106674052

    Reviewed by Alexey Proskuryakov.

    The correct phrasing is "no classification," not "not classification."

    * Tools\Scripts\hooks\pre-push:(main): Fix "not" typo.

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

Canonical link: https://commits.webkit.org/259548.429@safari-7615-branch


  Commit: 06af3d226e2bc96a97828abbdf935fad6481b977
      https://github.com/WebKit/WebKit/commit/06af3d226e2bc96a97828abbdf935fad6481b977
  Author: David Kilzer <ddkilzer at apple.com>
  Date:   2023-03-16 (Thu, 16 Mar 2023)

  Changed paths:
    A LayoutTests/fast/xsl/xslt-node-set-empty-expected.txt
    A LayoutTests/fast/xsl/xslt-node-set-empty.html
    M Source/WebCore/xml/SoftLinkLibxslt.cpp
    M Source/WebCore/xml/SoftLinkLibxslt.h
    M Source/WebCore/xml/XSLTExtensions.cpp

  Log Message:
  -----------
  XSLTProcessor fails when xsl calls exsl:node-set() on empty variable
https://bugs.webkit.org/show_bug.cgi?id=253857
<rdar://103622929>

Reviewed by Alex Christensen.

Merge fix for Chromium Issue 689977:
https://chromium.googlesource.com/chromium/src.git/+/99ead7d1564d35a70799b7ee4c3821053fb3985c

Tests:
    fast/xsl/exslt-node-set.xml
    fast/xsl/xslt-node-set-empty.html

* LayoutTests/fast/xsl/xslt-node-set-empty-expected.txt: Add.
* LayoutTests/fast/xsl/xslt-node-set-empty.html: Add.
* Source/WebCore/xml/SoftLinkLibxslt.cpp:
* Source/WebCore/xml/SoftLinkLibxslt.h:
- Add soft-linking for newly called libxslt functions.
* Source/WebCore/xml/XSLTExtensions.cpp:
(xsltTransformErrorTrampoline): Add.
- Provide workaround for soft-linking xsltTransformError()
  with varargs.
(WebCore::exsltNodeSetFunction):
- Update to match logic in libxslt v1.1.35.

Canonical link: https://commits.webkit.org/259548.430@safari-7615-branch


  Commit: d4a83e5b26189a6c54f91fe79213fd669232f209
      https://github.com/WebKit/WebKit/commit/d4a83e5b26189a6c54f91fe79213fd669232f209
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-03-16 (Thu, 16 Mar 2023)

  Changed paths:
    M LayoutTests/fast/loader/stateobjects/popstate-does-not-fire-with-page-cache-expected.txt
    M LayoutTests/fast/loader/stateobjects/popstate-does-not-fire-with-page-cache.html
    M LayoutTests/fast/loader/stateobjects/resources/popstate-does-not-fire-with-page-cache-1.html
    M LayoutTests/fast/loader/stateobjects/resources/popstate-does-not-fire-with-page-cache-2.html
    M LayoutTests/platform/mac/TestExpectations

  Log Message:
  -----------
  Cherry-pick 259873 at main (9b11ab322031). rdar://104775065

    [ iOS BigSur+ ] fast/loader/stateobjects/popstate-does-not-fire-with-page-cache.html is a flaky failure.
    https://bugs.webkit.org/show_bug.cgi?id=251312
    rdar://104775065

    Reviewed by Ryosuke Niwa.

    The test would:
    1. open a popup and load popstate-does-not-fire-with-page-cache-1.html in it
    2. Call history.pushState() to create an extra history item in the popup
       (popstate-does-not-fire-with-page-cache-1.html#)
    3. Navigate the popup to popstate-does-not-fire-with-page-cache-2.html
    4. Call history.back() to go back to popstate-does-not-fire-with-page-cache-1.html#
    5. Since the item would load from the back/forward cache, the test was relying
       on the `pageshow` event inside the popup to determinate when the navigation
       back had occurred (since no load event would fire).
    6. When getting the `pageshow` event, the test would call history.back() again
       in the popup to go back to the initial popstate-does-not-fire-with-page-cache-1.html
    7. The test would then expect a popstate event to get fired.

    The test would flakily fail because the step 6 would trigger at the wrong time.

    The issue was that we had set the pageshow event listener on popstate-does-not-fire-with-page-cache-2.html
    instead of popstate-does-not-fire-with-page-cache-1.html. Because we would call `history.back()`
    in a setTimeout(10), we would sometimes have navigated back to popstate-does-not-fire-with-page-cache-1.html#
    but not always. We really wanted to know when the back/forward cache navigation back to
    popstate-does-not-fire-with-page-cache-1.html# had occurred so that `pageshow` event listener
    needs to be on popstate-does-not-fire-with-page-cache-1.html.

    * LayoutTests/fast/loader/stateobjects/popstate-does-not-fire-with-page-cache-expected.txt:
    * LayoutTests/fast/loader/stateobjects/popstate-does-not-fire-with-page-cache.html:
    * LayoutTests/fast/loader/stateobjects/resources/popstate-does-not-fire-with-page-cache-1.html:
    * LayoutTests/fast/loader/stateobjects/resources/popstate-does-not-fire-with-page-cache-2.html:
    * LayoutTests/platform/mac/TestExpectations:

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

Canonical link: https://commits.webkit.org/259548.431@safari-7615-branch


  Commit: cce70955c480ad53882d8aa339c70e21544b95fa
      https://github.com/WebKit/WebKit/commit/cce70955c480ad53882d8aa339c70e21544b95fa
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-03-16 (Thu, 16 Mar 2023)

  Changed paths:
    M Source/JavaScriptCore/parser/ASTBuilder.h

  Log Message:
  -----------
  Revert dc7e063da266. rdar://problem/105883674

Canonical link: https://commits.webkit.org/259548.432@safari-7615-branch


  Commit: 78f0dc559ad114a9ea144cf8628cc02beeacf880
      https://github.com/WebKit/WebKit/commit/78f0dc559ad114a9ea144cf8628cc02beeacf880
  Author: Dawn Flores <dawn_flores at apple.com>
  Date:   2023-03-16 (Thu, 16 Mar 2023)

  Changed paths:
    M LayoutTests/platform/mac/TestExpectations

  Log Message:
  -----------
  [Gardening]([ EWS Mac ] http/wpt/service-workers/service-worker-spinning-activate.https.html (layout-tests) is a flaky failure).
rdar://106818567

Unreviewed test gardening.

* LayoutTests/platform/mac/TestExpectations:

Canonical link: https://commits.webkit.org/259548.433@safari-7615-branch


  Commit: 54a21b4db4fa993305370bff84c1877bf78f0684
      https://github.com/WebKit/WebKit/commit/54a21b4db4fa993305370bff84c1877bf78f0684
  Author: Arunsundar Kannan <arunsundar_kannan at apple.com>
  Date:   2023-03-16 (Thu, 16 Mar 2023)

  Changed paths:
    A LayoutTests/fast/css-grid-layout/GridtrackSizing-overflowon-mutating-grid-columns-expected.txt
    A LayoutTests/fast/css-grid-layout/GridtrackSizing-overflowon-mutating-grid-columns.html
    M Source/WebCore/rendering/RenderGrid.cpp

  Log Message:
  -----------
  Web content process crashes when mutating grid-template-columns of subgrid parent grid.
https://bugs.webkit.org/show_bug.cgi?id=253916.
rdar://106458581.

Reviewed by Matt Woodrow.

After grid-template-column of the subgrid's parent grid mutates, needsItemsPlacement flag is not set for the subgrid's currentgrid. As a result, gridTracks for subgrids->curretGrid() don't undergo resizing, resulting in a OOB in copyUsedTrackSizesForSubgrid().This changes sets needsItemPlacement flag as needed.

* LayoutTests/fast/css-grid-layout/GridtrackSizing-overflowon-mutating-grid-columns-expected.txt: Added.
* LayoutTests/fast/css-grid-layout/GridtrackSizing-overflowon-mutating-grid-columns.html: Added.
* Source/WebCore/rendering/RenderGrid.cpp:
(WebCore::RenderGrid::placeItemsOnGrid):

Canonical link: https://commits.webkit.org/259548.434@safari-7615-branch


  Commit: 3a1ba44290d83b620d071d87b3f668fcf825caa5
      https://github.com/WebKit/WebKit/commit/3a1ba44290d83b620d071d87b3f668fcf825caa5
  Author: JC Alvarado <joncarlo at apple.com>
  Date:   2023-03-16 (Thu, 16 Mar 2023)

  Changed paths:
    A LayoutTests/fast/editing/insert-text-hit-testing-crash-expected.txt
    A LayoutTests/fast/editing/insert-text-hit-testing-crash.html
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/rendering/HitTestRequest.h

  Log Message:
  -----------
  Update layout of child frames before hit testing a document if necessary
https://bugs.webkit.org/show_bug.cgi?id=253615
rdar://105873211

Reviewed by Alan Baradlay.

If hit testing can recurse into a child frame, we should make sure that
layout and style are updated for all children before proceeding with
hit testing.

* LayoutTests/fast/editing/insert-text-hit-testing-crash-expected.txt: Added.
* LayoutTests/fast/editing/insert-text-hit-testing-crash.html: Added.
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::hitTest):

Canonical link: https://commits.webkit.org/259548.435@safari-7615-branch


  Commit: 675bccc470997411d0bdd4606c6261478505fec5
      https://github.com/WebKit/WebKit/commit/675bccc470997411d0bdd4606c6261478505fec5
  Author: Rob Buis <rbuis at igalia.com>
  Date:   2023-03-16 (Thu, 16 Mar 2023)

  Changed paths:
    A LayoutTests/fast/scrolling/fixed-positioned-element-update-crash-expected.txt
    A LayoutTests/fast/scrolling/fixed-positioned-element-update-crash.html

  Log Message:
  -----------
  Cherry-pick 260286.10 at webkit-2023.2-embargoed (010528ca060e). rdar://99637052

    Add crash test for bad update of fixed position scrolling node
    https://bugs.webkit.org/show_bug.cgi?id=245389

    Reviewed by Simon Fraser.

    This was already fixed with #255114, but add the test for completeness.

    * LayoutTests/fast/scrolling/fixed-positioned-element-update-crash-expected.txt: Added.
    * LayoutTests/fast/scrolling/fixed-positioned-element-update-crash.html: Added.

    Canonical link: https://commits.webkit.org/260286.10@webkit-2023.2-embargoed

Canonical link: https://commits.webkit.org/259548.436@safari-7615-branch


  Commit: 79a613196c5c19008dba4e7426765f383ae9d84b
      https://github.com/WebKit/WebKit/commit/79a613196c5c19008dba4e7426765f383ae9d84b
  Author: Rob Buis <rbuis at igalia.com>
  Date:   2023-03-16 (Thu, 16 Mar 2023)

  Changed paths:
    A LayoutTests/fast/multicol/legend-in-column-outline-auto-crash-expected.txt
    A LayoutTests/fast/multicol/legend-in-column-outline-auto-crash.html
    M Source/WebCore/rendering/RenderObject.cpp

  Log Message:
  -----------
  Cherry-pick 260286.11 at webkit-2023.2-embargoed (e7b0459eaad2). rdar://104813886

    Take legend element into account in propagateRepaintToParentWithOutlineAutoIfNeeded
    https://bugs.webkit.org/show_bug.cgi?id=251381
    rdar://104813886

    Reviewed by Alan Baradlay.

    In change r259412 logic was introduced for spanner placeholders and a check was done
    to see if the previous sibling renderer is a column set. However legends are kept out of
    column flows and thus may also have a column set as previous sibling, in this case we
    don't want to enter the spanner placeholder logic.

    * LayoutTests/fast/multicol/legend-in-column-outline-auto-crash-expected.txt: Added.
    * LayoutTests/fast/multicol/legend-in-column-outline-auto-crash.html: Added.
    * Source/WebCore/rendering/RenderObject.cpp:
    (WebCore::RenderObject::propagateRepaintToParentWithOutlineAutoIfNeeded const):

    Canonical link: https://commits.webkit.org/260286.11@webkit-2023.2-embargoed

Canonical link: https://commits.webkit.org/259548.437@safari-7615-branch


  Commit: 4f8eae698e45863b23d8e9655ee62f917c140da8
      https://github.com/WebKit/WebKit/commit/4f8eae698e45863b23d8e9655ee62f917c140da8
  Author: Claudio Saavedra <csaavedra at igalia.com>
  Date:   2023-03-16 (Thu, 16 Mar 2023)

  Changed paths:
    A LayoutTests/fast/css/content/display-contents-on-focus-crash-expected.txt
    A LayoutTests/fast/css/content/display-contents-on-focus-crash.html

  Log Message:
  -----------
  Cherry-pick 260286.12 at webkit-2023.2-embargoed (042db6f5677e). rdar://104813991

    Add test for display contents on focus change
    https://bugs.webkit.org/show_bug.cgi?id=251380

    Reviewed by Antti Koivisto.

    Already fixed by #248776, but add this test for
    completeness.

    * LayoutTests/fast/css/content/display-contents-on-focus-crash-expected.txt: Added.
    * LayoutTests/fast/css/content/display-contents-on-focus-crash.html: Added.

    Canonical link: https://commits.webkit.org/260286.12@webkit-2023.2-embargoed

Canonical link: https://commits.webkit.org/259548.438@safari-7615-branch


  Commit: 4a5ecd489674e27b1cc629d757baeb5bdf070382
      https://github.com/WebKit/WebKit/commit/4a5ecd489674e27b1cc629d757baeb5bdf070382
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-03-17 (Fri, 17 Mar 2023)

  Changed paths:
    M Source/ThirdParty/libwebrtc/Source/third_party/libaom/source/libaom/av1/encoder/ratectrl.c
    M Source/ThirdParty/libwebrtc/Source/third_party/libaom/source/libaom/av1/encoder/ratectrl.h

  Log Message:
  -----------
  OSS: [WebRTC] Heap-buffer-overflow in av1_get_one_pass_rt_params - Heap Buffer Overflow in AV1 Video Encoder
rdar://106645234

Reviewed by Eric Carlson.

Cherry-picking of https://aomedia.googlesource.com/aom/+/bee1caded272127a6d6b70ac79479083d183d5d0%5E%21/#F0.
I had to manually apply the patch since it does not apply cleanly.

* Source/ThirdParty/libwebrtc/Source/third_party/libaom/source/libaom/av1/encoder/ratectrl.c:
(av1_rc_postencode_update):
(av1_rc_postencode_update_drop_frame):
(av1_get_one_pass_rt_params):
* Source/ThirdParty/libwebrtc/Source/third_party/libaom/source/libaom/av1/encoder/ratectrl.h:

Canonical link: https://commits.webkit.org/259548.439@safari-7615-branch


  Commit: 2ef6b76e1902a4c0451a4a2d8bc963c992e8aef0
      https://github.com/WebKit/WebKit/commit/2ef6b76e1902a4c0451a4a2d8bc963c992e8aef0
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-03-17 (Fri, 17 Mar 2023)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/http/wpt/webcodecs/resources/green.png
    A LayoutTests/http/wpt/webcodecs/resources/image.py
    A LayoutTests/http/wpt/webcodecs/webcodecs-crossOrigin.sub-expected.txt
    A LayoutTests/http/wpt/webcodecs/webcodecs-crossOrigin.sub.html
    M LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-canvasImageSource-expected.txt
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.cpp
    M Source/WebCore/css/CSSImageValue.h
    M Source/WebCore/css/typedom/CSSStyleImageValue.h
    M Source/WebCore/html/HTMLImageElement.cpp
    M Source/WebCore/html/HTMLImageElement.h
    M Source/WebCore/html/canvas/CanvasRenderingContext.cpp

  Log Message:
  -----------
  VideoFrame constructor should throw on tainted input
https://bugs.webkit.org/show_bug.cgi?id=253828
rdar://problem/106643249

Reviewed by Jean-Yves Avenard.

Add a CORS check in VideoFrame constructor code paths.

Covered by added tests.

* LayoutTests/TestExpectations:
* LayoutTests/http/wpt/webcodecs/green.png: Added.
* LayoutTests/http/wpt/webcodecs/image.py: Added.
(main):
* LayoutTests/http/wpt/webcodecs/webcodecs-crossOrigin.sub-expected.txt: Added.
* LayoutTests/http/wpt/webcodecs/webcodecs-crossOrigin.sub.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-canvasImageSource-crossOrigin.sub-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-canvasImageSource-crossOrigin.sub.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-canvasImageSource-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-canvasImageSource.html:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.cpp:
(WebCore::isCachedImageTaintsOrigin):
(WebCore::checkImageUsability):
(WebCore::WebCodecsVideoFrame::create):
* Source/WebCore/css/CSSImageValue.h:
* Source/WebCore/css/typedom/CSSStyleImageValue.h:

Canonical link: https://commits.webkit.org/259548.440@safari-7615-branch


  Commit: a0d5cbe713d9cbffe8472d6e1a0511bbf0e18a17
      https://github.com/WebKit/WebKit/commit/a0d5cbe713d9cbffe8472d6e1a0511bbf0e18a17
  Author: Rob Buis <rbuis at igalia.com>
  Date:   2023-03-17 (Fri, 17 Mar 2023)

  Changed paths:
    A LayoutTests/fast/css-grid-layout/positioned-grid-with-large-inset-and-scrollbar-expected.txt
    A LayoutTests/fast/css-grid-layout/positioned-grid-with-large-inset-and-scrollbar.html
    M Source/WebCore/rendering/RenderBlock.cpp

  Log Message:
  -----------
  Cherry-pick 260286.13 at webkit-2023.2-embargoed (0a7c35b68439). rdar://105938634

    Adapt OOF with specified height case in availableLogicalHeightForPercentageComputation
    https://bugs.webkit.org/show_bug.cgi?id=253037

    Reviewed by Alan Baradlay.

    The computed height for OOF can result in being zero for certain insets (but never negative).
    In that case subtracting scrollbar sizes could result in negative values like in the test case, so
    clamp to zero.

    * LayoutTests/fast/css-grid-layout/positioned-grid-with-large-inset-and-scrollbar-expected.txt: Added.
    * LayoutTests/fast/css-grid-layout/positioned-grid-with-large-inset-and-scrollbar.html: Added.
    * Source/WebCore/rendering/RenderBlock.cpp:
    (WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):

    Canonical link: https://commits.webkit.org/260286.13@webkit-2023.2-embargoed

Canonical link: https://commits.webkit.org/259548.441@safari-7615-branch


  Commit: 7773c23193ae633c0799cb172cbf0a5d3c27c960
      https://github.com/WebKit/WebKit/commit/7773c23193ae633c0799cb172cbf0a5d3c27c960
  Author: Sam Sneddon <gsnedders at apple.com>
  Date:   2023-03-17 (Fri, 17 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py

  Log Message:
  -----------
  Cherry-pick 261747 at main (12a6691f9a89). rdar://106804799

    Allow git-webkit pr to pass --set-upstream to push
    https://bugs.webkit.org/show_bug.cgi?id=253643

    Reviewed by Jonathan Bedard.

    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
    (Git):
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
    (PullRequest.parser):
    (PullRequest.create_pull_request):

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

Canonical link: https://commits.webkit.org/259548.442@safari-7615-branch


  Commit: e7a806e61b23501f9e0af38d7a88bc35fbcbb7ea
      https://github.com/WebKit/WebKit/commit/e7a806e61b23501f9e0af38d7a88bc35fbcbb7ea
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-17 (Fri, 17 Mar 2023)

  Changed paths:
    M Tools/Scripts/hooks/pre-push

  Log Message:
  -----------
  Cherry-pick 261753 at main (7db47f286675). rdar://106790367

    [git pre-push] Treat a 'None' security source level as the maximum level
    https://bugs.webkit.org/show_bug.cgi?id=254008
    rdar://106790367

    Reviewed by Aakash Jain.

    If the source of a commit has an unknown security level, we must treat that source
    as having the maximum possible security level.

    * Tools/Scripts/hooks/pre-push:

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

Canonical link: https://commits.webkit.org/259548.443@safari-7615-branch


  Commit: 22dc63f086bfce26e06adfa76c24c03224b569a1
      https://github.com/WebKit/WebKit/commit/22dc63f086bfce26e06adfa76c24c03224b569a1
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-17 (Fri, 17 Mar 2023)

  Changed paths:
    M Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py

  Log Message:
  -----------
  Cherry-pick 261771 at main (e52984098051). rdar://106818932

    [run-webkit-tests] Give ignore-tests a better alias
    https://bugs.webkit.org/show_bug.cgi?id=254041
    rdar://106818932

    Reviewed by Patrick Angle.

    * Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:
    (parse_args): Make --exclude-tests an alias of --ignore-tests.

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

Canonical link: https://commits.webkit.org/259548.444@safari-7615-branch


  Commit: 539dd07a827f08f8d501ee70e5f080b80d64f80b
      https://github.com/WebKit/WebKit/commit/539dd07a827f08f8d501ee70e5f080b80d64f80b
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-17 (Fri, 17 Mar 2023)

  Changed paths:
    M Tools/Scripts/hooks/pre-push

  Log Message:
  -----------
  Cherry-pick 261794 at main (e52330471c00). rdar://106216593

    [git-webkit] Add pre-push hook to prevent publication of security sensitive commits (Follow-up fix)
    https://bugs.webkit.org/show_bug.cgi?id=253354
    rdar://106216593

    Unreviewed follow-up fix.

    * Tools/Scripts/hooks/pre-push: Instantiation a set with brackets doesn't work with a list.

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

Canonical link: https://commits.webkit.org/259548.445@safari-7615-branch


  Commit: 95dae9fc88495d4794962ac44ab8c3331e6d26d5
      https://github.com/WebKit/WebKit/commit/95dae9fc88495d4794962ac44ab8c3331e6d26d5
  Author: Per Arne Vollan <pvollan at apple.com>
  Date:   2023-03-17 (Fri, 17 Mar 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in

  Log Message:
  -----------
  Cherry-pick c886a4ac660c. rdar://problem/106815986

    [macOS][GPUP] Add syscall to sandbox
    https://bugs.webkit.org/show_bug.cgi?id=254036
    rdar://problem/106815986

    Reviewed by Brent Fulgham.

    Add syscall related to process termination to the GPU process sandbox on macOS.

    * Source/WebKit/GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:

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

Identifier: 259548.446 at safari-7615-branch


  Commit: af020724db795f26ab4ec5a4063086e73e71b2d7
      https://github.com/WebKit/WebKit/commit/af020724db795f26ab4ec5a4063086e73e71b2d7
  Author: Rob Buis <rbuis at igalia.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M Source/WebCore/rendering/RenderObject.cpp
    M Source/WebCore/rendering/RenderObject.h

  Log Message:
  -----------
  Cherry-pick 260286.14 at webkit-2023.2-embargoed (0888aabefd69). rdar://105484546

    Improve isInsideMulticolumnFlow lambda for top-layer elements
    https://bugs.webkit.org/show_bug.cgi?id=245374

    Reviewed by Alan Baradlay.

    Improve isInsideMulticolumnFlow lambda for top-layer elements.
    Top-layer elements can skip many ancestors since the containing
    block is the RenderView. So instead of checking the fragmentedFlowRoot
    boundary, check the containing block fragmented flow state.

    * Source/WebCore/rendering/RenderObject.cpp:
    (WebCore::RenderObject::setFragmentedFlowStateIncludingDescendants):
    (WebCore::RenderObject::initializeFragmentedFlowStateOnInsertion):
    (WebCore::RenderObject::resetFragmentedFlowStateOnRemoval):
    * Source/WebCore/rendering/RenderObject.h:

    Canonical link: https://commits.webkit.org/260286.14@webkit-2023.2-embargoed

Canonical link: https://commits.webkit.org/259548.447@safari-7615-branch


  Commit: 5f13122febabc7b474ee26cff8b0d063c6221fdb
      https://github.com/WebKit/WebKit/commit/5f13122febabc7b474ee26cff8b0d063c6221fdb
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M Tools/Scripts/hooks/pre-push
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py
    A Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/install_hooks_unittest.py

  Log Message:
  -----------
  Cherry-pick 261795 at main (bb518ed01306). rdar://106832995

    [git-webkit] Handle ssh protocol with user
    https://bugs.webkit.org/show_bug.cgi?id=254052
    rdar://106832995

    Reviewed by Aakash Jain.

    A remote URL of the format 'ssh://git@...' is valid, but breaks our regex.

    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/hooks/pre-push: Use a regex defined by our template.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py:
    (InstallHooks): Update REMOTE_RE to handle ssh protocol with user.
    (InstallHooks.main): Pass REMOTE_RE to template.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/install_hooks_unittest.py: Added.
    (TestInstallHooks):
    (TestInstallHooks.setUp):
    (TestInstallHooks.test_regex):

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

Canonical link: https://commits.webkit.org/259548.448@safari-7615-branch


  Commit: f76206e4411a2537640f83f678c49c2779a170f6
      https://github.com/WebKit/WebKit/commit/f76206e4411a2537640f83f678c49c2779a170f6
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/install_hooks_unittest.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py

  Log Message:
  -----------
  Cherry-pick 261873 at main (4a282fd70d35). rdar://106769669

    [git-webkit] Allow users to specify remotes with security levels
    https://bugs.webkit.org/show_bug.cgi?id=253979
    rdar://106769669

    Rubber-stamped by Aakash Jain.

    Provide a --level flag to `git-webkit install-hooks` so that services
    can configure their pre-push hook with remotes not specified by the project.

    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py:
    (InstallHooks.parser): Add --level flag.
    (InstallHooks.main): Parse the contents of the --level flag and add the specified remotes
    to our resolved template.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/install_hooks_unittest.py: Added.
    (TestInstallHooks):
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:
    (TestSetup.test_security_levels): Move to TestInstallHooks.

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

Canonical link: https://commits.webkit.org/259548.449@safari-7615-branch


  Commit: 79f3c6391fc2604b57306b23a3812d9e0057ad29
      https://github.com/WebKit/WebKit/commit/79f3c6391fc2604b57306b23a3812d9e0057ad29
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M Tools/Scripts/hooks/pre-push

  Log Message:
  -----------
  Cherry-pick 261884 at main (98754beb9912). rdar://106949161

    [pre-push] Handle 'None' commits
    https://bugs.webkit.org/show_bug.cgi?id=254161
    rdar://106949161

    Reviewed by Aakash Jain.

    * Tools/Scripts/hooks/pre-push: Return 'None' if
    the commit argument is None.

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

Canonical link: https://commits.webkit.org/259548.450@safari-7615-branch


  Commit: 11c1b59a7e8c9980c41a94719ba450b2832905d6
      https://github.com/WebKit/WebKit/commit/11c1b59a7e8c9980c41a94719ba450b2832905d6
  Author: Timothy Hatcher <timothy at apple.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M Source/WebCore/page/UserContentURLPattern.cpp
    M Source/WebCore/page/UserContentURLPattern.h
    M Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMatchPatternCocoa.mm

  Log Message:
  -----------
  Cherry-pick f112de95435d. rdar://problem/106052464

    Speedup WebExtensionMatchPattern::matchesAllHosts() to avoid makeString().
    https://webkit.org/b/253722
    rdar://106052464

    Reviewed by Brian Weinstein.

    * Source/WebCore/page/UserContentURLPattern.cpp:
    (WebCore::UserContentURLPattern::originalHost const): Use matchAllHosts().
    * Source/WebCore/page/UserContentURLPattern.h:
    (WebCore::UserContentURLPattern::matchAllHosts const): Added.
    * Source/WebKit/UIProcess/Extensions/Cocoa/WebExtensionMatchPatternCocoa.mm:
    (WebKit::WebExtensionMatchPattern::matchesAllHosts const): Use matchAllHosts() instead of host().

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


  Commit: b0ab3082f7392a5df32bcea91454012d8d758fe0
      https://github.com/WebKit/WebKit/commit/b0ab3082f7392a5df32bcea91454012d8d758fe0
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M Source/WebKit/UIProcess/WebPageProxy.cpp

  Log Message:
  -----------
  Cherry-pick d55e642abe03. rdar://problem/106597341

    Crash under ProvisionalPageProxy::initializeWebPage()
    https://bugs.webkit.org/show_bug.cgi?id=253767
    rdar://106597341

    Reviewed by David Kilzer.

    receivedNavigationPolicyDecision() calls continueNavigationInNewProcess(), which
    creates a new ProvisionalPageProxy. The ProvisionalPageProxy constructor calls
    ProvisionalPageProxy::initializeWebPage() which accessing m_page.pageClient()
    and crashes with a null dereference.

    receivedNavigationPolicyDecision() early returns if Page::isClosed() is true,
    which should indicate that the pageClient couldn't have been null initially.
    This means the pageClient must have been nulled out in between the isClosed()
    check and the ProvisionalPageProxy::initializeWebPage() call. To protect
    against this, I am adding a PageClientProtector to this code path, right after
    the isClosed() check.

    * Source/WebKit/UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::receivedNavigationPolicyDecision):

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

Identifier: 259548.451 at safari-7615-branch


  Commit: ed58082ab2ca9fc037070092a8d76baf5ea21d73
      https://github.com/WebKit/WebKit/commit/ed58082ab2ca9fc037070092a8d76baf5ea21d73
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M Source/WebKit/UIProcess/ios/WKWebGeolocationPolicyDeciderIOS.mm

  Log Message:
  -----------
  Cherry-pick 4429746eddd4. rdar://problem/106767100

    REGRESSION (iOS 16.4): Chrome crashes in -[WKWebGeolocationPolicyDecider _executeNextChallenge]
    https://bugs.webkit.org/show_bug.cgi?id=253965
    rdar://106767100

    Reviewed by Wenson Hsieh.

    When the UIAlertAction block gets called, make sure that `self` is still alive and that
    `_activeChallenge` is non-null.

    * Source/WebKit/UIProcess/ios/WKWebGeolocationPolicyDeciderIOS.mm:
    (-[WKWebGeolocationPolicyDecider _executeNextChallenge]):
    (-[WKWebGeolocationPolicyDecider _finishActiveChallenge:]):

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

Identifier: 259548.452 at safari-7615-branch


  Commit: 7a963a72dad5e70a3f196a8d24c51c742077cc6e
      https://github.com/WebKit/WebKit/commit/7a963a72dad5e70a3f196a8d24c51c742077cc6e
  Author: Chirag M Shah <chirag_m_shah at apple.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    A LayoutTests/fullscreen/webkit-exit-full-screen-crash-expected.txt
    A LayoutTests/fullscreen/webkit-exit-full-screen-crash.html
    M Source/WebCore/dom/DocumentFullscreen.cpp

  Log Message:
  -----------
  Cherry-pick cdf4725166dd. rdar://problem/106776257

    Fix ASSERTION FAILED: lastDocument->fullscreenManager().fullscreenElement()
    https://bugs.webkit.org/show_bug.cgi?id=253987
    rdar://106776257

    Reviewed by Tim Nguyen.

    We don't handle document not being a fullScreenElement in
    webkitExitFullscreen which causes a crash on debug builds. This change
    fixes that.

    * LayoutTests/fullscreen/webkit-exit-full-screen-crash-expected.txt: Added.
    * LayoutTests/fullscreen/webkit-exit-full-screen-crash.html: Added.
    * Source/WebCore/dom/DocumentFullscreen.cpp:
    (WebCore::DocumentFullscreen::webkitExitFullscreen):

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

Identifier: 259548.453 at safari-7615-branch


  Commit: adc065a82dacdcb4c3c1865c1c216cf39a0c5e19
      https://github.com/WebKit/WebKit/commit/adc065a82dacdcb4c3c1865c1c216cf39a0c5e19
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalidation-004-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/supports-rule-expected.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/supports-rule-ref.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/supports-rule.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/top-level-is-scope-expected.txt
    M Source/WebCore/css/CSSSelector.cpp
    M Source/WebCore/css/CSSSelector.h
    M Source/WebCore/css/CSSStyleRule.cpp
    M Source/WebCore/css/parser/CSSSelectorParser.cpp
    M Source/WebCore/dom/SelectorQuery.cpp
    M Source/WebCore/style/RuleSetBuilder.cpp

  Log Message:
  -----------
  Cherry-pick 261739 at main (20329b62061b). https://bugs.webkit.org/show_bug.cgi?id=250379

    CSS Nesting: support top-level & selector
    https://bugs.webkit.org/show_bug.cgi?id=250379
    rdar://104073866

    Reviewed by Antti Koivisto.

    Replaces any top-level & selector by the :scope pseudo class.

    * LayoutTests/TestExpectations:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalidation-004-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/supports-rule-expected.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/supports-rule-ref.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/supports-rule.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/top-level-is-scope-expected.txt:
    * Source/WebCore/css/CSSSelector.cpp:
    (WebCore::CSSSelector::replaceNestingParentByPseudoClassScope):
    (WebCore::CSSSelector::replaceNestingParentByNotAll): Deleted.
    * Source/WebCore/css/CSSSelector.h:
    * Source/WebCore/css/CSSStyleRule.cpp:
    (WebCore::CSSStyleRule::setSelectorText):
    * Source/WebCore/css/parser/CSSSelectorParser.cpp:
    (WebCore::CSSSelectorParser::consumeSimpleSelector):
    (WebCore::CSSSelectorParser::resolveNestingParent):
    * Source/WebCore/dom/SelectorQuery.cpp:
    * Source/WebCore/style/RuleSetBuilder.cpp:
    (WebCore::Style::RuleSetBuilder::populateStyleRuleResolvedSelectorList):

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

Identifier: 259548.454 at safari-7615-branch


  Commit: 83e34d0ff749377d5cb971c250e58139cd151847
      https://github.com/WebKit/WebKit/commit/83e34d0ff749377d5cb971c250e58139cd151847
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    A LayoutTests/fast/inline-block/inline-block-replaced-and-vertical-writing-mode-expected.html
    A LayoutTests/fast/inline-block/inline-block-replaced-and-vertical-writing-mode.html
    M Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp

  Log Message:
  -----------
  Cherry-pick f6309f09024f. rdar://problem/104669685

    [Books] Horizontal ‘kcal’ (looking like Tate-Chu-Yoko) on vertical text is not horizontally centered
    https://bugs.webkit.org/show_bug.cgi?id=254005
    <rdar://104669685>

    Reviewed by Antti Koivisto.

    Replaced element (e.g. ing) with "display: inline-block" should behave like an inline-block (i.e. we should not assume that RenderReplaced renderer always represents a non-atomic box).

    * LayoutTests/fast/inline-block/inline-block-replaced-and-vertical-writing-mode-expected.html: Added.
    * LayoutTests/fast/inline-block/inline-block-replaced-and-vertical-writing-mode.html: Added.
    * Source/WebCore/layout/integration/inline/LayoutIntegrationLineLayout.cpp:
    (WebCore::LayoutIntegration::LineLayout::updateLayoutBoxDimensions):

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

Identifier: 259548.455 at safari-7615-branch


  Commit: 6765d0477ddfb6761623ccdfc179e87a50e4e3bc
      https://github.com/WebKit/WebKit/commit/6765d0477ddfb6761623ccdfc179e87a50e4e3bc
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    A LayoutTests/fast/text/bidi-with-non-preserved-tab-expected.html
    A LayoutTests/fast/text/bidi-with-non-preserved-tab.html
    M Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp

  Log Message:
  -----------
  Cherry-pick ade45ddc4c8e. rdar://problem/105038980

    REGRESSION: Bidi text gets wrongly wrapped when line-breaking
    https://bugs.webkit.org/show_bug.cgi?id=254024
    <rdar://105038980>

    Reviewed by Antti Koivisto.

    Non-preserved tab characters need the same special treatment as non-preserved line breaks (replace them with space characters).

    * LayoutTests/fast/text/bidi-with-non-preserved-tab-expected.html: Added.
    * LayoutTests/fast/text/bidi-with-non-preserved-tab.html: Added.
    * Source/WebCore/layout/formattingContexts/inline/InlineItemsBuilder.cpp:
    (WebCore::Layout::replaceNonPreservedNewLineAndTabCharactersAndAppend):
    (WebCore::Layout::buildBidiParagraph):
    (WebCore::Layout::replaceNonPreservedNewLineCharactersAndAppend): Deleted.

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

Identifier: 259548.456 at safari-7615-branch


  Commit: 2fe0d17fe645ba04ea588716caa5da0e5bfb2ebb
      https://github.com/WebKit/WebKit/commit/2fe0d17fe645ba04ea588716caa5da0e5bfb2ebb
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    A LayoutTests/fast/inline/statically-positioned-out-of-inline-level-box-inside-inline-box-expected.html
    A LayoutTests/fast/inline/statically-positioned-out-of-inline-level-box-inside-inline-box.html
    M Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.cpp

  Log Message:
  -----------
  Cherry-pick bebe28854073. rdar://problem/106674763

    REGRESSION: GarageBand: Overlapping text displayed on the image icons in the guitar lesson list.
    https://bugs.webkit.org/show_bug.cgi?id=254032
    <rdar://106674763>

    Reviewed by Antti Koivisto.

    When the statically position out-of-flow inline-level box is inside and inline box
    e.g.
     <span><img style="position: absolute"></span>
    and has no direct _next_ sibling inside the inline box, the next sibling candidate for positioning this out-of-flow box is not the parent inline box but the parent inline box's next sibling (or parent parent as we climb out of nested inline boxes). This logic is slightly different from finding previous sibling, where the parent inline box is actually the candidate box.

    * LayoutTests/fast/inline/statically-positioned-out-of-inline-level-box-inside-inline-box-expected.html: Added.
    * LayoutTests/fast/inline/statically-positioned-out-of-inline-level-box-inside-inline-box.html: Added.
    * Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
    (WebCore::Layout::nextDisplayBoxIndex):

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

Identifier: 259548.457 at safari-7615-branch


  Commit: 6bd5402c2d9c6b21a29abab900a416ca358dc860
      https://github.com/WebKit/WebKit/commit/6bd5402c2d9c6b21a29abab900a416ca358dc860
  Author: Vitor Roriz <vitor.roriz at apple.com>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M Source/WebCore/loader/cache/AllowedFonts.cpp

  Log Message:
  -----------
  Cherry-pick 5c176d5e6cca. rdar://problem/106816141

    Update allowed fonts in lockdown mode for apple.com
    https://bugs.webkit.org/show_bug.cgi?id=254037
    rdar://106816141

    Reviewed by Brent Fulgham.

    * Source/WebCore/loader/cache/AllowedFonts.cpp:
    (WebCore::allowedFontHashesInLockdownMode):

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

Identifier: 259548.458 at safari-7615-branch


  Commit: 2396d8a6e829cec90dc9d4d6e15dab63e152ef54
      https://github.com/WebKit/WebKit/commit/2396d8a6e829cec90dc9d4d6e15dab63e152ef54
  Author: Mark Lam <mark.lam at apple.com>
  Date:   2023-03-21 (Tue, 21 Mar 2023)

  Changed paths:
    M Source/JavaScriptCore/assembler/AbortReason.h
    M Source/JavaScriptCore/interpreter/Interpreter.cpp
    M Source/JavaScriptCore/jit/ExecutableAllocator.cpp
    M Source/JavaScriptCore/llint/LLIntData.cpp
    M Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
    M Source/JavaScriptCore/runtime/JSCConfig.h
    M Source/JavaScriptCore/runtime/VM.cpp
    M Source/WTF/wtf/Assertions.h
    M Source/WTF/wtf/WTFConfig.h
    M Source/WebKit/GPUProcess/EntryPoint/Cocoa/XPCService/GPUServiceEntryPoint.mm

  Log Message:
  -----------
  Forbid JS execution in the GPU Process.
https://bugs.webkit.org/show_bug.cgi?id=254101
rdar://106869810

Reviewed by Yusuke Suzuki and Justin Michaud.

The GPU Process does not need to execute any JS code.  We should enforce this invariant.

* Source/JavaScriptCore/assembler/AbortReason.h:
* Source/JavaScriptCore/interpreter/Interpreter.cpp
(JSC::Interpreter::Interpreter):
* Source/JavaScriptCore/jit/ExecutableAllocator.cpp:
(JSC::ExecutableAllocator::initialize):
* Source/JavaScriptCore/llint/LLIntData.cpp:
(JSC::LLInt::neuterOpcodeMaps):
(JSC::LLInt::initialize):
* Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:
(JSC::LLInt::llint_check_vm_entry_permission):
* Source/JavaScriptCore/runtime/JSCConfig.h:
* Source/JavaScriptCore/runtime/VM.cpp:
(JSC::VM::VM):
* Source/WTF/wtf/Assertions.h:
* Source/WTF/wtf/WTFConfig.h:
* Source/WebKit/GPUProcess/EntryPoint/Cocoa/XPCService/GPUServiceEntryPoint.mm:
(GPU_SERVICE_INITIALIZER):

Canonical link: https://commits.webkit.org/259548.460@safari-7615-branch


  Commit: cb846a617a424104232fe4e6366059a30563a7c5
      https://github.com/WebKit/WebKit/commit/cb846a617a424104232fe4e6366059a30563a7c5
  Author: Ryan Reno <rreno at apple.com>
  Date:   2023-03-21 (Tue, 21 Mar 2023)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/imported/w3c/resources/resource-files.json
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-computed.sub-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-computed.sub.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-content-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-content-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dpcm-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dpcm-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dpi-rendering-2-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dpi-rendering-2.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dpi-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dpi-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dppx-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dppx-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-empty-url-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-empty-url-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-first-match-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-first-match-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering-2-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering-2.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-linear-gradient-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-linear-gradient-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-no-res-rendering-2-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-no-res-rendering-2.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-no-res-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-no-res-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-no-url-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-no-url-rendering.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-radial-gradient-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-radial-gradient-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-rendering-2-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-rendering-2.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-rendering-expected.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-001-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-001-ref.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-001.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-002-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-002.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-003-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-003.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-first-match-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-first-match-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-rendering-2-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-rendering-2.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-rendering-3-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-rendering-3.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-skip-unsupported-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-skip-unsupported-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-unsupported-rendering-2-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-unsupported-rendering-2.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-unsupported-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-unsupported-rendering.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-unordered-res-rendering-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-unordered-res-rendering.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/w3c-import.log
    A LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-computed.sub-expected.txt
    M LayoutTests/platform/ios-wk2/TestExpectations

  Log Message:
  -----------
  Cherry-pick c54e9a95a10a. rdar://problem/105094655

    [Image Set]: Resync WPT
    https://bugs.webkit.org/show_bug.cgi?id=251812
    rdar://105094655

    Reviewed by Tim Nguyen.

    Resync CSS image set tests as of upstream 4fd61f8a20ca5d526007f39e0c138b8e881193c4

    * LayoutTests/TestExpectations:
    * LayoutTests/imported/w3c/resources/resource-files.json:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-computed.sub-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-computed.sub.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-content-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-content-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dpcm-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dpcm-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dpi-rendering-2-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dpi-rendering-2.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dpi-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dpi-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dppx-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-dppx-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-empty-url-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-empty-url-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-first-match-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-first-match-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering-2-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering-2.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-invalid-resolution-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-linear-gradient-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-linear-gradient-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-no-res-rendering-2-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-no-res-rendering-2.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-no-res-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-no-res-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-no-url-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-no-url-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-radial-gradient-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-radial-gradient-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-rendering-2-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-rendering-2.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-rendering-expected.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-rendering.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-001-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-001-ref.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-001.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-002-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-002.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-003-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-resolution-003.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-first-match-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-first-match-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-rendering-2-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-rendering-2.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-rendering-3-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-rendering-3.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-skip-unsupported-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-skip-unsupported-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-unsupported-rendering-2-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-unsupported-rendering-2.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-unsupported-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-type-unsupported-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-unordered-res-rendering-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-unordered-res-rendering.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/w3c-import.log:

    * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-computed.sub-expected.txt: Added.
    * LayoutTests/platform/ios-wk2/TestExpectations:

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

Identifier: 259548.461 at safari-7615-branch


  Commit: 6518cdd62d54c3d04ce57c34f8e790f9edb38a93
      https://github.com/WebKit/WebKit/commit/6518cdd62d54c3d04ce57c34f8e790f9edb38a93
  Author: Ryan Reno <rreno at apple.com>
  Date:   2023-03-21 (Tue, 21 Mar 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing.html
    M Source/WebCore/css/calc/CSSCalcCategoryMapping.cpp

  Log Message:
  -----------
  Cherry-pick 310f6772fe38. rdar://problem/106960949

    Recognize CSSUnitType::CSS_X as a resolution calc unit category
    https://bugs.webkit.org/show_bug.cgi?id=252627
    rdar://105700660

    Reviewed by Tim Nguyen.

    We will fail to parse an expression like calc(1x * 2) because we are expecting a Resolution
    calculation category due to the first token in the expression being a Dimenson token. However,
    'x' is not recognized by the mapping and is given the category Other.
    This causes us to bail and not perform the calculation.

    * Source/WebCore/css/calc/CSSCalcCategoryMapping.cpp:
    (WebCore::calcUnitCategory):

    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing.html:

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

Identifier: 259548.462 at safari-7615-branch


  Commit: 54c022723aafea803f725a05517127a7bb160c06
      https://github.com/WebKit/WebKit/commit/54c022723aafea803f725a05517127a7bb160c06
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-03-21 (Tue, 21 Mar 2023)

  Changed paths:
    M Source/WebCore/css/CSSStyleRule.cpp
    M Source/WebCore/css/StyleRule.cpp
    M Source/WebCore/css/StyleRule.h
    M Source/WebCore/inspector/agents/InspectorCSSAgent.cpp
    M Source/WebCore/style/RuleData.h
    M Source/WebCore/style/RuleSetBuilder.cpp
    M Source/WebCore/style/RuleSetBuilder.h

  Log Message:
  -----------
  Cherry-pick 29a558295527. rdar://problem/105883716

    CSS Nesting: fix performance regression by storing selector in StyleRule
    https://bugs.webkit.org/show_bug.cgi?id=252904
    rdar://105883716

    Reviewed by Antti Koivisto.

    CSS Nesting introduces a performance regression in selector
    matching because of a branch to select the appropriate selector list
    (user-written/nested one VS resolved/flatten one).

    This patch stores the resolved selector list in the original StyleRule,
    thus allowing to have only this object to perform selector matching.

    The original user-written selector list is stored in the StyleRuleWithNesting
    object which is not an issue because it's never in a hot code path.

    * Source/WebCore/css/CSSStyleRule.cpp:
    (WebCore::CSSStyleRule::generateSelectorText const):
    * Source/WebCore/css/StyleRule.cpp:
    (WebCore::StyleRuleWithNesting::StyleRuleWithNesting):
    (WebCore::StyleRule::resolvedSelectorList const): Deleted.
    (WebCore::StyleRuleWithNesting::setResolvedSelectorList const): Deleted.
    * Source/WebCore/css/StyleRule.h:
    * Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:
    (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
    * Source/WebCore/style/RuleData.h:
    (WebCore::Style::RuleData::selector const):
    * Source/WebCore/style/RuleSetBuilder.cpp:
    (WebCore::Style::RuleSetBuilder::resolveSelectorListWithNesting):
    (WebCore::Style::RuleSetBuilder::addStyleRule):
    (WebCore::Style::RuleSetBuilder::populateStyleRuleResolvedSelectorList): Deleted.
    * Source/WebCore/style/RuleSetBuilder.h:

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

Identifier: 259548.463 at safari-7615-branch


  Commit: 916c2e38ddb59bc48b771d14cff450fcc66ba8c3
      https://github.com/WebKit/WebKit/commit/916c2e38ddb59bc48b771d14cff450fcc66ba8c3
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-03-21 (Tue, 21 Mar 2023)

  Changed paths:
    M Source/WebCore/css/CSSStyleRule.cpp
    M Source/WebCore/css/StyleRule.cpp
    M Source/WebCore/css/StyleRule.h

  Log Message:
  -----------
  Cherry-pick 1274b2e85784. rdar://problem/106561354

    Fix test crash because of missing copy() method
    https://bugs.webkit.org/show_bug.cgi?id=253723
    rdar://106561354

    Reviewed by Brent Fulgham.

    The visitDerived() dispatcher was calling StyleRule::copy()
    because there was no implementation for StyleRuleWithNesting::copy().

    A follow-up patch could improve the static assertion in copy() to catch that
    at compile-time.

    * Source/WebCore/css/CSSStyleRule.cpp:
    (WebCore::CSSStyleRule::reattach):
    * Source/WebCore/css/StyleRule.cpp:
    (WebCore::StyleRuleWithNesting::copy const):
    (WebCore::StyleRuleWithNesting::StyleRuleWithNesting):
    (WebCore::m_originalSelectorList):
    * Source/WebCore/css/StyleRule.h:

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

Identifier: 259548.464 at safari-7615-branch


  Commit: cf0b3436ba581f9eb8805c8cec70716b4c2a72c8
      https://github.com/WebKit/WebKit/commit/cf0b3436ba581f9eb8805c8cec70716b4c2a72c8
  Author: JC Alvarado <joncarlo at apple.com>
  Date:   2023-03-21 (Tue, 21 Mar 2023)

  Changed paths:
    A LayoutTests/fast/editing/frame-selection-in-child-view-crash-expected.txt
    A LayoutTests/fast/editing/frame-selection-in-child-view-crash.html
    M Source/WebCore/platform/ScrollView.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm

  Log Message:
  -----------
  Increase max scrollbar update passes
rdar://104064235

Reviewed by Simon Fraser.

Scrollbars are not fully updated in a single layout which
can lead to an additional layout in the scriptDisallowedScope
in FrameView::scrollRectToVisibleInChildView.

* LayoutTests/fast/editing/frame-selection-in-child-view-crash-expected.txt: Added.
* LayoutTests/fast/editing/frame-selection-in-child-view-crash.html: Added.
* Source/WebCore/platform/ScrollView.cpp:
(WebCore::ScrollView::updateScrollbars):

* Tools/TestWebKitAPI/Tests/WebKitCocoa/CSSViewportUnits.mm:
(TEST):
Add scrollbarSize to width in WritingMode tests because we should
expect vertical overflow in these cases. This test would pass prior
to this patch despite the displayed WebView having both a vertical
and horizontal scroll bar.

Canonical link: https://commits.webkit.org/259548.465@safari-7615-branch


  Commit: 0adbe1ee957502c482a71d129821cb2617c79b1e
      https://github.com/WebKit/WebKit/commit/0adbe1ee957502c482a71d129821cb2617c79b1e
  Author: Rob Buis <rbuis at igalia.com>
  Date:   2023-03-21 (Tue, 21 Mar 2023)

  Changed paths:
    A LayoutTests/fast/multicol/crash-when-constructing-nested-columns2-expected.txt
    A LayoutTests/fast/multicol/crash-when-constructing-nested-columns2.html
    M Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp

  Log Message:
  -----------
  Cherry-pick 260286.15 at webkit-2023.2-embargoed (028f984310b6). rdar://107007113

    Fix spanner reset logic
    https://bugs.webkit.org/show_bug.cgi?id=245374

    Reviewed by Alan Baradlay.

    In restoreColumnSpannersForContainer we want to reset the spanners to their original position
    and remove the placeholders, however in some cases the attach step will call multiColumnDescendantInserted
    and re-insert placeholders. To fix this, prevent calling the spanner processing logic by
    multiColumnDescendantInserted by introducing a new flag gRestoringColumnSpannersForContainer.

    * LayoutTests/fast/multicol/crash-when-constructing-nested-columns2-expected.txt: Added.
    * LayoutTests/fast/multicol/crash-when-constructing-nested-columns2.html: Added.
    * Source/WebCore/rendering/updating/RenderTreeBuilderMultiColumn.cpp:
    (WebCore::RenderTreeBuilder::MultiColumn::restoreColumnSpannersForContainer):
    (WebCore::RenderTreeBuilder::MultiColumn::multiColumnDescendantInserted):
    (WebCore::RenderTreeBuilder::MultiColumn::processPossibleSpannerDescendant):

    Canonical link: https://commits.webkit.org/260286.15@webkit-2023.2-embargoed

Canonical link: https://commits.webkit.org/259548.466@safari-7615-branch


  Commit: 69eae63cd3749147e969717bd0f33a19eca1ddd9
      https://github.com/WebKit/WebKit/commit/69eae63cd3749147e969717bd0f33a19eca1ddd9
  Author: Patrick Angle <pangle at apple.com>
  Date:   2023-03-22 (Wed, 22 Mar 2023)

  Changed paths:
    M LayoutTests/inspector/debugger/async-stack-trace-truncate-expected.txt
    M LayoutTests/inspector/debugger/async-stack-trace-truncate.html
    M Source/JavaScriptCore/inspector/AsyncStackTrace.cpp
    M Source/JavaScriptCore/inspector/ScriptCallStack.cpp
    M Source/JavaScriptCore/inspector/ScriptCallStack.h

  Log Message:
  -----------
  Web Inspector: Deeply nested async stack traces are not fully truncated
https://bugs.webkit.org/show_bug.cgi?id=254244
rdar://105900359

Reviewed by Yusuke Suzuki.

As of 252630 at main, ScriptCallStack holds a reference to its parent AsyncStackTrace to enable providing async stack
traces in places where previously the async context was being lost. However when this was added, the truncation
functionality used to ensure that AsyncStackTrace did not create an infinitely nested set of objects did not take the
new reference into account. In practice, we should break that relationship any time we are removing the parent of the
AsyncStackTrace. This allows us to correctly release ownership of AsyncStackTraces as we nest deeper, then preventing us
from recursing during their deconstruction later.

* LayoutTests/inspector/debugger/async-stack-trace-truncate-expected.txt:
* LayoutTests/inspector/debugger/async-stack-trace-truncate.html:
- Add test case that creates a nested set of AsyncStackTrace/ScriptCallStack that will exceed the size of the stack if
not correctly truncated.

* Source/JavaScriptCore/inspector/AsyncStackTrace.cpp:
(Inspector::AsyncStackTrace::remove):
Remove the ScriptCallStack's parent at the same time we remove the AsyncStackTrace's parent.

* Source/JavaScriptCore/inspector/ScriptCallStack.cpp:
(Inspector::ScriptCallStack::removeParentStackTrace):
* Source/JavaScriptCore/inspector/ScriptCallStack.h:

Canonical link: https://commits.webkit.org/259548.467@safari-7615-branch


  Commit: 947a92a0aa6cce5f702d70bc8ea54ab1ead667eb
      https://github.com/WebKit/WebKit/commit/947a92a0aa6cce5f702d70bc8ea54ab1ead667eb
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-03-22 (Wed, 22 Mar 2023)

  Changed paths:
    A LayoutTests/fast/mediastream/audio-session-category-capture-audio-context-expected.txt
    A LayoutTests/fast/mediastream/audio-session-category-capture-audio-context.html
    M Source/WebCore/Modules/webaudio/AudioContext.cpp
    M Source/WebCore/Modules/webaudio/AudioContext.h
    M Source/WebCore/html/HTMLMediaElement.h
    M Source/WebCore/platform/audio/PlatformMediaSession.cpp
    M Source/WebCore/platform/audio/PlatformMediaSession.h
    M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm

  Log Message:
  -----------
  Cherry-pick 6cee2aec2971. rdar://problem/106744687

    Not audible AudioContext prevents the audio session category to change from play-and-record after stopping capture
    https://bugs.webkit.org/show_bug.cgi?id=253951
    rdar://problem/106744687

    Reviewed by Jer Noble.

    We made PlayAndRecord audio session category sticky until audio playing ends.
    This ensures that stopping microphone capture will not change the audio level on iOS.
    This works well for HTMLMediaElement but not for AudioContext.
    Some AudioContexts are used for analysis and are not producing any audio.
    We should not delay changing the audio session category if those analytic AudioContexts are running.

    For that reason, we introduce PlatformMediaSessionClient::isAudible() to introduce this.
    It is somehow similar to canProduceAudio except it does not impact with interruptions.
    We might want to merge both in a follow-up.

    * LayoutTests/fast/mediastream/audio-session-category-capture-audio-context-expected.txt: Added.
    * LayoutTests/fast/mediastream/audio-session-category-capture-audio-context.html: Added.
    * Source/WebCore/Modules/webaudio/AudioContext.cpp:
    (WebCore::AudioContext::mediaState const):
    (WebCore::AudioContext::isAudible const):
    * Source/WebCore/Modules/webaudio/AudioContext.h:
    * Source/WebCore/html/HTMLMediaElement.h:
    * Source/WebCore/platform/audio/PlatformMediaSession.cpp:
    (WebCore::PlatformMediaSession::isAudible const):
    * Source/WebCore/platform/audio/PlatformMediaSession.h:
    (WebCore::PlatformMediaSessionClient::isAudible const):
    * Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm:
    (WebCore::MediaSessionManagerCocoa::updateSessionState):

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

Identifier: 259548.465 at safari-7615-branch


  Commit: 269e6c4ec926a68aefa86b2ede931e05d7f8d2e6
      https://github.com/WebKit/WebKit/commit/269e6c4ec926a68aefa86b2ede931e05d7f8d2e6
  Author: Antoine Quint <graouts at webkit.org>
  Date:   2023-03-22 (Wed, 22 Mar 2023)

  Changed paths:
    A LayoutTests/media/modern-media-controls/overflow-support/dropped-when-narrow-expected.txt
    A LayoutTests/media/modern-media-controls/overflow-support/dropped-when-narrow.html
    M Source/WebCore/Modules/modern-media-controls/controls/inline-media-controls.js

  Log Message:
  -----------
  Cherry-pick 2972c6591e21. rdar://problem/104744690

    [media controls] overflow button appears clipped on Google Research page
    https://bugs.webkit.org/show_bug.cgi?id=254165
    rdar://104744690

    Reviewed by Devin Rousso.

    We must account for _visible_ children when determining whether the right bar container should be shown.

    * LayoutTests/media/modern-media-controls/overflow-support/dropped-when-narrow-expected.txt: Added.
    * LayoutTests/media/modern-media-controls/overflow-support/dropped-when-narrow.html: Added.
    * Source/WebCore/Modules/modern-media-controls/controls/inline-media-controls.js:
    (InlineMediaControls.prototype.layout):

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

Identifier: 259548.466 at safari-7615-branch


  Commit: 561a8d250b1dca7b268860043df88d2e09cbb86c
      https://github.com/WebKit/WebKit/commit/561a8d250b1dca7b268860043df88d2e09cbb86c
  Author: Brent Fulgham <bfulgham at webkit.org>
  Date:   2023-03-22 (Wed, 22 Mar 2023)

  Changed paths:
    M Source/WebCore/platform/LocalizedStrings.h
    M Source/WebCore/platform/cocoa/LocalizedStringsCocoa.mm
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm

  Log Message:
  -----------
  Cherry-pick 3b84731a5f6a. rdar://problem/106476286

    Correct WebKit Built-in PDF Plugin Naming
    https://bugs.webkit.org/show_bug.cgi?id=254189
    <rdar://106476286>

    Reviewed by Alexey Proskuryakov.

    In Bug 245396, we revised our Navigator.plugins response to better match the standard.
    Unfortunately, I made the label Localized, which provides a language-specific label for
    this plugin.

    However, since https://html.spec.whatwg.org/multipage/system-state.html#pdf-viewing-support
    only mentions the English text, my localized version confuses some anti-fraud website logic.

    This change removes that translation and simply hard-codes the text as defined in the
    standard.

    * Source/WebCore/platform/LocalizedStrings.h:
    * Source/WebCore/platform/cocoa/LocalizedStringsCocoa.mm:
    (WebCore::builtInPDFPluginName): Deleted.
    * Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
    (WebKit::PDFPlugin::pluginInfo):

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

Identifier: 259548.467 at safari-7615-branch


  Commit: 2cd43d0f26ead1bbba08ab5f5b54a674c7640e20
      https://github.com/WebKit/WebKit/commit/2cd43d0f26ead1bbba08ab5f5b54a674c7640e20
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-03-22 (Wed, 22 Mar 2023)

  Changed paths:
    M Source/WebCore/css/CSSContainerRule.cpp
    M Source/WebCore/css/CSSGroupingRule.cpp
    M Source/WebCore/css/CSSGroupingRule.h
    M Source/WebCore/css/CSSLayerBlockRule.cpp
    M Source/WebCore/css/CSSMediaRule.cpp
    M Source/WebCore/css/CSSSupportsRule.cpp
    M Source/WebCore/css/parser/CSSParserImpl.cpp

  Log Message:
  -----------
  Cherry-pick f2c69208138b. rdar://problem/107070886

    Refactor cssText() to share more code between grouping at-rules
    https://bugs.webkit.org/show_bug.cgi?id=251633
    rdar://104977959

    Reviewed by Antti Koivisto.

    This is a pure refactoring without any behavioral change.

    * Source/WebCore/css/CSSContainerRule.cpp:
    (WebCore::CSSContainerRule::cssText const):
    * Source/WebCore/css/CSSGroupingRule.cpp:
    (WebCore::CSSGroupingRule::appendCSSTextForItems const):
    (WebCore::CSSGroupingRule::cssTextForDeclsAndRules const):
    * Source/WebCore/css/CSSGroupingRule.h:
    * Source/WebCore/css/CSSLayerBlockRule.cpp:
    (WebCore::CSSLayerBlockRule::cssText const):
    * Source/WebCore/css/CSSMediaRule.cpp:
    (WebCore::CSSMediaRule::cssText const):
    * Source/WebCore/css/CSSSupportsRule.cpp:
    (WebCore::CSSSupportsRule::cssText const):
    * Source/WebCore/css/parser/CSSParserImpl.cpp:
    (WebCore::CSSParserImpl::consumeDeclarationListOrStyleBlockHelper):

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

Identifier: 259548.471 at safari-7615-branch


  Commit: 82004907cb2e0949198d16904b150211e23092df
      https://github.com/WebKit/WebKit/commit/82004907cb2e0949198d16904b150211e23092df
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-03-22 (Wed, 22 Mar 2023)

  Changed paths:
    A LayoutTests/fast/block/transparent-outline-with-and-without-border-radius-expected.html
    A LayoutTests/fast/block/transparent-outline-with-and-without-border-radius.html
    M Source/WebCore/rendering/BorderPainter.cpp

  Log Message:
  -----------
  Cherry-pick bb3ba56cc5da. rdar://problem/105545310

    (REGRESSION 255300 at main) Transparent outlines not rendered around all elements
    https://bugs.webkit.org/show_bug.cgi?id=251987
    <rdar://problem/105545310>

    Reviewed by Simon Fraser.

    Compute haveAllSolidEdges in paintOutline the same way we compute it for border painting.
    (Move "haveAllSolidEdges" logic to a static helper to be able to share it between these 2 decoration painter functions)

    * LayoutTests/fast/block/transparent-outline-with-and-without-border-radius-expected.html: Added.
    * LayoutTests/fast/block/transparent-outline-with-and-without-border-radius.html: Added.
    * Source/WebCore/rendering/BorderPainter.cpp:
    (WebCore::BorderPainter::paintOutline):

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

Identifier: 259548.472 at safari-7615-branch


  Commit: 9affe3db875b661646f9f166428b91612203fdad
      https://github.com/WebKit/WebKit/commit/9affe3db875b661646f9f166428b91612203fdad
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-03-22 (Wed, 22 Mar 2023)

  Changed paths:
    M Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.

WebKit-7615.2.2

Canonical link: https://commits.webkit.org/259456.565@safari-7615-branch


  Commit: 339928b5be3484f4fad19dbe4b46327b65e22433
      https://github.com/WebKit/WebKit/commit/339928b5be3484f4fad19dbe4b46327b65e22433
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-22 (Wed, 22 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/publish.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/install_hooks_unittest.py

  Log Message:
  -----------
  Cherry-pick 261970 at main (57dd97a2399f). rdar://106760739

    [git-webkit] Force pre-push hooks to be up-to-date
    https://bugs.webkit.org/show_bug.cgi?id=253972
    rdar://106760739

    Reviewed by Aakash Jain and Ryan Haddad.

    If a checkout defines a pre-push hook, prevent users from running commands
    which invoke `git push` without first installing the hook.

    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py:
    (InstallHooks.version_for): Extract version from a hook template file.
    (InstallHooks.hook_needs_update): Compare the checked in hook template to the installed
    hook template.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:
    (Land.main): Exit program if our pre-push hook is out of date.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/publish.py:
    (Publish.main): Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
    (PullRequest.main): Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/install_hooks_unittest.py: Added.
    (TestInstallHooks):

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

Canonical link: https://commits.webkit.org/259548.474@safari-7615-branch


  Commit: aaa1c998206d7dd99f4d587b0d3033257611917f
      https://github.com/WebKit/WebKit/commit/aaa1c998206d7dd99f4d587b0d3033257611917f
  Author: Chirag M Shah <chirag_m_shah at apple.com>
  Date:   2023-03-22 (Wed, 22 Mar 2023)

  Changed paths:
    A LayoutTests/svg/animations/svg-element-attribute-changed-crash-expected.txt
    A LayoutTests/svg/animations/svg-element-attribute-changed-crash.html
    M Source/WebCore/svg/properties/SVGAnimatedProperty.cpp

  Log Message:
  -----------
  Fix heap use-after-free in Update::addSVGRendererUpdate
https://bugs.webkit.org/show_bug.cgi?id=254281
rdar://107052707

Reviewed by Ryosuke Niwa.

Update::addSVGRendererUpdate can end up removing the SVGElement from
m_roots, which can result in SVGElement being deleted when an attribute
change happens. This change prevents that by protecting the SVGElement
using a RefPtr.

* LayoutTests/svg/animations/svg-element-attribute-changed-crash-expected.txt: Added.
* LayoutTests/svg/animations/svg-element-attribute-changed-crash.html: Added.
* Source/WebCore/svg/properties/SVGAnimatedProperty.cpp:
(WebCore::SVGAnimatedProperty::commitPropertyChange):

Canonical link: https://commits.webkit.org/259548.475@safari-7615-branch


  Commit: 4d57e68630d8000178f480dd3bf3be65423fb426
      https://github.com/WebKit/WebKit/commit/4d57e68630d8000178f480dd3bf3be65423fb426
  Author: Dawn Flores <dawn_flores at apple.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    R LayoutTests/platform/glib/fast/dom/collection-iterators-expected.txt
    R LayoutTests/platform/glib/fast/mediacapturefromelement/CanvasCaptureMediaStream-offscreencanvas-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.any-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.any.worker-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/cookies/size/attributes.www.sub-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/304-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/cors-safelisted-request-header.any-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/credentials-flag-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/preflight-failure-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/redirect-preflight-2-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/redirect-userinfo-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/simple-requests-ch.tentative-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/status-async-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-contain/contain-inline-size-replaced-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-005-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/basic/block-mime-as-script-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin.any-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-redirect.any-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-response-validation.any-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-status.any-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.any-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-preflight.any-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/metadata/generated/appcache-manifest.https.sub-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/nosniff/script-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/nosniff/stylesheet-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/origin/assorted.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/fetch.https.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/mixed-content-fetch.tentative.https.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/preflight-cache.https.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/redirect.https.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/service-worker-fetch.https.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/service-worker.https.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/shared-worker.https.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/shared-worker.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/websocket.https.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/worker-fetch.https.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/worker-fetch.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/worker.https.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/worker.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/xhr.https.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/range/general.any-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen-timing.sub-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen.sub-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/failure-check-sequence.https-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/same-hash-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-invalid-args-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-offscreenCanvas-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/offscreen/filter/offscreencanvas.filter.w-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-sans-fieldset-display-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/specifier-error-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/context-creation-offscreen-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/context-creation-offscreen-with-alpha-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-ToBlob-offscreen-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-TransferToImageBitmap-offscreen-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-null-offscreen-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-duration-boundaryconditions-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/mixed-content/gen/top.meta/opt-in/audio-tag.https-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/mixed-content/gen/top.meta/opt-in/video-tag.https-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-css-images.https-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-varying-tabindex-2-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-varying-tabindex-3-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/streams/piping/close-propagation-backward.any-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/004-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-and-redirects-async.any-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-and-redirects-async.any.worker-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-preflight-async-header-denied-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-preflight-async-method-denied-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-preflight-async-not-supported-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-preflight-sync-header-denied-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-preflight-sync-method-denied-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-preflight-sync-not-supported-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/send-conditional-cors-expected.txt
    R LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub-expected.txt
    R LayoutTests/platform/glib/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt
    R LayoutTests/platform/glib/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt
    R LayoutTests/platform/gtk/compositing/backing/replaced-child-no-backing-expected.txt
    R LayoutTests/platform/gtk/compositing/contents-opaque/body-background-painted-expected.txt
    R LayoutTests/platform/gtk/compositing/contents-opaque/body-background-skipped-expected.txt
    R LayoutTests/platform/gtk/fast/borders/empty-outline-border-assert-expected.txt
    R LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mixed-content/gen/top.meta/opt-in/audio-tag.https-expected.txt
    R LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mixed-content/gen/top.meta/opt-in/video-tag.https-expected.txt
    R LayoutTests/platform/ios-simulator/webgl/webgl-draft-extensions-flag-off-expected.txt
    R LayoutTests/platform/ios-wk2/fast/block/basic/001-expected.txt
    R LayoutTests/platform/ios-wk2/fast/block/float/overhanging-tall-block-expected.txt
    R LayoutTests/platform/ios-wk2/fast/borders/empty-outline-border-assert-expected.txt
    R LayoutTests/platform/ios-wk2/fast/forms/basic-buttons-expected.txt
    R LayoutTests/platform/ios-wk2/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt
    R LayoutTests/platform/ios-wk2/fast/overflow/scrollRevealButton-expected.txt
    R LayoutTests/platform/ios-wk2/fast/text/capitalize-boundaries-expected.txt
    R LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-fonts/generic-family-keywords-001-expected.txt
    R LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-samedoc-expected.txt
    R LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-grid-flex-multicol-expected.txt
    R LayoutTests/platform/ios-wk2/mathml/presentation/foreign-element-in-token-expected.txt
    R LayoutTests/platform/ios-wk2/pageoverlay/overlay-installation-expected.txt
    R LayoutTests/platform/ios-wk2/pageoverlay/overlay-large-document-expected.txt
    R LayoutTests/platform/ios-wk2/pageoverlay/overlay-large-document-scrolled-expected.txt
    R LayoutTests/platform/ios/tables/mozilla/bugs/adforce_imgis_com-expected.txt
    R LayoutTests/platform/mac-bigsur/fast/events/invalid/missing-end-tag-expected.txt
    R LayoutTests/platform/mac-bigsur/mathml/presentation/radical-fallback-expected.txt
    R LayoutTests/platform/mac-wk1/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt
    R LayoutTests/platform/mac-wk1/editing/execCommand/find-after-replace-expected.txt
    R LayoutTests/platform/mac-wk1/fast/dom/collection-iterators-expected.txt
    R LayoutTests/platform/mac-wk1/fast/scrolling/latching/overflow-in-iframe-latching-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any.worker-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-none-block-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-self-block-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/content-security-policy/inside-worker/dedicatedworker-report-only-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-conditional/js/CSS-supports-CSSStyleDeclaration-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-limits-001-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click-during-load-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click-during-pageshow-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/history-pushstate-during-load-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/history-pushstate-during-pageshow-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/history-pushstate-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.behind-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.stroke.scale2-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.stroke.scale2.worker-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/hidden-elements-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy-attribute.https.sub-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-in-script-disabled-iframe-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-weekmonth-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-weekmonth-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-weekmonth-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-weekmonth-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/input-change-event-properties-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener-expected.txt
    R LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/user-activation/no-activation-thru-escape-key-expected.txt
    R LayoutTests/platform/mac-wk1/pageoverlay/overlay-installation-expected.txt
    R LayoutTests/platform/mac-wk1/pageoverlay/overlay-large-document-expected.txt
    R LayoutTests/platform/mac-wk1/pageoverlay/overlay-large-document-scrolled-expected.txt
    R LayoutTests/platform/mac-wk2/fast/borders/empty-outline-border-assert-expected.txt
    R LayoutTests/platform/mac-wk2/mathml/presentation/foreign-element-in-token-expected.txt
    R LayoutTests/platform/mac/imported/w3c/web-platform-tests/css/css-fonts/generic-family-keywords-001-expected.txt
    R LayoutTests/platform/mac/imported/w3c/web-platform-tests/resize-observer/svg-expected.txt
    R LayoutTests/platform/win/fast/dom/dom-constructors-expected.txt
    R LayoutTests/platform/win/performance-api/resource-timing-apis-expected.txt
    R LayoutTests/platform/wincairo/editing/pasteboard/smart-drag-drop-expected.txt
    R LayoutTests/platform/wincairo/fast/dom/HTMLInputElement/input-slider-update-styled-expected.txt
    R LayoutTests/platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt
    R LayoutTests/platform/wpe/css2.1/t100801-c544-valgn-03-d-agi-expected.txt
    R LayoutTests/platform/wpe/css2.1/t120401-scope-04-d-expected.txt
    R LayoutTests/platform/wpe/css2.1/t120403-content-none-00-c-expected.txt
    R LayoutTests/platform/wpe/css2.1/t120403-visibility-00-c-expected.txt
    R LayoutTests/platform/wpe/fast/css/first-letter-first-line-hover-expected.txt
    R LayoutTests/platform/wpe/fast/editing/insert-paragraph-with-text-in-table-crash-expected.txt
    R LayoutTests/platform/wpe/fast/editing/mutation-with-display-contents-container-crash-expected.txt
    R LayoutTests/platform/wpe/fast/editing/paste-and-match-style-with-table-2-crash-expected.txt
    R LayoutTests/platform/wpe/fast/editing/paste-and-match-style-with-table-crash-expected.txt
    R LayoutTests/platform/wpe/fast/editing/replace-selection-and-apply-style-crash-expected.txt
    R LayoutTests/platform/wpe/fast/inline/crash-when-revert-has-trailing-line-break-expected.txt
    R LayoutTests/platform/wpe/fast/layers/overflow-scroll-auto-switch-expected.txt
    R LayoutTests/platform/wpe/fast/lists/002-expected.txt
    R LayoutTests/platform/wpe/fast/lists/008-vertical-expected.txt
    R LayoutTests/platform/wpe/fast/table/table-split-on-insert-with-section-crash-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.CSSHSL-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox.worker-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/events_input_source_recreation.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/events_input_sources_change.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/events_session_select.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/events_session_select_subframe.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/events_session_squeeze.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/getInputPose_handedness.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/getViewerPose_emulatedPosition.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/navigator_xr_sameObject.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/render_state_update.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/render_state_vertical_fov_immersive.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/render_state_vertical_fov_inline.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/webGLCanvasContext_create_xrcompatible.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/webGLCanvasContext_makecompatible_contextlost.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/webGLCanvasContext_makecompatible_reentrant.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrDevice_requestSession_immersive.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrDevice_requestSession_optionalFeatures.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrFrame_lifetime.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrInputSource_add_remove.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrInputSource_emulatedPosition.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrInputSource_profiles.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrInputSource_sameObject.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrPose_transform_sameObject.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrReferenceSpace_originOffset.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrReferenceSpace_originOffset_viewer.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrReferenceSpace_relationships.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrRigidTransform_constructor.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrRigidTransform_inverse.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrRigidTransform_sameObject.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_cancelAnimationFrame_invalidhandle.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_end.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_requestAnimationFrame_callback_calls.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_requestAnimationFrame_data_valid.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_requestSessionDuringEnd.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_viewer_referenceSpace.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_visibilityState.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrView_eyes.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrView_match.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrView_oneframeupdate.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrView_sameObject.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrViewerPose_views_sameObject.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrViewport_valid.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrWebGLLayer_constructor.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https-expected.txt
    R LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrWebGLLayer_viewports.https-expected.txt

  Log Message:
  -----------
  [Gardening] Remove duplicate test expectations.
rdar://107013765

Unreviewed test gardening.

Running ./Tools/Scripts/check-for-duplicated-platform-test-results removes these.

* LayoutTests/platform/glib/fast/dom/collection-iterators-expected.txt: Removed.
* LayoutTests/platform/glib/fast/mediacapturefromelement/CanvasCaptureMediaStream-offscreencanvas-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.any-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/WebCryptoAPI/encrypt_decrypt/aes_cbc.https.any.worker-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/cookies/size/attributes.www.sub-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/304-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/cors-safelisted-request-header.any-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/credentials-flag-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/preflight-failure-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/redirect-preflight-2-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/redirect-userinfo-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/simple-requests-ch.tentative-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/cors/status-async-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-contain/contain-inline-size-replaced-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-scroll-snap/scroll-target-margin-005-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/basic/block-mime-as-script-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/cors/cors-origin.any-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-redirect.any-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-response-validation.any-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-status.any-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight.any-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/api/cors/cors-redirect-preflight.any-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/metadata/generated/appcache-manifest.https.sub-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/nosniff/script-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/nosniff/stylesheet-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/origin/assorted.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/fetch.https.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/mixed-content-fetch.tentative.https.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/preflight-cache.https.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/redirect.https.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/service-worker-fetch.https.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/service-worker.https.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/shared-worker.https.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/shared-worker.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/websocket.https.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/worker-fetch.https.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/worker-fetch.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/worker.https.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/worker.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/private-network-access/xhr.https.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fetch/range/general.any-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen-timing.sub-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/fullscreen/api/document-fullscreen-enabled-setting-allowfullscreen.sub-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/failure-check-sequence.https-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/same-hash-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-drawImage-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-invalid-args-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-serializable-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/imagebitmap/createImageBitmap-transfer-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/element/manual/wide-gamut-canvas/canvas-drawImage-offscreenCanvas-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.zerosource-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/offscreen/filter/offscreencanvas.filter.w-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/canvas/offscreen/manual/filter/offscreencanvas.filter.w-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-sans-fieldset-display-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/html/semantics/scripting-1/the-script-element/module/specifier-error-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/context-creation-offscreen-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/context-creation-offscreen-with-alpha-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-ToBlob-offscreen-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-TransferToImageBitmap-offscreen-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/imagebitmap-renderingcontext/tranferFromImageBitmap-null-offscreen-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-duration-boundaryconditions-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/media-source/mediasource-remove-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/mixed-content/gen/top.meta/opt-in/audio-tag.https-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/mixed-content/gen/top.meta/opt-in/video-tag.https-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/service-workers/service-worker/fetch-request-css-images.https-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-varying-tabindex-2-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/shadow-dom/focus/focus-tabindex-order-shadow-varying-tabindex-3-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/streams/piping/close-propagation-backward.any-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/url/004-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/workers/WorkerGlobalScope_requestAnimationFrame.tentative.worker-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-and-redirects-async.any-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-and-redirects-async.any.worker-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-preflight-async-header-denied-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-preflight-async-method-denied-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-preflight-async-not-supported-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-preflight-sync-header-denied-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-preflight-sync-method-denied-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/access-control-preflight-sync-not-supported-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/send-conditional-cors-expected.txt: Removed.
* LayoutTests/platform/glib/imported/w3c/web-platform-tests/xhr/xmlhttprequest-sync-default-feature-policy.sub-expected.txt: Removed.
* LayoutTests/platform/glib/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt: Removed.
* LayoutTests/platform/glib/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt: Removed.
* LayoutTests/platform/gtk/compositing/backing/replaced-child-no-backing-expected.txt: Removed.
* LayoutTests/platform/gtk/compositing/contents-opaque/body-background-painted-expected.txt: Removed.
* LayoutTests/platform/gtk/compositing/contents-opaque/body-background-skipped-expected.txt: Removed.
* LayoutTests/platform/gtk/fast/borders/empty-outline-border-assert-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mixed-content/gen/top.meta/opt-in/audio-tag.https-expected.txt: Removed.
* LayoutTests/platform/gtk/imported/w3c/web-platform-tests/mixed-content/gen/top.meta/opt-in/video-tag.https-expected.txt: Removed.
* LayoutTests/platform/ios-simulator/webgl/webgl-draft-extensions-flag-off-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/fast/block/basic/001-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/fast/block/float/overhanging-tall-block-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/fast/borders/empty-outline-border-assert-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/fast/forms/basic-buttons-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/fast/overflow/scrollRevealButton-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/fast/text/capitalize-boundaries-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/css-fonts/generic-family-keywords-001-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/history-traversal/persisted-user-state-restoration/scroll-restoration-fragment-scrolling-samedoc-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/the-fieldset-and-legend-elements/legend-grid-flex-multicol-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/mathml/presentation/foreign-element-in-token-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/pageoverlay/overlay-installation-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/pageoverlay/overlay-large-document-expected.txt: Removed.
* LayoutTests/platform/ios-wk2/pageoverlay/overlay-large-document-scrolled-expected.txt: Removed.
* LayoutTests/platform/ios/tables/mozilla/bugs/adforce_imgis_com-expected.txt: Removed.
* LayoutTests/platform/mac-bigsur/fast/events/invalid/missing-end-tag-expected.txt: Removed.
* LayoutTests/platform/mac-bigsur/mathml/presentation/radical-fallback-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/compositing/canvas/accelerated-canvas-compositing-size-limit-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/editing/execCommand/find-after-replace-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/fast/dom/collection-iterators-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/fast/scrolling/latching/overflow-in-iframe-latching-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/FileAPI/url/url-with-fetch.any.worker-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-none-block-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/content-security-policy/frame-ancestors/frame-ancestors-nested-cross-in-same-self-block-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/content-security-policy/inside-worker/dedicatedworker-report-only-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-color/animation/opacity-interpolation-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-conditional/js/CSS-supports-CSSStyleDeclaration-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-limits-001-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click-during-load-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/a-click-during-pageshow-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/history-pushstate-during-load-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/history-pushstate-during-pageshow-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/browsers/browsing-the-web/navigating-across-documents/replace-before-load/history-pushstate-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.gradient.radial.cone.behind-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.stroke.scale2-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/canvas/offscreen/path-objects/2d.path.stroke.scale2.worker-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/rendering/non-replaced-elements/hidden-elements-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/media-elements/autoplay-allowed-by-feature-policy-attribute.https.sub-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/embedded-content/the-iframe-element/iframe-loading-lazy-in-script-disabled-iframe-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeOverflow-weekmonth-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-rangeUnderflow-weekmonth-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valid-weekmonth-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-weekmonth-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/forms/input-change-event-properties-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_noopener-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/imported/w3c/web-platform-tests/html/user-activation/no-activation-thru-escape-key-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/pageoverlay/overlay-installation-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/pageoverlay/overlay-large-document-expected.txt: Removed.
* LayoutTests/platform/mac-wk1/pageoverlay/overlay-large-document-scrolled-expected.txt: Removed.
* LayoutTests/platform/mac-wk2/fast/borders/empty-outline-border-assert-expected.txt: Removed.
* LayoutTests/platform/mac-wk2/mathml/presentation/foreign-element-in-token-expected.txt: Removed.
* LayoutTests/platform/mac/imported/w3c/web-platform-tests/css/css-fonts/generic-family-keywords-001-expected.txt: Removed.
* LayoutTests/platform/mac/imported/w3c/web-platform-tests/resize-observer/svg-expected.txt: Removed.
* LayoutTests/platform/win/fast/dom/dom-constructors-expected.txt: Removed.
* LayoutTests/platform/win/performance-api/resource-timing-apis-expected.txt: Removed.
* LayoutTests/platform/wincairo/editing/pasteboard/smart-drag-drop-expected.txt: Removed.
* LayoutTests/platform/wincairo/fast/dom/HTMLInputElement/input-slider-update-styled-expected.txt: Removed.
* LayoutTests/platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-image-in-iframe-with-enforced-and-report-policies-expected.txt: Removed.
* LayoutTests/platform/wpe/css2.1/t100801-c544-valgn-03-d-agi-expected.txt: Removed.
* LayoutTests/platform/wpe/css2.1/t120401-scope-04-d-expected.txt: Removed.
* LayoutTests/platform/wpe/css2.1/t120403-content-none-00-c-expected.txt: Removed.
* LayoutTests/platform/wpe/css2.1/t120403-visibility-00-c-expected.txt: Removed.
* LayoutTests/platform/wpe/fast/css/first-letter-first-line-hover-expected.txt: Removed.
* LayoutTests/platform/wpe/fast/editing/insert-paragraph-with-text-in-table-crash-expected.txt: Removed.
* LayoutTests/platform/wpe/fast/editing/mutation-with-display-contents-container-crash-expected.txt: Removed.
* LayoutTests/platform/wpe/fast/editing/paste-and-match-style-with-table-2-crash-expected.txt: Removed.
* LayoutTests/platform/wpe/fast/editing/paste-and-match-style-with-table-crash-expected.txt: Removed.
* LayoutTests/platform/wpe/fast/editing/replace-selection-and-apply-style-crash-expected.txt: Removed.
* LayoutTests/platform/wpe/fast/inline/crash-when-revert-has-trailing-line-break-expected.txt: Removed.
* LayoutTests/platform/wpe/fast/layers/overflow-scroll-auto-switch-expected.txt: Removed.
* LayoutTests/platform/wpe/fast/lists/002-expected.txt: Removed.
* LayoutTests/platform/wpe/fast/lists/008-vertical-expected.txt: Removed.
* LayoutTests/platform/wpe/fast/table/table-split-on-insert-with-section-crash-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/canvas/element/manual/drawing-images-to-the-canvas/drawimage_canvas-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.CSSHSL-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/manual/the-offscreen-canvas/offscreencanvas.getcontext-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/html/canvas/offscreen/text/2d.text.measure.actualBoundingBox.worker-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/events_input_source_recreation.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/events_input_sources_change.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/events_session_select.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/events_session_select_subframe.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/events_session_squeeze.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/getInputPose_handedness.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/getViewerPose_emulatedPosition.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/navigator_xr_sameObject.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/render_state_update.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/render_state_vertical_fov_immersive.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/render_state_vertical_fov_inline.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/webGLCanvasContext_create_xrcompatible.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/webGLCanvasContext_makecompatible_contextlost.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/webGLCanvasContext_makecompatible_reentrant.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrBoundedReferenceSpace_updates.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrDevice_requestSession_immersive.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrDevice_requestSession_optionalFeatures.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrFrame_lifetime.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrInputSource_add_remove.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrInputSource_emulatedPosition.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrInputSource_profiles.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrInputSource_sameObject.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrPose_transform_sameObject.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrReferenceSpace_originOffset.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrReferenceSpace_originOffsetBounded.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrReferenceSpace_originOffset_viewer.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrReferenceSpace_relationships.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrRigidTransform_constructor.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrRigidTransform_inverse.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrRigidTransform_sameObject.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_cancelAnimationFrame_invalidhandle.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_end.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_requestAnimationFrame_callback_calls.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_requestAnimationFrame_data_valid.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_requestAnimationFrame_getViewerPose.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_requestAnimationFrame_timestamp.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_requestSessionDuringEnd.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_viewer_referenceSpace.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrSession_visibilityState.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrStationaryReferenceSpace_floorlevel_updates.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrView_eyes.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrView_match.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrView_oneframeupdate.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrView_sameObject.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrViewerPose_views_sameObject.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrViewport_valid.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrWebGLLayer_constructor.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrWebGLLayer_framebuffer_sameObject.https-expected.txt: Removed.
* LayoutTests/platform/wpe/imported/w3c/web-platform-tests/webxr/xrWebGLLayer_viewports.https-expected.txt: Removed.

Canonical link: https://commits.webkit.org/259548.476@safari-7615-branch


  Commit: a5d38dc00a5dd77fc3bb1360926e9b382ed1b807
      https://github.com/WebKit/WebKit/commit/a5d38dc00a5dd77fc3bb1360926e9b382ed1b807
  Author: Matthew Finkel <sysrqb at apple.com>
  Date:   2023-03-23 (Thu, 23 Mar 2023)

  Changed paths:
    M LayoutTests/http/tests/resources/redirect.py
    A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-redirect-expected.txt
    A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-redirect.html
    A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-ws-redirect-expected.txt
    A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-ws-redirect.html
    A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-expected.txt
    A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party.html
    A LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party_wsh.py
    M LayoutTests/platform/mac-wk1/TestExpectations
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h
    M Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in
    M Source/WebKit/NetworkProcess/NetworkSession.cpp
    M Source/WebKit/NetworkProcess/NetworkSession.h
    M Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp
    M Source/WebKit/NetworkProcess/NetworkSocketChannel.h
    M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h
    M Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm
    M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h
    M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm
    A Source/WebKit/NetworkProcess/cocoa/NetworkTaskCocoa.h
    A Source/WebKit/NetworkProcess/cocoa/NetworkTaskCocoa.mm
    M Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.h
    M Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm
    M Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.cpp
    M Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.h
    M Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp
    M Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/Network/WebSocketChannel.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm

  Log Message:
  -----------
  Apply cookie policy on WebSocket request
https://bugs.webkit.org/show_bug.cgi?id=254220
rdar://106831525

Reviewed by Alex Christensen.

WebKit's cookie policy was not correctly applied in the WebSocket handshake. In
this patch we now use the same logic in WebSocket requests as we already used
in HTTP requests. This policy is applied during HTTP redirects, as well. The
shared logic is moved into a new common base class that is shared by
WebSocketTasks and DataTasks.

Covered by new Layout and API tests.

* LayoutTests/http/tests/resources/redirect.py:
(set_cookie):
* LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-redirect-expected.txt: Added.
* LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-redirect.html: Added.
* LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-ws-redirect-expected.txt: Added.
* LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-after-ws-redirect.html: Added.
* LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party-expected.txt: Added.
* LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party.html: Added.
* LayoutTests/http/tests/websocket/tests/hybi/websocket-blocked-sending-cookie-as-third-party_wsh.py: Added.
(HeaderCache):
(web_socket_do_extra_handshake):
(web_socket_transfer_data):
* LayoutTests/platform/mac-wk1/TestExpectations:
Add new tests.

* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::createSocketChannel):
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.h:
* Source/WebKit/NetworkProcess/NetworkConnectionToWebProcess.messages.in:
* Source/WebKit/NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::createWebSocketTask):
* Source/WebKit/NetworkProcess/NetworkSession.h:
* Source/WebKit/NetworkProcess/NetworkSocketChannel.cpp:
(WebKit::NetworkSocketChannel::create):
(WebKit::NetworkSocketChannel::NetworkSocketChannel):
(WebKit::NetworkSocketChannel::session const):
(WebKit::NetworkSocketChannel::session): Deleted.
* Source/WebKit/NetworkProcess/NetworkSocketChannel.h:
Generally, plumb some required information down in to the Network Process for making policy decisions.

* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::applySniffingPoliciesAndBindRequestToInferfaceIfNeeded):
(WebKit::NetworkDataTaskCocoa::updateFirstPartyInfoForSession):
(WebKit::NetworkDataTaskCocoa::NetworkDataTaskCocoa):
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCocoa::task const):
(WebKit::lastRemoteIPAddress): Deleted.
(WebKit::NetworkDataTaskCocoa::statelessCookieStorage): Deleted.
(WebKit::lastCNAMEDomain): Deleted.
(WebKit::NetworkDataTaskCocoa::shouldApplyCookiePolicyForThirdPartyCloaking const): Deleted.
(): Deleted.
(WebKit::shouldCapCookieExpiryForThirdPartyIPAddress): Deleted.
(WebKit::NetworkDataTaskCocoa::applyCookiePolicyForThirdPartyCloaking): Deleted.
(WebKit::NetworkDataTaskCocoa::blockCookies): Deleted.
(WebKit::NetworkDataTaskCocoa::unblockCookies): Deleted.
(WebKit::NetworkDataTaskCocoa::needsFirstPartyCookieBlockingLatchModeQuirk const): Deleted.
(WebKit::updateTaskWithFirstPartyForSameSiteCookies): Deleted.
(WebKit::computeIsAlwaysOnLoggingAllowed): Deleted.
(WebKit::NetworkDataTaskCocoa::isAlwaysOnLoggingAllowed const): Deleted.
These deleted functions are moved into the NetworkTaskCocoa class.

* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.h:
* Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(-[WKNetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[WKNetworkSessionDelegate existingWebSocketTask:]):
(WebKit::NetworkSessionCocoa::continueDidReceiveChallenge):
(WebKit::NetworkSessionCocoa::createWebSocketTask):
* Source/WebKit/NetworkProcess/cocoa/NetworkTaskCocoa.h: Added.
(WebKit::NetworkTaskCocoa::shouldRelaxThirdPartyCookieBlocking const):
(WebKit::NetworkTaskCocoa::isAlwaysOnLoggingAllowed const):
* Source/WebKit/NetworkProcess/cocoa/NetworkTaskCocoa.mm: Added.
(computeIsAlwaysOnLoggingAllowed):
(NetworkTaskCocoa::NetworkTaskCocoa):
(shouldCapCookieExpiryForThirdPartyIPAddress):
(NetworkTaskCocoa::shouldApplyCookiePolicyForThirdPartyCloaking const):
(NetworkTaskCocoa::statelessCookieStorage):
(NetworkTaskCocoa::lastRemoteIPAddress):
(NetworkTaskCocoa::lastCNAMEDomain):
(NetworkTaskCocoa::needsFirstPartyCookieBlockingLatchModeQuirk const):
(NetworkTaskCocoa::applyCookiePolicyForThirdPartyCloaking):
(NetworkTaskCocoa::blockCookies):
(NetworkTaskCocoa::unblockCookies):
(NetworkTaskCocoa::updateTaskWithFirstPartyForSameSiteCookies):
(NetworkTaskCocoa::willPerformHTTPRedirection):
New common base class for NetworkDataTaskCocoa and WebSocketTaskCocoa.

* Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.h:
(WebKit::WebSocketTask::webProxyPageID const):
(WebKit::WebSocketTask::pageID const): Deleted.
* Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:
(WebKit::WebSocketTask::WebSocketTask):
(WebKit::WebSocketTask::task const):
(WebKit::WebSocketTask::~WebSocketTask): Deleted.
* Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.cpp:
(WebKit::NetworkSessionCurl::createWebSocketTask):
* Source/WebKit/NetworkProcess/curl/NetworkSessionCurl.h:
* Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.cpp:
(WebKit::NetworkSessionSoup::createWebSocketTask):
* Source/WebKit/NetworkProcess/soup/NetworkSessionSoup.h:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Source/WebKit/WebProcess/Network/WebSocketChannel.cpp:
(WebKit::WebSocketChannel::connect):
* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:
(TEST):

Canonical link: https://commits.webkit.org/259548.477@safari-7615-branch


  Commit: 3891a934a192e309eeb7b84982b132bff8d0a718
      https://github.com/WebKit/WebKit/commit/3891a934a192e309eeb7b84982b132bff8d0a718
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2023-03-24 (Fri, 24 Mar 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
    M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h
    M Source/WebKit/GPUProcess/GPUProcess.cpp
    M Source/WebKit/GPUProcess/GPUProcess.h
    M Source/WebKit/GPUProcess/GPUProcess.messages.in
    M Source/WebKit/Shared/GPUProcessConnectionParameters.h
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
    M Source/WebKit/UIProcess/GPU/GPUProcessProxy.h
    M Source/WebKit/UIProcess/WebProcessPool.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h

  Log Message:
  -----------
  Verify WebGPU is enabled in GPUConnectionToWebProcess::createRemoteGPU
https://bugs.webkit.org/show_bug.cgi?id=254373
rdar://107153896

Reviewed by Myles C. Maxfield, Geoffrey Garen and Chris Dumez.

Have the GPUConnectionToWebProcess keep a boolean to keep track of whether
WebGPU is enabled for any Page in that process.  Update the boolean when
adding or removing a Page.  If we get a message to use the entry point of
WebGPU and WebGPU is disabled, then terminate the web content process
from which the message came instead of creating a RemoteGPU.

* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::m_webGPUEnabled):
(WebKit::GPUConnectionToWebProcess::createRemoteGPU):
(WebKit::m_routingArbitrator): Deleted.
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.h:
(WebKit::GPUConnectionToWebProcess::updateWebGPUEnabled):
* Source/WebKit/GPUProcess/GPUProcess.cpp:
(WebKit::GPUProcess::updateWebGPUEnabled):
* Source/WebKit/GPUProcess/GPUProcess.h:
* Source/WebKit/GPUProcess/GPUProcess.messages.in:
* Source/WebKit/Shared/GPUProcessConnectionParameters.h:
(WebKit::GPUProcessConnectionParameters::encode const):
(WebKit::GPUProcessConnectionParameters::decode):
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:
(WebKit::GPUProcessProxy::updateWebGPUEnabled):
* Source/WebKit/UIProcess/GPU/GPUProcessProxy.h:
* Source/WebKit/UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createGPUProcessConnection):
* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::addExistingWebPage):
(WebKit::WebProcessProxy::removeWebPage):
(WebKit::WebProcessProxy::updateWebGPUEnabledStateInGPUProcess):
* Source/WebKit/UIProcess/WebProcessProxy.h:

Canonical link: https://commits.webkit.org/259548.478@safari-7615-branch


  Commit: 923516a2f0ba1fc2ef88b072f4beb2dbf042f96c
      https://github.com/WebKit/WebKit/commit/923516a2f0ba1fc2ef88b072f4beb2dbf042f96c
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-24 (Fri, 24 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py

  Log Message:
  -----------
  Cherry-pick 262027 at main (8a9cc8641cbc). rdar://106760739

    [git-webkit] Force pre-push hooks to be up-to-date (Follow-up fix)
    https://bugs.webkit.org/show_bug.cgi?id=253972
    rdar://106760739

    Unreviewed follow-up fix.

    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py:
    (InstallHooks.hook_needs_update): Check for hook in the repository root.

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

Canonical link: https://commits.webkit.org/259548.479@safari-7615-branch


  Commit: 8fd098c7253f6c6c9467b08f57122f087a60ab7c
      https://github.com/WebKit/WebKit/commit/8fd098c7253f6c6c9467b08f57122f087a60ab7c
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-03-24 (Fri, 24 Mar 2023)

  Changed paths:
    M Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.

WebKit-7615.2.3

Identifier: 259548.480 at safari-7615-branch


  Commit: 350e81430e6d6c130a8630f2262bedbac89e1768
      https://github.com/WebKit/WebKit/commit/350e81430e6d6c130a8630f2262bedbac89e1768
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-24 (Fri, 24 Mar 2023)

  Changed paths:
    M Tools/Scripts/hooks/pre-push

  Log Message:
  -----------
  Cherry-pick 262090 at main (0610e673a850). rdar://107108896

    [hooks/pre-push] Handle no defined security level
    https://bugs.webkit.org/show_bug.cgi?id=254299
    rdar://107108896

    Reviewed by Stephanie Lewis.

    * Tools/Scripts/hooks/pre-push: Ensure that there is
    always at least one value in MAX_LEVEL.

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

Canonical link: https://commits.webkit.org/259548.481@safari-7615-branch


  Commit: 6adaa017a4dcdeffd37a56b8037f4a74f386a33a
      https://github.com/WebKit/WebKit/commit/6adaa017a4dcdeffd37a56b8037f4a74f386a33a
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-03-24 (Fri, 24 Mar 2023)

  Changed paths:
    M Source/WebKit/UIProcess/WebFrameProxy.cpp

  Log Message:
  -----------
  Cherry-pick aa394d9f173f. rdar://problem/107078574

    Unreviewed build fix after 261429 at main
    https://bugs.webkit.org/show_bug.cgi?id=253711
    rdar://106546295

    * Source/WebKit/UIProcess/WebFrameProxy.cpp:
    (WebKit::WebFrameProxy::getFrameInfo):

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

Identifier: 259548.482 at safari-7615-branch


  Commit: 5be17e58d16002433dd42e8a7a096d426d01c8b9
      https://github.com/WebKit/WebKit/commit/5be17e58d16002433dd42e8a7a096d426d01c8b9
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2023-03-24 (Fri, 24 Mar 2023)

  Changed paths:
    A LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element-expected.txt
    A LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element.html
    M LayoutTests/resources/ui-helper.js
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/PageClient.h
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    R Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.h
    R Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.mm
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
    M Source/WebKit/UIProcess/ios/WKContentView.mm
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
    M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
    M Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl
    M Tools/TestRunnerShared/UIScriptContext/UIScriptController.h
    M Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h
    M Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm
    M Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h
    M Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm

  Log Message:
  -----------
  Cherry-pick 5df7702c29e6. rdar://problem/103712135

    Switching focus from a UITextField to an editable WKWebView causes the keyboard to dance
    https://bugs.webkit.org/show_bug.cgi?id=254236
    rdar://103712135

    Reviewed by Aditya Keerthi.

    Currently, when focusing editable web content while a native text field is focused, the keyboard
    begins animated dismissal for a few frames, before appearing again. This happens because the web
    view steals first responder away from the native text field upon tapping, underneath
    `-_singleTapRecognized:`; however, we don't attempt to reload input views (and thus show the
    keyboard) until the element focus IPC message arrives in the UI process (which is sent when
    dispatching a synthetic click event). This is partly mitigated by 208968 at main and its predecessor,
    186343 at main, which adopt UIKit SPI in order to keep the keyboard stable in this scenario. While this
    works well in practice, it's still racy in some cases. Consider the following sequence of events:

    (UI)    `-_singleTapRecognized:` is called, we become first responder, and begin holding onto the
            input view update deferral token. An activity state update is sent to the web process.

    (WEB)   The potential tap is received, and we dispatch onto the runloop to complete the synthetic
            click (and dispatch click events).

    (WEB)   The activity state is received, the web view becomes focused, and we tell the UI process
            that the activity state was received.

    (WEB)   The synthetic click is dispatched, the editable element is focused, and we send
            `WebPageProxy::ElementDidFocus` to the UI process.

    (UI)    The activity state change handler is invoked, causing us to relinquish the input view update
            deferral token. The keyboard begins animating away, since the web view isn't considered
            editable yet.

    (UI)    `WebPageProxy::elementDidFocus()` is called, and we reload input views, causing the keyboard
            to cancel its hiding animation and reappear.

    The longer the delay between the last two steps, the more noticeable the "keyboard dance" becomes.
    To fix this, we refactor this code so that instead of taking a RAII token representing the scope of
    input view update deferral, we instead maintain an `OptionSet` of flags (detailed below) indicating
    different reasons for deferring input view updates; as long as any bit in this option set is set, we
    defer input view updates.

    Test: fast/forms/ios/keyboard-stability-when-tapping-editable-element.html

    * Source/WebKit/SourcesCocoa.txt:
    * Source/WebKit/UIProcess/PageClient.h:
    * Source/WebKit/UIProcess/WebPageProxy.h:
    * Source/WebKit/UIProcess/WebPageProxy.messages.in:
    * Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.h: Removed.
    * Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.mm: Removed.

    Delete `InputViewUpdateDeferrer`, now that logic is all in `WKContentViewInteraction`.

    * Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
    * Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
    (WebKit::PageClientImpl::didHandleTapAsHover):

    Add a new IPC message so that the web process can inform the UI process when a tap is handled as a
    mouse hover, due to content change observation. See below for more details.

    * Source/WebKit/UIProcess/ios/WKContentView.mm:
    * Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
    * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
    (-[WKContentView cleanUpInteraction]):
    (-[WKContentView _cancelPreviousResetInputViewDeferralRequest]):
    (-[WKContentView _scheduleResetInputViewDeferralAfterBecomingFirstResponder]):
    (-[WKContentView becomeFirstResponderForWebView]):
    (-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]):
    (-[WKContentView _commitPotentialTapFailed]):
    (-[WKContentView _didNotHandleTapAsClick:]):
    (-[WKContentView _didHandleTapAsHover]):
    (-[WKContentView _didCompleteSyntheticClick]):
    (-[WKContentView _singleTapRecognized:]):
    (-[WKContentView startDeferringInputViewUpdates:]):
    (-[WKContentView stopDeferringInputViewUpdates:]):
    (-[WKContentView stopDeferringInputViewUpdatesForAllSources]):
    (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
    (-[WKContentView _resetInputViewDeferral]): Deleted.

    Adjust code that previously relied on `InputViewUpdateDeferrer` to instead add or remove
    `InputViewUpdateDeferralSources`. There are three distinct sources:

    •   `BecomeFirstResponder`: this is first set when becoming first responder in `WKContentView`, and
        is unset once the activity state change (as a result of becoming first responder) has been
        handled by the web process. It's also unset after the next `ElementDidFocus` message arrives in
        the UI process.

    •   `TapGesture`: this is set when handling a tap over web content, right before committing the
        potential tap to the web page; it's unset once any of the following are invoked:
        `_commitPotentialTapFailed`, `_didNotHandleTapAsClick:`, or `_didCompleteSyntheticClick`.

    •   `ChangingFocusedElement`: this is set only in the case where we're immediately changing focus
        from one element to another underneath `-_elementDidFocus:…:`, and is immediately unset once we
        exit that method.

    * Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
    (WebKit::WebPageProxy::didHandleTapAsHover):
    * Source/WebKit/WebKit.xcodeproj/project.pbxproj:
    * Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
    (WebKit::WebPage::handleSyntheticClick):
    (WebKit::WebPage::didFinishContentChangeObserving):

    Update these to send `WebPageProxy::DidHandleTapAsHover` in the case where the content change
    observer causes us to handle the tap as mouse hover, to ensure that we don't leave the input view
    update deferral flag  Also, drive-by fix a typo that I stumbled into
    while debugging this code.

    * LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element-expected.txt: Added.
    * LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element.html: Added.
    * LayoutTests/resources/ui-helper.js:
    (window.UIHelper.keyboardWillHideCount):
    * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
    (-[WKContentView startDeferringInputViewUpdates:]):
    (-[WKContentView stopDeferringInputViewUpdates:]):
    (-[WKContentView stopDeferringInputViewUpdatesForAllSources]):
    * Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
    * Tools/TestRunnerShared/UIScriptContext/UIScriptController.h:
    (WTR::UIScriptController::keyboardWillHideCount const):
    * Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
    * Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
    (-[TestRunnerWKWebView initWithFrame:configuration:]):
    (-[TestRunnerWKWebView _keyboardWillHide]):
    * Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h:
    * Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm:
    (WTR::UIScriptControllerIOS::keyboardWillHideCount const):

    Add a new layout test to exercise the change, along with a new testing hook that allows us to check
    whether or not there was an attempt to hide the keyboard between any two given points in time (by
    simply keeping a tally of the number of times the `KeyboardWillHide` notification was received).

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

Identifier: 259548.483 at safari-7615-branch


  Commit: f4699bc748c929d1b3a1c301ef6a40220bfd9e45
      https://github.com/WebKit/WebKit/commit/f4699bc748c929d1b3a1c301ef6a40220bfd9e45
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-03-24 (Fri, 24 Mar 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-start-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-start.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-start-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-start.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-dynamic-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-dynamic.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-start-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-start.html
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/rendering/RenderBlock.cpp
    M Source/WebCore/rendering/RenderBlock.h
    M Source/WebCore/rendering/RenderBox.cpp
    M Source/WebCore/rendering/RenderBox.h
    M Source/WebCore/rendering/RenderFlexibleBox.cpp
    M Source/WebCore/rendering/RenderObject.h

  Log Message:
  -----------
  Cherry-pick 81223299d3fb. rdar://problem/106558991

    Trimmed block-start margins for flex items in horizontal writing mode should be reflected in computed style
    https://bugs.webkit.org/show_bug.cgi?id=253712
    rdar://106558991

    Reviewed by Alan Baradlay.

    Whenever we trim a block-start margin for a flex item, we should include
    a bit of information for this trimmed margin as a piece of rare data
    for the object. The trimming is done inside trimMainAxisMarginStart and
    trimCrossAxisMarginStart, so we can wrap abstract the trimming into a
    new helper method, RenderBlock::setTrimmedMarginForChild. This new
    helper will trim the correct margin and also set the corresponding bit
    of rare data

    Then, inside of ComputedStyleExtractor we can check
    if this bit has been set when trying to determine the block-start margin
    when the flexbox is in horizontal writing-mode (i.e. the top margin).

    For flex layout, we can clear these new bits whenever we go through
    another layout and recreate the flex items.

    We also need to update the conditions for determining whether the
    margin-top property is layout dependent by taking into consideration
    margin-trim. For flex items, this can be done by checking the set
    margin-trim values on the flexbox.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-start.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-start.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-dynamic-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-dynamic.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-start.html: Added.
    * Source/WebCore/css/ComputedStyleExtractor.cpp:
    (WebCore::isFlexItem):
    (WebCore::rendererContainingBlockHasMarginTrim):
    (WebCore::isLayoutDependent):
    (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
    * Source/WebCore/rendering/RenderBlock.cpp:
    (WebCore::RenderBlock::setTrimmedMarginForChild):
    * Source/WebCore/rendering/RenderBlock.h:
    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::physicalToFlowRelativeDirectionMapping const):
    (WebCore::flowRelativeDirectionToMarginTrimType):
    (WebCore::RenderBox::markMarginAsTrimmed):
    (WebCore::RenderBox::clearTrimmedMarginsMarkings):
    (WebCore::RenderBox::hasTrimmedMargin const):
    * Source/WebCore/rendering/RenderBox.h:
    * Source/WebCore/rendering/RenderFlexibleBox.cpp:
    (WebCore::RenderFlexibleBox::trimMainAxisMarginStart):
    (WebCore::RenderFlexibleBox::trimCrossAxisMarginStart):
    (WebCore::RenderFlexibleBox::constructFlexItem):
    * Source/WebCore/rendering/RenderObject.h:

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

Identifier: 259548.484 at safari-7615-branch


  Commit: 644d02edccc2b8a73401e88f2bb1afd2f67b2dc8
      https://github.com/WebKit/WebKit/commit/644d02edccc2b8a73401e88f2bb1afd2f67b2dc8
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-03-24 (Fri, 24 Mar 2023)

  Changed paths:
    M LayoutTests/fast/canvas/canvas-drawImage-hdr-video-expected.txt
    M LayoutTests/fast/canvas/canvas-drawImage-hdr-video.html
    M LayoutTests/platform/glib/TestExpectations
    R LayoutTests/platform/glib/fast/canvas/canvas-drawImage-hdr-video-expected.txt
    R LayoutTests/platform/ios/fast/canvas/canvas-drawImage-hdr-video-expected.txt

  Log Message:
  -----------
  Cherry-pick dcbe4246df7c. rdar://problem/107083380

    REGRESSION(260512 at main) canvas-drawImage-hdr-video.html has been consistently failing on the EWS bots
    https://bugs.webkit.org/show_bug.cgi?id=254293
    rdar://107083380

    Reviewed by Simon Fraser.

    Use a small tolerance when comparing the drawn pixel and the expected pixel. And
    remove the platform expected results.

    * LayoutTests/fast/canvas/canvas-drawImage-hdr-video-expected.txt:
    * LayoutTests/fast/canvas/canvas-drawImage-hdr-video.html:
    * LayoutTests/platform/glib/TestExpectations:
    * LayoutTests/platform/glib/fast/canvas/canvas-drawImage-hdr-video-expected.txt: Removed.
    * LayoutTests/platform/ios/fast/canvas/canvas-drawImage-hdr-video-expected.txt: Removed.

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

Identifier: 259548.485 at safari-7615-branch


  Commit: e28c9d0e2a18b62db8eb5c29ae3666b5cacdcaf5
      https://github.com/WebKit/WebKit/commit/e28c9d0e2a18b62db8eb5c29ae3666b5cacdcaf5
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    R LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element-expected.txt
    R LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element.html
    M LayoutTests/resources/ui-helper.js
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/PageClient.h
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    A Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.h
    A Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.mm
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
    M Source/WebKit/UIProcess/ios/WKContentView.mm
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
    M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
    M Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl
    M Tools/TestRunnerShared/UIScriptContext/UIScriptController.h
    M Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h
    M Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm
    M Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h
    M Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm

  Log Message:
  -----------
  Revert "Switching focus from a UITextField to an editable WKWebView causes the keyboard to dance"

This reverts commit 5df7702c29e60e9fa8676902fc9658747b0f79a9.

Identifier: 259548.486 at safari-7615-branch


  Commit: 6b64179ba7af018f7c8f7243353b7cf396259616
      https://github.com/WebKit/WebKit/commit/6b64179ba7af018f7c8f7243353b7cf396259616
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    A LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element-expected.txt
    A LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element.html
    M LayoutTests/resources/ui-helper.js
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/PageClient.h
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    R Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.h
    R Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.mm
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
    M Source/WebKit/UIProcess/ios/WKContentView.mm
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
    M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
    M Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl
    M Tools/TestRunnerShared/UIScriptContext/UIScriptController.h
    M Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h
    M Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm
    M Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h
    M Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm

  Log Message:
  -----------
  Revert "Revert "Switching focus from a UITextField to an editable WKWebView causes the keyboard to dance""

This reverts commit e28c9d0e2a18b62db8eb5c29ae3666b5cacdcaf5.

Identifier: 259548.487 at safari-7615-branch


  Commit: 002f4e9e619b5fcff3e4a64dbc478d2e67422882
      https://github.com/WebKit/WebKit/commit/002f4e9e619b5fcff3e4a64dbc478d2e67422882
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    R LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element-expected.txt
    R LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element.html
    M LayoutTests/resources/ui-helper.js
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/PageClient.h
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    A Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.h
    A Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.mm
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
    M Source/WebKit/UIProcess/ios/WKContentView.mm
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
    M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
    M Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl
    M Tools/TestRunnerShared/UIScriptContext/UIScriptController.h
    M Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h
    M Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm
    M Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h
    M Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm

  Log Message:
  -----------
  Revert "Cherry-pick 5df7702c29e6. rdar://problem/103712135"

This reverts commit 5be17e58d16002433dd42e8a7a096d426d01c8b9.

Identifier: 259548.488 at safari-7615-branch


  Commit: f014ea0bc0beac49fe286b76d56b3f276ffe4847
      https://github.com/WebKit/WebKit/commit/f014ea0bc0beac49fe286b76d56b3f276ffe4847
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    A LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element-expected.txt
    A LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element.html
    M LayoutTests/resources/ui-helper.js
    M Source/WebKit/SourcesCocoa.txt
    M Source/WebKit/UIProcess/PageClient.h
    M Source/WebKit/UIProcess/WebPageProxy.h
    M Source/WebKit/UIProcess/WebPageProxy.messages.in
    R Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.h
    R Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.mm
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.h
    M Source/WebKit/UIProcess/ios/PageClientImplIOS.mm
    M Source/WebKit/UIProcess/ios/WKContentView.mm
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.h
    M Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
    M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
    M Source/WebKit/WebKit.xcodeproj/project.pbxproj
    M Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
    M Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl
    M Tools/TestRunnerShared/UIScriptContext/UIScriptController.h
    M Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h
    M Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm
    M Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h
    M Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm

  Log Message:
  -----------
  Cherry-pick 5df7702c29e6. rdar://problem/103712135

    Switching focus from a UITextField to an editable WKWebView causes the keyboard to dance
    https://bugs.webkit.org/show_bug.cgi?id=254236
    rdar://103712135

    Reviewed by Aditya Keerthi.

    Currently, when focusing editable web content while a native text field is focused, the keyboard
    begins animated dismissal for a few frames, before appearing again. This happens because the web
    view steals first responder away from the native text field upon tapping, underneath
    `-_singleTapRecognized:`; however, we don't attempt to reload input views (and thus show the
    keyboard) until the element focus IPC message arrives in the UI process (which is sent when
    dispatching a synthetic click event). This is partly mitigated by 208968 at main and its predecessor,
    186343 at main, which adopt UIKit SPI in order to keep the keyboard stable in this scenario. While this
    works well in practice, it's still racy in some cases. Consider the following sequence of events:

    (UI)    `-_singleTapRecognized:` is called, we become first responder, and begin holding onto the
            input view update deferral token. An activity state update is sent to the web process.

    (WEB)   The potential tap is received, and we dispatch onto the runloop to complete the synthetic
            click (and dispatch click events).

    (WEB)   The activity state is received, the web view becomes focused, and we tell the UI process
            that the activity state was received.

    (WEB)   The synthetic click is dispatched, the editable element is focused, and we send
            `WebPageProxy::ElementDidFocus` to the UI process.

    (UI)    The activity state change handler is invoked, causing us to relinquish the input view update
            deferral token. The keyboard begins animating away, since the web view isn't considered
            editable yet.

    (UI)    `WebPageProxy::elementDidFocus()` is called, and we reload input views, causing the keyboard
            to cancel its hiding animation and reappear.

    The longer the delay between the last two steps, the more noticeable the "keyboard dance" becomes.
    To fix this, we refactor this code so that instead of taking a RAII token representing the scope of
    input view update deferral, we instead maintain an `OptionSet` of flags (detailed below) indicating
    different reasons for deferring input view updates; as long as any bit in this option set is set, we
    defer input view updates.

    Test: fast/forms/ios/keyboard-stability-when-tapping-editable-element.html

    * Source/WebKit/SourcesCocoa.txt:
    * Source/WebKit/UIProcess/PageClient.h:
    * Source/WebKit/UIProcess/WebPageProxy.h:
    * Source/WebKit/UIProcess/WebPageProxy.messages.in:
    * Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.h: Removed.
    * Source/WebKit/UIProcess/ios/InputViewUpdateDeferrer.mm: Removed.

    Delete `InputViewUpdateDeferrer`, now that logic is all in `WKContentViewInteraction`.

    * Source/WebKit/UIProcess/ios/PageClientImplIOS.h:
    * Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:
    (WebKit::PageClientImpl::didHandleTapAsHover):

    Add a new IPC message so that the web process can inform the UI process when a tap is handled as a
    mouse hover, due to content change observation. See below for more details.

    * Source/WebKit/UIProcess/ios/WKContentView.mm:
    * Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:
    * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
    (-[WKContentView cleanUpInteraction]):
    (-[WKContentView _cancelPreviousResetInputViewDeferralRequest]):
    (-[WKContentView _scheduleResetInputViewDeferralAfterBecomingFirstResponder]):
    (-[WKContentView becomeFirstResponderForWebView]):
    (-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]):
    (-[WKContentView _commitPotentialTapFailed]):
    (-[WKContentView _didNotHandleTapAsClick:]):
    (-[WKContentView _didHandleTapAsHover]):
    (-[WKContentView _didCompleteSyntheticClick]):
    (-[WKContentView _singleTapRecognized:]):
    (-[WKContentView startDeferringInputViewUpdates:]):
    (-[WKContentView stopDeferringInputViewUpdates:]):
    (-[WKContentView stopDeferringInputViewUpdatesForAllSources]):
    (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
    (-[WKContentView _resetInputViewDeferral]): Deleted.

    Adjust code that previously relied on `InputViewUpdateDeferrer` to instead add or remove
    `InputViewUpdateDeferralSources`. There are three distinct sources:

    •   `BecomeFirstResponder`: this is first set when becoming first responder in `WKContentView`, and
        is unset once the activity state change (as a result of becoming first responder) has been
        handled by the web process. It's also unset after the next `ElementDidFocus` message arrives in
        the UI process.

    •   `TapGesture`: this is set when handling a tap over web content, right before committing the
        potential tap to the web page; it's unset once any of the following are invoked:
        `_commitPotentialTapFailed`, `_didNotHandleTapAsClick:`, or `_didCompleteSyntheticClick`.

    •   `ChangingFocusedElement`: this is set only in the case where we're immediately changing focus
        from one element to another underneath `-_elementDidFocus:…:`, and is immediately unset once we
        exit that method.

    * Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
    (WebKit::WebPageProxy::didHandleTapAsHover):
    * Source/WebKit/WebKit.xcodeproj/project.pbxproj:
    * Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm:
    (WebKit::WebPage::handleSyntheticClick):
    (WebKit::WebPage::didFinishContentChangeObserving):

    Update these to send `WebPageProxy::DidHandleTapAsHover` in the case where the content change
    observer causes us to handle the tap as mouse hover, to ensure that we don't leave the input view
    update deferral flag  Also, drive-by fix a typo that I stumbled into
    while debugging this code.

    * LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element-expected.txt: Added.
    * LayoutTests/fast/forms/ios/keyboard-stability-when-tapping-editable-element.html: Added.
    * LayoutTests/resources/ui-helper.js:
    (window.UIHelper.keyboardWillHideCount):
    * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:
    (-[WKContentView startDeferringInputViewUpdates:]):
    (-[WKContentView stopDeferringInputViewUpdates:]):
    (-[WKContentView stopDeferringInputViewUpdatesForAllSources]):
    * Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
    * Tools/TestRunnerShared/UIScriptContext/UIScriptController.h:
    (WTR::UIScriptController::keyboardWillHideCount const):
    * Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
    * Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:
    (-[TestRunnerWKWebView initWithFrame:configuration:]):
    (-[TestRunnerWKWebView _keyboardWillHide]):
    * Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h:
    * Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm:
    (WTR::UIScriptControllerIOS::keyboardWillHideCount const):

    Add a new layout test to exercise the change, along with a new testing hook that allows us to check
    whether or not there was an attempt to hide the keyboard between any two given points in time (by
    simply keeping a tally of the number of times the `KeyboardWillHide` notification was received).

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

Identifier: 259548.489 at safari-7615-branch


  Commit: 49fee8adf2a580b835cfdb0d3a26f93cde09d702
      https://github.com/WebKit/WebKit/commit/49fee8adf2a580b835cfdb0d3a26f93cde09d702
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    M Source/WebCore/html/OffscreenCanvas.cpp

  Log Message:
  -----------
  Revert "Cherry-pick 229b3dbf26eb. rdar://problem/105770085"

This reverts commit b0519bdcdd5f84234c049e352659b9f5671257f7.

Identifier: 259548.490 at safari-7615-branch


  Commit: 8e0638f40d012d4a8328970bc529d6a59f1f7cad
      https://github.com/WebKit/WebKit/commit/8e0638f40d012d4a8328970bc529d6a59f1f7cad
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    M Source/WebCore/html/OffscreenCanvas.cpp

  Log Message:
  -----------
  Revert "Revert "Cherry-pick 229b3dbf26eb. rdar://problem/105770085""

This reverts commit 49fee8adf2a580b835cfdb0d3a26f93cde09d702.

Identifier: 259548.491 at safari-7615-branch


  Commit: a0366a917abe60fb2405cdd96fe67bd5883c90e5
      https://github.com/WebKit/WebKit/commit/a0366a917abe60fb2405cdd96fe67bd5883c90e5
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm

  Log Message:
  -----------
  Cherry-pick 261877 at main (1ed9893d3737). rdar://problem/106142457

    To get a standard FOV, we set zoom to 2 for virtual wide angle cameras.

    Reviewed by Youenn Fablet.

    * Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:
    (WebCore::isVirtualWideCamera):
    (WebCore::AVVideoCaptureSource::setSessionSizeAndFrameRate):

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

Canonical link: https://commits.webkit.org/259548.492@safari-7615-branch

Identifier: 259548.492 at safari-7615-branch


  Commit: b1176ea060e2187ceef2551e732e8bbaaa26f5ba
      https://github.com/WebKit/WebKit/commit/b1176ea060e2187ceef2551e732e8bbaaa26f5ba
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    A LayoutTests/platform/mac-wk2/plugins/pdf-plugin-initial-scroll-position-expected.txt
    A LayoutTests/platform/mac-wk2/plugins/pdf-plugin-initial-scroll-position.html
    M Source/WebCore/plugins/PluginViewBase.h
    M Source/WebCore/testing/Internals.cpp
    M Source/WebCore/testing/Internals.h
    M Source/WebCore/testing/Internals.idl
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h
    M Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm
    M Source/WebKit/WebProcess/Plugins/PluginView.cpp
    M Source/WebKit/WebProcess/Plugins/PluginView.h

  Log Message:
  -----------
  Cherry-pick d191671333e1. rdar://problem/106880773

    REGRESSION (260451 at main): Opening any PDF in WebKit opens it halfway down the first page
    https://bugs.webkit.org/show_bug.cgi?id=254374
    rdar://106880773

    Reviewed by Tim Horton.

    Before 260451 at main, the sequence for updating PDF scroll position on and shortly after load was this:

    1. PDF plugin is initialized, scroll position is set to (0, 0)
    2. PDFKit does `-[PDFLayerController _updateAutoScale]` and `-[PDFLayerController magnifyWithMagnification:atPoint:immediately:]`,
       and informs the `WKPDFLayerControllerDelegate` to update the scroll position to some greater than zero value (despite no scroll actually happening)
    3. A call to `PDFPlugin::receivedNonLinearizedPDFSentinel()` is handled. Scroll position is set to (0, 0)

    After 260451 at main, the sequence became:

    1. PDF plugin is initialized, scroll position is set to (0, 0)
    2. PDFKit does magnification as described above, updates scroll position to (0, 190 (or other >0 value)). This is dispatched to the main runloop to be handled asynchronously.
    3. A call to `PDFPlugin::receivedNonLinearizedPDFSentinel()` is handled. Scroll position is set to (0, 0)
    4. The async dispatch from step 2 is handled by the main runloop, overwriting the (0,0) value

    This patch addresses the bug by using `callOnMainRunLoopAndWait` instead of `callOnMainRunLoop` inside `-[PDFPlugin updateScrollPosition:]`
    to prevent incorrect re-ordering of scroll position changes.

    * LayoutTests/platform/mac-wk2/plugins/pdf-plugin-initial-scroll-position-expected.txt: Added.
    * LayoutTests/platform/mac-wk2/plugins/pdf-plugin-initial-scroll-position.html: Added.
    * Source/WebCore/plugins/PluginViewBase.h:
    (WebCore::PluginViewBase::scrollPositionForTesting const):
    * Source/WebCore/testing/Internals.cpp:
    (WebCore::scrollPositionForPlugin):
    (WebCore::Internals::pluginScrollPositionX):
    (WebCore::Internals::pluginScrollPositionY):
    * Source/WebCore/testing/Internals.h:
    * Source/WebCore/testing/Internals.idl:
    * Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h:
    * Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm:
    (-[WKPDFLayerControllerDelegate updateScrollPosition:]):
    * Source/WebKit/WebProcess/Plugins/PluginView.cpp:
    (WebKit::PluginView::scrollPositionForTesting const):
    * Source/WebKit/WebProcess/Plugins/PluginView.h:

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

Identifier: 259548.493 at safari-7615-branch


  Commit: 5d780a0473524e3e350bbed765432d180ff0efd0
      https://github.com/WebKit/WebKit/commit/5d780a0473524e3e350bbed765432d180ff0efd0
  Author: Chris Fleizach <cfleizach at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/fast/speechsynthesis/mac/samantha-voice-available-expected.txt
    A LayoutTests/fast/speechsynthesis/mac/samantha-voice-available.html
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WebCore/PAL/pal/spi/cocoa/AXSpeechManagerSPI.h
    M Source/WebCore/platform/cocoa/PlatformSpeechSynthesizerCocoa.mm

  Log Message:
  -----------
  Cherry-pick f20573ec09c6. rdar://problem/107199586

    Bug 254443 - AX: Only FRED VP visible on the Text To Speech Sound Check page
    https://bugs.webkit.org/show_bug.cgi?id=254443
    rdar://107199586

    Reviewed by Tyler Wilcock.

    On some platforms, a compact voice will be upgraded to a better one. When that happens, the older
    compact voices are not returned to API. This is a problem for WebKit which can only use these compact voices.

    Use a new SPI to retrieve the right set of voices.

    * LayoutTests/fast/speechsynthesis/mac/samantha-voice-available.html: Added.
    * LayoutTests/fast/speechsynthesis/mac/samantha-voice-available-expected.txt: Added.
    * Source/WebCore/PAL/pal/spi/cocoa/AXSpeechManagerSPI.h:
    * Source/WebCore/platform/cocoa/PlatformSpeechSynthesizerCocoa.mm:
    (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):

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

Identifier: 259548.494 at safari-7615-branch


  Commit: 185fa0903962cf754910ed5657933d564d45c3e7
      https://github.com/WebKit/WebKit/commit/185fa0903962cf754910ed5657933d564d45c3e7
  Author: Simon Fraser <simon.fraser at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    A LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-relative-inside-stacking-overflow-inside-transformed-expected.txt
    A LayoutTests/platform/wpe/scrollingcoordinator/scrolling-tree/fixed-inside-stacking-overflow-inside-transformed-expected.txt
    A LayoutTests/scrollingcoordinator/scrolling-tree/fixed-inside-relative-inside-stacking-overflow-inside-transformed-expected.txt
    A LayoutTests/scrollingcoordinator/scrolling-tree/fixed-inside-relative-inside-stacking-overflow-inside-transformed.html
    M Source/WebCore/rendering/RenderLayerCompositor.cpp

  Log Message:
  -----------
  Cherry-pick cf604717c41c. rdar://problem/106407870

    REGRESSION: Top bar is jumpy and glitchy on scmp.com
    https://bugs.webkit.org/show_bug.cgi?id=253503
    rdar://106407870

    Reviewed by Alan Baradlay and Myles C. Maxfield.

    The South China Morning Post has a content structure that looks like this:

    <div style="transform:translateZ(0)">
      <div style="overflow: scroll">
        <div style="position: relative">
          <div class="masthead" style="position: fixed"></div>
          <div style="something that triggers compositing"></div>
        </div>
      </div>
    </div>

    So the position:fixed is inside a transformed ancestor (which becomes its containing block),
    crossing the overflow boundary, and there's a relative position element in between.

    In this configuration, the containing block tree walk done in
    collectStationaryLayerRelatedOverflowNodes() for the fixedpos element would bail at the
    non-composited relpos element, so failing to find the overflow scrolling ancestor. This means that
    the scrolling tree would fail to reposition the "fixed" element on scrolling.

    The check for a non-composted layer in this tree walk was added in 247609 at main, but the relevant
    content no longer hits this condition, probably because of other dialog-related fixes. So remove it.

    * LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-relative-inside-stacking-overflow-inside-transformed-expected.txt: Added.
    * LayoutTests/platform/wpe/scrollingcoordinator/scrolling-tree/fixed-inside-stacking-overflow-inside-transformed-expected.txt: Added.
    * LayoutTests/scrollingcoordinator/scrolling-tree/fixed-inside-relative-inside-stacking-overflow-inside-transformed-expected.txt: Added.
    * LayoutTests/scrollingcoordinator/scrolling-tree/fixed-inside-relative-inside-stacking-overflow-inside-transformed.html: Added.
    * Source/WebCore/rendering/RenderLayerCompositor.cpp:
    (WebCore::collectStationaryLayerRelatedOverflowNodes):

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

Identifier: 259548.495 at safari-7615-branch


  Commit: e71ecac3f8663190d5e040ea67e10444a72140cf
      https://github.com/WebKit/WebKit/commit/e71ecac3f8663190d5e040ea67e10444a72140cf
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    M Source/WebCore/Modules/cache/DOMCacheEngine.cpp
    M Source/WebCore/Modules/cache/DOMCacheEngine.h
    M Source/WebCore/loader/CrossOriginAccessControl.cpp
    M Source/WebCore/loader/CrossOriginAccessControl.h
    M Source/WebCore/platform/network/ResourceResponseBase.cpp
    M Source/WebCore/platform/network/ResourceResponseBase.h
    M Source/WebKit/NetworkProcess/storage/CacheStorageCache.cpp
    M Source/WebKit/NetworkProcess/storage/CacheStorageCache.h
    M Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.cpp
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h
    M Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in
    M Source/WebKit/Scripts/generate-serializers.py
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/WebProcess/Cache/WebCacheStorageConnection.cpp

  Log Message:
  -----------
  Cherry-pick 2f169036ec50. rdar://problem/106956544

    Replace ResourceResponse with ResourceResponse::CrossThreadData in CacheStorage messages
    https://bugs.webkit.org/show_bug.cgi?id=254231
    rdar://107020237

    Reviewed by Youenn Fablet.

    NetworkStorageManager receives and handles CacheStorage messages on a WorkQueue, which is not tied to one thread.
    ResourceResponse contains AtomSring members, which can only be accessed from the thread where they are created. To avoid
    threading issues, we replace ResourceResponse with ResourceResponse::CrossThreadData in CacheStorage messages that are
    sent to and sent from NetworkStorageManager.

    To make this change, this patch introduces DOMCacheEngine::CrossThreadRecord and adds encode/decode functions for
    ResourceResponse::CrossThreadData. It also adds members to ResourceResponse::CrossThreadData so that it contains all
    information needed for persistence encoding/decoding.

    * Source/WebCore/Modules/cache/DOMCacheEngine.cpp:
    (WebCore::DOMCacheEngine::toCrossThreadRecord):
    (WebCore::DOMCacheEngine::fromCrossThreadRecord):
    * Source/WebCore/Modules/cache/DOMCacheEngine.h:
    (WebCore::DOMCacheEngine::CrossThreadRecord::CrossThreadRecord):
    * Source/WebCore/loader/CrossOriginAccessControl.cpp:
    (WebCore::shouldCrossOriginResourcePolicyCancelLoad):
    (WebCore::validateCrossOriginResourcePolicy):
    * Source/WebCore/loader/CrossOriginAccessControl.h:
    * Source/WebCore/platform/network/ResourceResponseBase.cpp:
    (WebCore::ResourceResponseBase::CrossThreadData::isolatedCopy const):
    (WebCore::ResourceResponseBase::crossThreadData const):
    (WebCore::ResourceResponseBase::fromCrossThreadData):
    (WTF::Persistence::Coder<WebCore::ResourceResponseBase::CrossThreadData>::encode):
    (WTF::Persistence::Coder<WebCore::ResourceResponseBase::CrossThreadData>::decode):
    * Source/WebCore/platform/network/ResourceResponseBase.h:
    (WebCore::ResourceResponseBase::CrossThreadData::CrossThreadData):
    * Source/WebKit/NetworkProcess/storage/CacheStorageCache.cpp:
    (WebKit::toCacheStorageRecord):
    (WebKit::CacheStorageCache::retrieveRecords):
    (WebKit::CacheStorageCache::putRecords):
    * Source/WebKit/NetworkProcess/storage/CacheStorageCache.h:
    * Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.cpp:
    (WebKit::decodeRecordHeader):
    (WebKit::readRecordInfoFromFileData):
    (WebKit::CacheStorageDiskStore::readRecordFromFileData):
    (WebKit::encodeRecordHeader):
    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.cpp:
    (WebKit::NetworkStorageManager::cacheStorageRetrieveRecords):
    (WebKit::NetworkStorageManager::cacheStoragePutRecords):
    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.h:
    * Source/WebKit/NetworkProcess/storage/NetworkStorageManager.messages.in:
    * Source/WebKit/Scripts/generate-serializers.py:
    (SerializedType.__init__):
    (generate_headers_for_header):
    (generate_header):
    (parse_serialized_types):
    * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
    * Source/WebKit/WebProcess/Cache/WebCacheStorageConnection.cpp:
    (WebKit::WebCacheStorageConnection::retrieveRecords):
    (WebKit::WebCacheStorageConnection::batchPutOperation):

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

Identifier: 259548.496 at safari-7615-branch


  Commit: d435ee80fbee83c5e2e2aa7e55f24b176e503d85
      https://github.com/WebKit/WebKit/commit/d435ee80fbee83c5e2e2aa7e55f24b176e503d85
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    R LayoutTests/accessibility/password-field-value-expected.txt
    R LayoutTests/accessibility/password-field-value.html
    A LayoutTests/accessibility/secure-field-value-expected.txt
    A LayoutTests/accessibility/secure-field-value.html
    M Source/WebCore/accessibility/AXLogger.cpp
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AXObjectCache.h
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
    M Source/WebCore/accessibility/AccessibilityNodeObject.h
    M Source/WebCore/accessibility/AccessibilityObject.cpp
    M Source/WebCore/accessibility/AccessibilityObject.h
    M Source/WebCore/accessibility/AccessibilityObjectInterface.h
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/accessibility/AccessibilityRenderObject.h
    M Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp
    M Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp
    M Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm
    M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
    M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
    M Source/WebCore/html/HTMLInputElement.cpp
    M Source/WebCore/html/HTMLInputElement.h

  Log Message:
  -----------
  Cherry-pick 509d2d337d1c. rdar://problem/107225367

    WebKit AX APIs expose secure text that is visibly hidden through HTMLInputElement::isAutoFilledAndObscured
    https://bugs.webkit.org/show_bug.cgi?id=253390
    rdar://92358745

    Reviewed by Chris Fleizach and Andres Gonzalez.

    Accessibility APIs should not expose secure text obscured by HTMLInputElement::isAutoFilledAndObscured.

    This patch fixes this by changing `AccessibilityObject::isPasswordField` to also check for
    `HTMLInputElement::isAutoFilledAndObscured`. This method and all similarly named methods have
    been renamed to use "secure" instead of "password" (e.g. `isSecureField` instead of `isPasswordField`)
    to encapsulate the widening of this abstraction.

    New testcases added to accessibility/password-field-value.html (now renamed to secure-field-value.html)
    to test this behavior.

    * LayoutTests/accessibility/password-field-value-expected.txt:
    Renamed to LayoutTests/accessibility/secure-field-value-expected.txt.
    * LayoutTests/accessibility/password-field-value.html:
    Renamed to LayoutTests/accessibility/secure-field-value.html.
    * Source/WebCore/accessibility/AXLogger.cpp:
    (WebCore::operator<<):
    * Source/WebCore/accessibility/AXObjectCache.cpp:
    (WebCore::AXObjectCache::onTextSecurityChanged):
    (WebCore::isSecureFieldOrContainedBySecureField):
    (WebCore::AXObjectCache::postTextStateChangeNotification):
    (WebCore::AXObjectCache::enqueuePasswordValueChangeNotification):
    (WebCore::AXObjectCache::textMarkerDataForCharacterOffset):
    (WebCore::AXObjectCache::textMarkerDataForVisiblePosition):
    (WebCore::AXObjectCache::textMarkerDataForFirstPositionInTextControl):
    (WebCore::AXObjectCache::updateIsolatedTree):
    (WebCore::isPasswordFieldOrContainedByPasswordField): Deleted.
    * Source/WebCore/accessibility/AXObjectCache.h:
    (WebCore::AXObjectCache::onTextSecurityChanged):
    * Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
    (WebCore::AccessibilityNodeObject::isSecureField const):
    (WebCore::AccessibilityNodeObject::isPasswordField const): Deleted.
    * Source/WebCore/accessibility/AccessibilityNodeObject.h:
    * Source/WebCore/accessibility/AccessibilityObject.cpp:
    (WebCore::AccessibilityObject::supportsReadOnly const):
    (WebCore::AccessibilityObject::insertText):
    (WebCore::AccessibilityObject::isContainedBySecureField const):
    (WebCore::AccessibilityObject::isContainedByPasswordField const): Deleted.
    * Source/WebCore/accessibility/AccessibilityObject.h:
    (WebCore::AccessibilityObject::secureFieldValue const):
    (WebCore::AccessibilityObject::passwordFieldValue const): Deleted.
    * Source/WebCore/accessibility/AccessibilityObjectInterface.h:
    * Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
    (WebCore::AccessibilityRenderObject::stringValue const):
    (WebCore::AccessibilityRenderObject::text const):
    (WebCore::AccessibilityRenderObject::selectedText const):
    (WebCore::AccessibilityRenderObject::selectedTextRange const):
    (WebCore::AccessibilityRenderObject::doAXStringForRange const):
    (WebCore::AccessibilityRenderObject::secureFieldValue const):
    (WebCore::AccessibilityRenderObject::passwordFieldValue const): Deleted.
    * Source/WebCore/accessibility/AccessibilityRenderObject.h:
    * Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm:
    (WebCore::AccessibilityObject::accessibilitySecureFieldLength):
    (WebCore::AccessibilityObject::accessibilityPasswordFieldLength): Deleted.
    * Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
    (-[WebAccessibilityObjectWrapper _accessibilityTextEntryTraits]):
    (-[WebAccessibilityObjectWrapper _accessibilityIsStrongPasswordField]):
    (-[WebAccessibilityObjectWrapper accessibilityValue]):
    * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
    (WebCore::AXIsolatedObject::initializeProperties):
    * Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h:
    * Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
    * Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm:
    (WebCore::AccessibilityObject::subrolePlatformString const):
    * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
    (-[WebAccessibilityObjectWrapper ALLOW_DEPRECATED_IMPLEMENTATIONS_END]):
    (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
    * Source/WebCore/html/HTMLInputElement.cpp:
    (WebCore::HTMLInputElement::setAutoFilledAndObscured):
    * Source/WebCore/html/HTMLInputElement.h:
    (WebCore::HTMLInputElement::isSecureField const):

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

Identifier: 259548.497 at safari-7615-branch


  Commit: fc0035d1ad00d405c75a88164911451c29a94a2e
      https://github.com/WebKit/WebKit/commit/fc0035d1ad00d405c75a88164911451c29a94a2e
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    A LayoutTests/accessibility/password-field-value-expected.txt
    A LayoutTests/accessibility/password-field-value.html
    R LayoutTests/accessibility/secure-field-value-expected.txt
    R LayoutTests/accessibility/secure-field-value.html
    M Source/WebCore/accessibility/AXLogger.cpp
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AXObjectCache.h
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
    M Source/WebCore/accessibility/AccessibilityNodeObject.h
    M Source/WebCore/accessibility/AccessibilityObject.cpp
    M Source/WebCore/accessibility/AccessibilityObject.h
    M Source/WebCore/accessibility/AccessibilityObjectInterface.h
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/accessibility/AccessibilityRenderObject.h
    M Source/WebCore/accessibility/atspi/AccessibilityObjectAtspi.cpp
    M Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp
    M Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm
    M Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.h
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
    M Source/WebCore/accessibility/mac/AccessibilityObjectMac.mm
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm
    M Source/WebCore/html/HTMLInputElement.cpp
    M Source/WebCore/html/HTMLInputElement.h

  Log Message:
  -----------
  Revert 509d2d337d1c. rdar://problem/107225367

Identifier: 259548.498 at safari-7615-branch


  Commit: af3f7f9c0743bb6bc38d694c8f32f4011ce59f54
      https://github.com/WebKit/WebKit/commit/af3f7f9c0743bb6bc38d694c8f32f4011ce59f54
  Author: Mark Lam <mark.lam at apple.com>
  Date:   2023-03-27 (Mon, 27 Mar 2023)

  Changed paths:
    M Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
    M Source/WTF/WTF.xcodeproj/project.pbxproj
    M Source/WTF/wtf/Assertions.h
    A Source/WTF/wtf/spi/darwin/AbortWithReasonSPI.h

  Log Message:
  -----------
  Declare as abort_with_reason as SPI and add support for older builds.
https://bugs.webkit.org/show_bug.cgi?id=254551
<rdar://problem/107277043>

Reviewed by Tim Horton and Justin Michaud.

We only use abort_with_reason() with OS_REASON_FLAG_SECURITY_SENSITIVE, and that flag
is only available on newer OS versions.  Implement a back up implementation for older
OS versions.

* Source/WTF/WTF.xcodeproj/project.pbxproj:
* Source/WTF/wtf/Assertions.h:
* Source/WTF/wtf/spi/darwin/AbortWithReasonSPI.h: Added.

Canonical link: https://commits.webkit.org/259548.499@safari-7615-branch


  Commit: 5ebeb2e424530fbc462482f856aee72f13c76c0b
      https://github.com/WebKit/WebKit/commit/5ebeb2e424530fbc462482f856aee72f13c76c0b
  Author: Patrick Angle <pangle at apple.com>
  Date:   2023-03-28 (Tue, 28 Mar 2023)

  Changed paths:
    M Source/WebInspectorUI/UserInterface/Controllers/JavaScriptLogViewController.js
    M Source/WebInspectorUI/UserInterface/Models/ConsoleCommandResultMessage.js
    M Source/WebInspectorUI/UserInterface/Views/AnimationContentView.js
    M Source/WebInspectorUI/UserInterface/Views/CanvasContentView.js
    M Source/WebInspectorUI/UserInterface/Views/CanvasTreeElement.js
    M Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js
    M Source/WebInspectorUI/UserInterface/Views/ObjectPreviewView.js
    M Source/WebInspectorUI/UserInterface/Views/ObjectTreeBaseTreeElement.js
    M Source/WebInspectorUI/UserInterface/Views/QuickConsole.js
    M Source/WebInspectorUI/UserInterface/Views/WebSocketResourceTreeElement.js

  Log Message:
  -----------
  Cherry-pick ed99b93877dd. rdar://problem/107297033

    Web Inspector: (Regression: 254636 at main) Mini console always opens when choosing "Inspect Element", even if it was previously closed
    https://bugs.webkit.org/show_bug.cgi?id=253273
    rdar://106260652

    Reviewed by Devin Rousso.

    When console snippets were introduced, the function signature of `appendImmediateExecutionWithResult` was updated so
    that optional values were part of an options object. However, in changing that it appears it was assumed that the
    default would be flipped to `false`, but that never happened. The parameter was no longer being provided by DOMManger
    when inspecting an element, and therefor we fell back to the default of showing the quick console.

    To fix this, we correct the `shouldRevealConsole` to be `false` by default, matching other option objects, and then
    clean up other places where we were assuming it would still be true (mostly anywhere that a "Log [thing]" option was
    present).

    * Source/WebInspectorUI/UserInterface/Controllers/JavaScriptLogViewController.js:
    (WI.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult.saveResultCallback):
    (WI.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult):
    - Use the new options object of the ConsoleCommandResultMessage constructor.

    * Source/WebInspectorUI/UserInterface/Models/ConsoleCommandResultMessage.js:
    - Make `shouldRevealConsole` part of an options object, and make it default to false instead.

    * Source/WebInspectorUI/UserInterface/Views/AnimationContentView.js:
    (WI.AnimationContentView.prototype._populateAnimationTargetButtonContextMenu):
    (WI.AnimationContentView):
    * Source/WebInspectorUI/UserInterface/Views/CanvasContentView.js:
    (WI.CanvasContentView.prototype._populateCanvasElementButtonContextMenu):
    * Source/WebInspectorUI/UserInterface/Views/CanvasTreeElement.js:
    (WI.CanvasTreeElement.prototype.populateContextMenu):
    * Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js:
    * Source/WebInspectorUI/UserInterface/Views/ObjectPreviewView.js:
    (WI.ObjectPreviewView.prototype._contextMenuHandler):
    (WI.ObjectPreviewView):
    * Source/WebInspectorUI/UserInterface/Views/ObjectTreeBaseTreeElement.js:
    (WI.ObjectTreeBaseTreeElement.prototype._logSymbolProperty):
    (WI.ObjectTreeBaseTreeElement.prototype._logValue):
    * Source/WebInspectorUI/UserInterface/Views/QuickConsole.js:
    (WI.QuickConsole.prototype._handleDrop):
    * Source/WebInspectorUI/UserInterface/Views/WebSocketResourceTreeElement.js:
    (WI.WebSocketResourceTreeElement.prototype.populateContextMenu):

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

Identifier: 259548.500 at safari-7615-branch


  Commit: e0be38e077fc0a1b31a53bd0a23455ae1e98d2cb
      https://github.com/WebKit/WebKit/commit/e0be38e077fc0a1b31a53bd0a23455ae1e98d2cb
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-03-28 (Tue, 28 Mar 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp

  Log Message:
  -----------
  Cherry-pick 04196137234f. rdar://problem/106302373

    [CG] Building the dictionary of the async image decoding options is not thread safe
    https://bugs.webkit.org/show_bug.cgi?id=254532
    rdar://106302373

    Reviewed by Simon Fraser.

    Make imageSourceThumbnailOptions() be thread-safe by ensuring the
    static variable 'options' is initialized by only one thread.

    * Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp:
    (WebCore::imageSourceThumbnailOptions):

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

Identifier: 259548.501 at safari-7615-branch


  Commit: 95228c251fa89bbb620ba35413187f8426acc269
      https://github.com/WebKit/WebKit/commit/95228c251fa89bbb620ba35413187f8426acc269
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-03-28 (Tue, 28 Mar 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp

  Log Message:
  -----------
  Revert "Cherry-pick 04196137234f. rdar://problem/106302373"

This reverts commit e0be38e077fc0a1b31a53bd0a23455ae1e98d2cb.

Identifier: 259548.502 at safari-7615-branch


  Commit: 9c0d2bf40085fae001099ebf521414e0b12ac160
      https://github.com/WebKit/WebKit/commit/9c0d2bf40085fae001099ebf521414e0b12ac160
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-03-28 (Tue, 28 Mar 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp

  Log Message:
  -----------
  Cherry-pick 04196137234f. rdar://problem/106302373

    [CG] Building the dictionary of the async image decoding options is not thread safe
    https://bugs.webkit.org/show_bug.cgi?id=254532
    rdar://106302373

    Reviewed by Simon Fraser.

    Make imageSourceThumbnailOptions() be thread-safe by ensuring the
    static variable 'options' is initialized by only one thread.

    * Source/WebCore/platform/graphics/cg/ImageDecoderCG.cpp:
    (WebCore::imageSourceThumbnailOptions):

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

Identifier: 259548.503 at safari-7615-branch


  Commit: bc838259cea8e1832b88782cac394e5d767650d0
      https://github.com/WebKit/WebKit/commit/bc838259cea8e1832b88782cac394e5d767650d0
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-03-28 (Tue, 28 Mar 2023)

  Changed paths:
    M Source/WebKit/NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm
    M Source/WebKit/NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm
    M Source/WebKit/NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.h
    M Source/WebKit/NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.mm
    M Source/WebKit/Platform/spi/Cocoa/NWSPI.h

  Log Message:
  -----------
  Cherry-pick 51c4e45400a9. rdar://problem/106722223

    Set the traffic class of the NW WebRTC backend based on WebRTC backend DSCP information
    https://bugs.webkit.org/show_bug.cgi?id=254072
    rdar://106722223

    Reviewed by Alex Christensen.

    Set traffic class based on provided DSCP values for TCP and UDP nw sockets.

    * Source/WebKit/NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:
    (WebKit::NetworkRTCTCPSocketCocoa::setOption):
    * Source/WebKit/NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
    (WebKit::NetworkRTCUDPSocketCocoaConnections::setOption):
    * Source/WebKit/NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.h:
    * Source/WebKit/NetworkProcess/webrtc/NetworkRTCUtilitiesCocoa.mm:
    (WebKit::trafficClassFromDSCP):

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

Identifier: 259548.504 at safari-7615-branch


  Commit: 7a3723889fdb7509669f9e671c56ce6ebe45fc9d
      https://github.com/WebKit/WebKit/commit/7a3723889fdb7509669f9e671c56ce6ebe45fc9d
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-03-28 (Tue, 28 Mar 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalid-inner-rules-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/parsing-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/serialize-group-rules-with-decls.tentative-expected.txt
    M Source/WebCore/css/CSSGroupingRule.cpp
    M Source/WebCore/css/CSSSelectorList.cpp
    M Source/WebCore/css/CSSSelectorList.h
    M Source/WebCore/css/CSSStyleRule.cpp
    M Source/WebCore/css/CSSStyleRule.h
    M Source/WebCore/css/CSSStyleRule.idl

  Log Message:
  -----------
  Cherry-pick f4dfe341bdcc. rdar://problem/107190613

    CSS Nesting: serialization support for CSSOM
    https://bugs.webkit.org/show_bug.cgi?id=254432
    rdar://107190613

    Reviewed by Antti Koivisto.

    This implement the CSSStyleRule serialization (the read-only part of CSSOM).

    https://w3c.github.io/csswg-drafts/cssom-1/#serialize-a-css-rule

    It also implements the lifting-up (in the parent rule) of properties when the style rule contains only "&"
    as selector list.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalid-inner-rules-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/parsing-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/serialize-group-rules-with-decls.tentative-expected.txt:
    * Source/WebCore/css/CSSGroupingRule.cpp:
    (WebCore::CSSGroupingRule::deleteRule):
    (WebCore::CSSGroupingRule::cssTextForDeclsAndRules const):
    * Source/WebCore/css/CSSSelectorList.cpp:
    (WebCore::CSSSelectorList::hasOnlyNestingSelector const):
    * Source/WebCore/css/CSSSelectorList.h:
    * Source/WebCore/css/CSSStyleRule.cpp:
    (WebCore::CSSStyleRule::cssText const):
    (WebCore::CSSStyleRule::cssTextForDeclsAndRules const):
    (WebCore::CSSStyleRule::reattach):
    (WebCore::CSSStyleRule::insertRule):
    (WebCore::CSSStyleRule::deleteRule):
    * Source/WebCore/css/CSSStyleRule.h:
    * Source/WebCore/css/CSSStyleRule.idl:

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

Identifier: 259548.505 at safari-7615-branch


  Commit: 2f6a45e0bf892c31f7a03865eb48188dfa8e620f
      https://github.com/WebKit/WebKit/commit/2f6a45e0bf892c31f7a03865eb48188dfa8e620f
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-03-28 (Tue, 28 Mar 2023)

  Changed paths:
    M Source/WebCore/rendering/RenderBox.cpp

  Log Message:
  -----------
  Cherry-pick f73dcb9ce6b7. rdar://problem/107277206

    hasTrimmedMargin should return false for out of flow boxes
    https://bugs.webkit.org/show_bug.cgi?id=254540
    rdar://107277206

    Reviewed by Alan Baradlay.

    The margin-trim spec says that the property only applies to
    in-flow boxes and floats, so the hasTrimmedMargin functions should
    return false if the call to isInFlow returns false.

    Without this test cases may trigger an assert in the code that guards
    the rest of the logic in the functions. css3/flexbox/insert-text-crash
    is an example of a test case that would trigger the assert due to the
    absolutely positioned box.

    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::hasTrimmedMargin const):

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

Identifier: 259548.506 at safari-7615-branch


  Commit: 8d201841a247e82f1ccd5c743c290b7ed8f20eab
      https://github.com/WebKit/WebKit/commit/8d201841a247e82f1ccd5c743c290b7ed8f20eab
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-29 (Wed, 29 Mar 2023)

  Changed paths:
    M metadata/trackers.json

  Log Message:
  -----------
  Cherry-pick 262271 at main (79337ba40eb1). rdar://107343100

    [git-webkit] Correct redacted expressions for Bugzilla
    https://bugs.webkit.org/show_bug.cgi?id=254631
    rdar://107343100

    Reviewed by Dewei Zhu.

    * metadata/trackers.json: More accurately reflect Bugzilla security bugs.

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

Canonical link: https://commits.webkit.org/259548.507@safari-7615-branch


  Commit: d6a218fe7f1c97e51aef59c813c9d120d690743b
      https://github.com/WebKit/WebKit/commit/d6a218fe7f1c97e51aef59c813c9d120d690743b
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-03-29 (Wed, 29 Mar 2023)

  Changed paths:
    R LayoutTests/fast/editing/insert-text-hit-testing-crash-expected.txt
    R LayoutTests/fast/editing/insert-text-hit-testing-crash.html
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/rendering/HitTestRequest.h

  Log Message:
  -----------
  Revert 3a1ba44290d8. rdar://problem/107371524

Identifier: 259548.508 at safari-7615-branch


  Commit: 96be2e666d514838e207ee68ebdf38a316fc5571
      https://github.com/WebKit/WebKit/commit/96be2e666d514838e207ee68ebdf38a316fc5571
  Author: Ryan Haddad <ryanhaddad at apple.com>
  Date:   2023-03-29 (Wed, 29 Mar 2023)

  Changed paths:
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/AppPrivacyReport.mm

  Log Message:
  -----------
  Cherry-pick 262152 at main (1fa0bf2759a8). rdar://107268120

    REGRESSION(259811 at main-259818@main): [ iOS Debug ] 4X TestWebKitAPI.AppPrivacyReport (API-Tests) are constant timeouts
    https://bugs.webkit.org/show_bug.cgi?id=254289
    rdar://107077600

    Unreviewed test gardening.

    Disable the tests to speed up EWS while we investigate the root cause.

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

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

Canonical link: https://commits.webkit.org/259548.509@safari-7615-branch


  Commit: e41d370e405094e45d8c85f7047f22ece0128bc5
      https://github.com/WebKit/WebKit/commit/e41d370e405094e45d8c85f7047f22ece0128bc5
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-03-29 (Wed, 29 Mar 2023)

  Changed paths:
    M Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp

  Log Message:
  -----------
  [root] 615.1.17: CrashTracer: com.apple.WebKit:  WTF::Detail::CallableWrapper<WebKit::NetworkProcessConnection::broadcastConsoleMessage(JSC::MessageSource, JSC::MessageLevel, WTF::String const&)::$_9, void, WebCore::Page&>::call
rdar://103903569

Reviewed by Alex Christensen.

Not all pages might have a corresponding WebPage.
iTo wrokaround this, we can directly go from Page to main frame document to print console messages.

* Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::broadcastConsoleMessage):

Canonical link: https://commits.webkit.org/259548.510@safari-7615-branch


  Commit: 9f51da77e32192eaf165bb9abe4b8e37f2281c93
      https://github.com/WebKit/WebKit/commit/9f51da77e32192eaf165bb9abe4b8e37f2281c93
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.

WebKit-7615.2.4

Identifier: 259548.511 at safari-7615-branch


  Commit: 5c81c5a31e9eec61e22588e32621a61f923f7b5e
      https://github.com/WebKit/WebKit/commit/5c81c5a31e9eec61e22588e32621a61f923f7b5e
  Author: Alex Christensen <achristensen at webkit.org>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M Source/WebCore/loader/DocumentLoader.cpp
    M Source/WebCore/loader/FetchOptions.h
    M Source/WebCore/loader/WorkerThreadableLoader.cpp
    M Source/WebCore/loader/cache/CachedResourceRequest.cpp
    M Source/WebCore/workers/WorkerScriptLoader.cpp
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  -----------
  Cherry-pick 985abe673058. rdar://problem/105885360

    Reduce sizeof(FetchOptions)
    https://bugs.webkit.org/show_bug.cgi?id=251734

    Reviewed by Youenn Fablet.

    Remove std::optional padding and the ProcessIdentifier part of
    the ScriptExecutionContextIdentifiers stored in FetchOptions.
    The ProcessIdentifiers were only used in WebSWServerConnection::controlClient
    and we can pass in the ProcessIdentifier of the process that
    caused the load to happen.

    * Source/WebCore/loader/DocumentLoader.cpp:
    (WebCore::DocumentLoader::loadMainResource):
    * Source/WebCore/loader/FetchOptions.h:
    (WebCore::FetchOptions::FetchOptions):
    * Source/WebCore/loader/WorkerThreadableLoader.cpp:
    (WebCore::m_contextIdentifier):
    * Source/WebCore/loader/cache/CachedResourceRequest.cpp:
    (WebCore::CachedResourceRequest::setClientIdentifierIfNeeded):
    * Source/WebCore/workers/WorkerScriptLoader.cpp:
    (WebCore::WorkerScriptLoader::loadAsynchronously):
    * Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
    (WebKit::NetworkResourceLoader::transferToNewWebProcess):
    * Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
    (WebKit::WebSWServerConnection::controlClient):
    (WebKit::WebSWServerConnection::createFetchTask):
    (WebKit::WebSWServerConnection::transferServiceWorkerLoadToNewWebProcess):
    * Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h:
    * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
    * Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp:
    (WebKit::WebSWClientConnection::setServiceWorkerClientIsControlled):

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

Identifier: 259548.512 at safari-7615-branch


  Commit: bd1fa8b05be848d685fbdc5d908ddb4179d613b0
      https://github.com/WebKit/WebKit/commit/bd1fa8b05be848d685fbdc5d908ddb4179d613b0
  Author: Kimmo Kinnunen <kkinnunen at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M Source/ThirdParty/ANGLE/ANGLE.plist
    M Source/ThirdParty/ANGLE/BUILD.gn
    M Source/ThirdParty/ANGLE/DEPS
    M Source/ThirdParty/ANGLE/Metal.cmake
    M Source/ThirdParty/ANGLE/PRESUBMIT.py
    M Source/ThirdParty/ANGLE/changes.diff
    M Source/ThirdParty/ANGLE/doc/BuildingAngleForChromiumDevelopment.md
    M Source/ThirdParty/ANGLE/doc/DevSetup.md
    M Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_device_id.txt
    M Source/ThirdParty/ANGLE/include/EGL/eglext_angle.h
    M Source/ThirdParty/ANGLE/include/platform/FeaturesMtl_autogen.h
    M Source/ThirdParty/ANGLE/include/platform/mtl_features.json
    M Source/ThirdParty/ANGLE/scripts/angle_presubmit_utils_unittest.py
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_features.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Metal_format_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Test_spec_JSON.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/interpreter_utils.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/restricted_traces.json
    M Source/ThirdParty/ANGLE/scripts/generate_entry_points.py
    M Source/ThirdParty/ANGLE/src/angle_commit.h
    M Source/ThirdParty/ANGLE/src/common/ANGLEShaderProgramVersion.h
    M Source/ThirdParty/ANGLE/src/common/FastVector.h
    M Source/ThirdParty/ANGLE/src/common/FastVector_unittest.cpp
    M Source/ThirdParty/ANGLE/src/common/FixedQueue.h
    M Source/ThirdParty/ANGLE/src/common/FixedQueue_unittest.cpp
    M Source/ThirdParty/ANGLE/src/common/PackedEnums.h
    M Source/ThirdParty/ANGLE/src/common/WorkerThread.h
    M Source/ThirdParty/ANGLE/src/common/frame_capture_utils.cpp
    M Source/ThirdParty/ANGLE/src/common/frame_capture_utils.h
    M Source/ThirdParty/ANGLE/src/common/frame_capture_utils_autogen.cpp
    M Source/ThirdParty/ANGLE/src/common/frame_capture_utils_autogen.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/PruneNoOps.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/RewriteStructSamplers.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Caps.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Display.h
    M Source/ThirdParty/ANGLE/src/libANGLE/EGLSync.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/EGLSync.h
    M Source/ThirdParty/ANGLE/src/libANGLE/RefCountObject.h
    M Source/ThirdParty/ANGLE/src/libANGLE/State.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/State.h
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/FrameCapture.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_egl_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_egl_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/queryutils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/queryutils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/FunctionsEGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramMtl.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ProgramMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_format_map.json
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_format_table_autogen.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_library_cache.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_library_cache.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_msl_utils.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_state_cache.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/serial_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/BufferVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandProcessor.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandProcessor.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/QueryVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ResourceVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ResourceVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/Suballocation.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/Suballocation.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SyncVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/validationEGL_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES2.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/egl_ext_stubs.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/egl_ext_stubs_autogen.h
    M Source/ThirdParty/ANGLE/src/libGLESv2/egl_stubs.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/egl_stubs_autogen.h
    M Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_egl_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_egl_ext_autogen.cpp
    M Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLMultiContextTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLSurfaceTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendFuncExtendedTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/ClearTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferFetchTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/VulkanPerformanceCounterTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_trace_gold_tests.py
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_traces.json
    M Source/ThirdParty/ANGLE/third_party/flatbuffers/BUILD.gn
    M Source/ThirdParty/ANGLE/third_party/flatbuffers/README.chromium
    M Source/ThirdParty/ANGLE/util/angle_features_autogen.cpp
    M Source/ThirdParty/ANGLE/util/angle_features_autogen.h
    M Source/ThirdParty/ANGLE/util/capture/trace_fixture.cpp
    M Source/ThirdParty/ANGLE/util/capture/trace_fixture.h
    M Source/ThirdParty/ANGLE/util/capture/trace_interpreter_autogen.cpp

  Log Message:
  -----------
  Cherry-pick 68fbc85934ef. rdar://problem/107308010

    Update ANGLE to 2023-02-20 (f76ecaeed1d0188b52f293af27922518a23d878e)
    https://bugs.webkit.org/show_bug.cgi?id=252585
    rdar://problem/105688071

    Unreviewed, to be reviewed by Dean Jackson.

    Contains upstream commits:
    git log --oneline 2bcf94cc0b577225f7b925dd0cd1ed03541e30db..f76ecaeed1d0188b52f293af27922518a23d878e --pretty=%h %s
    f76ecaeed Roll Chromium from 3919c700dd2c to 36ad54ddae32 (501 revisions)
    05e62f394 Vulkan: Don't close render pass if rebind to same fbo
    e1dfc00aa Vulkan: Make waitForPendingPresent drain work in the calling thread
    79bfee1cd Vulkan: Clean up CommandProcessor::queuePresent
    c402ea1c5 Vulkan: Rename hasUnfinishedUse to hasResourceUseFinished
    5dba27e03 Vulkan: CommandProcessor API name clean up
    b4116feaa Disable supportsSwapchainMaintenance1 feature on Android
    3307e8d2f Vulkan: Add ostream operator for ResourceUse/QueueSerial
    75153e100 Manual roll Chromium from ab83a5e1b973 to 3919c700dd2c (169 revisions)
    19d1a0a4d Roll Chromium from 63251d7a0997 to ab83a5e1b973 (573 revisions)
    1148a6627 Update GL_ARM_shader_framebuffer_fetch token support
    fcba0d430 Fix "RefCountObjectReleaser" move-assignment operator.
    8cac53cdf Vulkan: Fix incorrect "SharedPresent" barrier.
    a6dba4b47 Vulkan: Minor fix in "WindowSurfaceVk::hasStagedUpdates()".
    9d84ad7da Translator: Fix sampler-in-struct when struct is unused
    6f092c312 Tests: Add star trek fleet command trace
    8d23f34ea Reland: DisplayEGL should support targeting specific EGL platforms
    81c7a7d92 Use per-channel fuzzy threshold
    27d412fbb Presubmit: relax line length rules for quotes
    8c2fcc708 Metal: Implement EXT_blend_func_extended
    5db4f3e9a Roll SwiftShader from a9f5c19e28bd to 64eb04027b9f (1 revision)
    665a5cea0 Roll vulkan-deps from 25333b9d7bff to d03d09324f14 (11 revisions)
    ceb49b1c9 Vulkan: Fix crashes when Surface is not current.
    c2e25b703 Roll Chromium from 3043a4c048b2 to 63251d7a0997 (544 revisions)
    13e8dabc4 Add EGL_PLATFORM_ANGLE_DISPLAY_KEY_ANGLE
    c49127448 Vulkan: Clean up CommandProcessor mutex name
    629da7fc9 Fix dEQP-EGL.functional.mutable_render_buffer#basic
    79b0d80b2 Remove d3dcompiler_old.dll references
    a52c0a6cb Capture/Replay: Add and handle new resource type for EGLSync
    94ff37bb2 Fixed bugs in "FastVector" class.
    31d576ca3 Tests: Add SuperTuxKart trace
    111aca40f Capture/Replay: Emit NULL instead of nullptr in trace
    daaf424c4 Roll vulkan-deps from bb14a2634243 to 25333b9d7bff (9 revisions)
    b14c4740f Roll SwiftShader from 938d3a1fac4d to a9f5c19e28bd (3 revisions)
    df3a60927 Roll Chromium from 618575b40534 to 3043a4c048b2 (617 revisions)
    1145a4970 Vulkan: Very minor "rx::vk::BindingPointer" move-ctor update.
    4bb17bf11 Docs: Fix Visual Studio generation step
    5a77200b3 Metal: Implement parallel shader linking.
    2e70fa152 Tests: Add Top War: Battle Game trace
    9e33b83aa Vulkan: Fix bug in EGLMultiContextTest.ReuseUnterminatedDisplay
    f2617a097 Vulkan: Minor fix when waitFor*ToBeSubmitted() may skip error.
    8374bf5ff Fix bug in FixedQueue::clear() and refactoring.
    25e9686cf [ios]: fix missing caps for D16_UNORM
    91d55479a Vulkan: reverted back SuballocationGarbage logic.

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

Identifier: 259548.513 at safari-7615-branch


  Commit: a9942706b5eed66ed87939f653886e29893f0044
      https://github.com/WebKit/WebKit/commit/a9942706b5eed66ed87939f653886e29893f0044
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    A LayoutTests/fast/dynamic/out-of-flow-counter-do-not-update-expected.html
    A LayoutTests/fast/dynamic/out-of-flow-counter-do-not-update.html
    M Source/WebCore/rendering/CounterNode.cpp

  Log Message:
  -----------
  Cherry-pick 1b539330d2ad. rdar://problem/107363679

    [css-lists] `content: counter()` does not update visually if `position: absolute` is set
    https://bugs.webkit.org/show_bug.cgi?id=254575

    Reviewed by Antti Koivisto.

    1. In order to update counters in IFC, the containing RenderBlockFlow needs to get invalidated (a new InlineTextBox is created for the text).
    2. With in-flow pseudo renderers, where the RenderCounter is nested inside an inline box,
    invalidation goes through the normal styleDidChange codepath.

    RenderBlockFlow (A) <- this is where the counter is.
      <pseudo> RenderInline (B) <- in-flow :after
        RenderCounter (C)

    However out-of-flow pseudo content initiates a different type of tree structure
    where the RenderCounter is not part of the initial RenderBlockFlow anymore

    RenderBlockFlow (A) <- this is where the counter is
      <pseudo> RenderBlockFlow (B) <- out-of-flow :after
        RenderCounter (C)
    Which means invalidating (A) (where the style change happens) does not trigger an IFC tree re-build at (B)
    and we end up re-layouting the exact same content over again (C).

    This patch ensures we always invalidate the block flow where the damage happens
    (and this should cover some more involved cases with counters in arbitrary number of subtrees).

    * LayoutTests/fast/dynamic/out-of-flow-counter-do-not-update-expected.html: Added.
    * LayoutTests/fast/dynamic/out-of-flow-counter-do-not-update.html: Added.
    * Source/WebCore/rendering/CounterNode.cpp:
    (WebCore::CounterNode::resetRenderers): This function is called whenever a new counter node is added/removed/updated. This is also where we call setNeedsLayoutAndPrefWidthsRecalc
    which eventually updates the counter for legacy line layout.

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

Identifier: 259548.514 at safari-7615-branch


  Commit: 0210035c3aa826a261691e209bc5055e79e8580c
      https://github.com/WebKit/WebKit/commit/0210035c3aa826a261691e209bc5055e79e8580c
  Author: Aditya Keerthi <akeerthi at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm

  Log Message:
  -----------
  Cherry-pick 6c610b79ff6c. rdar://problem/107330772

    REGRESSION (iOS 16.4): Photo library picker shows videos even for accept="image/*"
    https://bugs.webkit.org/show_bug.cgi?id=254604
    rdar://107330772

    Reviewed by Wenson Hsieh.

    255435 at main replaced usage of `UIImagePickerController` with `PHPickerViewController`
    to display the photo library picker. Previously the accepted types were restricted
    using `-[UIImagePickerController setMediaTypes:]`. However, the old filtering logic
    was not ported over to `PHPickerViewController`, resulting in the picker always
    displaying both images and video.

    * Source/WebKit/UIProcess/ios/forms/WKFileUploadPanel.mm:

    Fix by adopting `PHPickerFilter` to filter the type of media if needed.

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

Identifier: 259548.515 at safari-7615-branch


  Commit: 5c0aaf437df48b86b36535a78ef9edc85473492b
      https://github.com/WebKit/WebKit/commit/5c0aaf437df48b86b36535a78ef9edc85473492b
  Author: Abrar Rahman Protyasha <a_protyasha at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M Source/WebKit/UIProcess/mac/PageClientImplMac.mm
    M Source/WebKit/UIProcess/mac/WebViewImpl.h
    M Source/WebKit/UIProcess/mac/WebViewImpl.mm
    M Tools/TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm

  Log Message:
  -----------
  Cherry-pick 2db314d62ff0. rdar://problem/104449116

    Promised file data should contain UTType identifier instead of file extension
    https://bugs.webkit.org/show_bug.cgi?id=254555
    rdar://104449116

    Reviewed by Wenson Hsieh.

    When dragging an image in Safari, we notice that the file promise
    provider specifies the file type as _just_ the extension string, when
    it should be specifying the Universal Type Identifier (UTI) instead,
    e.g. `public.png` instead of `png`.

    This patch corrects said mismatch by supplying the UTI instead of the
    file extension as the representation for `NSFilesPromisePboardType`.

    * Source/WebKit/UIProcess/mac/PageClientImplMac.mm:
    (WebKit::PageClientImpl::setPromisedDataForImage):
    * Source/WebKit/UIProcess/mac/WebViewImpl.h:
    * Source/WebKit/UIProcess/mac/WebViewImpl.mm:
    (WebKit::WebViewImpl::setFileAndURLTypes):
    (WebKit::WebViewImpl::setPromisedDataForImage):
    * Tools/TestWebKitAPI/Tests/mac/DragAndDropTestsMac.mm:
    (TEST):

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

Identifier: 259548.516 at safari-7615-branch


  Commit: be88be943cceb245e10f1b4c6d7e2d4ff3a5d60a
      https://github.com/WebKit/WebKit/commit/be88be943cceb245e10f1b4c6d7e2d4ff3a5d60a
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm

  Log Message:
  -----------
  Cherry-pick f06787f3c33a. rdar://problem/102970285

    Entering/Leaving YouTube fullscreen causes the video to not scale fully to screen edges
    https://bugs.webkit.org/show_bug.cgi?id=254686
    rdar://102970285

    Reviewed by Eric Carlson.

    Sometimes the test for CGRectEqualToRect(self.videoLayerFrame, self.bounds) will unexpectedly
    succeed, leaving the video sublayer with the incorrect size and transform. Instead, this code
    should match that of WebAVPlayerLayer, and test against videoSublayer.bounds, since that's
    the value that is changed by the rest of the code.

    * Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:
    (-[WKVideoLayerRemote resolveBounds]):

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

Identifier: 259548.517 at safari-7615-branch


  Commit: aac181e49bedb7fd41c63fbede3c54cc11f13b93
      https://github.com/WebKit/WebKit/commit/aac181e49bedb7fd41c63fbede3c54cc11f13b93
  Author: Tim Nguyen <ntim at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    A LayoutTests/fullscreen/fullscreen-restore-scroll-position-overflow-auto-expected.txt
    A LayoutTests/fullscreen/fullscreen-restore-scroll-position-overflow-auto.html
    M LayoutTests/platform/mac-wk1/TestExpectations
    M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp
    M Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.h
    M Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp

  Log Message:
  -----------
  Cherry-pick b8bf24826066. rdar://problem/106774841

    Exiting fullscreen on ign.com fails to restore scroll position
    https://bugs.webkit.org/show_bug.cgi?id=254632
    rdar://106774841

    Reviewed by Jer Noble.

    The bug is caused by a missing layout in some particular situations (overflow: auto + percentage sizes) before restoring the scroll position.
    Adding a call to forceLayout() fixes the issue.

    However, in order for the test to work in WebKit Test runner, the save/restoreScrollPosition methods also need to be called in the InjectedBundle.
    Safari & minibrowser use a different codepath (involving the UIProcess).

    * LayoutTests/fullscreen/fullscreen-restore-scroll-position-overflow-auto-expected.txt: Added.
    * LayoutTests/fullscreen/fullscreen-restore-scroll-position-overflow-auto.html: Added.
    * LayoutTests/platform/mac-wk1/TestExpectations:
    * Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.cpp:
    (WebKit::WebFullScreenManager::restoreScrollPosition):
    * Source/WebKit/WebProcess/FullScreen/WebFullScreenManager.h:
    * Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
    (WKBundlePageWillEnterFullScreen):
    (WKBundlePageDidExitFullScreen):

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

Identifier: 259548.518 at safari-7615-branch


  Commit: 6007f8ac496764fbfd3bc60933506d5719c1d083
      https://github.com/WebKit/WebKit/commit/6007f8ac496764fbfd3bc60933506d5719c1d083
  Author: David Li <jingye_li at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    A LayoutTests/fast/dom/Range/range-commonroot-notfound-expected.txt
    A LayoutTests/fast/dom/Range/range-commonroot-notfound.html
    M Source/WebCore/dom/Range.cpp

  Log Message:
  -----------
  Cherry-pick c20d51c646be. rdar://problem/107422122

    [DOM] For range.extractContents(), abort early if there's a doctype in range
    https://bugs.webkit.org/show_bug.cgi?id=252805
    rdar://103178567

    Reviewed by Ryosuke Niwa.

    Check if doctype is contained in range before start extracting contents,
    if contained, return HierarchyRequestError.

    * LayoutTests/fast/dom/Range/range-commonroot-notfound-expected.txt: Added.
    * LayoutTests/fast/dom/Range/range-commonroot-notfound.html: Added.
    * Source/WebCore/dom/Range.cpp:
    (WebCore::Range::processContents):

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

Identifier: 259548.519 at safari-7615-branch


  Commit: 98e946d5614523a554cdf60464fe70418f874b1e
      https://github.com/WebKit/WebKit/commit/98e946d5614523a554cdf60464fe70418f874b1e
  Author: Razvan Caliman <rcaliman at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M Source/WebInspectorUI/UserInterface/Views/FontDetailsPanel.js
    M Source/WebInspectorUI/UserInterface/Views/FontVariationDetailsSectionRow.js

  Log Message:
  -----------
  Cherry-pick 202e031fdd6b. rdar://problem/103911764

    Web Inspector: Font Panel: Avoid needless refresh of FontStyles
    https://bugs.webkit.org/show_bug.cgi?id=250128

    Reviewed by Patrick Angle.

    There are a number of expensive operations in the Fonts sidebar panel done in reaction
    to style changes of the inspected node, like computing applicable font properties and their values,
    and updating the Fonts panel DOM structure.

    These operations must be done whenever styles change from outside the Fonts panel
    so it can reflect the latest changes. But they don't have to be done live.
    Throtting the update in reaction to changes from the outside is acceptable.

    The slider inputs for editing variation axis values from the Fonts sidebar panel
    are a source of high-frequency style changes.
    This is necessary so that the inspected page reacts immediately to style changes.
    But there's no need for the Fonts panel to react to style chagnes it originates.
    In this scenario it is acceptable to inhibit updates of the Fonts panel and keep state local.

    * Source/WebInspectorUI/UserInterface/Views/FontDetailsPanel.js:
    (WI.FontDetailsPanel):
    (WI.FontDetailsPanel.prototype.refresh):
    (WI.FontDetailsPanel.prototype.update):
    (WI.FontDetailsPanel.prototype._handleFontVariationValueChanged):
    * Source/WebInspectorUI/UserInterface/Views/FontVariationDetailsSectionRow.js:
    (WI.FontVariationDetailsSectionRow):

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

Identifier: 259548.520 at safari-7615-branch


  Commit: ec9e2b82d2cfec7a708b804df5a9694e72d29afd
      https://github.com/WebKit/WebKit/commit/ec9e2b82d2cfec7a708b804df5a9694e72d29afd
  Author: Patrick Angle <pangle at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M LayoutTests/inspector/css/getMatchedStylesForNode.html
    A LayoutTests/inspector/css/getMatchedStylesForNodeBackdropPseudoId-expected.txt
    A LayoutTests/inspector/css/getMatchedStylesForNodeBackdropPseudoId.html
    M Source/WebCore/inspector/agents/InspectorCSSAgent.cpp

  Log Message:
  -----------
  Cherry-pick c5064e5e284d. rdar://problem/104889944

    Web Inspector: Don't show `::backdrop` rules for elements without a backdrop
    https://bugs.webkit.org/show_bug.cgi?id=251466
    rdar://104889944

    Reviewed by Tim Nguyen.

    `::backdrop` only applies to elements in the top layer. Like `::marker`, we should not display this selector for elements it can't apply to.

    * LayoutTests/inspector/css/getMatchedStylesForNode.html:
    * LayoutTests/inspector/css/getMatchedStylesForNodeBackdropPseudoId-expected.txt: Added.
    * LayoutTests/inspector/css/getMatchedStylesForNodeBackdropPseudoId.html: Added.
    * Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:
    (WebCore::InspectorCSSAgent::getMatchedStylesForNode):

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

Identifier: 259548.521 at safari-7615-branch


  Commit: db0322e8a57648d22b305699dd4fb38ba2254068
      https://github.com/WebKit/WebKit/commit/db0322e8a57648d22b305699dd4fb38ba2254068
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M Source/WebCore/loader/DocumentLoader.cpp
    M Source/WebCore/loader/FetchOptions.h
    M Source/WebCore/loader/WorkerThreadableLoader.cpp
    M Source/WebCore/loader/cache/CachedResourceRequest.cpp
    M Source/WebCore/workers/WorkerScriptLoader.cpp
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in

  Log Message:
  -----------
  Revert [259548.512 at safari-7615-branch] Cherry-pick 985abe673058. rdar://problem/105885360

Unreviewed revert.

259548.512 at safari-7615-branch (5c81c5a31e9e) broke the build.

* Source/WebCore/loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::loadMainResource):
* Source/WebCore/loader/FetchOptions.h:
(WebCore::FetchOptions::FetchOptions):
* Source/WebCore/loader/WorkerThreadableLoader.cpp:
(WebCore::m_contextIdentifier):
* Source/WebCore/loader/cache/CachedResourceRequest.cpp:
(WebCore::CachedResourceRequest::setClientIdentifierIfNeeded):
* Source/WebCore/workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::loadAsynchronously):
* Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::transferToNewWebProcess):
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::controlClient):
(WebKit::WebSWServerConnection::createFetchTask):
(WebKit::WebSWServerConnection::transferServiceWorkerLoadToNewWebProcess):
* Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:

Canonical link: https://commits.webkit.org/259548.522@safari-7615-branch


  Commit: db241bbd3a36460e47028d56e711fbe052ae122b
      https://github.com/WebKit/WebKit/commit/db241bbd3a36460e47028d56e711fbe052ae122b
  Author: Elliott Williams <emw at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py

  Log Message:
  -----------
  Cherry-pick 262288 at main (f05f3c942884). rdar://107385426

    [git-webkit] Look for hooks in the GIT_DIR, not the worktree
    https://bugs.webkit.org/show_bug.cgi?id=254677

    Reviewed by Jonathan Bedard.

    Currently, git-webkit assumes hooks are in a ".git/hooks" directory
    relative to the top-level worktree directory. This is not the case for
    repos with multiple worktrees or other exotic setups.

    Use common_dir when computing the path to the hooks directory.

    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py:
    (InstallHooks.hook_needs_update):

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

Canonical link: https://commits.webkit.org/259548.523@safari-7615-branch


  Commit: a48f8590fa3ef9c0220ff0c7726caea85c6389d9
      https://github.com/WebKit/WebKit/commit/a48f8590fa3ef9c0220ff0c7726caea85c6389d9
  Author: Arunsundar Kannan <arunsundar_kannan at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-stylesheet-replaceSync-null-deref-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-stylesheet-replaceSync-null-deref.html
    M Source/WebCore/css/CSSStyleSheet.cpp

  Log Message:
  -----------
  Null ptr deref in CSSStyleSheet::replaceSync.
https://bugs.webkit.org/show_bug.cgi?id=254727.
rdar://101629411.

Reviewed by Chris Dumez.

Added a null check in CSSStyleSheet::replaceSync to prevent a null deref.

* LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-stylesheet-replaceSync-null-deref-expected.txt: Added.
* LayoutTests/imported/w3c/web-platform-tests/css/cssom/css-stylesheet-replaceSync-null-deref.html: Added.
* Source/WebCore/css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::replaceSync):

Canonical link: https://commits.webkit.org/259548.524@safari-7615-branch


  Commit: 3d4fc69bfad2818a72d3c6860ca2bc632699b6f1
      https://github.com/WebKit/WebKit/commit/3d4fc69bfad2818a72d3c6860ca2bc632699b6f1
  Author: JC Alvarado <joncarlo at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    A LayoutTests/fast/scrolling/scroll-snap-crash-expected.txt
    A LayoutTests/fast/scrolling/scroll-snap-crash.html
    M Source/WebCore/platform/ScrollSnapAnimatorState.cpp

  Log Message:
  -----------
  Ignore snap offsets with an identifier of zero
https://bugs.webkit.org/show_bug.cgi?id=254383
rdar://107130316

Reviewed by Simon Fraser.

When updating snap offsets, if there is no element for a RenderBox,
then a snap offset with an identifier of 0 is created. This can lead
to issues when we add that offset identifier to a HashSet so we should
ignore them in ScrollSnapAnimatorState::currentlySnappedBoxes().

* LayoutTests/fast/animation/scroll-snap-crash-expected.txt: Added.
* LayoutTests/fast/animation/scroll-snap-crash.html: Added.
* Source/WebCore/platform/ScrollSnapAnimatorState.cpp:
(WebCore::ScrollSnapAnimatorState::currentlySnappedBoxes const):

Canonical link: https://commits.webkit.org/259548.525@safari-7615-branch


  Commit: 3de6af34e230d5f47d6de0394f2a09b3a3e3e1fb
      https://github.com/WebKit/WebKit/commit/3de6af34e230d5f47d6de0394f2a09b3a3e3e1fb
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2023-03-30 (Thu, 30 Mar 2023)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/platform/mac-wk2/TestExpectations
    M Source/WebCore/html/CanvasBase.h
    M Source/WebCore/html/CustomPaintCanvas.h
    M Source/WebCore/html/HTMLCanvasElement.cpp
    M Source/WebCore/html/HTMLCanvasElement.h
    M Source/WebCore/html/OffscreenCanvas.cpp
    M Source/WebCore/html/OffscreenCanvas.h
    M Source/WebCore/html/OffscreenCanvas.idl
    M Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
    M Source/WebCore/html/canvas/WebGLSync.cpp

  Log Message:
  -----------
  Cherry-pick 903910f95dd3. rdar://problem/107430896

    OffscreenCanvas WebGL doesn't fire the context lost event.
    https://bugs.webkit.org/show_bug.cgi?id=250532
    <rdar://104198422>

    Reviewed by Ryosuke Niwa.

    Adds support for dispatching the event to OffscreenCanvas too, and enables the WebGL tests that cover this.

    * LayoutTests/TestExpectations:
    * LayoutTests/platform/mac-wk2/TestExpectations:
    * Source/WebCore/html/CanvasBase.h:
    * Source/WebCore/html/CustomPaintCanvas.h:
    * Source/WebCore/html/HTMLCanvasElement.cpp:
    (WebCore::HTMLCanvasElement::queueTaskKeepingObjectAlive):
    (WebCore::HTMLCanvasElement::dispatchEvent):
    * Source/WebCore/html/HTMLCanvasElement.h:
    * Source/WebCore/html/OffscreenCanvas.cpp:
    (WebCore::OffscreenCanvas::create):
    (WebCore::OffscreenCanvas::OffscreenCanvas):
    (WebCore::OffscreenCanvas::transferToImageBitmap):
    (WebCore::OffscreenCanvas::queueTaskKeepingObjectAlive):
    (WebCore::OffscreenCanvas::dispatchEvent):
    * Source/WebCore/html/OffscreenCanvas.h:
    * Source/WebCore/html/OffscreenCanvas.idl:
    * Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:
    (WebCore::WebGLRenderingContextBase::scheduleTaskToDispatchContextLostEvent):
    (WebCore::WebGLRenderingContextBase::maybeRestoreContext):
    * Source/WebCore/html/canvas/WebGLSync.cpp:
    (WebCore::WebGLSync::scheduleAllowCacheUpdate):

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

Identifier: 259548.526 at safari-7615-branch


  Commit: 18dde4c11839b853efc6faf6c6ea9cf73d7ca328
      https://github.com/WebKit/WebKit/commit/18dde4c11839b853efc6faf6c6ea9cf73d7ca328
  Author: Antoine Quint <graouts at webkit.org>
  Date:   2023-03-31 (Fri, 31 Mar 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-animations/translation-animation-on-important-property-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-animations/translation-animation-on-important-property.html
    A LayoutTests/webanimations/combining-transform-animations-with-different-acceleration-capabilities-4-expected.txt
    A LayoutTests/webanimations/combining-transform-animations-with-different-acceleration-capabilities-4.html
    M Source/WebCore/animation/KeyframeEffect.cpp
    M Source/WebCore/animation/KeyframeEffect.h
    M Source/WebCore/animation/KeyframeEffectStack.cpp
    M Source/WebCore/animation/KeyframeEffectStack.h
    M Source/WebCore/style/StyleTreeResolver.cpp

  Log Message:
  -----------
  Cherry-pick 32cc4c04ce78. rdar://problem/107431177

    Cherry-pick 260464 at main (50450e8c417a). https://bugs.webkit.org/show_bug.cgi?id=252481

        [web-animations] WPT test css/css-animations/translation-animation-on-important-property.html is a failure
        https://bugs.webkit.org/show_bug.cgi?id=252481

        Reviewed by Antti Koivisto.

        WPT.fyi reports we are failing the recently added css/css-animations/translation-animation-on-important-property.html.
        This test fails because it is animating an accelerated property, in this case "transform", but also setting an
        !important style for it, checking that the !important value wins over the animated value. We fail to account for the
        value set by the !important style when running accelerated animations.

        To address this, we add a new method KeyframeEffectStack::acceleratedPropertiesOverriddenByCascade() called by
        Style::TreeResolver::createAnimatedElementUpdate() with the animated style prior to further application of the
        cascade and after the cascade has been fully applied. In this new method we see which accelerated properties have
        a different value between the two styles which informs whether an !important style – or any style with higher
        importance than animated style in the cascade - overrides the value set by animations.

        We store this list of properties and inform all effects in the stack when this list changes. Then, an effect can determine
        whether the presence of such a property prevents it from running accelerated and, using the existing system to interrupt
        and resume accelerated animations based on whether other effects in the stack can or cannot be accelerated, will toggle
        its accelerated running state.

        Since the WPT test this patch fixes does not check whether animations can be interrupted and resumed dynamically
        by the presence of an overriding static property, we add such a test.

        * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/translation-animation-on-important-property-expected.html: Added.
        * LayoutTests/imported/w3c/web-platform-tests/css/css-animations/translation-animation-on-important-property.html: Added.
        * LayoutTests/webanimations/combining-transform-animations-with-different-acceleration-capabilities-4-expected.txt: Added.
        * LayoutTests/webanimations/combining-transform-animations-with-different-acceleration-capabilities-4.html: Added.
        * Source/WebCore/animation/KeyframeEffect.cpp:
        (WebCore::KeyframeEffect::setBlendingKeyframes):
        (WebCore::KeyframeEffect::canBeAccelerated const):
        (WebCore::KeyframeEffect::computeHasAcceleratedPropertyOverriddenByCascadeProperty):
        (WebCore::KeyframeEffect::acceleratedPropertiesOverriddenByCascadeDidChange):
        * Source/WebCore/animation/KeyframeEffect.h:
        * Source/WebCore/animation/KeyframeEffectStack.cpp:
        (WebCore::KeyframeEffectStack::didApplyCascade):
        * Source/WebCore/animation/KeyframeEffectStack.h:
        (WebCore::KeyframeEffectStack::acceleratedPropertiesOverriddenByCascade const):
        * Source/WebCore/style/StyleTreeResolver.cpp:
        (WebCore::Style::TreeResolver::createAnimatedElementUpdate):

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

Identifier: 259548.527 at safari-7615-branch


  Commit: 82c764d8194ecc4b7e732e00a4fd044c1158cf03
      https://github.com/WebKit/WebKit/commit/82c764d8194ecc4b7e732e00a4fd044c1158cf03
  Author: Antoine Quint <graouts at webkit.org>
  Date:   2023-03-31 (Fri, 31 Mar 2023)

  Changed paths:
    M LayoutTests/platform/glib/TestExpectations
    A LayoutTests/webanimations/combining-transform-animations-with-different-acceleration-capabilities-5-expected.txt
    A LayoutTests/webanimations/combining-transform-animations-with-different-acceleration-capabilities-5.html
    M Source/WebCore/animation/KeyframeEffectStack.cpp
    M Source/WebCore/animation/KeyframeEffectStack.h
    M Source/WebCore/style/PropertyCascade.cpp
    M Source/WebCore/style/PropertyCascade.h
    M Source/WebCore/style/StyleBuilder.h
    M Source/WebCore/style/StyleTreeResolver.cpp
    M Source/WebCore/style/StyleTreeResolver.h

  Log Message:
  -----------
  Cherry-pick f80a253f84ff. rdar://problem/107430860

    Cherry-pick 262327 at main (6dd6ecba860d). https://bugs.webkit.org/show_bug.cgi?id=254665

        [web-animations] first frame of "transform" animation is visible when !important style overrides the animated value
        https://bugs.webkit.org/show_bug.cgi?id=254665

        Reviewed by Antti Koivisto.

        When fixing bug 252481, we introduced a mechanism to detect properties overriding animated properties through
        the cascade, primarily !important values. We achieved this by comparing the RenderStyle after animations were
        applied and after the cascade was fully applied, determining that any value that changed meant it was overridden.
        But this technique failed to detect the case where the animated value matched the value after the cascade was
        fully applied, as would be the case if the 0% keyframe was the same as the !important style. This would happen
        for instance if there is no 0% keyframe explicitly provided.

        We now use a more robust approach by populating a HashSet<AnimatedProperty> while the cascade is built under
        Style::TreeResolver::applyCascadeAfterAnimation() and returning that list of overridden properties. We then pass
        that list to the KeyframeEffectStack in didApplyCascade() which will filter it for accelerated properties only and
        notify relevant keyframe effects.

        * LayoutTests/platform/glib/TestExpectations:
        * LayoutTests/webanimations/combining-transform-animations-with-different-acceleration-capabilities-5-expected.txt: Added.
        * LayoutTests/webanimations/combining-transform-animations-with-different-acceleration-capabilities-5.html: Added.
        * Source/WebCore/animation/KeyframeEffectStack.cpp:
        (WebCore::KeyframeEffectStack::cascadeDidOverrideProperties):
        (WebCore::KeyframeEffectStack::didApplyCascade): Deleted.
        * Source/WebCore/animation/KeyframeEffectStack.h:
        * Source/WebCore/style/PropertyCascade.cpp:
        (WebCore::Style::PropertyCascade::addMatch):
        (WebCore::Style::PropertyCascade::overriddenAnimatedProperties const):
        * Source/WebCore/style/PropertyCascade.h:
        * Source/WebCore/style/StyleBuilder.h:
        (WebCore::Style::Builder::overriddenAnimatedProperties const):
        * Source/WebCore/style/StyleTreeResolver.cpp:
        (WebCore::Style::TreeResolver::createAnimatedElementUpdate):
        (WebCore::Style::TreeResolver::applyCascadeAfterAnimation):
        * Source/WebCore/style/StyleTreeResolver.h:

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

Identifier: 259548.528 at safari-7615-branch


  Commit: f9ef6ff8f573b6a8f1b9fb0cf7293ca7e472351f
      https://github.com/WebKit/WebKit/commit/f9ef6ff8f573b6a8f1b9fb0cf7293ca7e472351f
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2023-03-31 (Fri, 31 Mar 2023)

  Changed paths:
    M Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h

  Log Message:
  -----------
  Cherry-pick 261399 at main. rdar://107431084
    _removeDataStoreWithIdentifier should fail when the data store is being used by web page

    https://bugs.webkit.org/show_bug.cgi?id=253555
    rdar://106407998

    Reviewed by Chris Dumez.

    To avoid undefined behaviors and unexpected results, we don't allow data store to be removed while it is being used by
    web page.

    API Test: WKWebsiteDataStore.RemoveDataStoreWithIdentifierErrorWhenInUse

    * Source/WebKit/UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
    (WebKit::WebsiteDataStore::removeDataStoreWithIdentifier):
    * Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
    (WebKit::WebsiteDataStore::existingDataStoreForIdentifier):
    (WebKit::WebsiteDataStore::hasActivePages):
    * Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebsiteDatastore.mm:
    (TestWebKitAPI::TEST):

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

Canonical link: https://commits.webkit.org/259548.529@safari-7615-branch


  Commit: 2c49ff7b04814818322de335de6b5673abef36b2
      https://github.com/WebKit/WebKit/commit/2c49ff7b04814818322de335de6b5673abef36b2
  Author: Mark Lam <mark.lam at apple.com>
  Date:   2023-03-31 (Fri, 31 Mar 2023)

  Changed paths:
    M Source/JavaScriptCore/heap/Heap.cpp
    M Source/JavaScriptCore/heap/Heap.h
    M Source/JavaScriptCore/heap/HeapInlines.h
    M Source/JavaScriptCore/runtime/ArgList.cpp
    M Source/JavaScriptCore/runtime/ArgList.h
    M Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp
    M Source/WebCore/Modules/webaudio/AudioWorkletProcessor.h
    M Source/WebCore/bindings/js/SerializedScriptValue.cpp

  Log Message:
  -----------
  CloneDeserializer::deserialize() should store cell pointers in a MarkedVector.
https://bugs.webkit.org/show_bug.cgi?id=254797
rdar://107369977

Reviewed by Justin Michaud.

Previously, CloneDeserializer::deserialize() was storing pointers to newly created objects
in a few Vectors.  This is problematic because the GC is not aware of Vectors, and cannot
scan them.  In this patch, we refactor the MarkedArgumentBuffer class into a MarkedVector
template class that offer 2 enhancements:

1. It can be configured to store specific types of cell pointer types.  This avoids us
   having to constantly cast JSValues into these pointers.

2. It allows us to specify the type of OverflowHandler we want to use.  In this case,
   we want to use CrashOnOverflow.  The previous MarkedArgumentBuffer always assumes
   RecordOnOverflow.  This allows us to avoid having to manually check for overflows,
   or have to use appendWithCrashOnOverflow.  For our current needs, MarkedVector can be
   used as a drop in replacement for Vector.

And we fix the CloneDeserializer::deserialize() issue by replacing the use of Vectors
with MarkedVector instead.

* Source/JavaScriptCore/heap/Heap.cpp:
(JSC::Heap::addCoreConstraints):
* Source/JavaScriptCore/heap/Heap.h:
* Source/JavaScriptCore/heap/HeapInlines.h:
* Source/JavaScriptCore/runtime/ArgList.cpp:
(JSC::MarkedVectorBase::addMarkSet):
(JSC::MarkedVectorBase::markLists):
(JSC::MarkedVectorBase::slowEnsureCapacity):
(JSC::MarkedVectorBase::expandCapacity):
(JSC::MarkedVectorBase::slowAppend):
(JSC::MarkedArgumentBufferBase::addMarkSet): Deleted.
(JSC::MarkedArgumentBufferBase::markLists): Deleted.
(JSC::MarkedArgumentBufferBase::slowEnsureCapacity): Deleted.
(JSC::MarkedArgumentBufferBase::expandCapacity): Deleted.
(JSC::MarkedArgumentBufferBase::slowAppend): Deleted.
* Source/JavaScriptCore/runtime/ArgList.h:
(JSC::MarkedVectorWithSize::MarkedVectorWithSize):
(JSC::MarkedVectorWithSize::at const):
(JSC::MarkedVectorWithSize::clear):
(JSC::MarkedVectorWithSize::append):
(JSC::MarkedVectorWithSize::appendWithCrashOnOverflow):
(JSC::MarkedVectorWithSize::last const):
(JSC::MarkedVectorWithSize::takeLast):
(JSC::MarkedVectorWithSize::ensureCapacity):
(JSC::MarkedVectorWithSize::hasOverflowed):
(JSC::MarkedVectorWithSize::fill):
(JSC::MarkedArgumentBufferWithSize::MarkedArgumentBufferWithSize): Deleted.
* Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:
(WebCore::AudioWorkletProcessor::buildJSArguments):
* Source/WebCore/Modules/webaudio/AudioWorkletProcessor.h:
* Source/WebCore/bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneDeserializer::deserialize):

Canonical link: https://commits.webkit.org/259548.530@safari-7615-branch


  Commit: 1d0f604a0901a37880f2c60a2d3d4be08d824d62
      https://github.com/WebKit/WebKit/commit/1d0f604a0901a37880f2c60a2d3d4be08d824d62
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-03-31 (Fri, 31 Mar 2023)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm

  Log Message:
  -----------
  Revert "Cherry-pick f06787f3c33a. rdar://problem/102970285"

This reverts commit be88be943cceb245e10f1b4c6d7e2d4ff3a5d60a.


  Commit: 1d6fe184ea53483643685da3bfc8939252eb1acf
      https://github.com/WebKit/WebKit/commit/1d6fe184ea53483643685da3bfc8939252eb1acf
  Author: Antoine Quint <graouts at webkit.org>
  Date:   2023-03-31 (Fri, 31 Mar 2023)

  Changed paths:
    M Source/WebCore/animation/WebAnimation.cpp

  Log Message:
  -----------
  Potential use-after-free in WebAnimation::commitStyles
https://bugs.webkit.org/show_bug.cgi?id=254840
rdar://107444873

Reviewed by Dean Jackson and Darin Adler.

Ensure that the animation's effect and target are kept alive for the duration of this method
since it is possible that calling updateStyleIfNeeded() could call into JavaScript and thus
these two pointers could be changed to a null value using the Web Animations API.

* Source/WebCore/animation/WebAnimation.cpp:
(WebCore::WebAnimation::commitStyles):

Canonical link: https://commits.webkit.org/259548.532@safari-7615-branch


  Commit: 3dad201c59516f019ce9f3829a6af09ec2aa3c82
      https://github.com/WebKit/WebKit/commit/3dad201c59516f019ce9f3829a6af09ec2aa3c82
  Author: Dan Robson <dan_robson at apple.com>
  Date:   2023-03-31 (Fri, 31 Mar 2023)

  Changed paths:
    M Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.


  Commit: f5dc82736e2c7a15635284d716c7ec50c78c6818
      https://github.com/WebKit/WebKit/commit/f5dc82736e2c7a15635284d716c7ec50c78c6818
  Author: Alexey Shvayka <ashvayka at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    A LayoutTests/fast/forms/input-type-radio-form-gc-crash-expected.txt
    A LayoutTests/fast/forms/input-type-radio-form-gc-crash.html
    M Source/WebCore/html/FormAssociatedCustomElement.cpp
    M Source/WebCore/html/FormAssociatedCustomElement.h
    M Source/WebCore/html/ValidatedFormListedElement.cpp
    M Source/WebCore/html/ValidatedFormListedElement.h

  Log Message:
  -----------
  <input type=radio> crashes in removeInvalidElementToAncestorFromInsertionPoint() during GC
https://bugs.webkit.org/show_bug.cgi?id=253860
<rdar://105086386>

Reviewed by Ryosuke Niwa.

When a <form> gets destroyed, it calls into formWillBeDestroyed() callback of <input type=radio>
which, when removing radio buttons themselves, calls into updateValidity() and then into
removeInvalidElementToAncestorFromInsertionPoint() with partially-deleted ContainerNode as an
argument, causing a crash.

This change guards removeInvalidElementToAncestorFromInsertionPoint() and its counterpart
from being called during form destruction.

* LayoutTests/fast/forms/input-type-radio-form-gc-crash-expected.txt: Added.
* LayoutTests/fast/forms/input-type-radio-form-gc-crash.html: Added.
* Source/WebCore/html/FormAssociatedCustomElement.cpp:
(WebCore::FormAssociatedCustomElement::didChangeForm):
(WebCore::FormAssociatedCustomElement::formWillBeDestroyed): Deleted.
* Source/WebCore/html/FormAssociatedCustomElement.h:
* Source/WebCore/html/ValidatedFormListedElement.cpp:
(WebCore::ValidatedFormListedElement::updateValidity):
(WebCore::ValidatedFormListedElement::formWillBeDestroyed):
* Source/WebCore/html/ValidatedFormListedElement.h:
(WebCore::ValidatedFormListedElement::belongsToFormThatIsBeingDestroyed const):

Canonical link: https://commits.webkit.org/259548.534@safari-7615-branch


  Commit: 3bc53a0a2ccfdbb042b1d3d3c97a3dd0bd0c155e
      https://github.com/WebKit/WebKit/commit/3bc53a0a2ccfdbb042b1d3d3c97a3dd0bd0c155e
  Author: JC Alvarado <joncarlo at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    A LayoutTests/fast/editing/insert-text-hit-testing-crash-expected.txt
    A LayoutTests/fast/editing/insert-text-hit-testing-crash.html
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/rendering/HitTestRequest.h

  Log Message:
  -----------
  Update layout of child frames before hit testing a document if necessary
https://bugs.webkit.org/show_bug.cgi?id=253615
rdar://107375598

Reviewed by Alan Baradlay.

If hit testing can recurse into a child frame, we should make sure that
layout and style are updated for all children before proceeding with
hit testing.

* LayoutTests/fast/editing/insert-text-hit-testing-crash-expected.txt: Added.
* LayoutTests/fast/editing/insert-text-hit-testing-crash.html: Added.
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::hitTest):

Canonical link: https://commits.webkit.org/259548.535@safari-7615-branch


  Commit: 8320a5247c74e04ab4a9d3ad864cc3d2270c3fb0
      https://github.com/WebKit/WebKit/commit/8320a5247c74e04ab4a9d3ad864cc3d2270c3fb0
  Author: Arunsundar Kannan <arunsundar_kannan at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    A LayoutTests/http/tests/media/fairplay/fps-init-data-sinf-oob-crash-expected.txt
    A LayoutTests/http/tests/media/fairplay/fps-init-data-sinf-oob-crash.html
    M Source/WebCore/platform/graphics/iso/ISOTrackEncryptionBox.cpp

  Log Message:
  -----------
  CDMPrivateFairPlayStreaming parsing of WebCore::ISOTrackEncryptionBox can lead to a heap-buffer-overflow.
https://bugs.webkit.org/show_bug.cgi?id=254781.
rdar://103849722.

Reviewed by Jer Noble.

WebCore::ISOTrackEncryptionBox::parse() is missing basic bounds checking before memcpy. This change add the check.

* LayoutTests/http/tests/media/fairplay/fps-init-data-sinf-oob-crash-expected.txt: Added.
* LayoutTests/http/tests/media/fairplay/fps-init-data-sinf-oob-crash.html: Added.
* Source/WebCore/platform/graphics/iso/ISOTrackEncryptionBox.cpp:
(WebCore::ISOTrackEncryptionBox::parse):

Canonical link: https://commits.webkit.org/259548.536@safari-7615-branch


  Commit: 77267afca86e2246a6de26c735edee80eebb7fa4
      https://github.com/WebKit/WebKit/commit/77267afca86e2246a6de26c735edee80eebb7fa4
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.


  Commit: 11db571de5db8da3729e3a292fb5cedb071408a4
      https://github.com/WebKit/WebKit/commit/11db571de5db8da3729e3a292fb5cedb071408a4
  Author: Ryan Reno <rreno at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    R LayoutTests/fast/css/image-set-parsing-invalid-expected.txt
    R LayoutTests/fast/css/image-set-parsing-invalid.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-computed.sub-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing.html
    M LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-computed.sub-expected.txt
    M Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp

  Log Message:
  -----------
  Cherry-pick 5e38273c02f7. rdar://problem/107431229

    -webkit-image-set() should be an alias of image-set()
    https://bugs.webkit.org/show_bug.cgi?id=229909
    rdar://82999675

    Reviewed by Tim Nguyen.

    -webkit-image-set had a strict subset of image-set's syntax and so the former was made
    into an alias of the latter in the css-images module level 4. This change removes the
    restrictions on the syntax for the prefixed function and makes it into a parse-time alias
    of image-set.

    * LayoutTests/fast/css/image-set-parsing-invalid-expected.txt: Removed.
    * LayoutTests/fast/css/image-set-parsing-invalid.html: Removed.
        This test is made obsolete by changes to the image-set parsing WPT and by making
        -webkit-image-set an alias to image-set.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-computed.sub-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-parsing.html:
    * LayoutTests/platform/glib/imported/w3c/web-platform-tests/css/css-images/image-set/image-set-computed.sub-expected.txt:

    * Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:
    (WebCore::CSSPropertyParserHelpers::consumeImage):

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


  Commit: 6a89c145a07635f5de1d778b4e2020443d89d5d9
      https://github.com/WebKit/WebKit/commit/6a89c145a07635f5de1d778b4e2020443d89d5d9
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-last-child-with-border-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-last-child-with-border.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-nested-last-child-with-border-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-nested-last-child-with-border.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-nested-at-bottom-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-nested-at-bottom.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-nested-margin-trim-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-nested-margin-trim.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-nested-multiple-times-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-nested-multiple-times.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-nested-once-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-nested-once.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-vert-lr-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-vert-lr.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets.html
    M Source/WebCore/rendering/RenderBlockFlow.cpp
    M Source/WebCore/rendering/RenderBlockFlow.h

  Log Message:
  -----------
  Cherry-pick b9ee985deec4. rdar://problem/107478385

    Update margin box for trimmed block-end boxes in block container and adjust position of self-collapsing children
    https://bugs.webkit.org/show_bug.cgi?id=253679
    rdar://106524654

    Reviewed by Alan Baradlay.

    The initial attempt at trimming margins that collapsed through to the
    block-end of a block container simply used the MarginInfo for the block
    container to "trim," the margins. This MarginInfo structure held the
    margins that collapsed through and would be used with the container's
    actual block-end margin to perform a final margin collapsing. By ignoring
    these values we were prohibit the collapsing from occurring with the
    block container's block-end margin.

    However, since the margins for the children at the end of the block
    container were not actually trimmed (i.e. their m_marginBox still
    contained their used margin values), the block container may have
    incorrectly positioned self-collapsing children that were also at the
    bottom of the block.

    container {
        display: block;
        margin-trim: block;
        margin-block-end: 10px;
    }
    item {
        display: block;
        margin-block-end: 40px;
        inline-size: 50px;
        block-size: 50px;
        background-color: green;
    }
    .collapsed {
        margin-block-start: 50px;
        block-size: 0px;
    }
    </style>
    <container>
        <item></item>
        <item class="collapsed"></item>
        <item class="collapsed"></item>
    </container>

    Here the last two items in the block container are self-collapsing, so
    they would normally participate in margin collapsing with the block-end
    margin of the first item and the block-end mark of the container itself.
    Without margin-trim the collapsed items should have an offset of 100px
    from the top of the containing block.

    When block-end margin trimming is specified, however, these items will
    need to get placed right below the first item since the block-end margin
    will be removed from the first item and both block margins will be
    trimmed from the last two.

    Since we cannot know if a self-collapsing child is at the block-end
    of a block container (i.e. there may be another non self-collapsing
    child further on in the layout), we need to make these adjustments when
    we are handling the after side of the block container. This means we
    need to walk back up the children of the container and perform these
    adjustments. As we walk up the tree we have 3 scenarios for each child:

    1.) The child is a self-collapsing block:
    We should trim the before/after margins of this child and make sure its
    position is at the bottom of the block right below the last non
    self-collapsing child. We do not need to go inside the self-collapsing
    children even if they contain more self-collapsing children since those
    will already be positioned at the top of their containing block. If they
    had any margins they were have collapsed through to the outer most
    self-collapsing child.

    2.) The child is a nested block
    In this case, we will trim its after margin (since it is at the bottom
    of the block and everything below it is self-collapsing), but we also
    need to check if the margins of its children nested inside can collapse
    through with its own after margin. If it cannot (e.g. the nested block
    has some border and padding), then we are done since those margins
    cannot affect the margins or children outside of their containing block
    (the nested block we are checking), and everything before this nested
    block cannot affect the bottom of the block.

    However, if the margins inside can collapse through, then we need to go
    one more level deep (inside of this nested block) and perform the same
    logic. This is because those margins could have potentially collapsed
    through and affected any self-collapsing children at the bottom of this
    nested block as well as the children in the outer one.

    3.) The block is some other non-nested and non self-collapsing block.
    In this case we can just trim the block-end margin and end our
    adjustments since everything before this block cannot impact the bottom
    (just like the case with the nested-block that cannot have its children's
    margins collapse through).

    In this case, we need to recurse into it and
    apply the same type of logic. It is possible that this nested block
    container may have its children's margins at the bottom of the block
    contribute to the margin collapsing occurring at the outer block container.

    <style>
    .outer {
        margin-trim: block;
    }
    container {
        display: block;
    }
    item {
        display: block;
        margin-block-end: 40px;
        inline-size: 50px;
        block-size: 50px;
        background-color: green;
    }
    .collapsed {
        margin-block-start: 50px;
        block-size: 0px;
    }
    </style>
    <container class="outer">
        <container>
            <item data-offset-y="8"></item>
            <item data-offset-y="58" class="collapsed"></item>
            <item data-offset-y="58" class="collapsed"></item>
        </container>
    </container>

    Here the outer container has block-end margin trim but there is no
    block-end margin set on its last child nor does it have any self
    collapsing children at the end of the block. However, it has another
    block container nested within its last child. This nested block
    container has self-collapsing children at the end of the block that
    have their margins collapse through and propagate up to the outer
    container.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-last-child-with-border-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-last-child-with-border.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-nested-last-child-with-border-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-nested-last-child-with-border.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-nested-at-bottom-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-nested-at-bottom.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-nested-margin-trim-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-nested-margin-trim.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-nested-multiple-times-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-nested-multiple-times.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-nested-once-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-nested-once.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-vert-lr-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets-vert-lr.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/block-container-block-end-self-collapsing-children-offsets.html: Added.
    * Source/WebCore/rendering/RenderBlockFlow.cpp:
    (WebCore::RenderBlockFlow::layoutBlockChildren):
    (WebCore::RenderBlockFlow::trimBlockEndChildrenMargins):
    * Source/WebCore/rendering/RenderBlockFlow.h:

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


  Commit: e4d384f0218fd7f1b6eacbbc6f76f13386f72409
      https://github.com/WebKit/WebKit/commit/e4d384f0218fd7f1b6eacbbc6f76f13386f72409
  Author: Aditya Keerthi <akeerthi at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml

  Log Message:
  -----------
  Cherry-pick ca4bed3b60ef. rdar://problem/104829495

    Cherry-pick 262338 at main (ca4bed3b60ef). rdar://104829495

        REGRESSION (iOS 16.4): Form controls are drawn incorrectly when lockdown mode is enabled
        https://bugs.webkit.org/show_bug.cgi?id=254719
        rdar://104829495

        Reviewed by Wenson Hsieh and Brent Fulgham.

        Form controls on iOS were redesigned in iOS 15. To aid with testing and debugging
        the `IOSFormControlRefreshEnabled` feature flag was introduced. This flag was
        enabled by default in iOS 15.

        However, 258448 at main miscategorized the feature as "unstable", and as of 257758 at main,
        all "unstable" features are disabled in lockdown mode. This feature should not
        be disabled in any shipping configuration.

        * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:

        Mark the feature as "internal", since it is only intended for debugging purposes,
        is not web API, and has shipped in a much older release.

        The flag can likely be removed entirely now, however, that is a much larger change
        involving a great deal of code removal across many files.

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


  Commit: bfbbe1ea04f8817b7a50df97fc7ccdaeaacf17ce
      https://github.com/WebKit/WebKit/commit/bfbbe1ea04f8817b7a50df97fc7ccdaeaacf17ce
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/grid-item-image-percentage-min-height-computes-as-0-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/grid-item-image-percentage-min-height-computes-as-0.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/nested-flexbox-image-percentage-max-height-computes-as-none-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/nested-flexbox-image-percentage-max-height-computes-as-none.html
    M Source/WebCore/rendering/RenderBox.cpp

  Log Message:
  -----------
  Cherry-pick d4ec309d5e67. rdar://problem/106926883

    REGRESSION (259663 at main): lowes.com: Product image is blank
    https://bugs.webkit.org/show_bug.cgi?id=254603
    rdar://106926883

    Reviewed by Alan Baradlay.

    The product image on Lowes had a structure that is very similar
    to the following that results in the product image not rendering
    correctly (having a width and height of 0). I made some slight
    modifications to make it easier to digest, but the following is
    indicative of the issue that is causing the image to show up as blank.

    body {
      height: 50px;
    }
    img {
      position: relative;
      max-width: 100%;
      max-height: 100%;
    }
    .outer-flexbox {
      display: flex;
      width: 100%;
      height: 100%;
    }
    .outer-flexbox-item {
      position: relative;
      min-width: 100%;
    }
    .inner-flexbox {
      position: absolute;
      display: flex;
      inset: 0px;
    }
    </style>

    <div class="outer-flexbox">
        <div class="outer-flexbox-item">
            <div class="inner-flexbox">
                <div>
                    <img src="/css/support/60x60-green.png">
                </div>
            </div>
        </div>
    </div>

    The problem arises when we layout the outer-flexbox and eventually
    recurse into the image to compute its preferred width. During this
    process, we attempt to compute the max-height by resolving the percentage value, but we end up
    incorrectly computing a max-height of 0. This max-height computation is
    done when we reach RenderBox::computeLogicalHeightUsing and end up
    calling RenderBox::computeReplacedLogicalHeightUsing with a heightType
    of MaxSize. computeReplacedLogicalHeightUsing will calculate this height
    differently depending on the LengthType of the passed in height and in the
    case of this scenario we fall into the LengthType::Percent case for
    max-height. Since this code is unable to resolve this height (due to the
    fact its containing block depends on the size of its content), it
    returns a value of 0. This 0 value ends up affecting not only the size
    of the image in both the width and height dimensions, but also affects
    the flex item of the inner flexbox and the size of the inner flexbox as
    part of a flex item for the outer flexbox.

    The solution here is to modify computeLogicalHeightUsing to check if
    the min/max height would compute to 0/none depending on the heightType.
    Ideally, the caller should not have to do this (like how it is done in
    RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight), and
    this would be done handled in computeReplacedLogicalHeightUsing, but
    a couple of call sites make this type of change tricky. It is
    particularly when computeReplacedLogicalHeightUsing with a heightType of
    MainOrPreferredSize since these call sites expect the function to return
    a definite value, so it is not clear what would be the correct logic if
    it instead returned an empty optional.

    To accomplish this, we can use the existing helper function
    replacedMinMaxLogicalHeightComputesAsNone, which returns true in this
    example to indicate that the used value of max-height should be treated
    as none. This was actually already being used in the other call site:
    computeReplacedLogicalHeightRespectingMinMaxHeight. To make it more
    difficult to call this function when replacedMinMaxLogicalHeightComputesAsNone
    returns false, I added an assert to trigger in that problematic scenario.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/grid-item-image-percentage-min-height-computes-as-0-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/grid-item-image-percentage-min-height-computes-as-0.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/nested-flexbox-image-percentage-max-height-computes-as-none-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-sizing/nested-flexbox-image-percentage-max-height-computes-as-none.html: Added.
    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::computeLogicalHeightUsing const):
    (WebCore::RenderBox::computeReplacedLogicalHeightUsing const):

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


  Commit: aa76afc8e7b4ee886a33aab928ac627e1de2f6cb
      https://github.com/WebKit/WebKit/commit/aa76afc8e7b4ee886a33aab928ac627e1de2f6cb
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalid-inner-rules-expected.txt
    M Source/WebCore/css/CSSGroupingRule.cpp
    M Source/WebCore/css/CSSGroupingRule.h
    M Source/WebCore/css/CSSRule.cpp
    M Source/WebCore/css/CSSRule.h
    M Source/WebCore/css/CSSStyleRule.cpp
    M Source/WebCore/css/CSSStyleSheet.cpp
    M Source/WebCore/css/CSSStyleSheet.h
    M Source/WebCore/css/StyleRule.cpp
    M Source/WebCore/css/StyleRule.h
    M Source/WebCore/css/StyleSheetContents.h
    M Source/WebCore/css/parser/CSSParser.cpp
    M Source/WebCore/css/parser/CSSParser.h
    M Source/WebCore/css/parser/CSSParserImpl.cpp
    M Source/WebCore/css/parser/CSSParserImpl.h
    M Source/WebCore/css/parser/CSSSelectorParser.cpp

  Log Message:
  -----------
  Cherry-pick 90d00dc15a7b. rdar://problem/107322119

    Cherry-pick 262394 at main (90d00dc15a7b). rdar://107322119

        [CSS] Implement CSSOM insertRule() on StyleRule
        https://bugs.webkit.org/show_bug.cgi?id=254601
        rdar://107322119

        Reviewed by Antti Koivisto.

        This patch handles the transformation of old-school StyleRule object (without a children vector)
        to a StyleRuleWithNesting object when necessary.

        * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt:
        * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalid-inner-rules-expected.txt:
        * Source/WebCore/css/CSSGroupingRule.cpp:
        (WebCore::CSSGroupingRule::insertRule):
        (WebCore::CSSGroupingRule::prepareChildStyleRuleForNesting):
        * Source/WebCore/css/CSSGroupingRule.h:
        * Source/WebCore/css/CSSRule.cpp:
        (WebCore::CSSRule::hasStyleRuleAncestor const):
        (WebCore::CSSRule::prepareChildStyleRuleForNesting):
        * Source/WebCore/css/CSSRule.h:
        * Source/WebCore/css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::setSelectorText):
        (WebCore::CSSStyleRule::cssTextForDeclsAndRules const):
        (WebCore::CSSStyleRule::insertRule):
        (WebCore::CSSStyleRule::deleteRule):
        * Source/WebCore/css/CSSStyleSheet.cpp:
        (WebCore::CSSStyleSheet::prepareChildStyleRuleForNesting):
        * Source/WebCore/css/CSSStyleSheet.h:
        * Source/WebCore/css/StyleRule.cpp:
        (WebCore::m_originalSelectorList):
        (WebCore::StyleRuleWithNesting::StyleRuleWithNesting):
        (WebCore::StyleRuleWithNesting::create):
        * Source/WebCore/css/StyleRule.h:
        (WebCore::StyleRuleBase::isStyleRule const):
        * Source/WebCore/css/StyleSheetContents.h:
        * Source/WebCore/css/parser/CSSParser.cpp:
        (WebCore::CSSParser::parseRule):
        * Source/WebCore/css/parser/CSSParser.h:
        * Source/WebCore/css/parser/CSSParserImpl.cpp:
        (WebCore::CSSParserImpl::CSSParserImpl):
        (WebCore::CSSParserImpl::parseRule):
        (WebCore::CSSParserImpl::consumeDeclarationListOrStyleBlockHelper):
        * Source/WebCore/css/parser/CSSParserImpl.h:
        (WebCore::CSSParserImpl::isNestedContext):
        * Source/WebCore/css/parser/CSSSelectorParser.cpp:
        (WebCore::CSSSelectorParser::consumeNestedSelectorList):

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


  Commit: 751d6beaf7106082a670f00ee4d10ac4180c5595
      https://github.com/WebKit/WebKit/commit/751d6beaf7106082a670f00ee4d10ac4180c5595
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml

  Log Message:
  -----------
  Cherry-pick afcf053c3394. rdar://problem/106825062

    [CSS] Enable CSS Nesting feature
    https://bugs.webkit.org/show_bug.cgi?id=254767
    rdar://106825062

    Reviewed by Brent Fulgham.

    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:

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


  Commit: 75147fe44f702edcb22caa7541a383ef0382b4ce
      https://github.com/WebKit/WebKit/commit/75147fe44f702edcb22caa7541a383ef0382b4ce
  Author: Razvan Caliman <rcaliman at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M LayoutTests/http/tests/inspector/network/resource-mime-type-expected.txt
    M LayoutTests/http/tests/inspector/network/resource-mime-type.html
    M Source/WebCore/inspector/agents/InspectorPageAgent.cpp
    M Source/WebInspectorUI/UserInterface/Views/ResourceClusterContentView.js

  Log Message:
  -----------
  Cherry-pick 9b097d0ecda3. rdar://problem/104210977

    Web Inspector: Web inspector become unresponsive after opening online photos
    https://bugs.webkit.org/show_bug.cgi?id=254602

    Reviewed by Patrick Angle and Devin Rousso.

    When the inspected main resource is an image, it is treated as a document regardless of its MIME type.

    Its resource type is incorrectly assigned on the backend as `InspectorPageAgent::Document`.

    See: `InspectorPageAgent::inspectorResourceType(CachedResource::Type type)`
    See: `CachedResourceLoader::requestMainResource(CachedResourceRequest&& request)`

    The Sources panel on the frontend represents resources of the type
    `WI.Resource.Type.Document` with a `WI.TextResourceContentView`.

    The payload of the image resource response is a blob of base64 text.

    When inspecting standalone images, Web Inspector passes this giant single-line blob of text
    to a `WI.SourceCodeTextEditor` where it runs expensive operations on the main thread
    and blocks it for long periods of time it if there's a lot of content.

    This patch modifies `InspectorPageAgent` on the backend to return
    the appropriate resource type for images, `InspectorPageAgent::ImageResource`,
    even when they are the main resource.

    This way, the frontend can represent images with the appropriate view: `WI.ImageResourceContentView`.

    * LayoutTests/http/tests/inspector/network/resource-mime-type-expected.txt:
    * LayoutTests/http/tests/inspector/network/resource-mime-type.html:

    Update test for resource type expectations when the document is an image.

    * Source/WebCore/inspector/agents/InspectorPageAgent.cpp:
    (WebCore::InspectorPageAgent::inspectorResourceType):

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


  Commit: 0663c355189c05a5fb53b0686d6bb07fa5588a63
      https://github.com/WebKit/WebKit/commit/0663c355189c05a5fb53b0686d6bb07fa5588a63
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-style-change-triggers-layout-block-start-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-style-change-triggers-layout-block-start.html
    R LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-dynamic-expected.txt
    R LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-dynamic.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end-ref.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-ref.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start-ref.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end-ref.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-ref.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start-expected.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start-ref.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline.html
    M Source/WebCore/rendering/style/RenderStyle.cpp

  Log Message:
  -----------
  Cherry-pick 226684b758a0. rdar://problem/107108810

    [margin-trim] Trigger layout on margin-trim style change.
    https://bugs.webkit.org/show_bug.cgi?id=254300
    rdar://107108810

    Reviewed by Tim Nguyen.

    When the value of the margin-trim property changes on a box, it
    should trigger layout again so that the children can be relaid out
    properly. This patch takes the first step and has rareDataChangeRequiresLayout
    return true when the box's old margin-trim value is not the same as
    the new one. The 3 container types in which margin-trim is applicable to
    (flex, grid, and block) may need to have their styleDidChange function
    adjusted to actually relayout their children properly, but that will be
    done in a separate patch for each layout type.

    However, we can verify that this change works by attempting to trigger
    this logic for flexboxes. This is because when a flexbox goes through
    layout again, it will set the main axis margins for each of its children
    inside RenderFlexibleBox::prepareOrderIteratorAndMargins before it goes
    through and lays them out. Since the main axis margins for each child
    will be step at the beginning of flex layout each time it happens, the
    trimming logic will also apply each time. The cross axis margins will
    need to be handled and verified separately once the change is made to
    RenderFlexibleBox::styleDidChange.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-style-change-triggers-layout-block-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-style-change-triggers-layout-block-start.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-dynamic.html.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-start-dynamic-expected.txt: Removed.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end-ref.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-end.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-ref.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start-ref.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block-start.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-column-style-change-triggers-layout-block.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end-ref.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-end.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-ref.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start-expected.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start-ref.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline-start.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/flex-row-style-change-triggers-layout-inline.html: Added.
    * Source/WebCore/rendering/style/RenderStyle.cpp:
    (WebCore::rareDataChangeRequiresLayout):

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


  Commit: 5deac3e4e788c41718b313b7836de25c2fd88783
      https://github.com/WebKit/WebKit/commit/5deac3e4e788c41718b313b7836de25c2fd88783
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M Source/WebCore/accessibility/AXObjectCache.cpp

  Log Message:
  -----------
  Cherry-pick 7d93b07962d5. rdar://problem/103456792

    AXObjectCache::characterOffsetFromVisiblePosition can deref a nullptr when underlying renderer is destroyed
    https://bugs.webkit.org/show_bug.cgi?id=254798
    rdar://103456792

    Reviewed by Chris Fleizach.

    AXObjectCache::characterOffsetFromVisiblePosition creates an AX object from the node backing a VisiblePosition
    at the beginning of the method. Then, it does non-trivial work that could cause the renderer backing the AX object
    to be destroyed, and afterwards unconditionally deferences that AX object's node() at the end of the method. This
    can cause a null pointer dereference crash (because AccessibilityRenderObject::node() depends on a non-null renderer),
    and is generally poor pointer hygiene.

    With this patch, we now keep the VisiblePosition's node in a `Ref<Node>` and re-use it at the end of the method to prevent a crash.

    I could not reproduce this crash myself in the browser or in a testcase, so this is a speculative fix based on crash reports.

    * Source/WebCore/accessibility/AXObjectCache.cpp:
    (WebCore::AXObjectCache::characterOffsetFromVisiblePosition):

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


  Commit: 378d8358995c8766298b2dc6e6e73d90cc1b3031
      https://github.com/WebKit/WebKit/commit/378d8358995c8766298b2dc6e6e73d90cc1b3031
  Author: Wenson Hsieh <wenson_hsieh at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm

  Log Message:
  -----------
  Cherry-pick b59d14452d4b. rdar://problem/107301827

    [iOS] Rakuten cellular data activation portal is sometimes clipped when presented in a web sheet
    https://bugs.webkit.org/show_bug.cgi?id=254846
    rdar://107301827

    Reviewed by Chris Dumez.

    When activating a Rakuten cellular plan on Apple Watch via the Watch app on iOS 16.4, the web view
    can end up in a state where both `vw` and `vh` units are always 0. This causes main, scrollable
    container element with `height: 100vh;` on the page to become much, much shorter than intended,
    which makes interacting with the activation portal difficult.

    Some more important context: in the Watch app, the web view starts out at size `(0, 0)`, and is
    resized to fill the entire window only after the first navigation is complete. Rakuten's portal
    redirects cross-origin from a landing page, such that this size adjustment races against the second
    cross-origin navigation (which initiates a process swap).

    While the immediate cause of this is still unknown, the root cause is that during a process swap
    (in this particular case, from <login.account.rakuten.com> to <entitlement.devicem.rm-n.jp>), it's
    possible for UIKit to call `-setFrame:` with the first non-empty frame after the new web process has
    been launched and `WebPageCreationParameters` are created, but before the process swap actually
    finishes. This causes:

    1. A viewport size of `(0, 0)` to be sent to the newly created page via `WebPageCreationParameters`.
    2. The newly updated, non-zero viewport size to be sent to the *old* page, via an IPC message.

    As such, the new webpage is stuck in a state where it thinks the viewport size is still `(0, 0)`. To
    fix this, we simply propagate the new viewport layout size to a provisional page upon process swap.

    Test: ProcessSwap.ChangeViewSizeDuringNavigationActionPolicyDecision

    * Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:
    (WebKit::WebPageProxy::setViewportConfigurationViewLayoutSize):
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

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


  Commit: e9ffe66ebf40d542d0461b14cc75ad89ed916f2c
      https://github.com/WebKit/WebKit/commit/e9ffe66ebf40d542d0461b14cc75ad89ed916f2c
  Author: Richard Robinson <richard_robinson2 at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M Source/WebCore/editing/EditorCommand.cpp
    M Source/WebCore/page/EventHandler.h
    M Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm

  Log Message:
  -----------
  Cherry-pick f3426a32f875. rdar://problem/107214002

    Keyboard scrolling in WebKit with Page Up / Down is no longer smooth
    https://bugs.webkit.org/show_bug.cgi?id=254624
    rdar://107214002

    Reviewed by Simon Fraser.

    In `executeScrollPageForward` and `executeScrollPageBackward`, the check for `isKeyRepeat` would
    always return `false`, since the passed in `Event*` was always `nullptr`. Therefore, keyboard
    scrolling with Page Up or Page Down would not use the new smooth keyboard scrolling mechanism.

    This PR fixes this by propogating a bool value in `EventHandler` if the associated event is a key
    repeat or not. This information is passed in `executeKeypressCommandsInternal`, which is then read
    within the `executeScrollPage*` functions (and then immediately reset to preserve state).

    * Source/WebCore/editing/EditorCommand.cpp:
    (WebCore::executeScrollPageBackward):
    (WebCore::executeScrollPageForward):
    * Source/WebCore/page/EventHandler.h:
    (WebCore::EventHandler::setProcessingKeyRepeatForPotentialScroll):
    (WebCore::EventHandler::isProcessingKeyRepeatForPotentialScroll const):
    * Source/WebKit/WebProcess/WebPage/mac/WebPageMac.mm:
    (WebKit::WebPage::executeKeypressCommandsInternal):

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


  Commit: c03f6fa793f847cf8f7bbed06542ff29e00f8f3b
      https://github.com/WebKit/WebKit/commit/c03f6fa793f847cf8f7bbed06542ff29e00f8f3b
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    A LayoutTests/fast/inline/crash-when-floats-are-pushed-down-expected.txt
    A LayoutTests/fast/inline/crash-when-floats-are-pushed-down.html
    M Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.cpp

  Log Message:
  -----------
  Cherry-pick 9e694b9ad56e. rdar://problem/107406900

    [IFC] Floats pushed down to LayoutUnit max may trigger unexpected line state
    https://bugs.webkit.org/show_bug.cgi?id=254891
    <rdar://107406900>

    Reviewed by Antti Koivisto.

    1. When we reach LayoutUnit (max) boundary, floats start getting piled up (can't place them below LayoutUnit::max). Handle this unexpected state by not keep finding floats.
    2. Due to floating point representation, we may end up with the same value after +1.f

    * LayoutTests/fast/inline/crash-when-floats-are-pushed-down-expected.txt: Added.
    * LayoutTests/fast/inline/crash-when-floats-are-pushed-down.html: Added.
    * Source/WebCore/layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
    (WebCore::Layout::InlineFormattingGeometry::logicalTopForNextLine const):
    (WebCore::Layout::InlineFormattingGeometry::floatConstraintsForLine const):

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


  Commit: 596a410d508e514ee111d16b8108550d4a0e192f
      https://github.com/WebKit/WebKit/commit/596a410d508e514ee111d16b8108550d4a0e192f
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalid-inner-rules-expected.txt
    M Source/WebCore/css/CSSGroupingRule.cpp
    M Source/WebCore/css/CSSGroupingRule.h
    M Source/WebCore/css/CSSRule.cpp
    M Source/WebCore/css/CSSRule.h
    M Source/WebCore/css/CSSStyleRule.cpp
    M Source/WebCore/css/CSSStyleSheet.cpp
    M Source/WebCore/css/CSSStyleSheet.h
    M Source/WebCore/css/StyleRule.cpp
    M Source/WebCore/css/StyleRule.h
    M Source/WebCore/css/StyleSheetContents.h
    M Source/WebCore/css/parser/CSSParser.cpp
    M Source/WebCore/css/parser/CSSParser.h
    M Source/WebCore/css/parser/CSSParserImpl.cpp
    M Source/WebCore/css/parser/CSSParserImpl.h
    M Source/WebCore/css/parser/CSSSelectorParser.cpp

  Log Message:
  -----------
  Revert aa76afc8e7b4. rdar://107322119

Unreviewed revert.

Broke the build.

Canonical link: https://commits.webkit.org/259548.550@safari-7615-branch


  Commit: e34edaa74575ee13efcebdb7672b949a743ab32a
      https://github.com/WebKit/WebKit/commit/e34edaa74575ee13efcebdb7672b949a743ab32a
  Author: Michael Saboff <msaboff at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    A JSTests/stress/string-replace-regexp-matchBOL-correct-advancing.js
    M Source/JavaScriptCore/runtime/StringPrototype.cpp
    M Source/JavaScriptCore/yarr/YarrInterpreter.cpp

  Log Message:
  -----------
  [JSC] RegExpGlobalData::performMatch issue leading to OOB read
https://bugs.webkit.org/show_bug.cgi?id=254930
rdar://107436732

Reviewed by Alexey Shvayka.

Fixed two issues:
1) In YarrInterpreter.cpp::matchAssertionBOL() we were advancing the string position for non-BMP
   characters.  Since it is an assertion, we shouldn't advance the character position.
   Made the same fix to matchAssertionEOL().
2) In StringPrototype.cpp::replaceUsingRegExpSearch(), we need to advance past both elements of
   a non-BMP character for the case where the RegExp match is empty.

* JSTests/stress/string-replace-regexp-matchBOL-correct-advancing.js: New test.
* Source/JavaScriptCore/runtime/StringPrototype.cpp:
(JSC::replaceUsingRegExpSearch):
* Source/JavaScriptCore/yarr/YarrInterpreter.cpp:
(JSC::Yarr::Interpreter::InputStream::readCheckedDontAdvance):
(JSC::Yarr::Interpreter::matchAssertionBOL):
(JSC::Yarr::Interpreter::matchAssertionEOL):

Canonical link: https://commits.webkit.org/259548.551@safari-7615-branch


  Commit: 58db407590faab5b82006a5c1e1e30f26c837ef5
      https://github.com/WebKit/WebKit/commit/58db407590faab5b82006a5c1e1e30f26c837ef5
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M metadata/commit_classes.json

  Log Message:
  -----------
  Cherry-pick 262515 at main (5ee4d1e42570). rdar://107560898

    [Versioning] Expand eligible versioning commit messages
    https://bugs.webkit.org/show_bug.cgi?id=254921
    rdar://107560898

    Reviewed by Aakash Jain.

    * metadata/commit_classes.json: Expand elibible versioning commit messages,
    restrict versioning commits to modifying version files.

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

Canonical link: https://commits.webkit.org/259548.552@safari-7615-branch


  Commit: 752331d64acbc95ac4a9f31bd9042390ab6bbf56
      https://github.com/WebKit/WebKit/commit/752331d64acbc95ac4a9f31bd9042390ab6bbf56
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/publish.py

  Log Message:
  -----------
  Cherry-pick 262384 at main (d214979f6147). rdar://106390107

    [git-webkit] Handle publishing the current branch
    https://bugs.webkit.org/show_bug.cgi?id=253549
    rdar://106390107

    Reviewed by Elliott Williams.

    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py:
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/publish.py:
    (Publish.branches_on): Specify format for `git branch` to prevent
    anotation of the current branch.

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

Canonical link: https://commits.webkit.org/259548.553@safari-7615-branch


  Commit: 1127b40d4bd73b7cbee2f8cf9095bddb029654f9
      https://github.com/WebKit/WebKit/commit/1127b40d4bd73b7cbee2f8cf9095bddb029654f9
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-04-03 (Mon, 03 Apr 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/cherry_pick.py

  Log Message:
  -----------
  Cherry-pick 262406 at main (a07fdbb0871f). rdar://107447403

    [git-webkit] Forward environment to cherry-pick
    https://bugs.webkit.org/show_bug.cgi?id=254786
    rdar://107447403

    Reviewed by Aakash Jain.

    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/cherry_pick.py:
    (CherryPick.main): Forward environment variables to `git cherry-pick`

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

Canonical link: https://commits.webkit.org/259548.554@safari-7615-branch


  Commit: 707d4fb8838c440f8315b9a505110c8fa45186be
      https://github.com/WebKit/WebKit/commit/707d4fb8838c440f8315b9a505110c8fa45186be
  Author: Chirag M Shah <chirag_m_shah at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    A LayoutTests/fast/rendering/glyph-display-list-cache-crash-expected.txt
    A LayoutTests/fast/rendering/glyph-display-list-cache-crash.html
    M Source/WebCore/rendering/GlyphDisplayListCache.h

  Log Message:
  -----------
  Fix equals() for GlyphDisplayListCacheEntryHash
https://bugs.webkit.org/show_bug.cgi?id=254941
rdar://107416408

Reviewed by Cameron McCormack.

This change fixes a heap use after free in GlyphDisplayListCache, which
happens when the destructor of GlyphDisplayListCacheEntry tries to
remove this from the HashSet<GlyphDisplayListCacheEntry*>. The change
fixes the security issue by correcting the equal() implementation, which
now only checks for pointer equality.

* LayoutTests/fast/rendering/glyph-display-list-cache-crash-expected.txt: Added.
* LayoutTests/fast/rendering/glyph-display-list-cache-crash.html: Added.
* Source/WebCore/rendering/GlyphDisplayListCache.h:
(WebCore::GlyphDisplayListCacheEntryHash::equal):

Canonical link: https://commits.webkit.org/259548.555@safari-7615-branch


  Commit: 95e238a05cfe35d0332fc2006615e9845e979cdb
      https://github.com/WebKit/WebKit/commit/95e238a05cfe35d0332fc2006615e9845e979cdb
  Author: Alexey Shvayka <ashvayka at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/selectors/user-invalid-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/selectors/user-invalid.html
    M LayoutTests/imported/w3c/web-platform-tests/css/selectors/user-valid-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/selectors/user-valid.html
    A LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/selectors/user-invalid-expected.txt
    A LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/selectors/user-valid-expected.txt
    M Source/WebCore/html/HTMLFormControlElement.h

  Log Message:
  -----------
  Cherry-pick bc8d5b0f582f. rdar://problem/107300848

    REGRESSION(258561 at main): :user-valid/:user-invalid stopped working
    https://bugs.webkit.org/show_bug.cgi?id=254571
    <rdar://problem/107300848>

    Reviewed by Tim Nguyen.

    This change adds missing virtual method overrides to fix :user-valid / :user-invalid
    pseudoclasses, similar to those we have for :valid / :invalid.
    They are necessary because ValidatedFormListedElement doesn't inherit from Element.

    * LayoutTests/imported/w3c/web-platform-tests/css/selectors/user-invalid-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/css/selectors/user-invalid.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/selectors/user-valid-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/css/selectors/user-valid.html:
    * LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/selectors/user-invalid-expected.txt:
    * LayoutTests/platform/ios-wk2/imported/w3c/web-platform-tests/css/selectors/user-valid-expected.txt:
    * Source/WebCore/html/HTMLFormControlElement.h:

    Co-authored-by: Tim Nguyen <ntim at apple.com>

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

Identifier: 259548.556 at safari-7615-branch


  Commit: 643e629706993fa88fc68edf2639d737ef50d0de
      https://github.com/WebKit/WebKit/commit/643e629706993fa88fc68edf2639d737ef50d0de
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalid-inner-rules-expected.txt
    M Source/WebCore/css/CSSGroupingRule.cpp
    M Source/WebCore/css/CSSGroupingRule.h
    M Source/WebCore/css/CSSRule.cpp
    M Source/WebCore/css/CSSRule.h
    M Source/WebCore/css/CSSStyleRule.cpp
    M Source/WebCore/css/CSSStyleSheet.cpp
    M Source/WebCore/css/CSSStyleSheet.h
    M Source/WebCore/css/StyleRule.cpp
    M Source/WebCore/css/StyleRule.h
    M Source/WebCore/css/StyleSheetContents.h
    M Source/WebCore/css/parser/CSSParser.cpp
    M Source/WebCore/css/parser/CSSParser.h
    M Source/WebCore/css/parser/CSSParserImpl.cpp
    M Source/WebCore/css/parser/CSSParserImpl.h
    M Source/WebCore/css/parser/CSSSelectorParser.cpp

  Log Message:
  -----------
  Cherry-pick 262394 at main (90d00dc15a7b). rdar://107322119

    [CSS] Implement CSSOM insertRule() on StyleRule
    https://bugs.webkit.org/show_bug.cgi?id=254601
    rdar://107322119

    Reviewed by Antti Koivisto.

    This patch handles the transformation of old-school StyleRule object (without a children vector)
    to a StyleRuleWithNesting object when necessary.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalid-inner-rules-expected.txt:
    * Source/WebCore/css/CSSGroupingRule.cpp:
    (WebCore::CSSGroupingRule::insertRule):
    (WebCore::CSSGroupingRule::prepareChildStyleRuleForNesting):
    * Source/WebCore/css/CSSGroupingRule.h:
    * Source/WebCore/css/CSSRule.cpp:
    (WebCore::CSSRule::hasStyleRuleAncestor const):
    (WebCore::CSSRule::prepareChildStyleRuleForNesting):
    * Source/WebCore/css/CSSRule.h:
    * Source/WebCore/css/CSSStyleRule.cpp:
    (WebCore::CSSStyleRule::setSelectorText):
    (WebCore::CSSStyleRule::cssTextForDeclsAndRules const):
    (WebCore::CSSStyleRule::insertRule):
    (WebCore::CSSStyleRule::deleteRule):
    * Source/WebCore/css/CSSStyleSheet.cpp:
    (WebCore::CSSStyleSheet::prepareChildStyleRuleForNesting):
    * Source/WebCore/css/CSSStyleSheet.h:
    * Source/WebCore/css/StyleRule.cpp:
    (WebCore::m_originalSelectorList):
    (WebCore::StyleRuleWithNesting::StyleRuleWithNesting):
    (WebCore::StyleRuleWithNesting::create):
    * Source/WebCore/css/StyleRule.h:
    (WebCore::StyleRuleBase::isStyleRule const):
    * Source/WebCore/css/StyleSheetContents.h:
    * Source/WebCore/css/parser/CSSParser.cpp:
    (WebCore::CSSParser::parseRule):
    * Source/WebCore/css/parser/CSSParser.h:
    * Source/WebCore/css/parser/CSSParserImpl.cpp:
    (WebCore::CSSParserImpl::CSSParserImpl):
    (WebCore::CSSParserImpl::parseRule):
    (WebCore::CSSParserImpl::consumeDeclarationListOrStyleBlockHelper):
    * Source/WebCore/css/parser/CSSParserImpl.h:
    (WebCore::CSSParserImpl::isNestedContext):
    * Source/WebCore/css/parser/CSSSelectorParser.cpp:
    (WebCore::CSSSelectorParser::consumeNestedSelectorList):

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

Canonical link: https://commits.webkit.org/259548.557@safari-7615-branch


  Commit: 630674e687276e0a124033f6611a1139737d1b3c
      https://github.com/WebKit/WebKit/commit/630674e687276e0a124033f6611a1139737d1b3c
  Author: Robert Jenner <Jenner at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M Source/ThirdParty/libwebrtc/Configurations/Base.xcconfig

  Log Message:
  -----------
  Cherry-pick 262552 at main (951180b3bdc6). rdar://107582190

    iOS 16.4 and macOS Ventura 13.3 build fix for third-party (254951)
    https://bugs.webkit.org/show_bug.cgi?id=254951
    rdar://107582190

    Reviewed by Jonathan Bedard and David Kilzer.

    Build fix to ignore set, but un-used variables that cause build failures in third-party.

    * Source/ThirdParty/libwebrtc/Configurations/Base.xcconfig:

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

Canonical link: https://commits.webkit.org/259548.558@safari-7615-branch


  Commit: 2faf9603a854696119639cddbe9dede27af9885a
      https://github.com/WebKit/WebKit/commit/2faf9603a854696119639cddbe9dede27af9885a
  Author: Robert Jenner <jenner at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M Source/JavaScriptCore/API/ObjCCallbackFunction.mm
    M Source/WebCore/editing/cocoa/DataDetection.mm

  Log Message:
  -----------
  Cherry-pick 262555 at main (6d90410e92df). rdar://107582190

    Fix JSC and WebCore build failures for iOS16.4 and macOS Ventura 13.3
    https://bugs.webkit.org/show_bug.cgi?id=254951
    rdar://107582190

    Reviewed by David Kilzer.

    Build fix to remove set, but unused variables in JSC and WebCore.

    * Source/JavaScriptCore/API/ObjCCallbackFunction.mm:
    (objCCallbackFunctionForInvocation):
    * Source/WebCore/editing/cocoa/DataDetection.mm:
    (WebCore::buildQuery):

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

Canonical link: https://commits.webkit.org/259548.559@safari-7615-branch


  Commit: 96ee5835ab950dd2ec82119637f3583cbe1e1faa
      https://github.com/WebKit/WebKit/commit/96ee5835ab950dd2ec82119637f3583cbe1e1faa
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

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

  Log Message:
  -----------
  RemoteRenderingBackend::moveToImageBuffer can be called multiple times simultaneously.
https://bugs.webkit.org/show_bug.cgi?id=254367
<rdar://106972794>

Reviewed by Kimmo Kinnunen.

It adds locking to RemoteSerializedImageBuffer, so that only one thread can take ownership of the image buffer backend.

* Source/WebKit/GPUProcess/graphics/RemoteImageBuffer.h:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::moveToImageBuffer):

Canonical link: https://commits.webkit.org/259548.560@safari-7615-branch


  Commit: ad4886e62132af96757f88cd5b8eb56cb4d42002
      https://github.com/WebKit/WebKit/commit/ad4886e62132af96757f88cd5b8eb56cb4d42002
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/DecomposedGlyphs.h
    M Source/WebCore/platform/graphics/Font.cpp
    M Source/WebCore/platform/graphics/ImageBuffer.h
    M Source/WebCore/platform/graphics/NativeImage.h
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h
    M Tools/TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp

  Log Message:
  -----------
  Cherry-pick 262486 at main (30500262a0f1). rdar://problem/105752952

    Use generateThreadSafe for RenderingResourceIdentifier.
    https://bugs.webkit.org/show_bug.cgi?id=254796
    <rdar://105752952>

    Reviewed by Simon Fraser.

    We can allocate ImageBuffers from a worker thread, so we need to use the thread safe allocator
    for all RenderingResourceIdentifiers.

    * Source/WebCore/platform/graphics/DecomposedGlyphs.h:
    * Source/WebCore/platform/graphics/Font.cpp:
    (WebCore::Font::renderingResourceIdentifier const):
    * Source/WebCore/platform/graphics/ImageBuffer.h:
    * Source/WebCore/platform/graphics/NativeImage.h:
    * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
    * Tools/TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:
    (TestWebKitAPI::TEST):

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

Canonical link: https://commits.webkit.org/259548.561@safari-7615-branch


  Commit: f5a2e154fe9ec69bec27e060d7353027729e1e5b
      https://github.com/WebKit/WebKit/commit/f5a2e154fe9ec69bec27e060d7353027729e1e5b
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm

  Log Message:
  -----------
  Cherry-pick fb964650f526. rdar://problem/107485654

    REGRESSION(262311 at main): Netflix video is blank
    https://bugs.webkit.org/show_bug.cgi?id=254841
    rdar://107485654

    Reviewed by Eric Carlson and Simon Fraser.

    Netflix hits an edge case in -[VideoLayerRemoteCocoa resolveBounds] where the initial layer
    bounds of the video content layer are 0x0, and therefore the early return if the bounds match
    videoLayerFrame mean that the resize never happens and videoLayerFrame is never set to a non-empty
    value.

    Don't bail out of -resolveBounds if self.videoLayerFrame is empty.

    * Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:
    (-[WKVideoLayerRemote resolveBounds]):

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

Identifier: 259548.562 at safari-7615-branch


  Commit: 1e9e2d92b63ca35b2ff858bd31113f6e1cd8d774
      https://github.com/WebKit/WebKit/commit/1e9e2d92b63ca35b2ff858bd31113f6e1cd8d774
  Author: Miguel Salinas <miguel_salinas at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M Source/WebKit/UIProcess/ProcessThrottler.cpp
    M Source/WebKit/UIProcess/ProcessThrottler.h
    M Source/WebKit/UIProcess/WebProcessProxy.cpp

  Log Message:
  -----------
  Cherry-pick cf8a67802961. rdar://problem/106070798

    [macOS] Stop ProcessThrottler for dead processes
    https://bugs.webkit.org/show_bug.cgi?id=254838
    rdar://106070798

    Reviewed by Chris Dumez.

    We have a bug report where the ProcessThrottler continues to take
    assertions on a process after it's been terminated. Usually when a
    process is terminated, its corresponding WebProcessProxy and
    ProcessThrottler are destroyed so this isn't an issue. However, when a
    process is killed by our background CPU usage monitor the
    WebProcessProxy and ProcessThrottler are not destroyed until we lazily
    relaunch the process. This fix tells the ProcessThrottler that we've
    disconnected from our process so that it stops trying to take process
    assertions.

    * Source/WebKit/UIProcess/ProcessThrottler.cpp:
    (WebKit::ProcessThrottler::didDisconnectFromProcess):
    * Source/WebKit/UIProcess/ProcessThrottler.h:
    * Source/WebKit/UIProcess/WebProcessProxy.cpp:
    (WebKit::WebProcessProxy::shutDown):

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

Identifier: 259548.563 at safari-7615-branch


  Commit: 3bf61fd64964ab0b6f25cec2a79f5cdb1bdb7f18
      https://github.com/WebKit/WebKit/commit/3bf61fd64964ab0b6f25cec2a79f5cdb1bdb7f18
  Author: Kimmo Kinnunen <kkinnunen at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M Source/ThirdParty/ANGLE/.style.yapf
    M Source/ThirdParty/ANGLE/ANGLE.plist
    M Source/ThirdParty/ANGLE/BUILD.gn
    M Source/ThirdParty/ANGLE/DEPS
    M Source/ThirdParty/ANGLE/additional_readme_paths.json
    M Source/ThirdParty/ANGLE/build_overrides/build.gni
    M Source/ThirdParty/ANGLE/changes.diff
    M Source/ThirdParty/ANGLE/doc/ExtensionSupport.md
    M Source/ThirdParty/ANGLE/extensions/ANGLE_shader_pixel_local_storage.txt
    A Source/ThirdParty/ANGLE/extensions/ANGLE_stencil_texturing.txt
    M Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_metal_shared_event_sync.txt
    M Source/ThirdParty/ANGLE/extensions/EGL_ANGLE_platform_angle_device_id.txt
    M Source/ThirdParty/ANGLE/gni/angle.gni
    M Source/ThirdParty/ANGLE/include/EGL/eglext_angle.h
    M Source/ThirdParty/ANGLE/include/GLES2/gl2ext_angle.h
    M Source/ThirdParty/ANGLE/include/platform/FeaturesD3D_autogen.h
    M Source/ThirdParty/ANGLE/include/platform/FeaturesMtl_autogen.h
    M Source/ThirdParty/ANGLE/include/platform/FeaturesVk_autogen.h
    M Source/ThirdParty/ANGLE/include/platform/d3d_features.json
    M Source/ThirdParty/ANGLE/include/platform/mtl_features.json
    M Source/ThirdParty/ANGLE/include/platform/vk_features.json
    M Source/ThirdParty/ANGLE/infra/specs/angle.json
    M Source/ThirdParty/ANGLE/infra/specs/generate_test_spec_json.py
    M Source/ThirdParty/ANGLE/infra/specs/mixins.pyl
    M Source/ThirdParty/ANGLE/infra/specs/test_suite_exceptions.pyl
    M Source/ThirdParty/ANGLE/infra/specs/test_suites.pyl
    M Source/ThirdParty/ANGLE/infra/specs/waterfalls.pyl
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_features.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_format.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_load_functions_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_shader_translator.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/D3D11_format.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/DXGI_format.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Extension_files.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_copy_conversion_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_format_map.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GLenum_value_to_string_map.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Metal_default_shaders.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Metal_format_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/OpenGL_dispatch_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Test_spec_JSON.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_format.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_internal_shader_programs.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/interpreter_utils.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/packed_enum.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/restricted_traces.json
    M Source/ThirdParty/ANGLE/scripts/egl_angle_ext.xml
    M Source/ThirdParty/ANGLE/scripts/entry_point_packed_gl_enums.json
    M Source/ThirdParty/ANGLE/scripts/export_targets.py
    M Source/ThirdParty/ANGLE/scripts/extension_data/intel_630_linux.json
    M Source/ThirdParty/ANGLE/scripts/extension_data/intel_630_win10.json
    M Source/ThirdParty/ANGLE/scripts/extension_data/nvidia_1660_linux.json
    M Source/ThirdParty/ANGLE/scripts/extension_data/nvidia_1660_win10.json
    M Source/ThirdParty/ANGLE/scripts/extension_data/pixel_4_android_11.json
    M Source/ThirdParty/ANGLE/scripts/extension_data/pixel_6_android_13.json
    M Source/ThirdParty/ANGLE/scripts/extension_data/swiftshader_linux.json
    M Source/ThirdParty/ANGLE/scripts/extension_data/swiftshader_win10.json
    M Source/ThirdParty/ANGLE/scripts/generate_android_bp.py
    M Source/ThirdParty/ANGLE/scripts/generate_entry_points.py
    M Source/ThirdParty/ANGLE/scripts/gl_angle_ext.xml
    M Source/ThirdParty/ANGLE/scripts/registry_xml.py
    M Source/ThirdParty/ANGLE/scripts/roll_aosp.sh
    M Source/ThirdParty/ANGLE/scripts/update_extension_data.py
    M Source/ThirdParty/ANGLE/src/angle_commit.h
    M Source/ThirdParty/ANGLE/src/common/ANGLEShaderProgramVersion.h
    M Source/ThirdParty/ANGLE/src/common/FastVector.h
    M Source/ThirdParty/ANGLE/src/common/FastVector_unittest.cpp
    M Source/ThirdParty/ANGLE/src/common/FixedQueue.h
    M Source/ThirdParty/ANGLE/src/common/FixedQueue_unittest.cpp
    M Source/ThirdParty/ANGLE/src/common/PackedGLEnums_autogen.cpp
    M Source/ThirdParty/ANGLE/src/common/PackedGLEnums_autogen.h
    M Source/ThirdParty/ANGLE/src/common/PoolAlloc.cpp
    M Source/ThirdParty/ANGLE/src/common/angleutils.h
    M Source/ThirdParty/ANGLE/src/common/backtrace_utils.h
    M Source/ThirdParty/ANGLE/src/common/entry_points_enum_autogen.cpp
    M Source/ThirdParty/ANGLE/src/common/entry_points_enum_autogen.h
    M Source/ThirdParty/ANGLE/src/common/frame_capture_utils_autogen.cpp
    M Source/ThirdParty/ANGLE/src/common/frame_capture_utils_autogen.h
    M Source/ThirdParty/ANGLE/src/common/gl_enum_utils_autogen.cpp
    M Source/ThirdParty/ANGLE/src/common/mathutil.h
    M Source/ThirdParty/ANGLE/src/common/mathutil_unittest.cpp
    M Source/ThirdParty/ANGLE/src/common/packed_gl_enums.json
    M Source/ThirdParty/ANGLE/src/common/platform.h
    M Source/ThirdParty/ANGLE/src/compiler/preprocessor/DirectiveHandlerBase.h
    M Source/ThirdParty/ANGLE/src/compiler/preprocessor/DirectiveParser.cpp
    M Source/ThirdParty/ANGLE/src/compiler/preprocessor/DirectiveParser.h
    M Source/ThirdParty/ANGLE/src/compiler/preprocessor/Preprocessor.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/DirectiveHandler.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/DirectiveHandler.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/ExtensionBehavior.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ExtensionBehavior.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/ResourcesHLSL.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TextureFunctionHLSL.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorGLSL.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ValidateAST.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ValidateAST.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/glslang.l
    M Source/ThirdParty/ANGLE/src/compiler/translator/glslang_lex_autogen.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/PruneNoOps.cpp
    M Source/ThirdParty/ANGLE/src/image_util/imageformats.cpp
    M Source/ThirdParty/ANGLE/src/image_util/loadimage.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/Caps.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Context_gles_ext_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/EGLSync.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/ErrorStrings.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Image.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Image.h
    M Source/ThirdParty/ANGLE/src/libANGLE/PixelLocalStorage.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/State.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/State.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Texture.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/angletypes.h
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/FrameCapture.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/FrameCapture.h
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_gl_4_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_gl_4_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_params.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/serialize.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/formatutils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/gles_extensions_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/gles_extensions_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format.py
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Renderer11.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/StateManager11.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/TextureStorage11.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/texture_format_data.json
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/renderer9_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/FramebufferGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ProgramGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/TextureGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/cgl/WindowSurfaceCGL.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/formatutilsgl.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/load_functions_data.json
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/load_functions_table_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/SyncMtl.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/SyncMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/TextureMtl.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/TextureMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_format_map.json
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_format_table_autogen.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_resources.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_resources.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/shaders/mtl_default_shaders_src_autogen.metal
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/renderer_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/renderer_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/BufferVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/BufferVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandProcessor.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandProcessor.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DisplayVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DisplayVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ImageVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ImageVk.h
    A Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/MemoryTracking.cpp
    A Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/MemoryTracking.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ProgramExecutableVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderTargetVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderbufferVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RenderbufferVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ResourceVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ResourceVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SemaphoreVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SurfaceVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TransformFeedbackVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VulkanSecondaryCommandBuffer.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VulkanSecondaryCommandBuffer.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/mac/IOSurfaceSurfaceVkMac.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/EtcToBc.comp.00000000.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/EtcToBc.comp.00000001.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/EtcToBc.comp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_command_buffer_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_map.json
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_mem_alloc_wrapper.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_mem_alloc_wrapper.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_wrapper.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vulkan_backend.gni
    M Source/ThirdParty/ANGLE/src/libANGLE/validationEGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES2.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES3.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationESEXT.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationESEXT_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/validationGL4.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationGL4_autogen.h
    M Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gl_4_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_3_1_autogen.h
    M Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.h
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_no_capture_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_vulkan_secondaries_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_with_capture_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/opengl32_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/opengl32_with_wgl_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_egl_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_glx_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_wgl_autogen.cpp
    M Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni
    M Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/capture_replay_tests/capture_replay_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/compiler_tests/EXT_clip_cull_distance_test.cpp
    M Source/ThirdParty/ANGLE/src/tests/compiler_tests/FragDepth_test.cpp
    M Source/ThirdParty/ANGLE/src/tests/compiler_tests/OVR_multiview2_test.cpp
    M Source/ThirdParty/ANGLE/src/tests/compiler_tests/OVR_multiview_test.cpp
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles31_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles31_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles32_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_khr_gles3_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLContextSharingTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLSurfaceTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLSyncTestMetalSharedEvent.mm
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/BlendFuncExtendedTest.cpp
    A Source/ThirdParty/ANGLE/src/tests/gl_tests/ClipControlTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/DXT1CompressedTextureTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/FramebufferTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/ImageTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/MipmapTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/MultithreadingTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/PbufferTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/PixelLocalStorageTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/SRGBTextureTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/VulkanPerformanceCounterTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/perf_tests/ANGLEPerfTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/perf_tests/ANGLEPerfTestArgs.cpp
    M Source/ThirdParty/ANGLE/src/tests/perf_tests/ANGLEPerfTestArgs.h
    M Source/ThirdParty/ANGLE/src/tests/perf_tests/README.md
    M Source/ThirdParty/ANGLE/src/tests/perf_tests/TracePerfTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/MockDirectiveHandler.h
    M Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/extension_test.cpp
    M Source/ThirdParty/ANGLE/src/tests/preprocessor_tests/version_test.cpp
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_trace_gold_tests.py
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_traces.json
    M Source/ThirdParty/ANGLE/src/tests/test_utils/ANGLETest.h
    M Source/ThirdParty/ANGLE/src/tests/test_utils/MultiThreadSteps.cpp
    M Source/ThirdParty/ANGLE/src/tests/test_utils/MultiThreadSteps.h
    M Source/ThirdParty/ANGLE/util/angle_features_autogen.cpp
    M Source/ThirdParty/ANGLE/util/angle_features_autogen.h
    M Source/ThirdParty/ANGLE/util/capture/frame_capture_replay_autogen.cpp
    M Source/ThirdParty/ANGLE/util/capture/frame_capture_test_utils.cpp
    M Source/ThirdParty/ANGLE/util/capture/frame_capture_test_utils.h
    M Source/ThirdParty/ANGLE/util/capture/trace_fixture.cpp
    M Source/ThirdParty/ANGLE/util/capture/trace_fixture.h
    M Source/ThirdParty/ANGLE/util/capture/trace_gles_loader_autogen.cpp
    M Source/ThirdParty/ANGLE/util/capture/trace_gles_loader_autogen.h
    M Source/ThirdParty/ANGLE/util/capture/trace_interpreter.cpp
    M Source/ThirdParty/ANGLE/util/capture/trace_interpreter_autogen.cpp
    M Source/ThirdParty/ANGLE/util/gles_loader_autogen.cpp
    M Source/ThirdParty/ANGLE/util/gles_loader_autogen.h
    M Source/ThirdParty/ANGLE/util/linux/x11/X11Window.cpp

  Log Message:
  -----------
  Cherry-pick ee329e96b855. rdar://problem/106848127

    Update ANGLE to 2023-03-16 (12aefbc0dbfb8942723c061f6727638f0739fe02)
    rdar://problem/106848127

    Unreviewed, to be reviewed by Dean Jackson.

    Contains upstream commits:
    git log --oneline f76ecaeed1d0188b52f293af27922518a23d878e..12aefbc0dbfb8942723c061f6727638f0739fe02 --pretty=%h %s
    12aefbc0d Vulkan: add MESA Virtio-GPU Venus driver feature conditions
    108c0cefd Roll SwiftShader from 6c1ab2e36382 to fa0e42592666 (1 revision)
    d11aa33bf Roll vulkan-deps from 46e5f8237dea to 88a74be445b7 (8 revisions)
    80bdfe833 Roll Chromium from d828200ebd12 to 0abde2e3b92a (587 revisions)
    f4e71351b Vulkan: Switch acquireAndUpdate to use Buddy pool
    4c157b4bf Vulkan: Switch staging buffer to Buddy algorithm
    a8401f03f Mark the context as needing flush in TextureGL set*Image operations
    6fb7883d6 Roll SwiftShader from 64e470f7b9b0 to 6c1ab2e36382 (3 revisions)
    6c38e5962 Roll vulkan-deps from 6269f2d7cf86 to 46e5f8237dea (7 revisions)
    756d592df Roll Chromium from ce6a8c2bfc28 to d828200ebd12 (596 revisions)
    4982b9030 Revert "Vulkan: Remove inUseAndRespecifiedWithoutData from BufferVk"
    a8720455f D3D11: Add logic to disassociate EGL image storages.
    9c167fd21 Mark the context as needing flush in TextureGL copy/blit operations
    513ca7236 Delete GL_LOAD_OP_DISABLE_ANGLE from PLS
    5103c3e60 Roll vulkan-deps from d17e7dad8e87 to 6269f2d7cf86 (22 revisions)
    e1935fddd Roll SwiftShader from 3764eb85917a to 64e470f7b9b0 (1 revision)
    4abfa52ef Roll Chromium from 2bcf4b3eb3f2 to ce6a8c2bfc28 (1220 revisions)
    b26b01a28 Implement EXT_render_snorm
    bf5e9dbc8 GL: Reset clip origin before scissored clears
    755bfe471 Vulkan: Remove inUseAndRespecifiedWithoutData from BufferVk
    c3ffae10a Suppress failing capture/replay test
    d6a25bfa9 Vulkan: Optimize glBufferData call to improve storage reuse
    98735ee09 Revert "Fixed bugs in "FastVector" class."
    006d826dc Roll VK-GL-CTS from 4ac540bc62cf to 20d674342f00 (12 revisions)
    67ad3ddcf Vulkan: Relax size limit for dynamicBuffer to pick buddy algorithm
    4edccb15e Vulkan: Fixed Context Priority mixing problems.
    cd901cdde Vulkan: Add and use rx::vk::ReleasableResource class.
    233c128bc Vulkan: Fix UBs when deleted attachment is used in a RenderPass.
    eb1cb31da Vulkan: Remove code left after introduce of "vk::SharedGarbage"
    a1bf828d7 Vulkan: Rename "RendererVk::waitFor*ToBeSubmitted()" methods.
    b194c21ad Vulkan: Enforce ContextPriority in ShareGroup and with EGLImage
    cd0c1d228 Roll VMA forward
    4cbe85484 Expose shader extensions based on ESSL version
    b468e4dd0 Add back "non-robust" PLS queries
    ffdcfb942 Roll vulkan-deps from 315bf0e37102 to d17e7dad8e87 (5 revisions)
    f2e13539b Implicitly enable PLS dependency extensions
    84fec4c72 Roll Chromium from a811a4fbb723 to 2bcf4b3eb3f2 (598 revisions)
    377216093 Manual roll vulkan-deps from fb9155b074e3 to 315bf0e37102 (18 revisions)
    63a602258 Ignore VUID-VkGraphicsPipelineCreateInfo-None-06573.
    9824b4e6e Skip street_fighter_duel trace on win nvidia.
    7ee613662 Revert "Vulkan: SurfaceVk should only wait for GPU work that uses it"
    36111b25f Fix more cases of racy waitForStep usage.
    ca2378b78 Assert that waitForStep steps go in increasing order.
    c2aa8b58a Roll SwiftShader from 0ba0b45490cd to 3764eb85917a (1 revision)
    475025e39 Roll Chromium from 52ec1cb28f1b to a811a4fbb723 (335 revisions)
    aa5b97de8 ANGLE_metal_shared_event_sync: Control signaling external events
    b78a0c498 Tests: Add Street Fighter: Duel trace
    f1717ba9c Tests: Add Merge Dragons trace
    2c8358455 Fix race condition in ProgramUseAndDestroyInTwoContexts
    0cb090743 Manual roll Chromium from 4d26ea50cec7 to 52ec1cb28f1b (235 revisions)
    52ba6071e Add EXT_texture_filter_minmax stubs
    397f89dcd Support stencil texturing in WebGL
    e6ac77d9a Tests: Enable RunLockStepThreads OpenGL/GLES backend support.
    244e19311 Vulkan: Fix use of pending Outside RenderPass CommandBuffer.
    bfa2fe361 Roll vulkan-deps from eca4b370b5aa to fb9155b074e3 (9 revisions)
    1023c18fe Roll Chromium from 2821f7bf7cf2 to 4d26ea50cec7 (587 revisions)
    a65f6a9df Make PLS queries robust
    2143c146c Tests: Add Jackpot World Trace
    156efe9e2 Fix the alloc error with enabled backtrace feature
    b0d99f72e Move the memory tracking classes to new files
    877cd04cb Reland "Add vulkan format image fallback for R16G16B16"
    bd08c3093 Capture/Replay: Don't serialize shader refcount with context
    cf1bf3e4e Skip TextureNorm16R16RenderTest and variants
    1174582a3 GL: Implement EXT_clip_control
    56259f301 Manual roll vulkan-deps from 5d7ca659e804 to eca4b370b5aa (34 revisions)
    ad7949c6c Vulkan: Remove "rx::vk::ImageHelper" move constructor.
    815a4aae4 Fix stencil format exposure
    267c556ec Vulkan: Move PersistentCommandPool out of the CommandsState.
    b84737c11 Roll VK-GL-CTS from 49ce61395065 to 4ac540bc62cf (1 revision)
    8abf71534 GL: Complete EXT_blend_func_extended
    ac8513fa6 Vulkan: Add and use ScopedQueueSerialIndex helper class.
    4256c0224 Metal: Implement ANGLE_stencil_texturing
    b31784118 Revert "Add vulkan format image fallback for R16G16B16"
    01d78586d Roll Chromium from 868e24501649 to 2821f7bf7cf2 (569 revisions)
    a8ba5112b Capture/Replay: Deal with swap called in different contexts
    4448ce5c5 Capture/Replay: Add fixture SetCurrentContextID
    0e9b8f363 Capture/Replay: Drop context ID from file and frame func names
    cee1237c6 Vulkan: Fix reserved UBOs for default uniforms
    868b63ab4 Vulkan: Remove reserved UBO for driver uniforms from limits
    991fca065 Vulkan: Minor clean up in CommandProcessor.cpp
    5331491b0 SYNC-HAZARD-READ-AFTER-WRITE: VkNonDispatchableHandle on x86
    5b63e1dc1 Vulkan: SurfaceVk should only wait for GPU work that uses it
    569a881f2 Make SYNC-HAZARD-READ-AFTER-WRITE case less specific.
    8ba78abdb Reland "MSRTSS uses AppendToPNextChain due to non-NULL pNext."
    dbece66f8 Vulkan: Fix move constructor/assignment of Resource classes.
    7eb6869a4 Vulkan: Change ResourceAccess::Write to ResourceAccess::ReadWrite
    4f87f4e92 Vulkan: Add useResetCommandBufferBitForSecondaryPools feature.
    0eea2893f Vulkan: Use *_POOL_CREATE_TRANSIENT_BIT in OneOffCommandPool
    390fa1162 Suppress another SYNC-HAZARD-READ-AFTER-WRITE case.
    71f6d54c8 Add vulkan format image fallback for R16G16B16
    fee173f92 Vulkan: Fix freeing Command Buffers with wrong Pool.
    06aaa0c05 Tests: Add Harry Potter: Hogwarts Mystery trace
    24eb3fcf5 Vulkan: Condition in "collectGarbage()" replaced with "ASSERT".
    957bb8f50 Roll VK-GL-CTS from 04e5d38379bd to 49ce61395065 (7 revisions)
    3105ca09d Roll Chromium from 1ad22b27f996 to 868e24501649 (579 revisions)
    3aa64876b Revert "Vulkan: Attempt to fix the tsan complain regarding volk."
    51ddcabfd Enable pixel local storage by default
    8a9ed2656 Call XFlush after XDestroyWindow.
    84644dd34 Improve logging to make batch failures more clear.
    d9fa5524d Temporarily disable multisampled render to texture on Android
    256e7d6d5 Vulkan: Always checkCompletedCommands from finishResourceUse
    764cdbad3 Vulkan: Add missing mutex lock into resetCommandBuffer().
    a2a30eac9 Revert "MSRTSS uses AppendToPNextChain due to non-NULL pNext."
    6967b40ed Roll Chromium from 051119636a02 to 1ad22b27f996 (594 revisions)
    3fed0866a Implement EXT_texture_mirror_clamp_to_edge
    044612ec1 Vulkan: Remove iterator from FixedQueue class
    31bd0c58e Vulkan: Do immediate cleanup after finishOneCommandBatch
    62e587045 Vulkan: Attempt to fix the tsan complain regarding volk.
    839cfa13a Roll Chromium from 03859909b0fa to 051119636a02 (640 revisions)
    8019f2939 Manual roll vulkan-deps from 385df753e370 to 5d7ca659e804 (62 revisions)
    18a1022e8 Manual roll VK-GL-CTS from c0a0038a1bed to 04e5d38379bd (12 revisions)
    6e58328d4 Add Mac AMD experimental bot
    024114b21 Reland "Replace zlib from chrome by Android's zlib."
    a2efea13c Add ANGLE_stencil_texturing
    35c44b401 PoolAlloc: unpoison memory before potentially re-using it
    a07361350 Revert "Replace zlib from chrome by Android's zlib."
    5fd68d590 Skip FramebufferTest_ES3.RenderSharedExponent on iOS Metal
    eb0475c05 Vulkan: Cleanup RendererVk::allocateQueueSerialIndex method.
    d0056bc5d Roll Chromium from dc2706bd2987 to 03859909b0fa (653 revisions)
    1ca860aca Add extension stubs
    190a32144 Tests: Add Arknights trace
    e2cf65ed9 Implement QCOM_render_shared_exponent
    e180ed5ec Vulkan: Apply postSubmitCheck to async submission code path
    e88b061c5 Vulkan: Follow up fix and enable asyncCommandBufferReset flag
    39f0eaf80 Replace zlib from chrome by Android's zlib.
    d3fcf08d0 Manual roll vulkan-deps from 3c1556cc7322 to 385df753e370 (1 revision)
    33df630f9 MSRTSS uses AppendToPNextChain due to non-NULL pNext.
    6d282d62b Vulkan: Move retireFinishedCommands/garbageCleanup to worker thread
    dd6d8302a Suppress VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912
    df642b98b Roll SwiftShader from dca80fc3a894 to 0ba0b45490cd (2 revisions)
    0a4af608d Roll Chromium from 59912d50f1af to dc2706bd2987 (606 revisions)
    a1f9b9aaa Implement more texture border color adjustments
    9ee816c9d Manual roll vulkan-deps from d03d09324f14 to 3c1556cc7322 (1 revision)
    2c7447e2c Always keep track of memory allocation counts
    a841f24aa Manual roll VK-GL-CTS from 16e24521578d to c0a0038a1bed (5 revisions)
    6f7fec7b1 Convert all raw pointers in Renderer11 to ComPtr
    d2bd5ee31 Manual roll VK-GL-CTS from a13cbc855993 to 16e24521578d (1 revision)
    aa97369fc Use C++20 for MSVC builds as well
    1365f5b31 Vulkan: Fix Swapchain Acquire Image Semaphore wait stage flags.
    8875ba4e4 Rename WebSwapCGLLayer to ANGLESwapCGLLayer outside WebKit.
    f524e4b8a Roll Chromium from 37f4bbb7be8f to 59912d50f1af (435 revisions)
    ef6d14737 Tests: Add Into the Dead 2 trace
    5bc6bf325 Include DXT1 sRGB in RGBDXT1TexturesSampleZeroAlpha
    a4e23c668 Manual roll Chromium from 779fe76a4b87 to 37f4bbb7be8f (299 revisions)
    13f246de5 Tests: Add Cookie Run Oven Break trace
    47c0659ee Re-enable safe_libcxx on Linux
    8fef41a83 vulkan: improve EtcToBc transcoding precision.
    9f4ebedfb Tests: Add TMNT: Shredder's Revenge trace
    2ec90ada0 TraceTests: Update screenshot name for keyframe
    e21c1efb0 Roll SwiftShader from 64eb04027b9f to dca80fc3a894 (2 revisions)
    9566011bd Add support for permissive pixel comparison
    0745e4025 Roll Chromium from 6aac6345f869 to 779fe76a4b87 (655 revisions)
    f8e56b0c1 Tests: Add SLAM DUNK from TV Animation trace
    d9dbc20e6 TraceTests: Add a screenshot frame member variable
    8c96e9dce Update yapf style from "chromium" to "yapf"
    7189e4cfe vulkan: fix depth buffer renderpass loadOp issue.
    05bb784a8 Define enable_safe_libcxx in build_overrides/build.gni.
    b07394368 Traces: Add key frame support
    b42c23321 Refine sRGB mipmap generation
    3a7904e13 Vulkan: Use VMA suballocation for images
    48588a890 Update the common cube map texture in MipmapTest
    2678b8307 Reenable GLES 1.0 conformance tests on Win/Intel
    cba2a0d53 Keep MemoryBarrier macro defined
    7934094a3 Update extension data
    8105a8010 Change enum allocation for EGL_PLATFORM_ANGLE_DISPLAY_KEY_ANGLE
    452a7179d Remove obsolete additional_readme_paths.json entries
    a3af3645e Copy d3dcompiler_47.dll on ARM64 Windows builds
    389b86e7d Roll Chromium from d9b79c6b8b96 to 6aac6345f869 (614 revisions)
    177936ace Metal: disable 32-bit float filtering on iOS
    75901296a Roll Chromium from 5d2ee2959f28 to d9b79c6b8b96 (576 revisions)
    31684d8c3 Vulkan: Lazily create swapchain image views
    7d8e27784 Vulkan: Remove usage of VK_EXT_external_memory_host
    1633a1bb6 Fix EGLImage importing problem
    9a4a9f3f8 Revert "Fix dEQP-EGL.functional.mutable_render_buffer#basic"
    dd1cf777e Add EXT_texture_mirror_clamp_to_edge entry points
    facd07ec0 Vulkan: Prune all statements without side effect
    b7505d98e Metal: Fix crashes in EXT_b_f_e using temporaries
    dbd5d6dfe Vulkan: Fix border color adjustment for emulated formats
    278b5d02e EGL: Enable wayland types with autogen
    7586f8c84 Translator: Validate correct op usage in nodes
    057a92bf2 Vulkan: Fix invalid assert in ContextVk::onSurfaceUnMakeCurrent
    c23dbe331 Roll Chromium from 36ad54ddae32 to 5d2ee2959f28 (282 revisions)

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

Identifier: 259548.564 at safari-7615-branch


  Commit: 42877e57fb2e0890913332a06fcf9225813b9fd9
      https://github.com/WebKit/WebKit/commit/42877e57fb2e0890913332a06fcf9225813b9fd9
  Author: Kimmo Kinnunen <kkinnunen at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M Source/ThirdParty/ANGLE/.gn
    M Source/ThirdParty/ANGLE/ANGLE.plist
    M Source/ThirdParty/ANGLE/DEPS
    M Source/ThirdParty/ANGLE/changes.diff
    M Source/ThirdParty/ANGLE/extensions/ANGLE_shader_pixel_local_storage.txt
    M Source/ThirdParty/ANGLE/include/GLES2/gl2ext_angle.h
    M Source/ThirdParty/ANGLE/include/GLSLANG/ShaderLang.h
    M Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h
    M Source/ThirdParty/ANGLE/include/platform/FeaturesGL_autogen.h
    M Source/ThirdParty/ANGLE/include/platform/FeaturesVk_autogen.h
    M Source/ThirdParty/ANGLE/include/platform/gl_features.json
    M Source/ThirdParty/ANGLE/include/platform/vk_features.json
    M Source/ThirdParty/ANGLE/infra/specs/angle.json
    M Source/ThirdParty/ANGLE/infra/specs/waterfalls.pyl
    M Source/ThirdParty/ANGLE/samples/sample_util/texture_utils.cpp
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_features.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_shader_translator.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Extension_files.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GLenum_value_to_string_map.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Test_spec_JSON.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_internal_shader_programs.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/interpreter_utils.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/restricted_traces.json
    M Source/ThirdParty/ANGLE/scripts/generate_entry_points.py
    M Source/ThirdParty/ANGLE/scripts/gl_angle_ext.xml
    M Source/ThirdParty/ANGLE/scripts/update_chrome_angle.py
    M Source/ThirdParty/ANGLE/src/angle_commit.h
    M Source/ThirdParty/ANGLE/src/common/ANGLEShaderProgramVersion.h
    M Source/ThirdParty/ANGLE/src/common/FastVector.h
    M Source/ThirdParty/ANGLE/src/common/FixedQueue.h
    M Source/ThirdParty/ANGLE/src/common/FixedVector.h
    M Source/ThirdParty/ANGLE/src/common/base/anglebase/trace_event/trace_event.h
    M Source/ThirdParty/ANGLE/src/common/entry_points_enum_autogen.cpp
    M Source/ThirdParty/ANGLE/src/common/entry_points_enum_autogen.h
    M Source/ThirdParty/ANGLE/src/compiler/fuzz/translator_fuzzer.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/BaseTypes.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/BuildSPIRV.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/CollectVariables.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/Compiler.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ExtensionBehavior.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ExtensionBehavior.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/Initialize.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/OutputGLSLBase.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/OutputHLSL.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/OutputHLSL.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/OutputSPIRV.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/QualifierTypes.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ShaderLang.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/SymbolUniqueId.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/SymbolUniqueId.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorGLSL.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/ToposortStructs.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/UtilsHLSL.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ValidateAST.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ValidateTypeSizeLimitations.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/glslang.l
    M Source/ThirdParty/ANGLE/src/compiler/translator/glslang_lex_autogen.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/InitializeVariables.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/gl/ClampFragDepth.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/util.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Compiler.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Context.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Context.inl.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Context_gles_ext_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/ErrorStrings.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/GLES1Shaders.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/PixelLocalStorage.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/PixelLocalStorage.h
    M Source/ThirdParty/ANGLE/src/libANGLE/State.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/State.h
    M Source/ThirdParty/ANGLE/src/libANGLE/angletypes.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/angletypes.h
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/FrameCapture.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/serialize.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/queryutils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/ContextImpl.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DynamicHLSL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DynamicHLSL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ShaderD3D.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ShaderD3D.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/VertexDataManager.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Context11.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Context11.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/StateManager11.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Context9.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Context9.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/StateManager9.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/StateManager9.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/ContextEGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/ContextNULL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/ContextNULL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/AllocatorHelperRing.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/BUILD.gn
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandProcessor.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandProcessor.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DisplayVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h
    A Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandPool.cpp
    A Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandPool.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ShaderVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VulkanSecondaryCommandBuffer.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VulkanSecondaryCommandBuffer.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/EtcToBc.comp.00000000.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/EtcToBc.comp.00000001.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/EtcToBc.comp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/spv_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vulkan_backend.gni
    M Source/ThirdParty/ANGLE/src/libANGLE/trace.h
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES2.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES2.h
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES32.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationESEXT.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationESEXT_autogen.h
    M Source/ThirdParty/ANGLE/src/libGLESv2/egl_ext_stubs.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.h
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_no_capture_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_vulkan_secondaries_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_with_capture_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/opengl32_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/opengl32_with_wgl_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_egl_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_glx_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_wgl_autogen.cpp
    M Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni
    M Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/capture_replay_tests/capture_replay_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_egl_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLContextCompatibilityTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/BlitFramebufferANGLETest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/ClipControlTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/ComputeShaderTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/DebugTest.cpp
    A Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthWriteTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/FormatPrintTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/FragDepthTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/InstancingTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/MultisampleTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/MultithreadingTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/PixelLocalStorageTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/SimpleOperationTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/StateChangeTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/VulkanPerformanceCounterTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/ConformanceTests.cpp
    M Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/CovglTests.cpp
    M Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/PrimtestTests.cpp
    M Source/ThirdParty/ANGLE/src/tests/perf_tests/TracePerfTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/README.md
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_trace_perf.py
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_traces.json
    M Source/ThirdParty/ANGLE/util/angle_features_autogen.cpp
    M Source/ThirdParty/ANGLE/util/angle_features_autogen.h
    M Source/ThirdParty/ANGLE/util/capture/frame_capture_replay_autogen.cpp
    M Source/ThirdParty/ANGLE/util/capture/trace_gles_loader_autogen.cpp
    M Source/ThirdParty/ANGLE/util/capture/trace_gles_loader_autogen.h
    M Source/ThirdParty/ANGLE/util/capture/trace_interpreter_autogen.cpp
    M Source/ThirdParty/ANGLE/util/gles_loader_autogen.cpp
    M Source/ThirdParty/ANGLE/util/gles_loader_autogen.h

  Log Message:
  -----------
  Cherry-pick 110c9a08cf72. rdar://problem/107461268

    Update ANGLE to 2023-03-30 (5fcd027edec5ae756c4484a7d6e32f8aad147984)
    https://bugs.webkit.org/show_bug.cgi?id=254802
    rdar://problem/107461268

    Unreviewed, to be reviewed by Dean Jackson.

    Contains upstream commits:
    git log --oneline 12aefbc0dbfb8942723c061f6727638f0739fe02..5fcd027edec5ae756c4484a7d6e32f8aad147984 --pretty=%h %s
    5fcd027ed Fix the watchOS build for the mirror clamp to edge extension
    20f3df078 Vulkan: ImageHelper::initExternal missing some variable init
    98151770a Vulkan: Use midRenderPass clear if RP has started but inactive
    ad9537af7 Vulkan: Reactivate already started render pass when possible
    18b675ea4 Roll vulkan-deps from d56f491466de to e13e8828cf66 (29 revisions)
    3c8aee63b D3D11: Fix streamed instanced attribute size calculation.
    48b431ca6 Vulkan: Fix stage component reservations w.r.t xfb
    31321cb39 Tests: Add Minecraft Bedrock trace
    29abd5a29 Explicitly Add Aliased Memory Decoration in SpirV
    219776e23 Roll Chromium from c83e966b4c7e to f7c2a70f23b1 (1902 revisions)
    bb15ceefd Remove syncing of extended dirty bits for TexImage calls.
    14ddf5691 Tests: Add fishdom trace
    4afbbe85d Tests: Add Vainglory trace
    fe45418c6 Translator: Limit the size of private variables in WebGL shaders
    97897d92d Vulkan: Work around driver bug with dynamic primitive restart
    8b81a3d27 GLES1: Use ASCII minus in comment
    6d12a280e D3D11: Support NV_shader_noperspective_interpolation
    da7dd31f2 GL: Disable extended dirty bit states for internal blits.
    21ffb23a5 Add sample coverage regression tests
    57dd0e5fe Translator: Initialize out arguments too for WebGL
    fcf0ddeb6 Vulkan: Add more blitFramebuffer test
    db3b28757 Manual roll VK-GL-CTS from 9e822059a32e to e873c6862868 (18 revisions)
    c6ec59dca Explicitly pass the extended dirty bits to syncState.
    fc7cb00e9 Metal: Support NV_shader_noperspective_interpolation
    1ee27fcdb Fix translation of noperspective interpolation qualifier
    fbb16d646 Mali: Disable disjointTimerQueries on ChromeOS with MaliT8xxOrOlder
    abbbe9709 [GL backend] Get texture bindings size from frontend caps
    d8c9ba9af Avoid defaulted comparison operator
    afc1e5dcc GL: Support OES_sample_variables
    98cfb969a Roll vulkan-deps from 672a6d1840c9 to d56f491466de (13 revisions)
    1301402c5 Vulkan: improve etc to bc grident texture precison.
    249b03aca restricted_trace_perf: Delete settings when using default
    435e557c5 Vulkan: Do not enforce custom ANGLEs secondary command buffers.
    aa8f2e4b4 Vulkan: Minor SecondaryCommandPool::destroy() optimization.
    85735eb48 Vulkan: Enable async features for Secondary Command Buffers.
    2bd8acfef Tests: Add Geometry Dash trace
    e27e7c6aa Vulkan: Retire Command Buffers before destroying the Pools.
    9524c639a Vulkan: Fix Secondary Command Buffers with asyncCommandQueue.
    87632d645 Roll SwiftShader from f988757e44a3 to c85d70d97009 (3 revisions)
    f76021701 Roll vulkan-deps from 886b2b7b32a4 to 672a6d1840c9 (11 revisions)
    dae99340c Remove uninited pixel check from TexStorageWithPBO
    c1e45f0c7 Adjust copied dylibs in update_chrome_angle.py
    f2c5ce4e8 Re-enable mutable texture upload for one context
    997c4c7b3 D3D11: Implement EXT_conservative_depth
    648f3657c Metal: Implement EXT_conservative_depth
    34a06e25d Start MacBook Pro AMD 2019 experiment on ANGLE bots
    860a401fb Roll vulkan-deps from 379ee8599f0f to 886b2b7b32a4 (12 revisions)
    0e502f8c0 Vulkan: Update SharedCommandBlockPool::valid() method.
    fc308f4ab Roll SwiftShader from 0cc04d07ab24 to f988757e44a3 (1 revision)
    e7b7f9772 Roll Chromium from 27821cf1b122 to c83e966b4c7e (630 revisions)
    74edb4b44 Skip PixelLocalStorageTest.Interrupt on iOS Metal
    888ca8d9e Bind FBO before timer query on Mali GL driver.
    ad52f12e5 Implement EXT_conservative_depth
    11d920527 Roll vulkan-deps from 469b8c0e07d5 to 379ee8599f0f (10 revisions)
    5b87328fb Roll SwiftShader from 9c9608fa94a9 to 0cc04d07ab24 (1 revision)
    903d24c13 Roll Chromium from 23433174ff7f to 27821cf1b122 (589 revisions)
    a621ea88c Adding a trace point for texture metrics.
    ec9595f1a restricted_trace_perf: Run against default driver
    a491bbe3b Add PLS utilities for interrupting a rendering pass
    23ad4fa2b Don't hold global surface lock during AcquireNextImage
    ba845fcf2 Metal: Implement EXT_clip_control
    1e6dd013f Metal: Support centroid qualifier
    53d1a179d Makes ToposortStructs() return consistent results
    f56952445 Fix sample qualifier validation
    c8c742f64 Roll vulkan-deps from 35cbe26c4b3a to 469b8c0e07d5 (8 revisions)
    0709b6fdf Roll SwiftShader from 85772f1891db to 9c9608fa94a9 (7 revisions)
    0cb6697a0 Capture/restricted_traces: update documentation
    1beb6ef88 Roll Chromium from 528cae6045de to 23433174ff7f (599 revisions)
    d7201a0f7 Tests: Add New Legend of the Condor Heroes trace
    bacc066b4 Unskip dEQP-EGL tests
    e809e7bdf Reland "Implement EXT_depth_clamp"
    5384667f4 IWYU: missing include for std::atomic in FixedQueue.h
    ee9a7df0b IWYU: usage of size_t requires include in texture_utils
    518afe765 Roll SwiftShader from 7d001b3fac09 to 85772f1891db (1 revision)
    151339b30 Roll vulkan-deps from 250e3914595d to 35cbe26c4b3a (10 revisions)
    9c29f84ce Roll VK-GL-CTS from 20d674342f00 to 9e822059a32e (10 revisions)
    462dcdcab Roll Chromium from 7a04676dce36 to 528cae6045de (657 revisions)
    070749680 Validate gl[Push,Pop]DebugGroup
    4a77b0f52 Revert "Implement EXT_depth_clamp"
    d521ccb31 Tests: Add Rise Of Empires trace
    7d1a401b4 Vulkan: Fix freeing not completed Secondary Command Buffers.
    9b6368ccf Vulkan: Fix freeing Secondary Command Buffers from wrong thread.
    29f80edae Vulkan: Hot fix crash when using Invalid VkSemaphore Object.
    12b3d52d8 Prevent bugs in "FastVector" class.
    6ea6b3602 Fix allowed_keywords dEQP test failures
    50dec7168 Linux skips RegisterContextCompatibilityTests altogether.
    f8c141831 Implement EXT_depth_clamp
    21a3367a1 Tests: Reduce load of computation heavy tests for Swiftshader.
    973244574 Roll SwiftShader from fa0e42592666 to 7d001b3fac09 (1 revision)
    72c18fe64 Roll vulkan-deps from 88a74be445b7 to 250e3914595d (6 revisions)
    aecfcefc3 Roll Chromium from 0abde2e3b92a to 7a04676dce36 (552 revisions)

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

Identifier: 259548.565 at safari-7615-branch


  Commit: 182b69cfaa9e845dd578ee0e008b008023a1886c
      https://github.com/WebKit/WebKit/commit/182b69cfaa9e845dd578ee0e008b008023a1886c
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M Source/ThirdParty/ANGLE/.gn
    M Source/ThirdParty/ANGLE/ANGLE.plist
    M Source/ThirdParty/ANGLE/DEPS
    M Source/ThirdParty/ANGLE/changes.diff
    M Source/ThirdParty/ANGLE/extensions/ANGLE_shader_pixel_local_storage.txt
    M Source/ThirdParty/ANGLE/include/GLES2/gl2ext_angle.h
    M Source/ThirdParty/ANGLE/include/GLSLANG/ShaderLang.h
    M Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h
    M Source/ThirdParty/ANGLE/include/platform/FeaturesGL_autogen.h
    M Source/ThirdParty/ANGLE/include/platform/FeaturesVk_autogen.h
    M Source/ThirdParty/ANGLE/include/platform/gl_features.json
    M Source/ThirdParty/ANGLE/include/platform/vk_features.json
    M Source/ThirdParty/ANGLE/infra/specs/angle.json
    M Source/ThirdParty/ANGLE/infra/specs/waterfalls.pyl
    M Source/ThirdParty/ANGLE/samples/sample_util/texture_utils.cpp
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_features.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_shader_translator.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Extension_files.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GLenum_value_to_string_map.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Test_spec_JSON.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_internal_shader_programs.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/interpreter_utils.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/restricted_traces.json
    M Source/ThirdParty/ANGLE/scripts/generate_entry_points.py
    M Source/ThirdParty/ANGLE/scripts/gl_angle_ext.xml
    M Source/ThirdParty/ANGLE/scripts/update_chrome_angle.py
    M Source/ThirdParty/ANGLE/src/angle_commit.h
    M Source/ThirdParty/ANGLE/src/common/ANGLEShaderProgramVersion.h
    M Source/ThirdParty/ANGLE/src/common/FastVector.h
    M Source/ThirdParty/ANGLE/src/common/FixedQueue.h
    M Source/ThirdParty/ANGLE/src/common/FixedVector.h
    M Source/ThirdParty/ANGLE/src/common/base/anglebase/trace_event/trace_event.h
    M Source/ThirdParty/ANGLE/src/common/entry_points_enum_autogen.cpp
    M Source/ThirdParty/ANGLE/src/common/entry_points_enum_autogen.h
    M Source/ThirdParty/ANGLE/src/compiler/fuzz/translator_fuzzer.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/BaseTypes.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/BuildSPIRV.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/CollectVariables.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/Compiler.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ExtensionBehavior.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ExtensionBehavior.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/Initialize.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/OutputGLSLBase.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/OutputHLSL.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/OutputHLSL.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/OutputSPIRV.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/QualifierTypes.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ShaderLang.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/SymbolUniqueId.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/SymbolUniqueId.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorGLSL.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/ToposortStructs.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/UtilsHLSL.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ValidateAST.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ValidateTypeSizeLimitations.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/glslang.l
    M Source/ThirdParty/ANGLE/src/compiler/translator/glslang_lex_autogen.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/InitializeVariables.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/gl/ClampFragDepth.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/util.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Compiler.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Context.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Context.inl.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Context_gles_ext_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/ErrorStrings.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/GLES1Shaders.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/PixelLocalStorage.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/PixelLocalStorage.h
    M Source/ThirdParty/ANGLE/src/libANGLE/State.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/State.h
    M Source/ThirdParty/ANGLE/src/libANGLE/angletypes.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/angletypes.h
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/FrameCapture.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/serialize.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/queryutils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/ContextImpl.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DynamicHLSL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DynamicHLSL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ShaderD3D.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ShaderD3D.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/VertexDataManager.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Context11.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Context11.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/StateManager11.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Context9.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Context9.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/StateManager9.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/StateManager9.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/ContextEGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/ContextNULL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/ContextNULL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/AllocatorHelperRing.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/BUILD.gn
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandProcessor.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandProcessor.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DisplayVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h
    R Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandPool.cpp
    R Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandPool.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ShaderVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VulkanSecondaryCommandBuffer.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VulkanSecondaryCommandBuffer.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/EtcToBc.comp.00000000.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/EtcToBc.comp.00000001.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/EtcToBc.comp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/spv_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vulkan_backend.gni
    M Source/ThirdParty/ANGLE/src/libANGLE/trace.h
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES2.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES2.h
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES32.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationESEXT.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationESEXT_autogen.h
    M Source/ThirdParty/ANGLE/src/libGLESv2/egl_ext_stubs.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.h
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_no_capture_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_vulkan_secondaries_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_with_capture_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/opengl32_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/opengl32_with_wgl_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_egl_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_glx_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_wgl_autogen.cpp
    M Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni
    M Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/capture_replay_tests/capture_replay_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_egl_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLContextCompatibilityTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/BlitFramebufferANGLETest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/ClipControlTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/ComputeShaderTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/DebugTest.cpp
    R Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthWriteTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/FormatPrintTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/FragDepthTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/InstancingTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/MultisampleTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/MultithreadingTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/PixelLocalStorageTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/SimpleOperationTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/StateChangeTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/VulkanPerformanceCounterTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/ConformanceTests.cpp
    M Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/CovglTests.cpp
    M Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/PrimtestTests.cpp
    M Source/ThirdParty/ANGLE/src/tests/perf_tests/TracePerfTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/README.md
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_trace_perf.py
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_traces.json
    M Source/ThirdParty/ANGLE/util/angle_features_autogen.cpp
    M Source/ThirdParty/ANGLE/util/angle_features_autogen.h
    M Source/ThirdParty/ANGLE/util/capture/frame_capture_replay_autogen.cpp
    M Source/ThirdParty/ANGLE/util/capture/trace_gles_loader_autogen.cpp
    M Source/ThirdParty/ANGLE/util/capture/trace_gles_loader_autogen.h
    M Source/ThirdParty/ANGLE/util/capture/trace_interpreter_autogen.cpp
    M Source/ThirdParty/ANGLE/util/gles_loader_autogen.cpp
    M Source/ThirdParty/ANGLE/util/gles_loader_autogen.h

  Log Message:
  -----------
  Revert "Cherry-pick 110c9a08cf72. rdar://problem/107461268"

This reverts commit 42877e57fb2e0890913332a06fcf9225813b9fd9.

Identifier: 259548.566 at safari-7615-branch


  Commit: 48ab13693eb484267db4a6d1db020ca2950b7169
      https://github.com/WebKit/WebKit/commit/48ab13693eb484267db4a6d1db020ca2950b7169
  Author: Kimmo Kinnunen <kkinnunen at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M Source/ThirdParty/ANGLE/.gn
    M Source/ThirdParty/ANGLE/ANGLE.plist
    M Source/ThirdParty/ANGLE/DEPS
    M Source/ThirdParty/ANGLE/changes.diff
    M Source/ThirdParty/ANGLE/extensions/ANGLE_shader_pixel_local_storage.txt
    M Source/ThirdParty/ANGLE/include/GLES2/gl2ext_angle.h
    M Source/ThirdParty/ANGLE/include/GLSLANG/ShaderLang.h
    M Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h
    M Source/ThirdParty/ANGLE/include/platform/FeaturesGL_autogen.h
    M Source/ThirdParty/ANGLE/include/platform/FeaturesVk_autogen.h
    M Source/ThirdParty/ANGLE/include/platform/gl_features.json
    M Source/ThirdParty/ANGLE/include/platform/vk_features.json
    M Source/ThirdParty/ANGLE/infra/specs/angle.json
    M Source/ThirdParty/ANGLE/infra/specs/waterfalls.pyl
    M Source/ThirdParty/ANGLE/samples/sample_util/texture_utils.cpp
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_features.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/ANGLE_shader_translator.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Extension_files.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_CTS_(dEQP)_build_files.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_WGL_loader.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GL_EGL_entry_points.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/GLenum_value_to_string_map.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Test_spec_JSON.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_internal_shader_programs.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/Vulkan_mandatory_format_support_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/interpreter_utils.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/proc_table.json
    M Source/ThirdParty/ANGLE/scripts/code_generation_hashes/restricted_traces.json
    M Source/ThirdParty/ANGLE/scripts/generate_entry_points.py
    M Source/ThirdParty/ANGLE/scripts/gl_angle_ext.xml
    M Source/ThirdParty/ANGLE/scripts/update_chrome_angle.py
    M Source/ThirdParty/ANGLE/src/angle_commit.h
    M Source/ThirdParty/ANGLE/src/common/ANGLEShaderProgramVersion.h
    M Source/ThirdParty/ANGLE/src/common/FastVector.h
    M Source/ThirdParty/ANGLE/src/common/FixedQueue.h
    M Source/ThirdParty/ANGLE/src/common/FixedVector.h
    M Source/ThirdParty/ANGLE/src/common/base/anglebase/trace_event/trace_event.h
    M Source/ThirdParty/ANGLE/src/common/entry_points_enum_autogen.cpp
    M Source/ThirdParty/ANGLE/src/common/entry_points_enum_autogen.h
    M Source/ThirdParty/ANGLE/src/compiler/fuzz/translator_fuzzer.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/BaseTypes.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/BuildSPIRV.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/CollectVariables.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/Compiler.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ExtensionBehavior.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ExtensionBehavior.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/Initialize.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/OutputGLSLBase.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/OutputHLSL.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/OutputHLSL.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/OutputSPIRV.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ParseContext.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/QualifierTypes.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ShaderLang.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/SymbolUniqueId.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/SymbolUniqueId.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorGLSL.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect.h
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/EmitMetal.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/Pipeline.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/ToposortStructs.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/UtilsHLSL.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ValidateAST.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/ValidateTypeSizeLimitations.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/glslang.l
    M Source/ThirdParty/ANGLE/src/compiler/translator/glslang_lex_autogen.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/InitializeVariables.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/tree_ops/gl/ClampFragDepth.cpp
    M Source/ThirdParty/ANGLE/src/compiler/translator/util.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Compiler.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Context.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Context.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Context.inl.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Context_gles_ext_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/ErrorStrings.h
    M Source/ThirdParty/ANGLE/src/libANGLE/Framebuffer.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/GLES1Shaders.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/PixelLocalStorage.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/PixelLocalStorage.h
    M Source/ThirdParty/ANGLE/src/libANGLE/State.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/State.h
    M Source/ThirdParty/ANGLE/src/libANGLE/angletypes.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/angletypes.h
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/FrameCapture.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/capture_gles_ext_autogen.h
    M Source/ThirdParty/ANGLE/src/libANGLE/capture/serialize.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/queryutils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/ContextImpl.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DynamicHLSL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/DynamicHLSL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ProgramD3D.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ShaderD3D.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/ShaderD3D.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/VertexDataManager.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Context11.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/Context11.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/StateManager11.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/StateManager11.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/renderer11_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Context9.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/Context9.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/StateManager9.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d9/StateManager9.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/BlitGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/ContextGL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/StateManagerGL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/egl/ContextEGL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ContextMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_command_buffer.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/ContextNULL.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/null/ContextNULL.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/AllocatorHelperRing.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/BUILD.gn
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandProcessor.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/CommandProcessor.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ContextVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/DisplayVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/FramebufferVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/RendererVk.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandBuffer.h
    A Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandPool.cpp
    A Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/SecondaryCommandPool.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/ShaderVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/TextureVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/UtilsVk.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VulkanSecondaryCommandBuffer.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/VulkanSecondaryCommandBuffer.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/EtcToBc.comp.00000000.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/gen/EtcToBc.comp.00000001.inc
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/shaders/src/EtcToBc.comp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/spv_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_cache_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_caps_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_helpers.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vulkan_backend.gni
    M Source/ThirdParty/ANGLE/src/libANGLE/trace.h
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES2.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES2.h
    M Source/ThirdParty/ANGLE/src/libANGLE/validationES32.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationESEXT.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/validationESEXT_autogen.h
    M Source/ThirdParty/ANGLE/src/libGLESv2/egl_ext_stubs.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/entry_points_gles_ext_autogen.h
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_no_capture_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_vulkan_secondaries_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/libGLESv2_with_capture_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/opengl32_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/opengl32_with_wgl_autogen.def
    M Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_egl_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_glx_autogen.cpp
    M Source/ThirdParty/ANGLE/src/libGLESv2/proc_table_wgl_autogen.cpp
    M Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests.gni
    M Source/ThirdParty/ANGLE/src/tests/angle_end2end_tests_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/capture_replay_tests/capture_replay_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_egl_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles2_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/deqp_support/deqp_gles3_test_expectations.txt
    M Source/ThirdParty/ANGLE/src/tests/egl_tests/EGLContextCompatibilityTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/BlitFramebufferANGLETest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/ClipControlTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/ComputeShaderTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/DebugTest.cpp
    A Source/ThirdParty/ANGLE/src/tests/gl_tests/DepthWriteTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/FormatPrintTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/FragDepthTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/GLSLTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/InstancingTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/MultisampleTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/MultithreadingTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/PixelLocalStorageTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/SimpleOperationTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/StateChangeTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/TextureTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/VulkanPerformanceCounterTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gl_tests/WebGLCompatibilityTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/ConformanceTests.cpp
    M Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/CovglTests.cpp
    M Source/ThirdParty/ANGLE/src/tests/gles1_conformance_tests/PrimtestTests.cpp
    M Source/ThirdParty/ANGLE/src/tests/perf_tests/TracePerfTest.cpp
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/README.md
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_trace_perf.py
    M Source/ThirdParty/ANGLE/src/tests/restricted_traces/restricted_traces.json
    M Source/ThirdParty/ANGLE/util/angle_features_autogen.cpp
    M Source/ThirdParty/ANGLE/util/angle_features_autogen.h
    M Source/ThirdParty/ANGLE/util/capture/frame_capture_replay_autogen.cpp
    M Source/ThirdParty/ANGLE/util/capture/trace_gles_loader_autogen.cpp
    M Source/ThirdParty/ANGLE/util/capture/trace_gles_loader_autogen.h
    M Source/ThirdParty/ANGLE/util/capture/trace_interpreter_autogen.cpp
    M Source/ThirdParty/ANGLE/util/gles_loader_autogen.cpp
    M Source/ThirdParty/ANGLE/util/gles_loader_autogen.h

  Log Message:
  -----------
  Cherry-pick 110c9a08cf72.
https://bugs.webkit.org/show_bug.cgi?id=254802
rdar://problem/107461268

Unreviewed, to be reviewed by Dean Jackson.

Contains upstream commits:
git log --oneline 12aefbc0dbfb8942723c061f6727638f0739fe02..5fcd027edec5ae756c4484a7d6e32f8aad147984 --pretty=%h %s
5fcd027ed Fix the watchOS build for the mirror clamp to edge extension
20f3df078 Vulkan: ImageHelper::initExternal missing some variable init
98151770a Vulkan: Use midRenderPass clear if RP has started but inactive
ad9537af7 Vulkan: Reactivate already started render pass when possible
18b675ea4 Roll vulkan-deps from d56f491466de to e13e8828cf66 (29 revisions)
3c8aee63b D3D11: Fix streamed instanced attribute size calculation.
48b431ca6 Vulkan: Fix stage component reservations w.r.t xfb
31321cb39 Tests: Add Minecraft Bedrock trace
29abd5a29 Explicitly Add Aliased Memory Decoration in SpirV
219776e23 Roll Chromium from c83e966b4c7e to f7c2a70f23b1 (1902 revisions)
bb15ceefd Remove syncing of extended dirty bits for TexImage calls.
14ddf5691 Tests: Add fishdom trace
4afbbe85d Tests: Add Vainglory trace
fe45418c6 Translator: Limit the size of private variables in WebGL shaders
97897d92d Vulkan: Work around driver bug with dynamic primitive restart
8b81a3d27 GLES1: Use ASCII minus in comment
6d12a280e D3D11: Support NV_shader_noperspective_interpolation
da7dd31f2 GL: Disable extended dirty bit states for internal blits.
21ffb23a5 Add sample coverage regression tests
57dd0e5fe Translator: Initialize out arguments too for WebGL
fcf0ddeb6 Vulkan: Add more blitFramebuffer test
db3b28757 Manual roll VK-GL-CTS from 9e822059a32e to e873c6862868 (18 revisions)
c6ec59dca Explicitly pass the extended dirty bits to syncState.
fc7cb00e9 Metal: Support NV_shader_noperspective_interpolation
1ee27fcdb Fix translation of noperspective interpolation qualifier
fbb16d646 Mali: Disable disjointTimerQueries on ChromeOS with MaliT8xxOrOlder
abbbe9709 [GL backend] Get texture bindings size from frontend caps
d8c9ba9af Avoid defaulted comparison operator
afc1e5dcc GL: Support OES_sample_variables
98cfb969a Roll vulkan-deps from 672a6d1840c9 to d56f491466de (13 revisions)
1301402c5 Vulkan: improve etc to bc grident texture precison.
249b03aca restricted_trace_perf: Delete settings when using default
435e557c5 Vulkan: Do not enforce custom ANGLEs secondary command buffers.
aa8f2e4b4 Vulkan: Minor SecondaryCommandPool::destroy() optimization.
85735eb48 Vulkan: Enable async features for Secondary Command Buffers.
2bd8acfef Tests: Add Geometry Dash trace
e27e7c6aa Vulkan: Retire Command Buffers before destroying the Pools.
9524c639a Vulkan: Fix Secondary Command Buffers with asyncCommandQueue.
87632d645 Roll SwiftShader from f988757e44a3 to c85d70d97009 (3 revisions)
f76021701 Roll vulkan-deps from 886b2b7b32a4 to 672a6d1840c9 (11 revisions)
dae99340c Remove uninited pixel check from TexStorageWithPBO
c1e45f0c7 Adjust copied dylibs in update_chrome_angle.py
f2c5ce4e8 Re-enable mutable texture upload for one context
997c4c7b3 D3D11: Implement EXT_conservative_depth
648f3657c Metal: Implement EXT_conservative_depth
34a06e25d Start MacBook Pro AMD 2019 experiment on ANGLE bots
860a401fb Roll vulkan-deps from 379ee8599f0f to 886b2b7b32a4 (12 revisions)
0e502f8c0 Vulkan: Update SharedCommandBlockPool::valid() method.
fc308f4ab Roll SwiftShader from 0cc04d07ab24 to f988757e44a3 (1 revision)
e7b7f9772 Roll Chromium from 27821cf1b122 to c83e966b4c7e (630 revisions)
74edb4b44 Skip PixelLocalStorageTest.Interrupt on iOS Metal
888ca8d9e Bind FBO before timer query on Mali GL driver.
ad52f12e5 Implement EXT_conservative_depth
11d920527 Roll vulkan-deps from 469b8c0e07d5 to 379ee8599f0f (10 revisions)
5b87328fb Roll SwiftShader from 9c9608fa94a9 to 0cc04d07ab24 (1 revision)
903d24c13 Roll Chromium from 23433174ff7f to 27821cf1b122 (589 revisions)
a621ea88c Adding a trace point for texture metrics.
ec9595f1a restricted_trace_perf: Run against default driver
a491bbe3b Add PLS utilities for interrupting a rendering pass
23ad4fa2b Don't hold global surface lock during AcquireNextImage
ba845fcf2 Metal: Implement EXT_clip_control
1e6dd013f Metal: Support centroid qualifier
53d1a179d Makes ToposortStructs() return consistent results
f56952445 Fix sample qualifier validation
c8c742f64 Roll vulkan-deps from 35cbe26c4b3a to 469b8c0e07d5 (8 revisions)
0709b6fdf Roll SwiftShader from 85772f1891db to 9c9608fa94a9 (7 revisions)
0cb6697a0 Capture/restricted_traces: update documentation
1beb6ef88 Roll Chromium from 528cae6045de to 23433174ff7f (599 revisions)
d7201a0f7 Tests: Add New Legend of the Condor Heroes trace
bacc066b4 Unskip dEQP-EGL tests
e809e7bdf Reland "Implement EXT_depth_clamp"
5384667f4 IWYU: missing include for std::atomic in FixedQueue.h
ee9a7df0b IWYU: usage of size_t requires include in texture_utils
518afe765 Roll SwiftShader from 7d001b3fac09 to 85772f1891db (1 revision)
151339b30 Roll vulkan-deps from 250e3914595d to 35cbe26c4b3a (10 revisions)
9c29f84ce Roll VK-GL-CTS from 20d674342f00 to 9e822059a32e (10 revisions)
462dcdcab Roll Chromium from 7a04676dce36 to 528cae6045de (657 revisions)
070749680 Validate gl[Push,Pop]DebugGroup
4a77b0f52 Revert "Implement EXT_depth_clamp"
d521ccb31 Tests: Add Rise Of Empires trace
7d1a401b4 Vulkan: Fix freeing not completed Secondary Command Buffers.
9b6368ccf Vulkan: Fix freeing Secondary Command Buffers from wrong thread.
29f80edae Vulkan: Hot fix crash when using Invalid VkSemaphore Object.
12b3d52d8 Prevent bugs in "FastVector" class.
6ea6b3602 Fix allowed_keywords dEQP test failures
50dec7168 Linux skips RegisterContextCompatibilityTests altogether.
f8c141831 Implement EXT_depth_clamp
21a3367a1 Tests: Reduce load of computation heavy tests for Swiftshader.
973244574 Roll SwiftShader from fa0e42592666 to 7d001b3fac09 (1 revision)
72c18fe64 Roll vulkan-deps from 88a74be445b7 to 250e3914595d (6 revisions)
aecfcefc3 Roll Chromium from 0abde2e3b92a to 7a04676dce36 (552 revisions)

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

Identifier: 259548.567 at safari-7615-branch


  Commit: bb2725be59f06a028a8f7d0efe4d21649961617b
      https://github.com/WebKit/WebKit/commit/bb2725be59f06a028a8f7d0efe4d21649961617b
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-04-04 (Tue, 04 Apr 2023)

  Changed paths:
    M Source/WebKit/UIProcess/ProcessThrottler.cpp
    M Source/WebKit/UIProcess/ProcessThrottler.h
    M Source/WebKit/UIProcess/WebProcessProxy.cpp

  Log Message:
  -----------
  Revert "Cherry-pick cf8a67802961. rdar://problem/106070798"

This reverts commit 1e9e2d92b63ca35b2ff858bd31113f6e1cd8d774.

Identifier: 259548.568 at safari-7615-branch


  Commit: 9e6858bc32952b0f4bd3b5e94cf56d546cfe8512
      https://github.com/WebKit/WebKit/commit/9e6858bc32952b0f4bd3b5e94cf56d546cfe8512
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm

  Log Message:
  -----------
  Revert "Cherry-pick fb964650f526. rdar://problem/107485654"

This reverts commit f5a2e154fe9ec69bec27e060d7353027729e1e5b.

Identifier: 259548.569 at safari-7615-branch


  Commit: 6735e4efc94f4e09dedd63650048ecfedb0a9079
      https://github.com/WebKit/WebKit/commit/6735e4efc94f4e09dedd63650048ecfedb0a9079
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm

  Log Message:
  -----------
  Cherry-pick fb964650f526. rdar://problem/107485654

    REGRESSION(262311 at main): Netflix video is blank
    https://bugs.webkit.org/show_bug.cgi?id=254841
    rdar://107485654

    Reviewed by Eric Carlson and Simon Fraser.

    Netflix hits an edge case in -[VideoLayerRemoteCocoa resolveBounds] where the initial layer
    bounds of the video content layer are 0x0, and therefore the early return if the bounds match
    videoLayerFrame mean that the resize never happens and videoLayerFrame is never set to a non-empty
    value.

    Don't bail out of -resolveBounds if self.videoLayerFrame is empty.

    * Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:
    (-[WKVideoLayerRemote resolveBounds]):

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

Identifier: 259548.570 at safari-7615-branch


  Commit: a85a241247b8ed761a6232f0a0c8a164f28785d5
      https://github.com/WebKit/WebKit/commit/a85a241247b8ed761a6232f0a0c8a164f28785d5
  Author: Miguel Salinas <miguel_salinas at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebKit/UIProcess/ProcessThrottler.cpp
    M Source/WebKit/UIProcess/ProcessThrottler.h
    M Source/WebKit/UIProcess/WebProcessProxy.cpp

  Log Message:
  -----------
  Cherry-pick cf8a67802961. rdar://problem/106070798

    [macOS] Stop ProcessThrottler for dead processes
    https://bugs.webkit.org/show_bug.cgi?id=254838
    rdar://106070798

    Reviewed by Chris Dumez.

    We have a bug report where the ProcessThrottler continues to take
    assertions on a process after it's been terminated. Usually when a
    process is terminated, its corresponding WebProcessProxy and
    ProcessThrottler are destroyed so this isn't an issue. However, when a
    process is killed by our background CPU usage monitor the
    WebProcessProxy and ProcessThrottler are not destroyed until we lazily
    relaunch the process. This fix tells the ProcessThrottler that we've
    disconnected from our process so that it stops trying to take process
    assertions.

    * Source/WebKit/UIProcess/ProcessThrottler.cpp:
    (WebKit::ProcessThrottler::didDisconnectFromProcess):
    * Source/WebKit/UIProcess/ProcessThrottler.h:
    * Source/WebKit/UIProcess/WebProcessProxy.cpp:
    (WebKit::WebProcessProxy::shutDown):

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

Identifier: 259548.571 at safari-7615-branch


  Commit: 884d71925aefda6c7b8ccbaff6049f266a8eb240
      https://github.com/WebKit/WebKit/commit/884d71925aefda6c7b8ccbaff6049f266a8eb240
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm

  Log Message:
  -----------
  Revert "Cherry-pick fb964650f526. rdar://problem/107485654"

This reverts commit 6735e4efc94f4e09dedd63650048ecfedb0a9079.

Identifier: 259548.572 at safari-7615-branch


  Commit: 8317512066d23f3948cc9984dee3ac49c9596f55
      https://github.com/WebKit/WebKit/commit/8317512066d23f3948cc9984dee3ac49c9596f55
  Author: Chirag M Shah <chirag_m_shah at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebCore/html/HTMLMediaElement.cpp
    M Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h
    M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h
    M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h
    M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
    M Source/WebCore/platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h
    M Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.h
    M Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h

  Log Message:
  -----------
  Fix heap-use-after-free MediaPlayer/MediaPlayerPrivateMediaStreamAVFObjC
https://bugs.webkit.org/show_bug.cgi?id=254954
rdar://107363228

Reviewed by Youenn Fablet.

This change fixes a UAF issue which happens when
processNewVideoFrame() ends up using a free'd MediaPlayer because it
used to store a raw pointer to that object. This change adopts a WeakPtr
for that, so that ownership semantics are clear. Also, a change in
attribute will result in a call to attributeChanged which results in a
call to createMediaPlayer(). At this point, we need to clear the
existing MediaPlayer, and invalidate it so that the m_client isn't left
dangling.

* Source/WebCore/html/HTMLMediaElement.cpp:
* Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
(WebCore::MediaPlayerPrivateAVFoundation::player):
(WebCore::MediaPlayerPrivateAVFoundation::player const):
* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h:
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* Source/WebCore/platform/graphics/holepunch/MediaPlayerPrivateHolePunch.h:
* Source/WebCore/platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
* Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.h:

Canonical link: https://commits.webkit.org/259548.573@safari-7615-branch


  Commit: 0c76eb21f2d8032b3091b090cf584c0bfa7cf003
      https://github.com/WebKit/WebKit/commit/0c76eb21f2d8032b3091b090cf584c0bfa7cf003
  Author: Arunsundar Kannan <arunsundar_kannan at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.cpp

  Log Message:
  -----------
  Potential OOB Read in ISOProtectionSystemSpecificHeaderBox::parse(...).
https://bugs.webkit.org/show_bug.cgi?id=254931.
rdar://107441432.

Reviewed by Jer Noble.

There is a potential OOB access in ISOProtectionSystemSpecificHeaderBox::parse when we do memcpy without a bounds check. This adds a bounds check to prevent such access.

* Source/WebCore/platform/graphics/iso/ISOProtectionSystemSpecificHeaderBox.cpp:
(WebCore::ISOProtectionSystemSpecificHeaderBox::parse):

Canonical link: https://commits.webkit.org/259548.574@safari-7615-branch


  Commit: 528dc965054e87f2670cb16397fa4bf816c313ac
      https://github.com/WebKit/WebKit/commit/528dc965054e87f2670cb16397fa4bf816c313ac
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm

  Log Message:
  -----------
  Cherry-pick f06787f3c33a. rdar://problem/107485654

    Entering/Leaving YouTube fullscreen causes the video to not scale fully to screen edges
    https://bugs.webkit.org/show_bug.cgi?id=254686
    rdar://102970285

    Reviewed by Eric Carlson.

    Sometimes the test for CGRectEqualToRect(self.videoLayerFrame, self.bounds) will unexpectedly
    succeed, leaving the video sublayer with the incorrect size and transform. Instead, this code
    should match that of WebAVPlayerLayer, and test against videoSublayer.bounds, since that's
    the value that is changed by the rest of the code.

    * Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:
    (-[WKVideoLayerRemote resolveBounds]):

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

Identifier: 259548.575 at safari-7615-branch


  Commit: 2e805a020299fb80e55998980df264ac565af602
      https://github.com/WebKit/WebKit/commit/2e805a020299fb80e55998980df264ac565af602
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm

  Log Message:
  -----------
  Cherry-pick fb964650f526. rdar://problem/107485654

    REGRESSION(262311 at main): Netflix video is blank
    https://bugs.webkit.org/show_bug.cgi?id=254841
    rdar://107485654

    Reviewed by Eric Carlson and Simon Fraser.

    Netflix hits an edge case in -[VideoLayerRemoteCocoa resolveBounds] where the initial layer
    bounds of the video content layer are 0x0, and therefore the early return if the bounds match
    videoLayerFrame mean that the resize never happens and videoLayerFrame is never set to a non-empty
    value.

    Don't bail out of -resolveBounds if self.videoLayerFrame is empty.

    * Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:
    (-[WKVideoLayerRemote resolveBounds]):

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

Identifier: 259548.576 at safari-7615-branch


  Commit: 3679790c14cee18c4418c3424237ee566d247b30
      https://github.com/WebKit/WebKit/commit/3679790c14cee18c4418c3424237ee566d247b30
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.cpp
    M Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.h

  Log Message:
  -----------
  v2: CrashTracer: com.apple.WebKit.Networking at JavaScriptCore: WTF::StringImpl::hashSlowCase const
rdar://106965632

Reviewed by Youenn Fablet and Ryosuke Niwa.

Moving a lambda might involve copying its captured variables. According to crash trace, recordInfos
(Vector<CacheStorageRecordInformation>) captured by didReadRecordFiles is copied when running on the WorkQueue of
CacheStorageDiskStore (com.apple.WebKit.CacheStorageCache). This is an issue as CacheStorageRecordInformation is not
thread-safe. To avoid this, we now replace the lambda with CompletionHandler, which has a more definitive move behavior
that does not involves copy.

* Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.cpp:
(WebKit::CacheStorageDiskStore::readAllRecordInfosInternal):
(WebKit::CacheStorageDiskStore::readAllRecordInfos):
(WebKit::CacheStorageDiskStore::readRecordsInternal):
(WebKit::CacheStorageDiskStore::readRecords):
* Source/WebKit/NetworkProcess/storage/CacheStorageDiskStore.h:

Canonical link: https://commits.webkit.org/259548.577@safari-7615-branch


  Commit: abeabed373827374b373b8b665b75cfa70e830c6
      https://github.com/WebKit/WebKit/commit/abeabed373827374b373b8b665b75cfa70e830c6
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    A Tools/CISupport/buildbot-cmd
    M Tools/CISupport/ews-build/steps.py
    M Tools/CISupport/ews-build/steps_unittest.py
    M Tools/CISupport/runUnittests.py
    M Tools/Scripts/webkitpy/autoinstalled/buildbot.py
    M Tools/Scripts/webkitpy/autoinstalled/twisted.py

  Log Message:
  -----------
  Cherry-pick 262159 at main (a5d5c8528495). rdar://104246259

    [CISupport] Autoinstall buildbot dependencies
    https://bugs.webkit.org/show_bug.cgi?id=250604
    <rdar://problem/104246259>

    Reviewed by Aakash Jain.

    Instead of relying on machine running our unit tests having buildbot
    installed, we should rely on webkitpy's autoinstaller.

    * Tools/CISupport/buildbot-cmd: Added.
    * Tools/CISupport/ews-build/steps.py:
    (RunBuildbotCheckConfig): Invoke local 'buildbot-cmd' script.
    * Tools/CISupport/ews-build/steps_unittest.py:
    * Tools/CISupport/runUnittests.py: Import buildbot from webkitpy if
    autoinstall is enabled.
    * Tools/Scripts/webkitpy/autoinstalled/buildbot.py: Update dependencies,
    install instead of just register libraries.
    * Tools/Scripts/webkitpy/autoinstalled/twisted.py: Ditto.

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

Canonical link: https://commits.webkit.org/259548.578@safari-7615-branch


  Commit: 615fb19ca0f570783b83e16d2e562ab309b43374
      https://github.com/WebKit/WebKit/commit/615fb19ca0f570783b83e16d2e562ab309b43374
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Tools/Scripts/hooks/pre-push
    M Tools/Scripts/libraries/webkitbugspy/setup.py
    M Tools/Scripts/libraries/webkitbugspy/webkitbugspy/__init__.py
    M Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py
    M Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py
    M Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py
    M Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py
    M Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py
    M Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py
    M Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py
    M Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tracker.py
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py
    M metadata/trackers.json

  Log Message:
  -----------
  Cherry-pick 262617 at main (e7a1365dc511). rdar://107615755

    [git-webkit] Provide mechanism to exempt bugs from redaction
    https://bugs.webkit.org/show_bug.cgi?id=254993
    rdar://107615755

    Reviewed by Geoffrey Garen.

    It is often the case that we with to (eventually) publish changes which are
    redacted when they are written. git-webkit should support a mechanism to mark
    bugs (and by extension, the commits associated with those bug) as exempt from
    redaction.

    * Tools/Scripts/hooks/pre-push: Do not flag class 3 commits if an issue is
    exempt from redaction.
    * Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitbugspy/webkitbugspy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:
    (Tracker.__init__): Pass redact_exemption.
    * Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:
    (Tracker.__init__): Pass redact_exemption.
    * Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py:
    (Issue.redacted): Check if an issue is exempt from redaction.
    * Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py:
    (Tracker.__init__): Pass redact_exemption.
    * Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:
    * Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:
    * Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py:
    * Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tracker.py:
    (Tracker.Redaction): Support defining a redaction exemption.
    (Tracker.from_json): Pass redact_exemption.
    (Tracker.__init__): Ditto.
    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
    (PullRequest.create_pull_request):
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
    * metadata/trackers.json: Exempt radars with the 'WebKit Cleared for Publication' keyword.

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

Canonical link: https://commits.webkit.org/259548.579@safari-7615-branch


  Commit: 01b33ef674cbf567eb40f40b40700de336405032
      https://github.com/WebKit/WebKit/commit/01b33ef674cbf567eb40f40b40700de336405032
  Author: Chris Gibb <cgibb2 at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Tools/Scripts/configure-xcode-for-embedded-development

  Log Message:
  -----------
  Cherry-pick 262630 at main (ff31bbc0bcd4). rdar://107664570

    Configuring Xcode 14.3 for Embedded Development Fails
    https://bugs.webkit.org/show_bug.cgi?id=255038
    rdar://107664570

    Reviewed by Jonathan Bedard.

    Configuring Xcode for embedded development fails in Xcode 14.3 due to changes to XCBSpecifications.

    * Tools/Scripts/configure-xcode-for-embedded-development:

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

Canonical link: https://commits.webkit.org/259548.580@safari-7615-branch


  Commit: 1698533dc391918027214b2d547f3331c8443c67
      https://github.com/WebKit/WebKit/commit/1698533dc391918027214b2d547f3331c8443c67
  Author: Mark Lam <mark.lam at apple.com>
  Date:   2023-04-05 (Wed, 05 Apr 2023)

  Changed paths:
    M Source/JavaScriptCore/bytecode/CodeBlock.cpp

  Log Message:
  -----------
  CodeBlock::baselineAlternative() lookup only needs an if statement.
https://bugs.webkit.org/show_bug.cgi?id=255030
<rdar://problem/107657983>

Reviewed by Justin Michaud and Yusuke Suzuki.

There is only ever 1 possible alternative i.e. the baseline CodeBlock.  Since there is
none beyond that, there is no need to loop here.

* Source/JavaScriptCore/bytecode/CodeBlock.cpp:
(JSC::CodeBlock::setAlternative):
(JSC::CodeBlock::baselineAlternative):

Canonical link: https://commits.webkit.org/259548.581@safari-7615-branch


  Commit: c730997a8dc95ac6a68a42ed5c549a917fb04ff7
      https://github.com/WebKit/WebKit/commit/c730997a8dc95ac6a68a42ed5c549a917fb04ff7
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py

  Log Message:
  -----------
  Cherry-pick 262618 at main (700cb2cd6435). rdar://107271252

    [git-webkit] Clarify fork relationship in creation prompt
    https://bugs.webkit.org/show_bug.cgi?id=254531
    rdar://107271252

    Reviewed by Aakash Jain.

    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
    (Setup.github): Include both owner and repository name when describing the
    repository git-webkit is creating a fork of.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:
    (TestSetup.test_github):

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

Canonical link: https://commits.webkit.org/259548.582@safari-7615-branch


  Commit: db812a4137c8c9147f5d3a56b30b245125582f2d
      https://github.com/WebKit/WebKit/commit/db812a4137c8c9147f5d3a56b30b245125582f2d
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    M Tools/Scripts/hooks/pre-push

  Log Message:
  -----------
  Cherry-pick 262635 at main (34c241927fad). rdar://107673301

    [git pre-push] Prevent pushing commits for redacted issues
    https://bugs.webkit.org/show_bug.cgi?id=255043
    rdar://107673301

    Reviewed by Elliott Williams and Geoffrey Garen.

    Prevent pushing commits which reference redacted issues to public remotes unless:
    1. Those commits are already on a public remote
    2. Those commits cherry-pick a commit already on a public remote
    3. Those commits reference an issue exempt from redaction
    Notably, this change removes the prompt allowing a user to override the guard against
    publishing a commit for a redacted issue.

    * Tools/Scripts/hooks/pre-push:

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

Canonical link: https://commits.webkit.org/259548.583@safari-7615-branch


  Commit: 827507770e56ad8b677d1efa692babc112d8035c
      https://github.com/WebKit/WebKit/commit/827507770e56ad8b677d1efa692babc112d8035c
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py

  Log Message:
  -----------
  Cherry-pick 262639 at main (40e8ecb625c1). rdar://107676470

    [git-webkit] Handle edge-case of commit not on branch
    https://bugs.webkit.org/show_bug.cgi?id=255050
    rdar://107676470

    Reviewed by Stephanie Lewis and Dewei Zhu.

    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
    (Git.branches_for): Handle case where a commit is on no branches.
    (Git.commit): Handle undefined branch.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/scm_base.py:
    (ScmBase.prioritize_branches): If no branches are provided, return None.

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

Canonical link: https://commits.webkit.org/259548.584@safari-7615-branch


  Commit: 9e442049d6d1727dcf72a6b9a26539e930dd0714
      https://github.com/WebKit/WebKit/commit/9e442049d6d1727dcf72a6b9a26539e930dd0714
  Author: Dean Jackson <dino at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    M Source/ThirdParty/ANGLE/src/common/apple/apple_platform.h
    M Source/ThirdParty/ANGLE/src/common/apple_platform_utils.mm
    M Source/ThirdParty/ANGLE/src/common/platform.h
    M Source/ThirdParty/ANGLE/src/common/system_utils.cpp
    M Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp
    M Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_internal.h
    M Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_ios.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Caps.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/formatutils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/driver_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/driver_utils.h
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/apple/DisplayApple_api.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ShaderMtl.mm
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm

  Log Message:
  -----------
  Cherry-pick 4b5b02b50968. rdar://problem/107713636

    More build fixes for ANGLE on embedded platforms
    https://bugs.webkit.org/show_bug.cgi?id=254933
    rdar://107570491

    Reviewed by Ken Russell.

    The change https://commits.webkit.org/262190@main fixed one build issue on
    watchOS, but uncovered more on other Apple embedded platforms. Sometimes there
    were branches of code not being compiled on anything but iOS and macOS. A lot
    of this comes from the slighting confusing way Apple defines targets in
    TargetConditionals.h. This patch is an attempt to make better sense of it, and
    apply it to ANGLE.

    The idea is that this will land first in WebKit, and if it doesn't break
    anything it will be posted to upstream ANGLE.

    Note that macOS Catalyst builds might require a followup.

    * Source/ThirdParty/ANGLE/src/common/apple/apple_platform.h:
        The meat of the patch is here. Add a new APPLE_EMBEDDED definition
        for iOS/watchOS/tvOS. Split the simulator out into its own
        definition. Everything below this is moving things to use
        the embedded path where needed.

    * Source/ThirdParty/ANGLE/src/common/apple_platform_utils.mm:
    (angle::IsMetalRendererAvailable):
    * Source/ThirdParty/ANGLE/src/common/platform.h:
    * Source/ThirdParty/ANGLE/src/common/system_utils.cpp:
    (angle::OpenSystemLibraryAndGetError):
    * Source/ThirdParty/ANGLE/src/common/system_utils_posix.cpp:
    (angle::OpenSystemLibraryWithExtensionAndGetError):
    * Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_internal.h:
    * Source/ThirdParty/ANGLE/src/gpu_info_util/SystemInfo_ios.cpp:
    * Source/ThirdParty/ANGLE/src/libANGLE/Caps.cpp:
    (gl::DetermineDepthTextureANGLESupport):
    (gl::DetermineDepthTextureOESSupport):
    * Source/ThirdParty/ANGLE/src/libANGLE/Display.cpp:
    (egl::GenerateClientExtensions):
    * Source/ThirdParty/ANGLE/src/libANGLE/formatutils.cpp:
    (gl::BuildInternalFormatInfoMap):
    * Source/ThirdParty/ANGLE/src/libANGLE/renderer/driver_utils.cpp:
    * Source/ThirdParty/ANGLE/src/libANGLE/renderer/driver_utils.h:
    (rx::IsAppleEmbedded):
    (rx::IsIOS): Deleted.
    * Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/apple/DisplayApple_api.cpp:
    (rx::CreateDisplayCGLOrEAGL):
    * Source/ThirdParty/ANGLE/src/libANGLE/renderer/gl/renderergl_utils.cpp:
    (rx::nativegl_gl::InitializeFeatures):
    * Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm:
    (rx::DisplayMtl::initializeExtensions const):
    * Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/ShaderMtl.mm:
    (rx::ShaderMtl::compile):
    * Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/mtl_utils.mm:
    (rx::mtl::GetSamplerAddressMode):

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

Identifier: 259548.585 at safari-7615-branch


  Commit: c18bfe19d36d6abdb2a4fbf8042da454074cf183
      https://github.com/WebKit/WebKit/commit/c18bfe19d36d6abdb2a4fbf8042da454074cf183
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    M Source/ThirdParty/ANGLE/src/libANGLE/renderer/metal/DisplayMtl.mm

  Log Message:
  -----------
  Unreviewed build fix after 259548.585 at safari-7615-branch

error: unterminated conditional directive #if !ANGLE_PLATFORM_WATCH

Canonical link: https://commits.webkit.org/259548.586@safari-7615-branch


  Commit: b2f12058f977a3e24b88dcb84ea3d3bdad150745
      https://github.com/WebKit/WebKit/commit/b2f12058f977a3e24b88dcb84ea3d3bdad150745
  Author: Myah Cobbs <mcobbs at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    M Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.

WebKit-7615.2.7

Identifier: 259548.587 at safari-7615-branch


  Commit: 3f8875488cf55c94dc9d53c75e2425103922e05e
      https://github.com/WebKit/WebKit/commit/3f8875488cf55c94dc9d53c75e2425103922e05e
  Author: Arunsundar Kannan <arunsundar_kannan at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    A LayoutTests/http/tests/media/fairplay/fps-init-data-cenc-oob-crash-expected.txt
    A LayoutTests/http/tests/media/fairplay/fps-init-data-cenc-oob-crash.html
    M Source/WebCore/platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.cpp

  Log Message:
  -----------
  CDMPrivateFairPlayStreaming parsing of WebCore::ISOFairPlayStreamingKeyRequestInfoBox can trigger an OOB read.
https://bugs.webkit.org/show_bug.cgi?id=255075
rdar://103843976.

Reviewed by Jer Noble.

ISOFairPlayStreamingKeyRequestInfoBox::parse is missing basic bounds checking before memcpy. This change add the check.

* LayoutTests/http/tests/media/fairplay/fps-init-data-cenc-oob-crash-expected.txt: Added.
* LayoutTests/http/tests/media/fairplay/fps-init-data-cenc-oob-crash.html: Added.
* Source/WebCore/platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.cpp:
(WebCore::ISOFairPlayStreamingKeyRequestInfoBox::parse):
(WebCore::ISOFairPlayStreamingKeyAssetIdBox::parse):
(WebCore::ISOFairPlayStreamingKeyContextBox::parse):

Canonical link: https://commits.webkit.org/259548.588@safari-7615-branch


  Commit: f65e232a588f26ea90658958aca6b71708015ea4
      https://github.com/WebKit/WebKit/commit/f65e232a588f26ea90658958aca6b71708015ea4
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    M Source/WebKit/UIProcess/WebProcessPool.cpp

  Log Message:
  -----------
  Cherry-pick 9e54e083d6c2. rdar://problem/107735186

    WebProcessPool::processForNavigation() should prevent the process from getting shut down while waiting for AddAllowedFirstPartyForCookies IPC reply
    https://bugs.webkit.org/show_bug.cgi?id=252843
    rdar://105375981

    Reviewed by Alex Christensen.

    ebProcessPool::processForNavigation() should prevent the process from getting
    shut down (or added to the process cache) while waiting for
    AddAllowedFirstPartyForCookies IPC reply.

    We recently fixed the lambda in WebPageProxy::triggerBrowsingContextGroupSwitchForNavigation()
    but failed to fix this one.

    * Source/WebKit/UIProcess/WebProcessPool.cpp:
    (WebKit::WebProcessPool::processForNavigation):

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

Canonical link: https://commits.webkit.org/259548.589@safari-7615-branch


  Commit: dd4ad7b0b28630205297f171829f777f7958633e
      https://github.com/WebKit/WebKit/commit/dd4ad7b0b28630205297f171829f777f7958633e
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-04-06 (Thu, 06 Apr 2023)

  Changed paths:
    A LayoutTests/ipc/shared-video-frame-size-expected.txt
    A LayoutTests/ipc/shared-video-frame-size.html
    M LayoutTests/platform/mac-wk1/TestExpectations
    M Source/WebCore/platform/cocoa/SharedVideoFrameInfo.h
    M Source/WebCore/platform/cocoa/SharedVideoFrameInfo.mm

  Log Message:
  -----------
  [GPUP][CoreIPC] Integer overflow in SharedVideoFrameInfo::storageSize leading to OOB read
rdar://107023292

Reviewed by Eric Carlson.

Compute with safeMultitply/safeAdd the total size of the frame.
If there is an overflow, we now fail the decoding of SharedVideoFrameInfo.
We store the size of the frame in SharedVideoFrameInfo to not recompute it a second time.

Covered by provided IPC test.

* LayoutTests/ipc/shared-video-frame-size-expected.txt: Added.
* LayoutTests/ipc/shared-video-frame-size.html: Added.
* LayoutTests/platform/mac-wk1/TestExpectations:
* Source/WebCore/platform/cocoa/SharedVideoFrameInfo.h:
* Source/WebCore/platform/cocoa/SharedVideoFrameInfo.mm:
(WebCore::SharedVideoFrameInfo::storageSize const):
(WebCore::SharedVideoFrameInfo::decode):

Canonical link: https://commits.webkit.org/259548.590@safari-7615-branch


  Commit: 25986ccceda6fded87672ca54e4b5e58fb0f34e9
      https://github.com/WebKit/WebKit/commit/25986ccceda6fded87672ca54e4b5e58fb0f34e9
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    M Source/WebKit/UIProcess/WebProcessProxy.cpp

  Log Message:
  -----------
  Don't launch GPU process just to update whether WebGPU is enabled
https://bugs.webkit.org/show_bug.cgi?id=255116
rdar://107684550

Reviewed by Ryosuke Niwa and Chris Dumez.

Some API tests started to fail with rdar://107153896 because they verified
that the GPU process was not running in certain circumstances.  I introduced
an unnecessary call to ensureGPUProcess that could've been just a call to
gpuProcess because if the GPU process isn't running then there isn't anything
to update and it will get the correct value when it starts.

* Source/WebKit/UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::updateWebGPUEnabledStateInGPUProcess):

Canonical link: https://commits.webkit.org/259548.591@safari-7615-branch


  Commit: 61fa810ab89d496962958c7b5cb75e4da055b6c6
      https://github.com/WebKit/WebKit/commit/61fa810ab89d496962958c7b5cb75e4da055b6c6
  Author: Mark Lam <mark.lam at apple.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64E.h

  Log Message:
  -----------
  untagArrayPtr() should do validation if FPAC is not available, not the other way around.
https://bugs.webkit.org/show_bug.cgi?id=255136
rdar://107739543

Reviewed by Yusuke Suzuki and Justin Michaud.

The current code erroneously tests for the inverted condition.

* Source/JavaScriptCore/assembler/MacroAssemblerARM64E.h:
(JSC::MacroAssemblerARM64E::untagArrayPtr):
(JSC::MacroAssemblerARM64E::untagArrayPtrLength64):

Canonical link: https://commits.webkit.org/259548.592@safari-7615-branch


  Commit: 3af36c03d9072cac42de3851ad2ab02b71f91ca3
      https://github.com/WebKit/WebKit/commit/3af36c03d9072cac42de3851ad2ab02b71f91ca3
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    R LayoutTests/ipc/shared-video-frame-size-expected.txt
    R LayoutTests/ipc/shared-video-frame-size.html
    M LayoutTests/platform/mac-wk1/TestExpectations
    M Source/WebCore/platform/cocoa/SharedVideoFrameInfo.h
    M Source/WebCore/platform/cocoa/SharedVideoFrameInfo.mm

  Log Message:
  -----------
  Unreviewed revert of 259548.590 at safari-7615-branch (dd4ad7b0b).

Reverting due to introduction of an assertion failure:
ASSERTION FAILED: sizeof(SharedVideoFrameInfo) == encoder.bufferSize()

* LayoutTests/ipc/shared-video-frame-size-expected.txt: Removed.
* LayoutTests/ipc/shared-video-frame-size.html: Removed.
* LayoutTests/platform/mac-wk1/TestExpectations:
* Source/WebCore/platform/cocoa/SharedVideoFrameInfo.h:
* Source/WebCore/platform/cocoa/SharedVideoFrameInfo.mm:
(WebCore::SharedVideoFrameInfo::storageSize const):
(WebCore::SharedVideoFrameInfo::decode):

Canonical link: https://commits.webkit.org/259548.593@safari-7615-branch


  Commit: 578685c119497b1e54b8eb78c6fae5aef73d611c
      https://github.com/WebKit/WebKit/commit/578685c119497b1e54b8eb78c6fae5aef73d611c
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    M Tools/Scripts/hooks/prepare-commit-msg

  Log Message:
  -----------
  Cherry-pick 262688 at main (ba739f2564d7). rdar://107729416

    [prepare-commit-msg] Fix 'git commit --reedit-message'
    https://bugs.webkit.org/show_bug.cgi?id=255121
    rdar://107729416

    Reviewed by Elliott Williams.

    * Tools/Scripts/hooks/prepare-commit-msg: Pass commit argument when generating log.

    Canonical link: https://commits.webkit.org/262688@main
Canonical link: https://commits.webkit.org/259548.594@safari-7615-branch


  Commit: 6922db74c4d96ae4c7e9dc91e184b08aad9f15e8
      https://github.com/WebKit/WebKit/commit/6922db74c4d96ae4c7e9dc91e184b08aad9f15e8
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/commit.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/commit_classifier.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/trace.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/classify_unittest.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/commit_unittest.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/trace_unittest.py
    M metadata/commit_classes.json

  Log Message:
  -----------
  Cherry-pick 262707 at main (0a38586f401a). rdar://107725282

    [git-webkit] Handle trailing cherry-pick annotation
    https://bugs.webkit.org/show_bug.cgi?id=255113
    rdar://107725282

    Rubber-stamped by Aakash Jain.

    Since cherry-picks may now be denoted by a trailing line in the commit message,
    git-webkit should handle these cases. In general, these means that git-webkit
    needs to parse trailing lines in a commit message along with the leading line.

    * Tools/Scripts/libraries/webkitscmpy/setup.py: Version bump.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/commit.py:
    (Commit.issues): Any issues in trailers need to take priority over those listed in
    the commit message for tooling.
    (Commit.trailers): List all message trailers.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/commit_classifier.py:
    (CommitClassifier.LineFilter): Renamed from HeaderFilter.
    (CommitClassifier.CommitClass.__init__): Accept "trailer" filters.
    (CommitClassifier.classify): Implement processing of trailers. If a classification
    defines both headers and trailers, only require either a matching header or a matching trailer,
    but not both.
    (CommitClassifier.HeaderFilter): Renamed to LineFilter.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/trace.py:
    (Relationship.parse): Parse trailers along with the commit header.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/classify_unittest.py:
    (TestClassify.test_trailer_success):
    (TestClassify.test_trailer_failure):
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/commit_unittest.py:
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/trace_unittest.py:
    (TestRelationship.test_cherry_pick):
    * metadata/commit_classes.json: Commits which define themselves as cherry-picks in their
    trailer should be classified as cherry-picks.

    Canonical link: https://commits.webkit.org/262707@main
Canonical link: https://commits.webkit.org/259548.595@safari-7615-branch


  Commit: e9f1b49ae109b7e4bb45a9ffbbc6463b663cd4ed
      https://github.com/WebKit/WebKit/commit/e9f1b49ae109b7e4bb45a9ffbbc6463b663cd4ed
  Author: Jonathan Bedard <jbedard at apple.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    M Tools/Scripts/hooks/prepare-commit-msg
    M Tools/Scripts/libraries/webkitscmpy/setup.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/message.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py
    M Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py

  Log Message:
  -----------
  Cherry-pick 262726 at main (659cd39a8658). rdar://107708812

    Use different cherry-pick format for main
    https://bugs.webkit.org/show_bug.cgi?id=255088
    rdar://107708812

    Reviewed by Dewei Zhu.

    When cherry-picking into main, retain the original commit message in it's entireity
    and tag the bottom of the commit with a 'Originally-landed-as' message. Use existing behavior
    for all other branches.

    * Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py: Ditto.
    * Tools/Scripts/hooks/prepare-commit-msg:
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/canonicalize/message.py:
    (main): Do not insert lines between trailers.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py:
    (InstallHooks.main): Pass default branch, trailers to strip and source remotes to hook templates.
    * Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/canonicalize_unittest.py:
    (TestCanonicalize.test_alternate_trailer):

    Canonical link: https://commits.webkit.org/262726@main
Canonical link: https://commits.webkit.org/259548.596@safari-7615-branch


  Commit: 7811f6f9e18f8b7408a53af77ac2a6fbd6e1a428
      https://github.com/WebKit/WebKit/commit/7811f6f9e18f8b7408a53af77ac2a6fbd6e1a428
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    A LayoutTests/ipc/shared-video-frame-size-expected.txt
    A LayoutTests/ipc/shared-video-frame-size.html
    M Source/WebCore/platform/cocoa/SharedVideoFrameInfo.mm

  Log Message:
  -----------
  [GPUP][CoreIPC] Integer overflow in SharedVideoFrameInfo::storageSize leading to OOB read
rdar://107023292

Reviewed by Eric Carlson.

Compute with safeMultitply/safeAdd the total size of the frame.
If there is an overflow, we now fail the decoding of SharedVideoFrameInfo.

Covered by provided IPC test.

* LayoutTests/ipc/shared-video-frame-size-expected.txt: Added.
* LayoutTests/ipc/shared-video-frame-size.html: Added.
* Source/WebCore/platform/cocoa/SharedVideoFrameInfo.mm:
(WebCore::SharedVideoFrameInfo::storageSize const):
(WebCore::SharedVideoFrameInfo::decode):

Canonical link: https://commits.webkit.org/259548.597@safari-7615-branch


  Commit: 9639de00f13c99d8454f4f3d273ecf3bd60e0861
      https://github.com/WebKit/WebKit/commit/9639de00f13c99d8454f4f3d273ecf3bd60e0861
  Author: Robert Jenner <jenner at apple.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    M LayoutTests/compositing/patterns/direct-pattern-compositing-add-text.html
    M LayoutTests/compositing/patterns/direct-pattern-compositing-padding.html
    M LayoutTests/compositing/patterns/direct-pattern-compositing.html
    M LayoutTests/fast/backgrounds/background-opaque-clipped-gradients.html
    M LayoutTests/fast/backgrounds/scaled-gradient-background.html
    M LayoutTests/fast/gradients/linear-two-hints.html
    M LayoutTests/fast/gradients/radial-two-hints.html
    M LayoutTests/fast/images/async-image-background-image-repeated.html
    M LayoutTests/fast/mediastream/MediaStream-video-element-video-tracks-disabled.html
    M LayoutTests/fast/shadow-dom/svg-linear-gradient-dynamic-update-href-in-shadow-tree.html
    M LayoutTests/fast/shadow-dom/svg-linear-gradient-href-in-shadow-tree.html
    M LayoutTests/fast/shadow-dom/svg-radial-gradient-dynamic-update-href-in-shadow-tree.html
    M LayoutTests/fast/shadow-dom/svg-radial-gradient-href-in-shadow-tree.html
    M LayoutTests/imported/blink/fast/gradients/large-horizontal-gradient.html
    M LayoutTests/imported/blink/fast/gradients/large-vertical-gradient.html
    M LayoutTests/imported/blink/svg/custom/fill-fallback-currentcolor-1.svg
    M LayoutTests/imported/blink/svg/text/obb-paintserver.html
    M LayoutTests/imported/w3c/web-platform-tests/compat/webkit-background-origin-text.html
    M LayoutTests/imported/w3c/web-platform-tests/compat/webkit-linear-gradient-line-bottom.html
    M LayoutTests/imported/w3c/web-platform-tests/compat/webkit-linear-gradient-line-left.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-repeat-space-4.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-repeat-space-5.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/linear-gradient-currentcolor-first-line.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/gradients-with-border.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-mask-image.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-images/multiple-position-color-stop-linear.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-clip-exclude.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-001.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-002.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-003.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-017.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-018.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/gradientTransform/svg-gradientTransform-001.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/gradientTransform/svg-gradientTransform-combination-001.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/gradientTransform/svg-gradientTransform-combination-003.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/angle-units-001.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/angle-units-002.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/angle-units-003.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/angle-units-004.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-values/angle-units-005.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-variables/vars-background-shorthand-001.html
    M LayoutTests/svg/animations/animated-string-href.svg
    M LayoutTests/svg/clip-path/clip-path-objectboundingbox-003.svg
    M LayoutTests/svg/custom/href-svg-namespace-static.svg
    M LayoutTests/svg/custom/href-xlink-href-gradient-element.svg
    M LayoutTests/svg/custom/local-url-reference-fill.html
    M LayoutTests/svg/custom/local-url-reference-radial-gradient.html
    M LayoutTests/svg/custom/local-url-reference-srcdoc.html
    M LayoutTests/svg/custom/local-url-reference-stroke.html
    M LayoutTests/svg/dynamic-updates/SVGLinearGradientElement-svgdom-href-prop.html
    M LayoutTests/svg/dynamic-updates/SVGRadialGradientElement-svgdom-href-prop.html
    M LayoutTests/svg/gradients/spreadMethod.svg
    M LayoutTests/svg/gradients/spreadMethodDiagonal.svg
    M LayoutTests/svg/gradients/spreadMethodDiagonal2.svg
    M LayoutTests/svg/gradients/spreadMethodDuplicateStop.svg
    M LayoutTests/svg/gradients/spreadMethodReversed.svg
    M LayoutTests/svg/gradients/stopAlpha.svg

  Log Message:
  -----------
  Cherry-pick 261277 at main (3ba1cd78db7a). rdar://106167726

    [ iOS arm64 ] Multiple layout-tests need pixel tolerance adjustments for arm64 (253274)
    https://bugs.webkit.org/show_bug.cgi?id=253274
    rdar://106167726

    Unreviewed test gardening. Pixel tolerance adjustment for ASi Macs.

    * LayoutTests/compositing/patterns/direct-pattern-compositing-add-text.html:
    * LayoutTests/compositing/patterns/direct-pattern-compositing-padding.html:
    * LayoutTests/compositing/patterns/direct-pattern-compositing.html:
    * LayoutTests/fast/backgrounds/background-opaque-clipped-gradients.html:
    * LayoutTests/fast/backgrounds/scaled-gradient-background.html:
    * LayoutTests/fast/gradients/linear-two-hints.html:
    * LayoutTests/fast/gradients/radial-two-hints.html:
    * LayoutTests/fast/images/async-image-background-image-repeated.html:
    * LayoutTests/fast/mediastream/MediaStream-video-element-video-tracks-disabled.html:
    * LayoutTests/fast/shadow-dom/svg-linear-gradient-dynamic-update-href-in-shadow-tree.html:
    * LayoutTests/fast/shadow-dom/svg-linear-gradient-href-in-shadow-tree.html:
    * LayoutTests/fast/shadow-dom/svg-radial-gradient-dynamic-update-href-in-shadow-tree.html:
    * LayoutTests/fast/shadow-dom/svg-radial-gradient-href-in-shadow-tree.html:
    * LayoutTests/imported/blink/fast/gradients/large-horizontal-gradient.html:
    * LayoutTests/imported/blink/fast/gradients/large-vertical-gradient.html:
    * LayoutTests/imported/blink/svg/custom/fill-fallback-currentcolor-1.svg:
    * LayoutTests/imported/blink/svg/text/obb-paintserver.html:
    * LayoutTests/imported/w3c/web-platform-tests/compat/webkit-background-origin-text.html:
    * LayoutTests/imported/w3c/web-platform-tests/compat/webkit-linear-gradient-line-bottom.html:
    * LayoutTests/imported/w3c/web-platform-tests/compat/webkit-linear-gradient-line-left.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-repeat-space-4.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/background-repeat-space-5.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-backgrounds/linear-gradient-currentcolor-first-line.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/gradients-with-border.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/image-orientation/image-orientation-mask-image.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-images/multiple-position-color-stop-linear.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-masking/mask-image/mask-image-clip-exclude.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-001.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-002.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-shapes/shape-outside/shape-image/gradients/shape-outside-linear-gradient-003.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-017.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-text/white-space/white-space-intrinsic-size-018.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/gradientTransform/svg-gradientTransform-001.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/gradientTransform/svg-gradientTransform-combination-001.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/gradientTransform/svg-gradientTransform-combination-003.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-values/angle-units-001.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-values/angle-units-002.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-values/angle-units-003.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-values/angle-units-004.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-values/angle-units-005.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-variables/vars-background-shorthand-001.html:
    * LayoutTests/platform/ios-simulator-wk2/TestExpectations:
    * LayoutTests/svg/animations/animated-string-href.svg:
    * LayoutTests/svg/clip-path/clip-path-objectboundingbox-003.svg:
    * LayoutTests/svg/custom/href-svg-namespace-static.svg:
    * LayoutTests/svg/custom/href-xlink-href-gradient-element.svg:
    * LayoutTests/svg/custom/local-url-reference-fill.html:
    * LayoutTests/svg/custom/local-url-reference-radial-gradient.html:
    * LayoutTests/svg/custom/local-url-reference-srcdoc.html:
    * LayoutTests/svg/custom/local-url-reference-stroke.html:
    * LayoutTests/svg/dynamic-updates/SVGLinearGradientElement-svgdom-href-prop.html:
    * LayoutTests/svg/dynamic-updates/SVGRadialGradientElement-svgdom-href-prop.html:
    * LayoutTests/svg/gradients/spreadMethod.svg:
    * LayoutTests/svg/gradients/spreadMethodDiagonal.svg:
    * LayoutTests/svg/gradients/spreadMethodDiagonal2.svg:
    * LayoutTests/svg/gradients/spreadMethodDuplicateStop.svg:
    * LayoutTests/svg/gradients/spreadMethodReversed.svg:
    * LayoutTests/svg/gradients/stopAlpha.svg:

    Canonical link: https://commits.webkit.org/261277@main
Canonical link: https://commits.webkit.org/259548.598@safari-7615-branch


  Commit: 3af34310dbf8366dba21cfb942587f3c6b0082ed
      https://github.com/WebKit/WebKit/commit/3af34310dbf8366dba21cfb942587f3c6b0082ed
  Author: Robert Jenner <jenner at apple.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    M LayoutTests/css3/blending/background-blend-mode-body-image.html
    M LayoutTests/css3/blending/background-blend-mode-body-transparent-color-and-image.html
    M LayoutTests/css3/blending/background-blend-mode-body-transparent-image.html
    M LayoutTests/css3/filters/effect-grayscale-hw.html
    M LayoutTests/fast/images/sprite-sheet-image-draw.html
    M LayoutTests/imported/w3c/web-platform-tests/compat/webkit-linear-gradient-line-right.html
    M LayoutTests/imported/w3c/web-platform-tests/compat/webkit-linear-gradient-line-top.html
    M LayoutTests/svg/css/invalid-color-cascade.svg
    M LayoutTests/svg/gradients/spreadMethodDiagonal3.svg
    M LayoutTests/svg/gradients/spreadMethodDiagonal4.svg

  Log Message:
  -----------
  Cherry-pick 261695 at main (8519e6435f57). rdar://106725307

    10X tests need pixel tolerance adjustments for running in simulators on arm64 Macs
    https://bugs.webkit.org/show_bug.cgi?id=253918
    rdar://106725307

    Unreviewed test gardening.

    Adjusting pixel tolerances to account for failures seen after upgrading macos version on bots from Monterey to Ventura.

    * LayoutTests/css3/blending/background-blend-mode-body-image.html:
    * LayoutTests/css3/blending/background-blend-mode-body-transparent-color-and-image.html:
    * LayoutTests/css3/blending/background-blend-mode-body-transparent-image.html:
    * LayoutTests/css3/filters/effect-grayscale-hw.html:
    * LayoutTests/fast/images/sprite-sheet-image-draw.html:
    * LayoutTests/imported/w3c/web-platform-tests/compat/webkit-linear-gradient-line-right.html:
    * LayoutTests/imported/w3c/web-platform-tests/compat/webkit-linear-gradient-line-top.html:
    * LayoutTests/svg/css/invalid-color-cascade.svg:
    * LayoutTests/svg/gradients/spreadMethodDiagonal3.svg:
    * LayoutTests/svg/gradients/spreadMethodDiagonal4.svg:

    Canonical link: https://commits.webkit.org/261695@main
Canonical link: https://commits.webkit.org/259548.599@safari-7615-branch


  Commit: 1892c29beea332af01f8b118396b37dc64be74a2
      https://github.com/WebKit/WebKit/commit/1892c29beea332af01f8b118396b37dc64be74a2
  Author: Bri Harris <bharris9 at apple.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    M LayoutTests/platform/ios/TestExpectations

  Log Message:
  -----------
  Cherry-pick 262304 at main (b9cac8123642). rdar://107395155

    [ iOS ] imported/w3c/web-platform-tests/css/css-images/image-set/image-set-calc-x-rendering-2.html is a constant failure.
    https://bugs.webkit.org/show_bug.cgi?id=254714
    rdar://107395155

    Unreviewed test gardening.

    Setting expectations for failing tests.

    * LayoutTests/platform/ios/TestExpectations:

    Canonical link: https://commits.webkit.org/262304@main
Canonical link: https://commits.webkit.org/259548.600@safari-7615-branch


  Commit: f950b3d59c512ffcd8cb68357c92e1e294f2394d
      https://github.com/WebKit/WebKit/commit/f950b3d59c512ffcd8cb68357c92e1e294f2394d
  Author: Ryan Haddad <ryanhaddad at apple.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/mac/TestExpectations

  Log Message:
  -----------
  Cherry-pick 262441 at main (e3babff08eae). rdar://107373558

    REGRESSION (261705 at main): [ iOS, macOS ] fast/text/web-font-load-invisible-during-loading.html is a flaky text failure.
    https://bugs.webkit.org/show_bug.cgi?id=254637
    rdar://107373558

    Unreviewed test gardening.

    * LayoutTests/platform/ios/TestExpectations: Mark the test as flaky.
    * LayoutTests/platform/mac/TestExpectations: Ditto.

    Canonical link: https://commits.webkit.org/262441@main
Canonical link: https://commits.webkit.org/259548.601@safari-7615-branch


  Commit: 1fd08d3625ddbd65186455c980b4d7fdacf06f4d
      https://github.com/WebKit/WebKit/commit/1fd08d3625ddbd65186455c980b4d7fdacf06f4d
  Author: Bri Harris <bharris9 at apple.com>
  Date:   2023-04-07 (Fri, 07 Apr 2023)

  Changed paths:
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/mac-wk1/TestExpectations
    M LayoutTests/platform/mac-wk2/TestExpectations

  Log Message:
  -----------
  Cherry-pick 262595 at main (4798b5317d9d). rdar://107393338

    [ iOS, macOS ] imported/w3c/web-platform-tests/html/dom/idlharness.https.html near constant failure.
    https://bugs.webkit.org/show_bug.cgi?id=254706
    rdar://107393338

    Unreviewed test gardening.

    * LayoutTests/platform/ios/TestExpectations:
    * LayoutTests/platform/mac-wk1/TestExpectations:
    * LayoutTests/platform/mac-wk2/TestExpectations:

    Canonical link: https://commits.webkit.org/262595@main
Canonical link: https://commits.webkit.org/259548.602@safari-7615-branch


  Commit: 95c9684ab1f82854b3064b14d2743aae3908455b
      https://github.com/WebKit/WebKit/commit/95c9684ab1f82854b3064b14d2743aae3908455b
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M Source/WebCore/html/HTMLMediaElement.cpp

  Log Message:
  -----------
  Revert 80706457f5d9. rdar://problem/106903758

Canonical link: https://commits.webkit.org/259548.603@safari-7615-branch


  Commit: aeaf566aac8807040035d52129ab78dd86fabcd4
      https://github.com/WebKit/WebKit/commit/aeaf566aac8807040035d52129ab78dd86fabcd4
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M LayoutTests/http/tests/media/autoplay-if-audio-is-playing-expected.txt
    M LayoutTests/http/tests/media/autoplay-if-audio-is-playing.html
    M LayoutTests/media/media-fullscreen-inline-expected.txt
    M LayoutTests/media/media-fullscreen.js
    M LayoutTests/media/playlist-inherits-user-gesture.html
    M LayoutTests/media/restricted-audio-playback-with-multiple-settimeouts.html
    M LayoutTests/platform/glib/media/media-fullscreen-inline-expected.txt
    M LayoutTests/platform/glib/media/media-fullscreen-not-in-document-expected.txt
    M Source/WebCore/dom/Document.cpp
    M Source/WebCore/dom/FullscreenManager.cpp
    M Source/WebCore/html/HTMLMediaElement.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WebsitePolicies.mm
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/autoplaying-multiple-media-elements.html

  Log Message:
  -----------
  Revert 87bfcd1ee704. rdar://problem/106903758

Canonical link: https://commits.webkit.org/259548.604@safari-7615-branch


  Commit: a7b97b486e38d226956b0cacbc73171adb072134
      https://github.com/WebKit/WebKit/commit/a7b97b486e38d226956b0cacbc73171adb072134
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.


  Commit: 10900809b481139e3e0f357bb1fb4e68436fc57a
      https://github.com/WebKit/WebKit/commit/10900809b481139e3e0f357bb1fb4e68436fc57a
  Author: Matt Woodrow <mattwoodrow at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp

  Log Message:
  -----------
  Cherry-pick 284c71ac630f. rdar://problem/106767160

    ReleaseSerializedImageBuffer doesn't release the underlying IOSurface.
    https://bugs.webkit.org/show_bug.cgi?id=253927

    Reviewed by Kimmo Kinnunen.

    We're adding a read reference in the RemoteSerializedImageBufferProxy constructor, and we never have any reads happen if we destroy the RemoteSerializedImageBufferProxy without transferring to an ImageBuffer.

    This shouldn't happen often, but can happen if you draw to an OffscreenCanvas, call `commit()`, and then draw again quickly (not waiting for rAF).
    Instead, only add the read reference when transferring to an ImageBuffer, since this both reads and writes (remove).

    * Source/WebKit/WebProcess/GPU/graphics/RemoteImageBufferProxy.cpp:
    (WebKit::RemoteSerializedImageBufferProxy::RemoteSerializedImageBufferProxy):
    (WebKit::RemoteSerializedImageBufferProxy::sinkIntoImageBuffer):

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


  Commit: 5d2b1a8eac894d3ee5905c3a01be153162df4573
      https://github.com/WebKit/WebKit/commit/5d2b1a8eac894d3ee5905c3a01be153162df4573
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    A LayoutTests/editing/execCommand/insert-ordered-list-move-paragraph-removes-destination-expected.txt
    A LayoutTests/editing/execCommand/insert-ordered-list-move-paragraph-removes-destination.html
    M Source/WebCore/editing/CompositeEditCommand.cpp

  Log Message:
  -----------
  Cherry-pick 313f87a7b574. rdar://problem/103107013

    Assertion failure in compositeeditcommand::moveParagraphs
    https://bugs.webkit.org/show_bug.cgi?id=254302

    Reviewed by Wenson Hsieh.

    The assertion failure was caused by deleteSelection removing the destination node. This occurred because
    we were adjusting destination to be within the content (i.e. text node before br element) to be deleted
    when canonicalizing to visible position. Remember the downstream position in the case this happens and
    re-create VisiblePosition out of this downstream position if deleteSelection orphaned the destination.

    * LayoutTests/editing/execCommand/insert-ordered-list-move-paragraph-removes-destination-expected.txt: Added.
    * LayoutTests/editing/execCommand/insert-ordered-list-move-paragraph-removes-destination.html: Added.
    * Source/WebCore/editing/CompositeEditCommand.cpp:
    (WebCore::CompositeEditCommand::moveParagraphs):

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


  Commit: 976cc0d0e66d67f6373bab9cb9c4693d0fa2e2db
      https://github.com/WebKit/WebKit/commit/976cc0d0e66d67f6373bab9cb9c4693d0fa2e2db
  Author: JC Alvarado <joncarlo at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

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

  Log Message:
  -----------
  Cherry-pick c27c56bff56c. rdar://problem/107117855

    Wrap captured variable with WeakPtr in GPUProcess::initializeGPUProcess
    https://bugs.webkit.org/show_bug.cgi?id=254316
    rdar://107117855

    Reviewed by Ryosuke Niwa and Youenn Fablet.

    We are storing a lambda with a captured variable. We should use a
    smart pointer here so we can check if this is alive before accessing it.

    * Source/WebKit/GPUProcess/GPUProcess.cpp:
    (WebKit::GPUProcess::initializeGPUProcess):

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


  Commit: df7d33f578e9ea82b7dd6de552d90b851d5d5058
      https://github.com/WebKit/WebKit/commit/df7d33f578e9ea82b7dd6de552d90b851d5d5058
  Author: Yijia Huang <yijia_huang at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M Source/JavaScriptCore/runtime/JSModuleRecord.cpp

  Log Message:
  -----------
  Cherry-pick 79f077301b07. rdar://problem/107531050

    Speculative fix for crash mitigation in JSModuleRecord::instantiateDeclarations
    https://bugs.webkit.org/show_bug.cgi?id=255013
    rdar://107634974

    Reviewed by Mark Lam.

    This is a speculative fix to mitigate a crash in JSModuleRecord::instantiateDeclarations
    which is due to an undefined imported module. However, the existing implementation
    should already handle the undefined case by throwing and catching an exception when
    encountering an undefined JSValue. This patch ensures that the target pointer will not
    have the undefined value. If it does, we'll throw an exception.

    * Source/JavaScriptCore/runtime/JSModuleRecord.cpp:
    (JSC::JSModuleRecord::instantiateDeclarations):

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


  Commit: 857cf1d0915a4dc77c104290f6084c7c811fff6a
      https://github.com/WebKit/WebKit/commit/857cf1d0915a4dc77c104290f6084c7c811fff6a
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
    M Source/WebCore/accessibility/AccessibilityNodeObject.h

  Log Message:
  -----------
  Cherry-pick 2cd8ae7e10ea. rdar://problem/107589983

    AX: Make AccessibilityNodeObject::m_node hold a WeakPtr<Node>
    https://bugs.webkit.org/show_bug.cgi?id=255005
    rdar://107589983

    Reviewed by Chris Fleizach.

    Let's bring AccessibilityNodeObject in line with https://github.com/WebKit/WebKit/wiki/Smart-Pointer-Usage-Guidelines
    to improve memory safety.

    * Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
    (WebCore::AccessibilityNodeObject::addChildren):
    (WebCore::AccessibilityNodeObject::computeAccessibilityIsIgnored const):
    (WebCore::AccessibilityNodeObject::correspondingLabelForControlElement const):
    (WebCore::AccessibilityNodeObject::labelElementContainer const):
    (WebCore::AccessibilityNodeObject::exposesTitleUIElement const):
    (WebCore::AccessibilityNodeObject::description const):
    (WebCore::AccessibilityNodeObject::isFocused const):
    (WebCore::AccessibilityNodeObject::setFocused):
    * Source/WebCore/accessibility/AccessibilityNodeObject.h:

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


  Commit: 03910eb3aa6531748745e1be59887c000bf3678c
      https://github.com/WebKit/WebKit/commit/03910eb3aa6531748745e1be59887c000bf3678c
  Author: Brent Fulgham <bfulgham at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm

  Log Message:
  -----------
  Cherry-pick 95cb10c87569. rdar://problem/107652463

    [Lockdown Mode] Disable Web Codecs API
    https://bugs.webkit.org/show_bug.cgi?id=255054
    <rdar://107652463>

    Reviewed by Youenn Fablet.

    Disable access to WebCodec APIs when in lockdown mode.

    * Source/WebKit/WebProcess/WebPage/WebPage.cpp:
    (WebKit::adjustSettingsForLockdownMode): Turn off WebCodecs.
    * Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm: Add tests.

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


  Commit: 47c89215eb9eb9d230f7c0cc51bdb9d8cd2d3fb7
      https://github.com/WebKit/WebKit/commit/47c89215eb9eb9d230f7c0cc51bdb9d8cd2d3fb7
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp

  Log Message:
  -----------
  Cherry-pick ff96b4d0c120. rdar://problem/107674710

    AX: AccessibilityRenderObject::addRemoteSVGChildren() should protect the created SVG object with a RefPtr
    https://bugs.webkit.org/show_bug.cgi?id=255047
    rdar://problem/107674710

    Reviewed by Chris Fleizach.

    Per https://github.com/WebKit/WebKit/wiki/Smart-Pointer-Usage-Guidelines:

    > Every object passed to a non-trivial function as an argument (including "this" pointer) should be stored as a Ref, RefPtr, CheckedRef, or CheckedPtr in the caller’s local scope

    Let's bring this function inline with this guidance since AccessibilityObject::addChild is not trivial.

    This RefPtr will be free in the common case that there is no remote SVG root object to add.

    * Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
    (WebCore::AccessibilityRenderObject::addRemoteSVGChildren):

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


  Commit: 3a88a5bf1d9914dab7ebca5cce2cd6deff5370bf
      https://github.com/WebKit/WebKit/commit/3a88a5bf1d9914dab7ebca5cce2cd6deff5370bf
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-end-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-end.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-end-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-end.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-end-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-end.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-end-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-end.html
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/rendering/RenderBlock.cpp
    M Source/WebCore/rendering/RenderBox.cpp
    M Source/WebCore/rendering/RenderFlexibleBox.cpp

  Log Message:
  -----------
  Cherry-pick 176479519f31. rdar://problem/106559532

    Trimmed inline-end margins for flex items in horizontal writing-mode should be reflected in computed style.
    https://bugs.webkit.org/show_bug.cgi?id=253715
    rdar://106559532

    Reviewed by Alan Baradlay.

    When trimming the inline-end margins in RenderFlexibleBox::trimMainAxisMarginEnd
    and RenderFlexibleBox::trimCrossAxisMarginEnd, instead of trimming the
    margins there directly, we can replace the trimming with calls to
    RenderBlock::setTrimmedMarginForChild with MarginTrimType::InlineEnd as
    an argument. This will both trim the margins by calling
    setMarginEndForChild and also set the appropriate rare data bit to
    indicate that the inline-end margin for this box has been trimmed. In
    horizonal writing modes this bit that is set should refer to
    margin-right. This can be used after layout has completed to check if a
    box has a trimmed margin.

    When ComputedStyleExtractor tries to obtain the "margin-right," value,
    it will need to check if this margin has been trimmed. This is done by
    calling RenderBox::hasTrimmedMargin(PhysicalDirection::Right), which
    will transform this physical direction into a flow relative direction.
    In horizontal writing mode with LTR direction, the "right,"
    physical direction should correspond to the "inline-end,"
    FlowRelativeDirection. hasTrimmedMargin should then take this new
    flow relative direction and check to see if the box has this margin
    marked as trimmed. If this returns true, then this means that the
    box must have had its margin-right trimmed during layout and
    ComputedStyleExtractor should consule the box's m_marinBox for the
    trimmed value.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-end-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-end.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-end-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-end.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-end-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-end.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-end-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-end.html: Added.
    * Source/WebCore/css/ComputedStyleExtractor.cpp:
    (WebCore::rendererContainingBlockHasMarginTrim):
    (WebCore::isLayoutDependent):
    (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
    * Source/WebCore/rendering/RenderBlock.cpp:
    (WebCore::RenderBlock::setTrimmedMarginForChild):
    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::physicalToFlowRelativeDirectionMapping const):
    (WebCore::RenderBox::hasTrimmedMargin const):
    * Source/WebCore/rendering/RenderFlexibleBox.cpp:
    (WebCore::RenderFlexibleBox::trimMainAxisMarginEnd):
    (WebCore::RenderFlexibleBox::trimCrossAxisMarginEnd):

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


  Commit: 927d25e7844f916d911a36a2a9af1e5e5239c49a
      https://github.com/WebKit/WebKit/commit/927d25e7844f916d911a36a2a9af1e5e5239c49a
  Author: Brandon Stewart <brandonstewart at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp

  Log Message:
  -----------
  Cherry-pick ef3245fe7ca0. rdar://problem/107666160

    [css-grid] grid-template-rows: masonry has an effect, even when the feature is turned off
    https://bugs.webkit.org/show_bug.cgi?id=255022

    Reviewed by Matt Woodrow.

    Missing a check to verify whether Masonry is enabled or not. This should be refactored in the future
    as having to check the context everywhere is not great, but this does fix the bug.

    The reason masonry was being triggered was the RenderStyle masonryRows are getting populated due to the missing check.
    When we go to layout the block we do a check if it is masonry or not. Since the masonryRows got populated we assume that
    we should do a masonry layout instead of a grid layout.

    Reviewed manually turning on and off the flag.

    * Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp:
    (WebCore::CSSPropertyParserHelpers::consumeGridTrackList):

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


  Commit: 93557282066da2e2c14565b36b8a6c3f1ee68c1f
      https://github.com/WebKit/WebKit/commit/93557282066da2e2c14565b36b8a6c3f1ee68c1f
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M Source/WebCore/rendering/RenderBox.cpp

  Log Message:
  -----------
  Cherry-pick 0c3876d9cb24. rdar://problem/107713529

    Remove redundant code from RenderBox::hasTrimmedMargin(PhysicalDirection)
    https://bugs.webkit.org/show_bug.cgi?id=255098
    rdar://problem/107713529

    Reviewed by Brent Fulgham.

    RenderBox::hasTrimmedMargin is a overloaded function with two versions
    that take in either a PhysicalDirection or std::optional<MarginTrimType>.
    The version that takes in a PhysicalDirection simply maps the argument
    to a MarginTrimType and then calls the other to perform the actual logic.

    They both have the same pieces of debug code as well as an !isInFlow()
    check. It is unnecessary to have this code in the PhysicalDirection one
    since all it does it map the argument to a different type and then
    call the other. The only benefit to this is that it would either trigger
    a debug assert or return false earlier, but it also becomes tedious to
    keep both versions in sync as more margin-trim patches are landed. It
    increases the likelihood that one version would get some logic added in
    a patch but would get missed in the other.

    To address this we can just remove this shared code from the version
    that takes in a PhysicalDirection and just keep it in the other. Now
    the only time this function will change is when we add logic for it
    to take in another value of PhysicalDirection.

    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::hasTrimmedMargin const):

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


  Commit: 517a7b96b4a304f2ed2f44da1db6825d9c715ce9
      https://github.com/WebKit/WebKit/commit/517a7b96b4a304f2ed2f44da1db6825d9c715ce9
  Author: Antti Koivisto <antti at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    A LayoutTests/http/tests/svg/resources/st-search.svg
    A LayoutTests/http/tests/svg/use-custom-property-inheritance-expected.html
    A LayoutTests/http/tests/svg/use-custom-property-inheritance.html
    M Source/WebCore/style/StyleResolver.cpp
    M Source/WebCore/style/StyleResolver.h
    M Source/WebCore/svg/SVGElement.cpp

  Log Message:
  -----------
  Cherry-pick abf098f7f5b0. rdar://problem/107295588

    REGRESSION(259818 at main...259759@main?): CSS variables are not applied to the SVG use element's shadow tree
    https://bugs.webkit.org/show_bug.cgi?id=254549
    rdar://107295588

    Reviewed by Ryosuke Niwa.

    We fail to inherit custom properties to <use> element shadow tree in the specific case where
    the targeted element is the root element of an external SVG document.

    * LayoutTests/http/tests/svg/resources/st-search.svg: Added.
    * LayoutTests/http/tests/svg/use-custom-property-inheritance-expected.html: Added.
    * LayoutTests/http/tests/svg/use-custom-property-inheritance.html: Added.
    * Source/WebCore/style/StyleResolver.cpp:
    (WebCore::Style::Resolver::styleForElement):

    Don't suppress property inheritance for the document element in the case we are resolving a <use> tree root.

    * Source/WebCore/style/StyleResolver.h:
    * Source/WebCore/svg/SVGElement.cpp:
    (WebCore::SVGElement::resolveCustomStyle):

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


  Commit: 0fbb7d20cbc44b9906ec8bce6952aa6f9ee3484a
      https://github.com/WebKit/WebKit/commit/0fbb7d20cbc44b9906ec8bce6952aa6f9ee3484a
  Author: Sihui Liu <sihui_liu at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt
    M LayoutTests/storage/filesystemaccess/directory-handle-basics-expected.txt
    M LayoutTests/storage/filesystemaccess/directory-handle-basics-worker-expected.txt
    M LayoutTests/storage/filesystemaccess/resources/directory-handle-basics.js
    M Source/WebKit/NetworkProcess/storage/FileSystemStorageError.h

  Log Message:
  -----------
  Cherry-pick 61f6c4b76a12. rdar://problem/107716194

    getFileHandle() should return TypeMismatchError on unexpected entry type
    https://bugs.webkit.org/show_bug.cgi?id=255092
    rdar://107716194

    Reviewed by Youenn Fablet.

    Based on spec: https://fs.spec.whatwg.org/#dom-filesystemdirectoryhandle-getfilehandle

    Updated test LayoutTests/storage/filesystemaccess/directory-handle-basics.html and rebaselined expectations for imported
    tests.

    * LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemDirectoryHandle-getDirectoryHandle.https.any-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemDirectoryHandle-getDirectoryHandle.https.any.worker-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemDirectoryHandle-getFileHandle.https.any-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/fs/FileSystemDirectoryHandle-getFileHandle.https.any.worker-expected.txt:
    * LayoutTests/storage/filesystemaccess/directory-handle-basics-expected.txt:
    * LayoutTests/storage/filesystemaccess/directory-handle-basics-worker-expected.txt:
    * LayoutTests/storage/filesystemaccess/resources/directory-handle-basics.js:
    * Source/WebKit/NetworkProcess/storage/FileSystemStorageError.h:
    (WebKit::convertToException):

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


  Commit: f5fd2dd961851b2dda4f2720dfa4c939237c8e6f
      https://github.com/WebKit/WebKit/commit/f5fd2dd961851b2dda4f2720dfa4c939237c8e6f
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M JSTests/stress/intl-durationformat-digital.js
    M Source/JavaScriptCore/runtime/IntlDurationFormat.cpp

  Log Message:
  -----------
  Cherry-pick 0fe5a6846d5f. rdar://problem/107721519

    [JSC] Apply the new display computation for digital in Intl.DurationFormat
    https://bugs.webkit.org/show_bug.cgi?id=255108
    rdar://problem/107721519

    Reviewed by Mark Lam.

    Apply the change[1]. This makes `hours` / `minutes` / `seconds` display in digital special instead of making them auto.

    [1]: https://github.com/tc39/proposal-intl-duration-format/commit/d28076b3da36e32835a47b2ee0c422ae368f823b

    * JSTests/stress/intl-durationformat-digital.js:
    (Intl.DurationFormat.shouldBeOneOf):
    * Source/JavaScriptCore/runtime/IntlDurationFormat.cpp:
    (JSC::intlDurationUnitOptions):

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

Identifier: 259548.618 at safari-7615-branch


  Commit: 922f37d8b22c425c0370f62408a97ee3d31323a1
      https://github.com/WebKit/WebKit/commit/922f37d8b22c425c0370f62408a97ee3d31323a1
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-end-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-end.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-end-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-end.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-end-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-end.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-end-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-end.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block.html
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/rendering/RenderBlock.cpp
    M Source/WebCore/rendering/RenderBox.cpp
    M Source/WebCore/rendering/RenderFlexibleBox.cpp

  Log Message:
  -----------
  Cherry-pick eeb7fe30a25b. rdar://problem/106559023

    Trimmed block-end margins for flex items in horizontal writing mode should be reflected in computed style
    https://bugs.webkit.org/show_bug.cgi?id=253713
    rdar://106559023

    Reviewed by Alan Baradlay.

    Whenever we trim the block-end margins in flex layout using
    trimMainAxisMarginEnd and trimCrossAxisMarginEnd, we can also set the
    rare data bits to indicate that these margins are trimmed. This is done
    by replacing the calls of flexItem.box.setMarginAfter to
    setTrimmedMarginAfterForChild. In horizontal writing modes these bits
    willl be used for the bottom margins. This will be done during layout
    so that we can query these bits to check for trimmed margins.

    For example, when ComputedStyleExtractor is checking the value for
    margin-bottom, it will check to see if the the box has a trimmed margin
    by calling box->hasTrimmedMargin(PhysicalDirection::Bottom).
    hasTrimmedMargin will then map this PhysicalDirection to the appropriate
    MarginTrimType and use the new value to check the rare data bits. If
    this ends up returning true, then the ComputedStyleExtractor should
    check the m_marginBox of the box to get the trimmed margin value.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-end-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-block-end.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-end.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-end-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-block.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-end-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-end.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-block.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-end-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-end.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-block.html: Added.
    * Source/WebCore/css/ComputedStyleExtractor.cpp:
    (WebCore::rendererContainingBlockHasMarginTrim):
    (WebCore::isLayoutDependent):
    (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
    * Source/WebCore/rendering/RenderBlock.cpp:
    (WebCore::RenderBlock::setTrimmedMarginForChild):
    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::physicalToFlowRelativeDirectionMapping const):
    (WebCore::RenderBox::hasTrimmedMargin const):
    * Source/WebCore/rendering/RenderFlexibleBox.cpp:
    (WebCore::RenderFlexibleBox::trimMainAxisMarginEnd):
    (WebCore::RenderFlexibleBox::trimCrossAxisMarginEnd):

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

Identifier: 259548.619 at safari-7615-branch


  Commit: 526b987de280e25b799aaf69a35819d1025a2ef7
      https://github.com/WebKit/WebKit/commit/526b987de280e25b799aaf69a35819d1025a2ef7
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start.html
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/rendering/RenderBlock.cpp
    M Source/WebCore/rendering/RenderBox.cpp
    M Source/WebCore/rendering/RenderFlexibleBox.cpp

  Log Message:
  -----------
  Cherry-pick c69be377e17c. rdar://problem/106559056

    Trimmed inline-start margins for flex items in horizontal writing mode should be reflected in computed style.
    https://bugs.webkit.org/show_bug.cgi?id=253714
    rdar://106559056

    Reviewed by Alan Baradlay.

    Currently, we trim the inline-start margin of a flex item when we call
    flexItem.box.setMarginStart inside either RenderFlexibleBox::trimCrossAxisMarginStart
    or RenderFlexibleBox::trimMainAxisMarginStart. Instead, we can replace
    these calls with setTrimmedMarginForChild with an argument of
    MarginTrimType::InlineStart to both trim the margin and set the
    appropriate bit in the rare data object. In horizontal writing-mode
    this bit should correspond to margin-left. Once layout has finished,
    this bit can be used to determine if the box has a trimmed inline-start
    margin.

    When ComputedStyleExtractor tries to obtain the "margin-left," value, it
    will first need to check if this margin has been trimmed. This can be
    done by calling box->hasTrimedMargin(PhysicalDirection::Left).
    hasTrimmedMargin will first map this PhysicalDirection to a MarginTrimType
    and then check if the appropriate rare data bit has been set. If this
    returns true, then the box should have a trimmed inline-start (left)
    margin and ComputedStyleExtractor should consult the box's m_marginBox
    to get the trimmed value.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-inline-start.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-column-multi-line-inline-start.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-inline-start.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/flexbox-row-multi-line-inline-start.html: Added.
    * Source/WebCore/css/ComputedStyleExtractor.cpp:
    (WebCore::rendererContainingBlockHasMarginTrim):
    (WebCore::isLayoutDependent):
    (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
    * Source/WebCore/rendering/RenderBlock.cpp:
    (WebCore::RenderBlock::setTrimmedMarginForChild):
    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::physicalToFlowRelativeDirectionMapping const):
    (WebCore::RenderBox::hasTrimmedMargin const):
    * Source/WebCore/rendering/RenderFlexibleBox.cpp:
    (WebCore::RenderFlexibleBox::trimMainAxisMarginStart):
    (WebCore::RenderFlexibleBox::trimCrossAxisMarginStart):

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

Identifier: 259548.620 at safari-7615-branch


  Commit: 7a5dc9a1c5db8d8d914be88c01757a02788e5d6d
      https://github.com/WebKit/WebKit/commit/7a5dc9a1c5db8d8d914be88c01757a02788e5d6d
  Author: Antoine Quint <graouts at webkit.org>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M Source/WebCore/animation/AnimationEffect.cpp
    M Source/WebCore/animation/AnimationEffect.h
    M Source/WebCore/animation/CustomEffect.cpp
    M Source/WebCore/animation/CustomEffect.h
    M Source/WebCore/animation/KeyframeEffect.cpp
    M Source/WebCore/animation/KeyframeEffect.h

  Log Message:
  -----------
  Cherry-pick 9486a59e98a1. rdar://problem/107446275

    [web-animations] make AnimationEffect and derived classes iso-allocated
    https://bugs.webkit.org/show_bug.cgi?id=254883
    rdar://107446275

    Reviewed by Dean Jackson.

    * Source/WebCore/animation/AnimationEffect.cpp:
    * Source/WebCore/animation/AnimationEffect.h:
    * Source/WebCore/animation/CustomEffect.cpp:
    * Source/WebCore/animation/CustomEffect.h:
    * Source/WebCore/animation/KeyframeEffect.cpp:
    * Source/WebCore/animation/KeyframeEffect.h:

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

Identifier: 259548.621 at safari-7615-branch


  Commit: 7407f3b0d13da84f967176458c8ee79961a3c6ea
      https://github.com/WebKit/WebKit/commit/7407f3b0d13da84f967176458c8ee79961a3c6ea
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    A LayoutTests/css3/flexbox/flex-item-margin-top-no-crash-expected.html
    A LayoutTests/css3/flexbox/flex-item-margin-top-no-crash.html
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/rendering/RenderBox.cpp

  Log Message:
  -----------
  Cherry-pick beefa0360c1e. rdar://problem/107502795

    Check rendererCanHaveTrimmedMargin before calling box->hasTrimmedMargin
    https://bugs.webkit.org/show_bug.cgi?id=254859
    rdar://problem/107502795

    Reviewed by Alan Baradlay.

    In this example we will trigger ASSERT(!needsLayout()) inside of
    RenderBox::hasTrimmedMargin. This is because computing the margin on
    the item is not layout dependent (isLayoutDependent returns false)
    and we end up calling into box->hasTrimmedMargin before layout has
    occurred.

    <style>
    .flexbox {
        display: flex;
    }
    .flex-item {
        width: 50px;
        height: 50px;
        margin-top: 10px;
        background-color: green;
    }
    </style>
    <body>
        <div class="flexbox">
            <div id="flex-item" class="flex-item"></div>
        </div>
    <script>
        window.getComputedStyle(document.getElementById("flex-item")).marginTop;
    </script>
    </body>

    Before calling hasTrimmedMargin we should check for the same conditions
    that would make isLayoutDependent return true. To accomplish this, I
    renamed rendererContainingBlockHasMarginTrim to rendererCanHaveTrimmedMargin
    and removed the asserts that were in there. These asserts were
    unnecessary because they were the same ones being checked inside of
    hasTrimmedMargin. Now we can use this helper function inside of
    isLayoutDependent and to guard the call to hasTrimmedMargin. Another
    benefit of this is that as we iterate on the computed values for
    trimmed margins in different layout contexts we can just change this
    one function rather than sprinkling the same checks around each of
    the margin types.

    * LayoutTests/css3/flexbox/flex-item-margin-top-no-crash-expected.html: Added.
    * LayoutTests/css3/flexbox/flex-item-margin-top-no-crash.html: Added.
    * Source/WebCore/css/ComputedStyleExtractor.cpp:
    (WebCore::rendererCanHaveTrimmedMargin):
    (WebCore::isLayoutDependent):
    (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
    (WebCore::rendererContainingBlockHasMarginTrim): Deleted.
    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::hasTrimmedMargin const):

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

Identifier: 259548.622 at safari-7615-branch


  Commit: d53e7e5c754ba6d057192d4d845dceaadb11a1e2
      https://github.com/WebKit/WebKit/commit/d53e7e5c754ba6d057192d4d845dceaadb11a1e2
  Author: Matthew Finkel <sysrqb at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WebCore/platform/network/BlobRegistryImpl.h
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp
    M Source/WebKit/NetworkProcess/NetworkProcess.h
    M Source/WebKit/NetworkProcess/NetworkProcess.messages.in
    M Source/WebKit/NetworkProcess/NetworkSession.cpp
    M Source/WebKit/NetworkProcess/NetworkSession.h
    M Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp
    M Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp
    M Source/WebKit/UIProcess/Network/NetworkProcessProxy.h
    M Source/WebKit/UIProcess/WebProcessProxy.cpp
    M Source/WebKit/UIProcess/WebProcessProxy.h
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp
    M Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h

  Log Message:
  -----------
  Cherry-pick 6c237e364b18. rdar://problem/104635569

    Cherry-pick 261783 at main (0df98689c59d). rdar://104635569

        Plumb Blob partitioning pref to Blob Registry
        https://bugs.webkit.org/show_bug.cgi?id=251139
        rdar://104635569

        Reviewed by Chris Dumez.

        In this patch we introduce a new WebPreference that controls whether or not the
        blob registry enables partitioning. The Network process (and NetworkSession, in
        particular) do not know about preferences on all ports, so we add a new
        NetworkSession creation parameter and IPC message that updates the
        NetworkProcess with the current preference state. We perform this update on
        webpage creation and destruction, and NetworkSession creation.

        However, disabling the preference does not necessarily disable partitioning. If
        any of the existing pages have partitioning enabled, then partitioning remains
        enabled. Partitioning is disabled when all existing pages' preferences have the
        preference disabled.

        Tested manually with MiniBrowser

        * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
        * Source/WebCore/platform/network/BlobRegistryImpl.h:
        * Source/WebKit/NetworkProcess/NetworkProcess.cpp:
        (WebKit::NetworkProcess::setBlobRegistryTopOriginPartitioningEnabled const):
        * Source/WebKit/NetworkProcess/NetworkProcess.h:
        * Source/WebKit/NetworkProcess/NetworkProcess.messages.in:
        * Source/WebKit/NetworkProcess/NetworkSession.cpp:
        (WebKit::m_shouldAcceptInsecureCertificatesForWebSockets):
        (WebKit::NetworkSession::setBlobRegistryTopOriginPartitioningEnabled):
        * Source/WebKit/NetworkProcess/NetworkSession.h:
        * Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.cpp:
        (WebKit::NetworkSessionCreationParameters::encode const):
        (WebKit::NetworkSessionCreationParameters::decode):
        * Source/WebKit/NetworkProcess/NetworkSessionCreationParameters.h:
        * Source/WebKit/UIProcess/Network/NetworkProcessProxy.cpp:
        (WebKit::NetworkProcessProxy::setBlobRegistryTopOriginPartitioningEnabled):
        * Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:
        * Source/WebKit/UIProcess/WebProcessProxy.cpp:
        (WebKit::WebProcessProxy::addExistingWebPage):
        (WebKit::WebProcessProxy::removeWebPage):
        (WebKit::WebProcessProxy::updateBlobRegistryPartitioningState const):
        * Source/WebKit/UIProcess/WebProcessProxy.h:
        * Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:
        (WebKit::WebsiteDataStore::isBlobRegistryPartitioningEnabled const):
        (WebKit::WebsiteDataStore::parameters):
        * Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:

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

Identifier: 259548.623 at safari-7615-branch


  Commit: c9d960b1956ac50191d15684ee1cc0e63ddb75ca
      https://github.com/WebKit/WebKit/commit/c9d960b1956ac50191d15684ee1cc0e63ddb75ca
  Author: Justin Michaud <justin_michaud at apple.com>
  Date:   2023-04-10 (Mon, 10 Apr 2023)

  Changed paths:
    A JSTests/wasm/stress/block_end_aliasing.js
    A JSTests/wasm/stress/block_end_aliasing.wasm
    A JSTests/wasm/stress/block_end_aliasing_2.js
    A JSTests/wasm/stress/block_end_aliasing_2.wasm
    A JSTests/wasm/stress/block_end_aliasing_2.wat
    A JSTests/wasm/stress/if-block-arguments-2.js
    A JSTests/wasm/stress/if-block-arguments.js
    M Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp

  Log Message:
  -----------
  OMG should pop try arguments
rdar://106354199

Reviewed by Yusuke Suzuki.

The parser and the B3 generator both maintain their own separate wasm stacks.
When we end a block, these two stacks can get out of sync because we forgot
to pop on the b3 side. This can cause type confusion.

The real fix for this is to fix the underlying design flaw.

In the future, we should only store one copy of the stack state in the parser,
including the wasm type, and refer exclusively to that. This is what the new BBQ tier does.

For now, we just pop as needed.

* JSTests/wasm/stress/block_end_aliasing.js: Added.
(instantiate):
(async let):
* JSTests/wasm/stress/block_end_aliasing.wasm: Added.
* JSTests/wasm/stress/block_end_aliasing_2.js: Added.
(instantiate):
(async let):
(async let.i4.await.instantiate):
* JSTests/wasm/stress/block_end_aliasing_2.wasm: Added.
* JSTests/wasm/stress/block_end_aliasing_2.wat: Added.
* JSTests/wasm/stress/loop-end-aliasing.js: Added.
(from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.import.string_appeared_here.string_appeared_here.memory.mem.1.func.export.string_appeared_here.result.i64.funcref.i64.const.14.block.param.i64.end.ref.func.0.return.async test):
* Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::didPopValueFromStack):
(JSC::Wasm::B3IRGenerator::makePushVariable):
(JSC::Wasm::B3IRGenerator::addEndToUnreachable):

Canonical link: https://commits.webkit.org/259548.624@safari-7615-branch


  Commit: ac28955300779e9f2fc124bf144611f824f90f0d
      https://github.com/WebKit/WebKit/commit/ac28955300779e9f2fc124bf144611f824f90f0d
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2023-04-11 (Tue, 11 Apr 2023)

  Changed paths:
    M Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm

  Log Message:
  -----------
  Enable resource load statistics before running WebSocket cookie tests
https://bugs.webkit.org/show_bug.cgi?id=255129
rdar://107684920

Reviewed by John Wilander.

In the WebSocketTask constructor, we call blockCookies if
NetworkStorageSession::shouldBlockCookies returns true, but on iOS
in TestWebKitAPI m_isTrackingPreventionEnabled is false, which makes
it never block cookies, which doesn't reflect users' reality.
Enable tracking prevention in the test.

* Tools/TestWebKitAPI/Tests/WebKitCocoa/WKHTTPCookieStore.mm:
(TEST):

Canonical link: https://commits.webkit.org/259548.625@safari-7615-branch


  Commit: b91aeb047fc8ddfa066b31d1434375ae36a779cb
      https://github.com/WebKit/WebKit/commit/b91aeb047fc8ddfa066b31d1434375ae36a779cb
  Author: Yijia Huang <yijia_huang at apple.com>
  Date:   2023-04-11 (Tue, 11 Apr 2023)

  Changed paths:
    M Source/JavaScriptCore/runtime/ModuleProgramExecutable.cpp
    M Source/JavaScriptCore/runtime/ModuleProgramExecutable.h
    M Source/JavaScriptCore/runtime/ScriptExecutable.cpp

  Log Message:
  -----------
  Cherry-pick e9cb06ebfbf5. rdar://problem/104937190

    Regenerate ModuleProgramExecutable unlinkedCodeBlock after being destroyed by low memory cleaning
    https://bugs.webkit.org/show_bug.cgi?id=255044
    rdar://104937190

    Reviewed by Mark Lam and Yusuke Suzuki.

    ModuleProgramExecutable's unlinkedCodeBlock can be cleared by ScriptExecutable::clearCode
    during low memory handling. As a result, ScriptExecutable::newCodeBlockFor can encounter
    a null unlinkedCodeBlock. This patch fixes this issue by regenerating the unlinkedCodeBlock
    if needed.

    No test is added because the manifestation of this bug depends on a race condition.
    The race condition requires that ScriptExecutable::clearCode be called after
    ModuleProgramExecutable is instantiated and before ScriptExecutable::newCodeBlockFor
    runs. This can happen due to low memory handling. We manually simulated this condition
    in local testing to reproduce the issue by forcing ScriptExecutable::clearCode to be called
    after ModuleProgramExecutable is instantiated and just before the VM returns to the idle loop.
    Using this method, we confirmed that the fix works.

    * Source/JavaScriptCore/runtime/ModuleProgramExecutable.cpp:
    (JSC::ModuleProgramExecutable::generateOrGetUnlinkedCodeBlock):
    (JSC::ModuleProgramExecutable::create):
    * Source/JavaScriptCore/runtime/ModuleProgramExecutable.h:
    * Source/JavaScriptCore/runtime/ScriptExecutable.cpp:
    (JSC::ScriptExecutable::newCodeBlockFor):

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


  Commit: 72a02b2f831ec2ac37a118437e527127ac5b1c77
      https://github.com/WebKit/WebKit/commit/72a02b2f831ec2ac37a118437e527127ac5b1c77
  Author: Aditya Keerthi <akeerthi at apple.com>
  Date:   2023-04-11 (Tue, 11 Apr 2023)

  Changed paths:
    A LayoutTests/fast/forms/select/selected-option-update-inner-html-expected.html
    A LayoutTests/fast/forms/select/selected-option-update-inner-html.html
    M Source/WebCore/html/HTMLSelectElement.cpp

  Log Message:
  -----------
  Cherry-pick d86fed1a2d3d. rdar://problem/107838336

    REGRESSION (255086 at main): Safari 16.4 and above does not render <option> label/text updates until <select> is focused
    https://bugs.webkit.org/show_bug.cgi?id=255230
    rdar://107838336

    Reviewed by Chris Dumez.

    255086 at main removed the call to `HTMLSelectElement::setRecalcListItems` in
    `HTMLSelectElement::optionElementChildrenChanged` so that updating the text
    inside an <option> element does not reset the <select> element's selected option.

    However, this broke rendering of the option's new text, since
    `setRecalcListItems` contained logic to update the rendered text. Fix by
    reintroducing the logic that is responsible for ensuring the displayed text
    matches the <option> element's text.

    Add a regression (reference) test which would have caught this issue.

    * LayoutTests/fast/forms/select/selected-option-update-inner-html-expected.html: Added.
    * LayoutTests/fast/forms/select/selected-option-update-inner-html.html: Added.
    * Source/WebCore/html/HTMLSelectElement.cpp:
    (WebCore::HTMLSelectElement::optionElementChildrenChanged):

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


  Commit: 1c9566fea3b3cc50a6ce71c8258dbbaf53dab354
      https://github.com/WebKit/WebKit/commit/1c9566fea3b3cc50a6ce71c8258dbbaf53dab354
  Author: Yijia Huang <yijia_huang at apple.com>
  Date:   2023-04-11 (Tue, 11 Apr 2023)

  Changed paths:
    M Source/JavaScriptCore/runtime/ModuleProgramExecutable.cpp
    M Source/JavaScriptCore/runtime/ModuleProgramExecutable.h
    M Source/JavaScriptCore/runtime/ScriptExecutable.cpp

  Log Message:
  -----------
  Cherry-pick 8b609688f1de. rdar://problem/107856292

    Add missing exception check in ScriptExecutable::newCodeBlockFor
    https://bugs.webkit.org/show_bug.cgi?id=255259
    rdar://107856292

    Reviewed by Mark Lam and Yusuke Suzuki.

    ModuleProgramExecutable::getUnlinkedCodeBlock can throw runtime errors.
    We should handle those.

    * Source/JavaScriptCore/runtime/ScriptExecutable.cpp:
    (JSC::ScriptExecutable::newCodeBlockFor):

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


  Commit: e8f8183d92e10223786e2c76db8c90a19d5b99ef
      https://github.com/WebKit/WebKit/commit/e8f8183d92e10223786e2c76db8c90a19d5b99ef
  Author: Tyler Wilcock <tyler_w at apple.com>
  Date:   2023-04-11 (Tue, 11 Apr 2023)

  Changed paths:
    M LayoutTests/accessibility/mac/aria-hidden-changes-for-non-ignored-elements.html
    M LayoutTests/accessibility/mac/iframe-aria-hidden-expected.txt
    M LayoutTests/accessibility/mac/iframe-aria-hidden.html
    M Source/WebCore/accessibility/AXObjectCache.cpp

  Log Message:
  -----------
  Cherry-pick b8ca1cf1bd0f. rdar://problem/107589985

    AX: Defer handling children changes for dynamic aria-hidden attribute updates
    https://bugs.webkit.org/show_bug.cgi?id=255245
    rdar://107589985

    Reviewed by Chris Fleizach.

    It can be unsafe to update the accessibility trees eagerly from AXObjectCache::handleAttributeChange
    because layout and style can be dirty. Deferring this update may also help us be more efficient by
    de-duping children updates with the inherent hash set properties of m_pendingChildrenUpdates.

    Because aria-hidden changes no longer eagerly update the isolated tree, aria-hidden-changes-for-non-ignored-elements.html
    and iframe-aria-hidden.html had to be updated to properly wait for AX tree updates after dynamic aria-hidden changes.

    * LayoutTests/accessibility/mac/aria-hidden-changes-for-non-ignored-elements.html:
    * LayoutTests/accessibility/mac/iframe-aria-hidden-expected.txt:
    * LayoutTests/accessibility/mac/iframe-aria-hidden.html:
    * Source/WebCore/accessibility/AXObjectCache.cpp:
    (WebCore::AXObjectCache::handleAttributeChange):

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


  Commit: 6f7cb0a7cbf9e0caf2427b354da1660e14affbd9
      https://github.com/WebKit/WebKit/commit/6f7cb0a7cbf9e0caf2427b354da1660e14affbd9
  Author: Ryosuke Niwa <rniwa at webkit.org>
  Date:   2023-04-11 (Tue, 11 Apr 2023)

  Changed paths:
    A LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash-expected.txt
    A LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash.html
    M Source/WebCore/editing/InsertListCommand.cpp

  Log Message:
  -----------
  Cherry-pick 6e4c6ef4ca8a. rdar://problem/106816068

    Assertion failure in CompositeEditCommand::moveParagraph via InsertListCommand::listifyParagraph
    https://bugs.webkit.org/show_bug.cgi?id=254375

    Reviewed by Wenson Hsieh.

    https://commits.webkit.org/70668@main made InsertListCommand::listifyParagraph to cross editing boundaries
    to look for the start & the end of the current paragraph so that we can include non-editable inline content.
    This, however, is inconsistent with CompositeEditCommand::moveParagraph's precondition that startOfParagraph
    is the start of paragraph without crossing editing boundaries.

    This patch addresses this precondition by calling startOfParagraph and endOfParagraph for the second time
    without specifying CanSkipOverEditingBoundary.

    * LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash-expected.txt: Added.
    * LayoutTests/editing/execCommand/insert-list-move-paragraph-display-contents-crash.html: Added.
    * Source/WebCore/editing/InsertListCommand.cpp:
    (WebCore::InsertListCommand::listifyParagraph):

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


  Commit: 48875b2d11903922c54bf8a7b02504a318efb60f
      https://github.com/WebKit/WebKit/commit/48875b2d11903922c54bf8a7b02504a318efb60f
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-04-11 (Tue, 11 Apr 2023)

  Changed paths:
    M Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h
    M Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.mm
    M Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm
    M Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm

  Log Message:
  -----------
  Cherry-pick 262593 at main (8c2d475507f7). rdar://problem/106004017

    Make soft linked AVCaptureDeviceType strings optional
    https://bugs.webkit.org/show_bug.cgi?id=254950

    Reviewed by Eric Carlson.

    Make sure to check whether strings can be loaded before using them when building the list of device types.

    * Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.h:
    * Source/WebCore/PAL/pal/cocoa/AVFoundationSoftLink.mm:
    * Source/WebCore/platform/mediastream/mac/AVCaptureDeviceManager.mm:

    Canonical link: https://commits.webkit.org/262593@main
Canonical link: https://commits.webkit.org/259548.631@safari-7615-branch


  Commit: e727241d7c3db5b7828eb0f60cf24477ff821112
      https://github.com/WebKit/WebKit/commit/e727241d7c3db5b7828eb0f60cf24477ff821112
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-04-11 (Tue, 11 Apr 2023)

  Changed paths:
    A LayoutTests/http/wpt/service-workers/controlled-module-dedicatedworker.https-expected.txt
    A LayoutTests/http/wpt/service-workers/controlled-module-dedicatedworker.https.html
    A LayoutTests/http/wpt/service-workers/module-dedicatedworker-worker.js
    A LayoutTests/http/wpt/service-workers/resources/controlled-module-worker.js
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp

  Log Message:
  -----------
  Cherry-pick 262666 at main (96af04c5e6b2). rdar://problem/107602025

    REGRESSION (iOS 16.4): Our page crashes on page load due to service workers

    https://bugs.webkit.org/show_bug.cgi?id=254938
    rdar://problem/107602025

    Reviewed by Chris Dumez.

    We are thinking module worker loads are main worker load and were expecting to get a resulting client identifier but got none.
    Check on the resulting client identifier to identify whether the request is for a new client.
    Covered by newly added test in Debug.

    * LayoutTests/http/wpt/service-workers/controlled-module-dedicatedworker.https-expected.txt: Added.
    * LayoutTests/http/wpt/service-workers/controlled-module-dedicatedworker.https.html: Added.
    * LayoutTests/http/wpt/service-workers/module-dedicatedworker-worker.js: Added.
    (async doTest):
    * LayoutTests/http/wpt/service-workers/resources/controlled-module-worker.js: Added.
    * Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
    (WebKit::WebSWServerConnection::controlClient):
    (WebKit::WebSWServerConnection::createFetchTask):

    Canonical link: https://commits.webkit.org/262666@main
Canonical link: https://commits.webkit.org/259548.632@safari-7615-branch


  Commit: 5c45d4e6dd20d8d0644946ffb6989f122de60d91
      https://github.com/WebKit/WebKit/commit/5c45d4e6dd20d8d0644946ffb6989f122de60d91
  Author: Elliott Williams <emw at apple.com>
  Date:   2023-04-12 (Wed, 12 Apr 2023)

  Changed paths:
    M Source/WebKit/UIProcess/API/Cocoa/WKContentRuleListPrivate.h
    M Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h

  Log Message:
  -----------
  Cherry-pick 262840 at main (156322851446). https://bugs.webkit.org/show_bug.cgi?id=255297

    Update SPI availability declarations for iOS 16.5 and macOS 13.4
    https://bugs.webkit.org/show_bug.cgi?id=255297

    Reviewed by Alexey Proskuryakov.

    Replace TBA macros with the OS versions these declarations are available
    in.

    * Source/WebKit/UIProcess/API/Cocoa/WKContentRuleListPrivate.h:
    * Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:

    Canonical link: https://commits.webkit.org/262840@main
Canonical link: https://commits.webkit.org/259548.633@safari-7615-branch


  Commit: 013db85952abb26d9598ce102af5fb736fa8c121
      https://github.com/WebKit/WebKit/commit/013db85952abb26d9598ce102af5fb736fa8c121
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-04-12 (Wed, 12 Apr 2023)

  Changed paths:
    M Source/WebCore/Headers.cmake
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/workers/service/SWClientConnection.cpp
    M Source/WebCore/workers/service/SWClientConnection.h
    A Source/WebCore/workers/service/ServiceWorkerClientPendingMessage.h
    M Source/WebCore/workers/service/ServiceWorkerContainer.cpp
    M Source/WebCore/workers/service/WorkerSWClientConnection.cpp
    M Source/WebCore/workers/service/WorkerSWClientConnection.h
    M Source/WebCore/workers/service/server/SWServer.cpp
    M Source/WebCore/workers/service/server/SWServer.h
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h
    M Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp
    M Source/WebKit/WebProcess/Storage/WebSWClientConnection.h
    M Source/WebKit/WebProcess/Storage/WebSWClientConnection.messages.in

  Log Message:
  -----------
  Cherry-pick 262711 at main (6833b7d7f7be). rdar://problem/105684663

    Initial ServiceWorkerWindowClient in a Home Screen web app launched to handle notificationclick handler is inert for a short period

    https://bugs.webkit.org/show_bug.cgi?id=252544
    rdar://105684663

    Reviewed by Youenn Fablet.

    There is a period of time between when the Networking process is told about a new ScriptExecutionContext
    (when the main resource load begins) and when that ScriptExecutionContext actually exists (when the page load commits)

    During that timespan, a ServiceWorker can discover the new ServiceWorkerClient represented by this Context,
    and try to postMessage to it, and the Networking process will try to forward that message along to the appropriate
    WebContent process, but... it won't find its target.

    So the message is dropped on the floor.

    This probably was technically always theoretical if a ServiceWorker was handling the fetch event for the main resource
    load for the DocumentLoader. But it was likely not discovered because in those cases, ServiceWorkers probably aren't
    that interested in postMessage()'ing to the client.

    In NotificationClick handlers - especially without a Fetch handler - the vulnerable timespan increases, as does the
    likelihood that the ServiceWorker wants to postMessage() to this new client.

    This patch fixes the bug by:
    1 - Changing postMessage() from Networking to WebContent processes to return whether or not the target was found
    2 - If the target was not found, the Networking process remembers the failed postMessage for future use
    3 - When ServiceWorkerContainer::startMessages() is called, it first fetches pending messages from the Networking process
        before firing off its locally deferred messages.

    * Source/WebCore/WebCore.xcodeproj/project.pbxproj:
    * Source/WebCore/workers/service/SWClientConnection.cpp:
    (WebCore::SWClientConnection::postMessageToServiceWorkerClient):
    * Source/WebCore/workers/service/SWClientConnection.h:
    * Source/WebCore/workers/service/ServiceWorkerClientPendingMessage.h: Added.
    * Source/WebCore/workers/service/ServiceWorkerContainer.cpp:
    (WebCore::ServiceWorkerContainer::startMessages):
    * Source/WebCore/workers/service/WorkerSWClientConnection.cpp:
    (WebCore::WorkerSWClientConnection::getServiceWorkerClientPendingMessages):
    * Source/WebCore/workers/service/WorkerSWClientConnection.h:
    * Source/WebCore/workers/service/server/SWServer.cpp:
    (WebCore::SWServer::registerServiceWorkerClient):
    (WebCore::SWServer::unregisterServiceWorkerClient):
    (WebCore::SWServer::addServiceWorkerClientPendingMessage):
    (WebCore::SWServer::releaseServiceWorkerClientPendingMessage):
    * Source/WebCore/workers/service/server/SWServer.h:
    * Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
    (WebKit::WebSWServerConnection::postMessageToServiceWorkerClient):
    (WebKit::WebSWServerConnection::getServiceWorkerClientPendingMessages):
    * Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.h:
    * Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
    * Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
    * Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp:
    (WebKit::WebSWClientConnection::getServiceWorkerClientPendingMessages):
    * Source/WebKit/WebProcess/Storage/WebSWClientConnection.h:
    * Source/WebKit/WebProcess/Storage/WebSWClientConnection.messages.in:

    Canonical link: https://commits.webkit.org/262711@main
Canonical link: https://commits.webkit.org/259548.634@safari-7615-branch


  Commit: 064579d997ae628f42d142c3448eec88b23acaa9
      https://github.com/WebKit/WebKit/commit/064579d997ae628f42d142c3448eec88b23acaa9
  Author: Chirag M Shah <chirag_m_shah at apple.com>
  Date:   2023-04-15 (Sat, 15 Apr 2023)

  Changed paths:
    A LayoutTests/fast/rendering/render-text-control-crash-with-designmode-off-expected.txt
    A LayoutTests/fast/rendering/render-text-control-crash-with-designmode-off.html
    M Source/WebCore/rendering/RenderTextControl.cpp
    M Source/WebCore/rendering/RenderTextControlSingleLine.cpp

  Log Message:
  -----------
  Fix crash when innerTextElement() can be null when designMode="off"
https://bugs.webkit.org/show_bug.cgi?id=255423
rdar://107985448

Reviewed by Antti Koivisto.

This change guards against innerTextElement() being null. The file
already checked for this in some places, but it wasn't consistent.

* LayoutTests/fast/rendering/render-text-control-crash-with-designmode-off-expected.txt: Added.
* LayoutTests/fast/rendering/render-text-control-crash-with-designmode-off.html: Added.
* Source/WebCore/rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::textBlockLogicalWidth const):
(WebCore::RenderTextControl::computeLogicalHeight const):
(WebCore::RenderTextControl::computeIntrinsicLogicalWidths const):
* Source/WebCore/rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth const):

Canonical link: https://commits.webkit.org/259548.635@safari-7615-branch


  Commit: a45dfa3dc3d4ab6440d1e7b9e58ca327396d7e40
      https://github.com/WebKit/WebKit/commit/a45dfa3dc3d4ab6440d1e7b9e58ca327396d7e40
  Author: Mark Lam <mark.lam at apple.com>
  Date:   2023-04-15 (Sat, 15 Apr 2023)

  Changed paths:
    M Source/JavaScriptCore/assembler/MacroAssemblerARM64.h
    M Source/JavaScriptCore/assembler/testmasm.cpp
    M Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp
    M Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp
    M Source/WTF/wtf/PtrTag.h

  Log Message:
  -----------
  Ensure that tagArrayPtr's size diversifier's top 16 bits are always 0.
https://bugs.webkit.org/show_bug.cgi?id=255475
rdar://107724053

Reviewed by Justin Michaud.

On ARM64, sizes never exceed 48 bits anyway.  This also ensures that the signed values
will not conflict with the namespace of other data pointers signed with the same PAC key.

* Source/JavaScriptCore/assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::zeroExtend48ToWord):
* Source/JavaScriptCore/assembler/testmasm.cpp:
(JSC::testZeroExtend48ToWord):
* Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:
* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::emitNewTypedArrayWithSize):
* Source/WTF/wtf/PtrTag.h:
(WTF::tagArrayPtr):
(WTF::retagArrayPtr):

Canonical link: https://commits.webkit.org/259548.636@safari-7615-branch


  Commit: 2aa0035b7a09998ff7f942af53742b2f7f46446d
      https://github.com/WebKit/WebKit/commit/2aa0035b7a09998ff7f942af53742b2f7f46446d
  Author: Alex Christensen <achristensen at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp

  Log Message:
  -----------
  Cherry-pick 71578313d03d. rdar://106952778

    Network process should only consider web archives to have been loaded if loaded using local scheme
    https://bugs.webkit.org/show_bug.cgi?id=255459
    rdar://106952778

    Reviewed by John Pascoe.

    Adding the scheme check matches the check in DocumentLoader::disallowWebArchive

    * Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
    (WebKit::NetworkResourceLoader::didReceiveMainResourceResponse):

Canonical link: https://commits.webkit.org/259548.637@safari-7615-branch


  Commit: c660a939c7efa77c45b833e5b005180453ff0b3d
      https://github.com/WebKit/WebKit/commit/c660a939c7efa77c45b833e5b005180453ff0b3d
  Author: Chirag M Shah <chirag_m_shah at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    A LayoutTests/fast/rendering/outline-auto-for-moved-out-element-crash-expected.txt
    A LayoutTests/fast/rendering/outline-auto-for-moved-out-element-crash.html
    M Source/WebCore/rendering/RenderElement.cpp

  Log Message:
  -----------
  Cherry-pick 81bc2a0b0fb7. rdar://problem/108149365

    RenderElement::updateOutlineAutoAncestor should deal with moved out renderers
    https://bugs.webkit.org/show_bug.cgi?id=253270
    rdar://105873104

    Reviewed by Alan Baradlay.

    Before this change, when RenderElement::updateOutlineAutoAncestor was
    called on RenderMultiColumnSpannerPlaceholder, we never looked at the
    children of the moved out element. This means that we would have an
    invalid outline auto set in the hierarchy of the moved out element,
    which can cause stack overflow. This change fixes it by making it so
    that we recurse through children of the moved out element to set the
    right state when dealing with RenderMultiColumnSpannerPlaceholder.

    * LayoutTests/fast/rendering/outline-auto-for-moved-out-element-crash-expected.txt: Added.
    * LayoutTests/fast/rendering/outline-auto-for-moved-out-element-crash.html: Added.
    * Source/WebCore/rendering/RenderElement.cpp:
    (WebCore::RenderElement::updateOutlineAutoAncestor):

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

Identifier: 259548.638 at safari-7615-branch


  Commit: ec8d07e2933c37f5b2e1775e585b1927878569e5
      https://github.com/WebKit/WebKit/commit/ec8d07e2933c37f5b2e1775e585b1927878569e5
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    A JSTests/wasm/stress/wasm-tag-constructor-exception.js
    M Source/JavaScriptCore/wasm/js/WebAssemblyTagConstructor.cpp

  Log Message:
  -----------
  Cherry-pick bc694648f3d7. rdar://problem/108148593

    [JSC] Add missing exception check for WebAssembly.Tag constructor
    https://bugs.webkit.org/show_bug.cgi?id=252476
    rdar://105593697

    Reviewed by Justin Michaud.

    Add a missing check. This causes crash with deterministic nullptr dereference (so, not a security issue).

    * JSTests/wasm/stress/wasm-tag-constructor-exception.js: Added.
    (f3):
    * Source/JavaScriptCore/wasm/js/WebAssemblyTagConstructor.cpp:
    (JSC::JSC_DEFINE_HOST_FUNCTION):

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

Identifier: 259548.639 at safari-7615-branch


  Commit: 96e7f41735dd93e1a7d4705efe4386b7f21320c1
      https://github.com/WebKit/WebKit/commit/96e7f41735dd93e1a7d4705efe4386b7f21320c1
  Author: Jer Noble <jer.noble at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    M Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm

  Log Message:
  -----------
  Cherry-pick 34ef017d6046. rdar://problem/108148936

    CRASH: com.apple.WebKit.WebContent at TimerBase::~TimerBase
    https://bugs.webkit.org/show_bug.cgi?id=253456
    rdar://106271112

    Reviewed by Tim Horton.

    Enusre WKVideoLayerRemote (and by extension its _resolveBoundsTimer ivar) is destroyed on the main thread.

    * Source/WebKit/WebProcess/GPU/media/cocoa/VideoLayerRemoteCocoa.mm:
    (-[WKVideoLayerRemote dealloc]):

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

Identifier: 259548.640 at safari-7615-branch


  Commit: 3682e259e1a81138dd7c6391dd8a86bad146c4a5
      https://github.com/WebKit/WebKit/commit/3682e259e1a81138dd7c6391dd8a86bad146c4a5
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    M Source/WebKit/NetworkProcess/NetworkProcess.cpp

  Log Message:
  -----------
  Cherry-pick e2b561a545d3. rdar://problem/108149017

    Crash under NetworkProcess::addAllowedFirstPartyForCookies()
    https://bugs.webkit.org/show_bug.cgi?id=253895
    rdar://104526219

    Reviewed by Alex Christensen.

    Make sure the registrable domain is valid before we try inserting it into the
    HashSet.

    * Source/WebKit/NetworkProcess/NetworkProcess.cpp:
    (WebKit::NetworkProcess::addAllowedFirstPartyForCookies):

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

Identifier: 259548.641 at safari-7615-branch


  Commit: 5ca50fe328b980f6dda0c69c3a2c09652d12a9bf
      https://github.com/WebKit/WebKit/commit/5ca50fe328b980f6dda0c69c3a2c09652d12a9bf
  Author: Razvan Caliman <rcaliman at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    M Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js
    M Source/WebInspectorUI/UserInterface/Views/SpreadsheetRuleHeaderField.js

  Log Message:
  -----------
  Cherry-pick 84150ea85574. rdar://problem/108148987

    Web Inspector: New CSS property unexpectedly dropped from empty CSS rule when tabbing through or editing selector
    https://bugs.webkit.org/show_bug.cgi?id=245768

    Reviewed by Patrick Angle.

    There are two issues here:
    1) changing the selector of an empty CSS rule causes the first added CSS property to be dropped.
    2) tabbing through the editable text field for a CSS selector marks it as changed even when it's not.

    The core problem is the order of operations.

    Tabbing out of a CSS selector text field first calls
    `SpreadsheetCSSStyleDeclarationSection.spreadsheetRuleHeaderFieldWillNavigate()`
    from the `SpreadsheetRuleHeaderField._handleKeyDown` handler.

    For an empty CSS rule, this creates a new blank CSS property with:
    `SpreadsheetCSSStyleDeclarationEditor.startEditingFirstProperty()` -> `CSSStyleDeclaration.newBlankProperty()`.

    At this point, the frontend model for the CSS rule contains a `CSSStyleDeclaration` with one `CSSProperty`.

    In quick succession, the second operation happens when the selector text field loses focus:
    `SpreadsheetCSSStyleDeclarationSection.spreadsheetRuleHeaderFieldDidCommit()`
    from the `SpreadsheetRuleHeaderField._handleBlur` handler.

    If the selector text has changed, a request is sent to the backend via `DOMNodeStyles.changeRuleSelector()`.
    A request is then made for the latest matching styles via `DOMNodeStyles.refresh()`.

    For an empty CSS rule, there are no matching styles. As a result, the `CSSStyleDeclaration` of the corresponding
    CSS rule is updated with an empty list of CSS properties in `DOMNodeStyles._parseStyleDeclarationPayload()`:

    ```
    if (style) {
        style.update(text, properties, styleSheetTextRange);
        return style;
    }
    ```

    This has the effect of orphaning the new blank `CSSProperty` introduced earlier.

    `CSSProperty._updateOwnerStyleText()` is called to persist the `CSSProperty` to the backend.
    This calls `CSSStyleDeclaration.generateFormattedText()` to serialize the whole CSS declaration block.
    But our `CSSStyleDeclaration` was just emptied of properties by the update in
    `DOMNodeStyles._parseStyleDeclarationPayload()` so it falls back to returning an empty string:

    ```
    let styleText = "";
    ...
    let properties = this._styleSheetTextRange ? this.visibleProperties : this._properties;
    ...
    return styleText;
    ```

    When the `CSSProperty` commits with an empty name and value, the matching styles obtained
    in response to `DOMNodeStyles.refresh()` are empty, and the orphaned property is dropped.

    Trying again with the newly created blank CSS property will work because this time
    there's no race with `DOMNodeStyles.refresh()` from the selector change.

    To fix the first issue, we must ensure that the operation to update the selector
    and the style refresh it causes occurs before adding a new CSS property to avoid
    the style refresh invalidating the models on the frontend.

    To fix the second issue, we don't call `SpreadsheetRuleHeaderField.stopEditing()` in the
    keydown handler for Tab or Enter  because that resets `_valueBeforeEditing` which causes
    the check in  `SpreadsheetRuleHeaderField._handleBlur` to always consider the selector
    as having been changed, thus triggering the operations described above.

    * Source/WebInspectorUI/UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
    (WI.SpreadsheetCSSStyleDeclarationSection):
    (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleSpreadsheetSelectorFieldDidCommit):
    (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleSpreadsheetSelectorFieldWillNavigate):
    * Source/WebInspectorUI/UserInterface/Views/SpreadsheetRuleHeaderField.js:
    (WI.SpreadsheetRuleHeaderField):
    (WI.SpreadsheetRuleHeaderField.prototype.stopEditing):
    (WI.SpreadsheetRuleHeaderField.prototype._handleBlur):
    (WI.SpreadsheetRuleHeaderField.prototype._handleKeyDown):

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

Identifier: 259548.642 at safari-7615-branch


  Commit: 3fed8fd15bc372c686aef1f16408d7c944adb44d
      https://github.com/WebKit/WebKit/commit/3fed8fd15bc372c686aef1f16408d7c944adb44d
  Author: Razvan Caliman <rcaliman at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    M Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js
    M Source/WebInspectorUI/UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js

  Log Message:
  -----------
  Cherry-pick 96c03ed0c66b. rdar://problem/108148888

    Web Inspector: Styles Panel: Adding a new CSS rule doesn't work on first attempt
    https://bugs.webkit.org/show_bug.cgi?id=253956

    Reviewed by Patrick Angle.

    To add a new CSS rule, an inspector stylesheet is first created.
    This operation triggers a `DOMNodeStyles.refresh()`.

    The operation to add the new rule to this stylesheet also triggers a
    refresh. But if the promise for the first refresh is still pending,
    the second call is ignored. This means that the Styles panel ends up
    not showing any matching styles from the initially empty stylehseet.

    A subsequent call to add a new rule bypasses the need to create a new
    stylesheet. The `DOMNodeStyles.refresh()` it trigges brings the Styles
    panel in sync with the latest contents of the inspector-generated stylehseet.
    That's why two rules show up on the first successful attempt.

    The logic to mark the newly created rule's selector as editable is too lenient:
    it marks all CSS rules with a selector identical to the one of the newly created rule.
    This patch makes a stricter check by identifying the newly created rule by its `CSSStyle.styleId`.

    * Source/WebInspectorUI/UserInterface/Models/DOMNodeStyles.js:
    (WI.DOMNodeStyles.prototype.addRule.completed):
    (WI.DOMNodeStyles.prototype.addRule.addedRule):
    * Source/WebInspectorUI/UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
    (WI.SpreadsheetRulesStyleDetailsPanel):
    (WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionAddNewRule):
    (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
    (WI.SpreadsheetRulesStyleDetailsPanel.prototype._addNewRule):
    (WI.SpreadsheetRulesStyleDetailsPanel.prototype._addedNewRuleCallback):

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

Identifier: 259548.643 at safari-7615-branch


  Commit: 567059fe8d80d4ad4f523c58b1e85a2e81e58011
      https://github.com/WebKit/WebKit/commit/567059fe8d80d4ad4f523c58b1e85a2e81e58011
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-variant-alternates-03.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-variant-alternates-06.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-variant-alternates-09.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-variant-alternates-12.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-variant-alternates-15.html
    M LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-variant-alternates-18.html
    M Source/WebCore/platform/text/TextFlags.cpp

  Log Message:
  -----------
  Cherry-pick 3ac8b5512c4d. rdar://problem/107758556

    Use String::isNull instead of std::optional<String>
    https://bugs.webkit.org/show_bug.cgi?id=255337
    rdar://107758556

    Reviewed by Brent Fulgham.

    std::optional<String> doesn't make sense because String
    has its own representation of invalid (isNull).
    In this case, the optional check was always true, thus
    passing a null string to the find() method.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-variant-alternates-03.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-variant-alternates-06.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-variant-alternates-09.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-variant-alternates-12.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-variant-alternates-15.html:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-fonts/font-variant-alternates-18.html:
    * Source/WebCore/platform/text/TextFlags.cpp:
    (WebCore::computeFeatureSettingsFromVariants):

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

Identifier: 259548.644 at safari-7615-branch


  Commit: 98e28cab7ef2ad2fca94455456bd01ed9d719796
      https://github.com/WebKit/WebKit/commit/98e28cab7ef2ad2fca94455456bd01ed9d719796
  Author: Mike Wyrzykowski <mwyrzykowski at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.cpp

  Log Message:
  -----------
  Cherry-pick 54408f5746f2. rdar://problem/106943885

    [WebGPU] RemoteBuffer unmap should check the input vector
    https://bugs.webkit.org/show_bug.cgi?id=255350
    <rdar://107947502>

    Reviewed by Myles C. Maxfield.

    Ensure data vector passed to unmap is valid for the currently
    mapped buffer.

    * Source/WebKit/GPUProcess/graphics/WebGPU/RemoteBuffer.cpp:
    (WebKit::RemoteBuffer::unmap):

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

Identifier: 259548.645 at safari-7615-branch


  Commit: bbffaae0d6e66f3eb18f89c718c33c7f37e3c615
      https://github.com/WebKit/WebKit/commit/bbffaae0d6e66f3eb18f89c718c33c7f37e3c615
  Author: Brent Fulgham <bfulgham at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    M Source/WebKit/Scripts/process-entitlements.sh

  Log Message:
  -----------
  Cherry-pick 4718ec21fbae. rdar://problem/107651745

    Clean up build entitlements on watchOS
    https://bugs.webkit.org/show_bug.cgi?id=255356
    <rdar://107651745>

    Reviewed by Mark Lam.

    We do not allow JIT on watchOS, so it's confusing to include the JIT entitlements
    required on iOS on a platform that doesn't support them. This patch removes them.

    * Source/WebKit/Scripts/process-entitlements.sh:

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

Identifier: 259548.646 at safari-7615-branch


  Commit: 9bc18d8d6c76645883c670e086fb7d58f9835425
      https://github.com/WebKit/WebKit/commit/9bc18d8d6c76645883c670e086fb7d58f9835425
  Author: Alan Baradlay <zalan at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    A LayoutTests/fast/inline/inline-box-invalidation-repaint-crash-expected.txt
    A LayoutTests/fast/inline/inline-box-invalidation-repaint-crash.html
    M Source/WebCore/rendering/RenderInline.cpp

  Log Message:
  -----------
  Cherry-pick 7cc28df27fbe. rdar://problem/107979394

    [IFC] Repaint may be issued on freshly inserted renderer
    https://bugs.webkit.org/show_bug.cgi?id=255430
    <rdar://107979394>

    Reviewed by Antti Koivisto.

    1. Content mutation triggers line layout codepath invalidation (RenderBlockFlow::invalidateLineLayoutPath).
    2. Each invalidation issues repaint on the block subtree.
    3. Repaint normally consults renderers for geometry. However in case of inline boxes (RenderInline)
    the enclosing geometry is collected by walking the associated inline structures.
    4. Subsequent mutations could lead to issuing a repaint on a freshly (previously) inserted RenderInline.

    Legacy codepath handles this case by returning an empty LayoutRect too.

    * LayoutTests/fast/inline/inline-box-invalidation-repaint-crash-expected.txt: Added.
    * LayoutTests/fast/inline/inline-box-invalidation-repaint-crash.html: Added.
    * Source/WebCore/rendering/RenderInline.cpp:
    (WebCore::RenderInline::linesVisualOverflowBoundingBox const):

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

Identifier: 259548.647 at safari-7615-branch


  Commit: 34fe228d7dd107780eb5d78906a3a7cf9937fe6a
      https://github.com/WebKit/WebKit/commit/34fe228d7dd107780eb5d78906a3a7cf9937fe6a
  Author: Per Arne Vollan <pvollan at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    M LayoutTests/TestExpectations
    A LayoutTests/http/wpt/service-workers/basic-fetch-with-contentfilter-allow-after-adding-data-expected.txt
    A LayoutTests/http/wpt/service-workers/basic-fetch-with-contentfilter-allow-after-adding-data.html
    M LayoutTests/http/wpt/service-workers/basic-fetch-with-contentfilter.js
    M LayoutTests/platform/ios/TestExpectations
    M LayoutTests/platform/mac/TestExpectations
    M Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp

  Log Message:
  -----------
  Cherry-pick 09061adb503c. rdar://problem/107453214

    Add missing service worker content filter check
    https://bugs.webkit.org/show_bug.cgi?id=255418
    rdar://107453214

    Reviewed by Brent Fulgham.

    This patch was authored by Ben Nham and Per Arne Vollan.

    Add missing service worker content filter check after finished adding data. This fixes an issue where
    service workers are incorrectly blocked.

    * LayoutTests/TestExpectations:
    * LayoutTests/http/wpt/service-workers/basic-fetch-with-contentfilter-allow-after-adding-data-expected.txt: Added.
    * LayoutTests/http/wpt/service-workers/basic-fetch-with-contentfilter-allow-after-adding-data.html: Added.
    * LayoutTests/http/wpt/service-workers/basic-fetch-with-contentfilter.js:
    (doTest):
    * LayoutTests/platform/ios/TestExpectations:
    * LayoutTests/platform/mac/TestExpectations:
    * Source/WebKit/NetworkProcess/NetworkResourceLoader.cpp:
    (WebKit::NetworkResourceLoader::serviceWorkerDidFinish):

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

Identifier: 259548.648 at safari-7615-branch


  Commit: a030463538bb35080a429a437cc04f43010cb45b
      https://github.com/WebKit/WebKit/commit/a030463538bb35080a429a437cc04f43010cb45b
  Author: Matthew Finkel <sysrqb at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    M Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm

  Log Message:
  -----------
  Cherry-pick bc5b02ef9cce. rdar://problem/107972282

    [cocoa] Ensure NetworkSession's SessionWrapper is still valid in decision handler
    https://bugs.webkit.org/show_bug.cgi?id=255464
    rdar://107972282

    Reviewed by Alex Christensen.

    This is a speculative fix for a crash that seems to happen when a Session is
    invalidated between the time that the decision handler is created and when it
    is executed. _sessionWrapper is a WeakPtr that has a different lifetime than
    the owning WKNetworkSessionDelegate object.

    * Source/WebKit/NetworkProcess/cocoa/NetworkSessionCocoa.mm:
    (-[WKNetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):

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

Identifier: 259548.649 at safari-7615-branch


  Commit: 26c5b085d728ae5a59b1e870389e6644073a41dc
      https://github.com/WebKit/WebKit/commit/26c5b085d728ae5a59b1e870389e6644073a41dc
  Author: Dan Robson <dan_robson at apple.com>
  Date:   2023-04-17 (Mon, 17 Apr 2023)

  Changed paths:
    M Configurations/Version.xcconfig

  Log Message:
  -----------
  Versioning.

WebKit-7615.2.9

Identifier: 259548.650 at safari-7615-branch


  Commit: 019aecf27efd90416f76d0d6cb82075e7b077382
      https://github.com/WebKit/WebKit/commit/019aecf27efd90416f76d0d6cb82075e7b077382
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-04-18 (Tue, 18 Apr 2023)

  Changed paths:
    M Source/WebCore/dom/SelectorQuery.cpp
    M Source/WebCore/style/RuleSetBuilder.cpp

  Log Message:
  -----------
  Cherry-pick 262953 at main (547e70e42ef9). rdar://108037598

    Avoid unnecessary copy of CSSSelectorList with non nested style rule
    https://bugs.webkit.org/show_bug.cgi?id=255443
    rdar://108037598

    Reviewed by Antti Koivisto.

    resolveNestingParent() creates a copy of the selector list
    and resolves it.
    We should avoid calling it altogether when it's unnecessary
    (top level and no & selector).

    * Source/WebCore/dom/SelectorQuery.cpp:
    (WebCore::SelectorQueryCache::add):
    * Source/WebCore/style/RuleSetBuilder.cpp:
    (WebCore::Style::RuleSetBuilder::resolveSelectorListWithNesting):

    Canonical link: https://commits.webkit.org/262953@main
Canonical link: https://commits.webkit.org/259548.651@safari-7615-branch


  Commit: e1ffc8e9cddfe2e3a8be1ed4dd4d7e12b6cf477a
      https://github.com/WebKit/WebKit/commit/e1ffc8e9cddfe2e3a8be1ed4dd4d7e12b6cf477a
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-04-18 (Tue, 18 Apr 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom.html
    M Source/WebCore/css/CSSStyleRule.cpp
    M Source/WebCore/css/StyleRule.h

  Log Message:
  -----------
  Cherry-pick fdf42acd549d. rdar://problem/108041191

    Fix setSelectorText() to overwrite both selector and original selector
    https://bugs.webkit.org/show_bug.cgi?id=255446
    rdar://108041191

    Reviewed by Antti Koivisto.

    Before this patch, only the StyleRule selector was overwritten:
    selector matching was correct but CSSOM cssText() displayed the wrong selector.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt:
    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom.html:
    * Source/WebCore/css/CSSStyleRule.cpp:
    (WebCore::CSSStyleRule::setSelectorText):
    * Source/WebCore/css/StyleRule.h:
    (WebCore::StyleRuleWithNesting::wrapperAdoptOriginalSelectorList):

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

Identifier: 259548.652 at safari-7615-branch


  Commit: ecab0d59a773c88681b96826752edea158804f03
      https://github.com/WebKit/WebKit/commit/ecab0d59a773c88681b96826752edea158804f03
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-04-18 (Tue, 18 Apr 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalidation-004-expected.txt
    M Source/WebCore/style/RuleSetBuilder.cpp

  Log Message:
  -----------
  Cherry-pick 9eba2e0de0fb. rdar://problem/108137916

    [CSS Nesting] Rebuild rule set from original (not resolved) selector
    https://bugs.webkit.org/show_bug.cgi?id=255521
    rdar://108137916

    Reviewed by Antti Koivisto.

    When there is a modification of a selector by CSSOM,
    the next resolution should work on the original user-written selector,
    not on the previously resolved selector.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/invalidation-004-expected.txt:
    * Source/WebCore/style/RuleSetBuilder.cpp:
    (WebCore::Style::RuleSetBuilder::resolveSelectorListWithNesting):

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

Identifier: 259548.653 at safari-7615-branch


  Commit: 3e8fc93b897cc9a45447cc4dd65d584ca4609acf
      https://github.com/WebKit/WebKit/commit/3e8fc93b897cc9a45447cc4dd65d584ca4609acf
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2023-04-18 (Tue, 18 Apr 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt
    M Source/WebCore/css/parser/CSSParserImpl.cpp

  Log Message:
  -----------
  Cherry-pick ab88221743a9. rdar://problem/107760234

    [CSS Nesting] Fix parsing of nested at-rules with CSSOM
    https://bugs.webkit.org/show_bug.cgi?id=255530
    rdar://107760234

    Reviewed by Antti Koivisto.

    CSS OM insertion can "bypass" the normal stack by inserting at an arbitrarily
    deeply nested context.
    We already have isNestedContext() function to check for this, but it was
    not used here unfortunately.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt:
    * Source/WebCore/css/parser/CSSParserImpl.cpp:
    (WebCore::CSSParserImpl::consumeQualifiedRule):
    (WebCore::CSSParserImpl::consumeRegularRuleList):
    (WebCore::CSSParserImpl::consumeDeclarationListOrStyleBlockHelper):

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

Identifier: 259548.654 at safari-7615-branch


  Commit: 6628dfe7bacbf8f27e4578da4e1104305b4cdb00
      https://github.com/WebKit/WebKit/commit/6628dfe7bacbf8f27e4578da4e1104305b4cdb00
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-04-18 (Tue, 18 Apr 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-start-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-start.html
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/rendering/RenderBox.cpp

  Log Message:
  -----------
  Cherry-pick c87ee9281557. rdar://problem/106559103

    [margin-trim] block-start margins for grid items in horizontal writing-mode should be reflected in computed style.
    https://bugs.webkit.org/show_bug.cgi?id=253716
    rdar://106559103

    Reviewed by Alan Baradlay.

    When the block-start margins for grid items that are adjacent to the
    block-start edge of the grid, We need to set the rare data bits for
    the item to indicate that the margin has been trimmed. We can then check
    if this bit is set within ComputedStyleExtractor to get the trimmed
    value for this margin by directly querying the renderer's m_marginBox.
    In a horizontal writing mode this bit would correspond to the "top,"
    margin value.

    For block-start margins, the trimming occurs when a renderer goes
    through layout and calls RenderBox::constrainBlockMarginInAvailableSpaceOrTrim,
    which is called from RenderBox::computeBlockDirectionMargins. This
    function consults the layout system, which is grid in this case, via
    shouldTrimChildMargin to see if it should trim its margin. If this
    returns true, then the renderer will not compute the margin and will
    return 0_lu. We can use this opportunity to set the rare data for the
    renderer to indicate that this margin has been trimmed.

    Inside of ComputedStyleExtractor, we need to update
    rendererCanHaveTrimmedMargin so that this returns true for grid items.
    This will allow us to do 2 things:
    1.) Have isLayoutDependent return true for grid items with margin-trim
    set on the grid so that layout is forced when checking the "top," margin
    for grid items
    2.) Allow us to call box->hasTrimmedMargin when computing the margin
    value (since that call is guarded by a call to rendererCanHaveTrimmedMargin)

    Similarly, there are a couple of other extra pieces of code in RenderBox
    (particularly in physicalToFlowRelativeDirectionMapping and hasTrimmedMargin)
    that should now be used with grid items.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-start.html: Added.
    * Source/WebCore/css/ComputedStyleExtractor.cpp:
    (WebCore::rendererCanHaveTrimmedMargin):
    (WebCore::isLayoutDependent):
    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::physicalToFlowRelativeDirectionMapping const):
    (WebCore::RenderBox::hasTrimmedMargin const):
    (WebCore::RenderBox::constrainBlockMarginInAvailableSpaceOrTrim const):

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

Identifier: 259548.655 at safari-7615-branch


  Commit: 618b51d05520b22a388f3dc511f73274a869180d
      https://github.com/WebKit/WebKit/commit/618b51d05520b22a388f3dc511f73274a869180d
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-04-18 (Tue, 18 Apr 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-end-column-auto-flow-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-end-column-auto-flow.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-end-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-end-item-spans-multiple-rows-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-end-item-spans-multiple-rows.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-end.html
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/rendering/RenderBox.cpp

  Log Message:
  -----------
  Cherry-pick 7e8288073ff2. rdar://problem/106559562

    [margin-trim] Trimmed block-end margins for grid items in horizontal writing-mode should be refected in computed style.
    https://bugs.webkit.org/show_bug.cgi?id=253717
    rdar://106559562

    Reviewed by Alan Baradlay.

    When a grid has block-end margin-trim specified, then it should
    trim the block-end margins of any of its items on the last row.
    These margins that end up getting trimmed should be reflected in the
    computed style of that margin as having being trimmed (value of 0). This
    can be done by setting the rare data margin-trim bit for the "bottm,"
    margin of the renderer during layout.

    Since the trimming for the block-end margins of grid item occurs in
    RenderBox::constrainBlockMarginInAvailableSpaceOrTrim, then that is the
    appropriate place to set the rare data bit for the trimmed margin. The
    renderer can set this bit by calling markMarginAsTrimmed and passing in
    the margin that has been trimmed.

    ComputedStyleExtractor should then be able to use
    RenderBox::hasTrimmedMargin, which returns true if the rare data bit is set
    for the passed in margin, to determine if the "bottom," margin has been
    trimmed during layout.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-end-column-auto-flow-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-end-column-auto-flow.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-end-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-end-item-spans-multiple-rows-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-end-item-spans-multiple-rows.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-block-end.html: Added.
    * Source/WebCore/css/ComputedStyleExtractor.cpp:
    (WebCore::rendererCanHaveTrimmedMargin):
    (WebCore::isLayoutDependent):
    (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::hasTrimmedMargin const):
    (WebCore::RenderBox::constrainBlockMarginInAvailableSpaceOrTrim const):

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

Identifier: 259548.656 at safari-7615-branch


  Commit: 59113ec63c01ead097961629488bc938927dca59
      https://github.com/WebKit/WebKit/commit/59113ec63c01ead097961629488bc938927dca59
  Author: Chris Dumez <cdumez at apple.com>
  Date:   2023-04-18 (Tue, 18 Apr 2023)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml

  Log Message:
  -----------
  Cherry-pick 4a4fce197e49. rdar://problem/108158754

    Disable the color part of CSS Typed OM as it is not ready
    https://bugs.webkit.org/show_bug.cgi?id=255547
    rdar://108158754

    Reviewed by Brent Fulgham.

    It seems that 258448 at main mistakenly turned on the color part of CSS Typed OM
    which is incomplete and definitely not ready to ship.

    * Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:

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

Identifier: 259548.657 at safari-7615-branch


  Commit: 2a864a89c2f75c063d1cfd811c0f16c6b0fac782
      https://github.com/WebKit/WebKit/commit/2a864a89c2f75c063d1cfd811c0f16c6b0fac782
  Author: Russell Epstein <repstein at apple.com>
  Date:   2023-04-19 (Wed, 19 Apr 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/css/css-nesting/cssom.html
    M Source/WebCore/css/CSSStyleRule.cpp
    M Source/WebCore/css/StyleRule.h

  Log Message:
  -----------
  Revert "Cherry-pick fdf42acd549d. rdar://problem/108041191"

This reverts commit e1ffc8e9cddfe2e3a8be1ed4dd4d7e12b6cf477a.

Canonical link: https://commits.webkit.org/259548.658@safari-7615-branch


  Commit: e55676ca171362e55c8a3e25ae878bc2e6ae00d5
      https://github.com/WebKit/WebKit/commit/e55676ca171362e55c8a3e25ae878bc2e6ae00d5
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-04-19 (Wed, 19 Apr 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-start-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-start-item-negative-span-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-start-item-negative-span.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-start.html
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/rendering/RenderBox.cpp

  Log Message:
  -----------
  Cherry-pick 53332e5f7256. rdar://problem/106559597

    [margin-trim] Trimmed inline-start margins for grid items in horizontal writing-mode should be reflected in computed style.
    https://bugs.webkit.org/show_bug.cgi?id=253718
    rdar://106559597

    Reviewed by Alan Baradlay.

    When a grid has inline-start specified for margin trim, it will trim the
    inline-start margins of any items that are placed in the first column
    of the grid. These trimmed margins should be reflected when querying the
    computed style for the item. In order for this to happen,
    ComputedStyleExtractor must be able to identify when the inline-start/left
    margins of a grid item are trimmed. We can accomplish this by setting
    the rare data bits for the renderer as this margin is trimmed during
    layout. Then, ComputedStyleExtractor will be able to check to see if
    this bit is set.

    The inline-start margins for grid items are trimmed inside of
    RenderBox::computeOrTrimInlineMargin as the renderer is going through
    layout. This function is called as the renderer is trying to determine
    its inline margin values as part of RenderBox::computeLogicalWidthInFragment.
    The renderer of the grid item will consult with the grid via
    shouldTrimChildMargin to determine if it should return a trimmed margin
    value. At this time the renderer can also call into markMarginAsTrimmed
    to set the rare data bit for the margin.

    Once layout is finished, ComputedStyleExtractor can use
    RenderBox::hasTrimmedMargin to check if the "left," margin is trimmed.
    This function will return true only if the rare data bit is set for that
    specified margin.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-start-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-start-item-negative-span-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-start-item-negative-span.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-start.html: Added.
    * Source/WebCore/css/ComputedStyleExtractor.cpp:
    (WebCore::rendererCanHaveTrimmedMargin):
    (WebCore::isLayoutDependent):
    (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::physicalToFlowRelativeDirectionMapping const):
    (WebCore::RenderBox::hasTrimmedMargin const):
    (WebCore::RenderBox::computeOrTrimInlineMargin const):

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

Identifier: 259548.659 at safari-7615-branch


  Commit: f0589f652bac08dc0e4d08c5bbe568e911fac6eb
      https://github.com/WebKit/WebKit/commit/f0589f652bac08dc0e4d08c5bbe568e911fac6eb
  Author: Sammy Gill <sammy.gill at apple.com>
  Date:   2023-04-19 (Wed, 19 Apr 2023)

  Changed paths:
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-end-columns-added-to-end-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-end-columns-added-to-end.html
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-end-items-in-last-column-trimmed-expected.txt
    A LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-end-items-in-last-column-trimmed.html
    M Source/WebCore/css/ComputedStyleExtractor.cpp
    M Source/WebCore/rendering/RenderBox.cpp

  Log Message:
  -----------
  Cherry-pick 67d0e83ce373. rdar://problem/106559432

    [margin-trim] Trimmed inline-end margins for grid items in horizontal writing-mode should be reflected in computed style.
    https://bugs.webkit.org/show_bug.cgi?id=253719
    rdar://106559432

    Reviewed by Alan Baradlay.

    When a grid has inline-end specified for margin trim, it will trim the
    margins in the last column. Currently these trimmed margins are not
    showing up as "trimmed," in the computed style of the element, but they
    should be shown as a margin value of 0. In order to reflect this trimming
    within the computed style, ComputedStyleExtractor must be able to identify
    when a particular margin has been trimmed during layout. We can accomplish
    this by setting the margin-trim rare data bit for the respective margin
    to indicate that is has been trimmed. This bit can then be checked for
    a renderer after layout has completed to check if a specific margin
    was trimmed.

    The inline-end margins for grid items are trimmed inside RenderBox::computeOrTrimInlineMargin
    as the renderer is going through layout. When a grid item reaches this
    point, it consults with the grid via shouldTrimChildMargin to determine
    if it should consider its own value as trimmed. If this returns true,
    the function will return a value of 0_lu for the margin, but at this
    point we can also set the margin-trim rare data bit for the renderer.
    This is done via a call to markMarginAsTrimmed with the appropriate
    margin side passed in.

    When ComputedStyleExtractor is then trying to get the value for the
    "right," margin, it can use RenderBox::hasTrimmedMargin with an argument
    of PhysicalDirection::Right to check if that renderer had its margin
    trimmed during layout.

    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-end-columns-added-to-end-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-end-columns-added-to-end.html: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-end-items-in-last-column-trimmed-expected.txt: Added.
    * LayoutTests/imported/w3c/web-platform-tests/css/css-box/margin-trim/computed-margin-values/grid-inline-end-items-in-last-column-trimmed.html: Added.
    * Source/WebCore/css/ComputedStyleExtractor.cpp:
    (WebCore::rendererCanHaveTrimmedMargin):
    (WebCore::isLayoutDependent):
    (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
    (WebCore::isFlexItem): Deleted.
    * Source/WebCore/rendering/RenderBox.cpp:
    (WebCore::RenderBox::hasTrimmedMargin const):
    (WebCore::RenderBox::computeOrTrimInlineMargin const):

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

Identifier: 259548.660 at safari-7615-branch


Compare: https://github.com/WebKit/WebKit/compare/42a8cbc19dc6...f0589f652bac


More information about the webkit-changes mailing list