[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