Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: cf604717c41c53cb1a1b0af630cd883b70fdbf72
https://github.com/WebKit/WebKit/commit/cf604717c41c53cb1a1b0af630cd883b70fdbf72
Author: Simon Fraser <[email protected]>
Date: 2023-03-25 (Sat, 25 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:
-----------
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@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
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes