haikuwebkit/LayoutTests/scrollingcoordinator/scrolling-tree
Simon Fraser a20d0f7496 REGRESSION (Big Sur): position:absolute elements inside nested overflow:scroll don't track scrolling
https://bugs.webkit.org/show_bug.cgi?id=220761
<rdar://problem/69075263>

Reviewed by Antti Koivisto.
Source/WebCore:

When a position:absolute element is inside nested overflow scroll, and its containing block is the outer
scroller, then we failed to make a positioning scrolling tree node for it, so it would fail
to track during async scrolling.

The bug was that RenderLayerCompositor::layerScrollBehahaviorRelativeToCompositedAncestor() failed
to deal with nested scrollers. The correct question to ask when determining if we need a "Moves" node
is "is there an overflow scroll layer between this layer and its composited ancestor". Previously,
we would just find the enclosing scroller (with the same scrolling scope) and assume we didn't need
a node.

We can also simplify the "Stationary" code path to just ask about scrolling scopes.

Tests: scrollingcoordinator/ios/absolute-in-nested-overflow-scroll-intermediate-stacking-2.html
       scrollingcoordinator/ios/absolute-in-nested-overflow-scroll-intermediate-stacking.html
       scrollingcoordinator/ios/absolute-in-nested-overflow-scroll.html
       scrollingcoordinator/scrolling-tree/absolute-in-nested-overflow-scroll.html

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::layerScrollBehahaviorRelativeToCompositedAncestor):
(WebCore::isScrolledByOverflowScrollLayer): Deleted.
(WebCore::enclosingCompositedScrollingLayer): Deleted.

LayoutTests:

Add a scrolling tree dump test, and three iOS interactive tests, since testing scrolling-tree-only
behaviors is easier on iOS than macOS. absolute-in-nested-overflow-scroll.html is the basic test.
The two "stacking" variants have an opacity layer below and above the inner scroller to test some
more layer configurations.

* platform/ios-wk2/scrollingcoordinator/scrolling-tree/absolute-in-nested-overflow-scroll-expected.txt: Added.
* scrollingcoordinator/ios/absolute-in-nested-overflow-scroll-expected.html: Added.
* scrollingcoordinator/ios/absolute-in-nested-overflow-scroll-intermediate-stacking-2-expected.html: Added.
* scrollingcoordinator/ios/absolute-in-nested-overflow-scroll-intermediate-stacking-2.html: Added.
* scrollingcoordinator/ios/absolute-in-nested-overflow-scroll-intermediate-stacking-expected.html: Added.
* scrollingcoordinator/ios/absolute-in-nested-overflow-scroll-intermediate-stacking.html: Added.
* scrollingcoordinator/ios/absolute-in-nested-overflow-scroll.html: Added.
* scrollingcoordinator/scrolling-tree/absolute-in-nested-overflow-scroll-expected.txt: Added.
* scrollingcoordinator/scrolling-tree/absolute-in-nested-overflow-scroll.html: Added.

Canonical link: https://commits.webkit.org/233177@main
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@271651 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2021-01-20 18:34:10 +00:00
..
resources
absolute-in-nested-overflow-scroll-expected.txt REGRESSION (Big Sur): position:absolute elements inside nested overflow:scroll don't track scrolling 2021-01-20 18:34:10 +00:00
absolute-in-nested-overflow-scroll.html REGRESSION (Big Sur): position:absolute elements inside nested overflow:scroll don't track scrolling 2021-01-20 18:34:10 +00:00
absolute-in-nested-sc-scrollers-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
absolute-in-nested-sc-scrollers.html
absolute-inside-stacking-in-scroller-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
absolute-inside-stacking-in-scroller.html
clipped-layer-in-overflow-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
clipped-layer-in-overflow-nested-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
clipped-layer-in-overflow-nested.html
clipped-layer-in-overflow.html
composited-in-absolute-in-overflow-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
composited-in-absolute-in-overflow.html
composited-in-absolute-in-stacking-context-overflow-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
composited-in-absolute-in-stacking-context-overflow.html
coordinated-frame-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
coordinated-frame-gain-scrolling-ancestor-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
coordinated-frame-gain-scrolling-ancestor.html
coordinated-frame-in-fixed-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
coordinated-frame-in-fixed.html
coordinated-frame-lose-scrolling-ancestor-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
coordinated-frame-lose-scrolling-ancestor.html
coordinated-frame.html
fixed-inside-frame-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
fixed-inside-frame.html
gain-scrolling-node-parent-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
gain-scrolling-node-parent.html
lose-scrolling-node-parent-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
lose-scrolling-node-parent.html
nested-absolute-in-absolute-overflow-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
nested-absolute-in-absolute-overflow.html
nested-absolute-in-overflow-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
nested-absolute-in-overflow.html
nested-absolute-in-relative-in-overflow-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
nested-absolute-in-relative-in-overflow.html
nested-absolute-in-sc-overflow-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
nested-absolute-in-sc-overflow.html
nested-overflow-scroll-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
nested-overflow-scroll.html
overflow-in-fixed-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
overflow-in-fixed.html
positioned-nodes-complex-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
positioned-nodes-complex.html
positioned-nodes-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
positioned-nodes.html
remove-coordinated-frame-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
remove-coordinated-frame.html
remove-scrolling-role-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
remove-scrolling-role.html
reparent-across-compositing-layers-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
reparent-across-compositing-layers.html
reparent-with-layer-removal-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
reparent-with-layer-removal.html
scroller-with-negative-z-child-expected.txt
scroller-with-negative-z-child.html
scrolling-proxy-with-no-scrolling-layer-expected.txt
scrolling-proxy-with-no-scrolling-layer.html
scrolling-tree-includes-frame-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
scrolling-tree-includes-frame.html
scrolling-tree-is-z-order-expected.txt
scrolling-tree-is-z-order.html
sibling-node-order-expected.txt
sibling-node-order.html
sticky-in-overflow-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
sticky-in-overflow.html
toggle-coordinated-frame-scrolling-expected.txt Standardize on "allows scrolling" terminology instead of asking about scrollbars 2020-12-23 17:00:45 +00:00
toggle-coordinated-frame-scrolling.html