Add some basic geometry information to the scrolling tree
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Jan 2019 16:33:33 +0000 (16:33 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 30 Jan 2019 16:33:33 +0000 (16:33 +0000)
https://bugs.webkit.org/show_bug.cgi?id=194002
Source/WebCore:

rdar://problem/47656294

Reviewed by Antti Koivisto.

To allow hit-testing in the scrolling tree, store a parent-relative scrollable
rect in "scrolling" and "frame hosting" nodes. This is a rect whose size is the size
of the scrollable area, and whose origin is relative to the parent scrolling tree node.

Frame hosting nodes need this rect because they take care of the geometry offset between
an iframe and its scrolling tree ancestor in the parent document.

Based on a patch by Frédéric Wang in bug 172917.

* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::AsyncScrollingCoordinator::setScrollingNodeGeometry):
* page/scrolling/ScrollingStateFrameHostingNode.cpp:
(WebCore::ScrollingStateFrameHostingNode::ScrollingStateFrameHostingNode):
(WebCore::ScrollingStateFrameHostingNode::setAllPropertiesChanged):
(WebCore::ScrollingStateFrameHostingNode::setParentRelativeScrollableRect):
(WebCore::ScrollingStateFrameHostingNode::dumpProperties const):
* page/scrolling/ScrollingStateFrameHostingNode.h:
* page/scrolling/ScrollingTreeFrameHostingNode.cpp:
(WebCore::ScrollingTreeFrameHostingNode::commitStateBeforeChildren):
(WebCore::ScrollingTreeFrameHostingNode::dumpProperties const):
* page/scrolling/ScrollingTreeFrameHostingNode.h:
(WebCore::ScrollingTreeFrameHostingNode::parentRelativeScrollableRect const):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateScrollingLayers):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeFrameScrollingGeometry const):
(WebCore::RenderLayerCompositor::computeFrameHostingGeometry const):
(WebCore::RenderLayerCompositor::computeOverflowScrollingGeometry const):
(WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):
(WebCore::RenderLayerCompositor::updateScrollingNodeForFrameHostingRole):
(WebCore::RenderLayerCompositor::updateScrollSnapPropertiesWithFrameView const):
(WebCore::RenderLayerCompositor::updateScrollSnapPropertiesWithFrameView): Deleted.
* rendering/RenderLayerCompositor.h:

Source/WebKit:

Reviewed by Antti Koivisto.

Add a comment explaining why we don't need to encode/decode ParentRelativeScrollableRect.

* Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
(ArgumentCoder<ScrollingStateFrameHostingNode>::encode):

LayoutTests:

rdar://problem/47656294

Reviewed by Antti Koivisto.

New test results with "parent relative scrollable rect" output and 0,0 anchorPoints.

* compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
* fast/scrolling/ios/change-scrollability-on-content-resize-expected.txt:
* fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt:
* fast/scrolling/ios/overflow-scroll-touch-expected.txt:
* fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt:
* fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt:
* fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt:
* fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt:
* fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
* platform/ios-wk2/scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
* platform/ios/compositing/overflow/overflow-auto-with-touch-expected.txt:
* platform/ios/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt:
* platform/ios/compositing/overflow/overflow-overlay-with-touch-expected.txt:
* platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
* platform/ios/compositing/overflow/scrolling-without-painting-expected.txt:
* platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt:
* platform/ios/compositing/overflow/updating-scrolling-content-expected.txt:
* platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
* platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
* platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt:
* platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt:
* platform/ios/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt:
* platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt:
* platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt:
* scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
* scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
* scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
* scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
* scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
* scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
* scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
* scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
* scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
* scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
* scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
* scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
* scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
* scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
* scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
* tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
* tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
* tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
* tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
* tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
* tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
* tiled-drawing/scrolling/fixed/four-bars-expected.txt:
* tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
* tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
* tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
* tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
* tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
* tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
* tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
* tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
* tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
* tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
* tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@240713 268f45cc-cd09-0410-ab3c-d52691b4dbfc

84 files changed:
LayoutTests/ChangeLog
LayoutTests/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt
LayoutTests/fast/scrolling/ios/change-scrollability-on-content-resize-expected.txt
LayoutTests/fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt
LayoutTests/fast/scrolling/ios/overflow-scroll-touch-expected.txt
LayoutTests/fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt
LayoutTests/fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt
LayoutTests/fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt
LayoutTests/fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt
LayoutTests/fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt
LayoutTests/platform/ios/compositing/overflow/overflow-auto-with-touch-expected.txt
LayoutTests/platform/ios/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt
LayoutTests/platform/ios/compositing/overflow/overflow-overlay-with-touch-expected.txt
LayoutTests/platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt
LayoutTests/platform/ios/compositing/overflow/scrolling-without-painting-expected.txt
LayoutTests/platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt
LayoutTests/platform/ios/compositing/overflow/updating-scrolling-content-expected.txt
LayoutTests/platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt
LayoutTests/platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt
LayoutTests/platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt
LayoutTests/platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt
LayoutTests/platform/ios/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt
LayoutTests/platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt
LayoutTests/platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt
LayoutTests/tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/four-bars-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/nested-fixed-expected.txt
LayoutTests/tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt
LayoutTests/tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt
LayoutTests/tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt
LayoutTests/tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt
LayoutTests/tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt
LayoutTests/tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt
LayoutTests/tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/page/scrolling/AsyncScrollingCoordinator.cpp
Source/WebCore/page/scrolling/ScrollingStateFrameHostingNode.cpp
Source/WebCore/page/scrolling/ScrollingStateFrameHostingNode.h
Source/WebCore/page/scrolling/ScrollingTreeFrameHostingNode.cpp
Source/WebCore/page/scrolling/ScrollingTreeFrameHostingNode.h
Source/WebCore/rendering/RenderLayer.h
Source/WebCore/rendering/RenderLayerBacking.cpp
Source/WebCore/rendering/RenderLayerCompositor.cpp
Source/WebCore/rendering/RenderLayerCompositor.h
Source/WebKit/ChangeLog
Source/WebKit/Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp

index be51479..89a857c 100644 (file)
@@ -1,3 +1,85 @@
+2019-01-30  Simon Fraser  <simon.fraser@apple.com>
+
+        Add some basic geometry information to the scrolling tree
+        https://bugs.webkit.org/show_bug.cgi?id=194002
+        rdar://problem/47656294
+
+        Reviewed by Antti Koivisto.
+        
+        New test results with "parent relative scrollable rect" output and 0,0 anchorPoints.
+
+        * compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
+        * fast/scrolling/ios/change-scrollability-on-content-resize-expected.txt:
+        * fast/scrolling/ios/change-scrollability-on-content-resize-nested-expected.txt:
+        * fast/scrolling/ios/overflow-scroll-touch-expected.txt:
+        * fast/scrolling/ios/reconcile-layer-position-recursive-expected.txt:
+        * fast/scrolling/ios/subpixel-overflow-scrolling-with-ancestor-expected.txt:
+        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-expected.txt:
+        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolled-down-then-up-expected.txt:
+        * fast/visual-viewport/tiled-drawing/zoomed-fixed-scrolling-layers-state-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
+        * platform/ios-wk2/scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
+        * platform/ios/compositing/overflow/overflow-auto-with-touch-expected.txt:
+        * platform/ios/compositing/overflow/overflow-auto-with-touch-toggle-expected.txt:
+        * platform/ios/compositing/overflow/overflow-overlay-with-touch-expected.txt:
+        * platform/ios/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
+        * platform/ios/compositing/overflow/scrolling-without-painting-expected.txt:
+        * platform/ios/compositing/overflow/textarea-scroll-touch-expected.txt:
+        * platform/ios/compositing/overflow/updating-scrolling-content-expected.txt:
+        * platform/ios/compositing/rtl/rtl-scrolling-with-transformed-descendants-expected.txt:
+        * platform/ios/compositing/scrolling/overflow-scrolling-layers-are-self-painting-expected.txt:
+        * platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-expected.txt:
+        * platform/ios/fast/scrolling/ios/overflow-scrolling-ancestor-clip-size-expected.txt:
+        * platform/ios/fast/scrolling/ios/scrolling-content-clip-to-viewport-expected.txt:
+        * platform/ios/fast/scrolling/ios/textarea-scroll-touch-expected.txt:
+        * platform/ios/media/video-play-glyph-composited-outside-overflow-scrolling-touch-container-expected.txt:
+        * scrollingcoordinator/scrolling-tree/coordinated-frame-expected.txt:
+        * scrollingcoordinator/scrolling-tree/coordinated-frame-gain-scrolling-ancestor-expected.txt:
+        * scrollingcoordinator/scrolling-tree/coordinated-frame-in-fixed-expected.txt:
+        * scrollingcoordinator/scrolling-tree/coordinated-frame-lose-scrolling-ancestor-expected.txt:
+        * scrollingcoordinator/scrolling-tree/fixed-inside-frame-expected.txt:
+        * scrollingcoordinator/scrolling-tree/gain-scrolling-node-parent-expected.txt:
+        * scrollingcoordinator/scrolling-tree/lose-scrolling-node-parent-expected.txt:
+        * scrollingcoordinator/scrolling-tree/overflow-in-fixed-expected.txt:
+        * scrollingcoordinator/scrolling-tree/remove-coordinated-frame-expected.txt:
+        * scrollingcoordinator/scrolling-tree/remove-scrolling-role-expected.txt:
+        * scrollingcoordinator/scrolling-tree/reparent-across-compositing-layers-expected.txt:
+        * scrollingcoordinator/scrolling-tree/reparent-with-layer-removal-expected.txt:
+        * scrollingcoordinator/scrolling-tree/scrolling-tree-includes-frame-expected.txt:
+        * scrollingcoordinator/scrolling-tree/scrolling-tree-is-z-order-expected.txt:
+        * scrollingcoordinator/scrolling-tree/toggle-coordinated-frame-scrolling-expected.txt:
+        * tiled-drawing/scrolling/clamp-out-of-bounds-scrolls-expected.txt:
+        * tiled-drawing/scrolling/fixed/absolute-inside-fixed-expected.txt:
+        * tiled-drawing/scrolling/fixed/absolute-inside-out-of-view-fixed-expected.txt:
+        * tiled-drawing/scrolling/fixed/fixed-in-overflow-expected.txt:
+        * tiled-drawing/scrolling/fixed/fixed-position-out-of-view-expected.txt:
+        * tiled-drawing/scrolling/fixed/fixed-position-out-of-view-negative-zindex-expected.txt:
+        * tiled-drawing/scrolling/fixed/four-bars-expected.txt:
+        * tiled-drawing/scrolling/fixed/four-bars-with-header-and-footer-expected.txt:
+        * tiled-drawing/scrolling/fixed/negative-scroll-offset-expected.txt:
+        * tiled-drawing/scrolling/fixed/negative-scroll-offset-in-view-expected.txt:
+        * tiled-drawing/scrolling/fixed/nested-fixed-expected.txt:
+        * tiled-drawing/scrolling/fixed/percentage-inside-fixed-expected.txt:
+        * tiled-drawing/scrolling/frames/scroll-region-after-frame-layout-expected.txt:
+        * tiled-drawing/scrolling/scrolling-tree-after-scroll-expected.txt:
+        * tiled-drawing/scrolling/scrolling-tree-slow-scrolling-expected.txt:
+        * tiled-drawing/scrolling/sticky/negative-scroll-offset-expected.txt:
+        * tiled-drawing/scrolling/sticky/sticky-horizontal-expected.txt:
+        * tiled-drawing/scrolling/sticky/sticky-vertical-expected.txt:
+
 2019-01-30  Zalan Bujtas  <zalan@apple.com>
 
         [LFC] Use the used margin values in outOfFlowReplacedVerticalGeometry consistently
index fac6fe7..ea8cb76 100644 (file)
@@ -18,6 +18,7 @@
               (children 1
                 (GraphicsLayer
                   (offsetFromRenderer width=1 height=1)
+                  (anchor 0.00 0.00)
                   (bounds 285.00 2000.00)
                 )
               )
index 18c16ef..9691f78 100644 (file)
@@ -86,6 +86,7 @@
                   (children 1
                     (GraphicsLayer
                       (offsetFromRenderer width=5 height=5)
+                      (anchor 0.00 0.00)
                       (bounds 200.00 400.00)
                       (drawsContent 1)
                       (visible rect 0.00, 0.00 200.00 x 200.00)
                   (children 1
                     (GraphicsLayer
                       (offsetFromRenderer width=5 height=5)
+                      (anchor 0.00 0.00)
                       (bounds 200.00 400.00)
                       (drawsContent 1)
                       (visible rect 0.00, 0.00 200.00 x 200.00)
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
     (Overflow scrolling node
       (scrollable area size 200 200)
       (contents size 200 400)
+      (parent relative scrollable rect at (260,10) size 200x200)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
     (Overflow scrolling node
       (scrollable area size 200 200)
       (contents size 200 400)
+      (parent relative scrollable rect at (260,260) size 200x200)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
index b5e6c60..60572d3 100644 (file)
@@ -34,6 +34,7 @@
               (contentsScale 2.00)
               (children 1
                 (GraphicsLayer
+                  (anchor 0.00 0.00)
                   (bounds 300.00 400.00)
                   (drawsContent 1)
                   (visible rect 0.00, 0.00 300.00 x 200.00)
@@ -66,6 +67,7 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
@@ -80,6 +82,7 @@
     (Overflow scrolling node
       (scrollable area size 300 200)
       (contents size 300 400)
+      (parent relative scrollable rect at (8,13) size 300x200)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
index 765dc6f..56670f2 100644 (file)
@@ -23,6 +23,7 @@
                 (GraphicsLayer
                   (offsetFromRenderer width=1 height=1)
                   (scrollOffset (0,50))
+                  (anchor 0.00 0.00)
                   (bounds 200.00 400.00)
                   (drawsContent 1)
                 )
@@ -44,6 +45,7 @@
                 (GraphicsLayer
                   (offsetFromRenderer width=1 height=1)
                   (scrollOffset (0,50))
+                  (anchor 0.00 0.00)
                   (bounds 200.00 400.00)
                   (drawsContent 1)
                 )
index 1b6f6db..190f661 100644 (file)
@@ -35,6 +35,7 @@
               (contentsScale 2.00)
               (children 1
                 (GraphicsLayer
+                  (anchor 0.00 0.00)
                   (bounds 300.00 510.00)
                   (drawsContent 1)
                   (visible rect 0.00, 13.00 300.00 x 287.00)
@@ -62,6 +63,7 @@
                           (children 1
                             (GraphicsLayer
                               (offsetFromRenderer width=5 height=5)
+                              (anchor 0.00 0.00)
                               (bounds 270.00 610.00)
                               (drawsContent 1)
                               (visible rect 0.00, 0.00 200.00 x 245.00)
index 8289284..6ea8a1a 100644 (file)
@@ -16,6 +16,7 @@
               (children 1
                 (GraphicsLayer
                   (scrollOffset (0,30))
+                  (anchor 0.00 0.00)
                   (bounds 300.00 900.00)
                   (drawsContent 1)
                   (children 1
index 21d4114..22ca548 100644 (file)
@@ -4,6 +4,7 @@
   (contents size 4016 4042)
   (requested scroll position 40 1000)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index d22f64a..1b3965f 100644 (file)
@@ -4,6 +4,7 @@
   (contents size 4016 4042)
   (requested scroll position 40 460)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 8029b8f..3f20e5a 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 785 585)
   (contents size 4016 4042)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 27ca443..e5a76e7 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 1016)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
   (behavior for fixed 0)
   (children 1
     (Frame hosting node
+      (parent relative scrollable rect at (37,39) size 500x300)
       (children 1
         (Frame scrolling node
           (scrollable area size 500 300)
           (contents size 500 420)
+          (parent relative scrollable rect at (0,0) size 500x300)
           (scrollable area parameters 
             (horizontal scroll elasticity 1)
             (vertical scroll elasticity 1)
@@ -32,6 +35,7 @@
             (Overflow scrolling node
               (scrollable area size 400 300)
               (contents size 400 1760)
+              (parent relative scrollable rect at (10,10) size 400x300)
               (scrollable area parameters 
                 (horizontal scroll elasticity 1)
                 (vertical scroll elasticity 1)
index 9af1373..3e2c9c7 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 1016)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
       (layer position at last layout (8,10))
       (children 1
         (Frame hosting node
+          (parent relative scrollable rect at (29,29) size 500x300)
           (children 1
             (Frame scrolling node
               (scrollable area size 500 300)
               (contents size 500 420)
+              (parent relative scrollable rect at (0,0) size 500x300)
               (scrollable area parameters 
                 (horizontal scroll elasticity 1)
                 (vertical scroll elasticity 1)
@@ -37,6 +40,7 @@
                 (Overflow scrolling node
                   (scrollable area size 400 300)
                   (contents size 400 1760)
+                  (parent relative scrollable rect at (10,10) size 400x300)
                   (scrollable area parameters 
                     (horizontal scroll elasticity 1)
                     (vertical scroll elasticity 1)
index 28fc30e..1609cae 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 1016)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
       (layer position at last layout (8,0))
       (children 1
         (Frame hosting node
+          (parent relative scrollable rect at (29,29) size 500x300)
           (children 1
             (Frame scrolling node
               (scrollable area size 500 300)
               (contents size 500 420)
+              (parent relative scrollable rect at (0,0) size 500x300)
               (scrollable area parameters 
                 (horizontal scroll elasticity 1)
                 (vertical scroll elasticity 1)
@@ -37,6 +40,7 @@
                 (Overflow scrolling node
                   (scrollable area size 400 300)
                   (contents size 400 1760)
+                  (parent relative scrollable rect at (10,10) size 400x300)
                   (scrollable area parameters 
                     (horizontal scroll elasticity 1)
                     (vertical scroll elasticity 1)
index aa54c26..f80a475 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 1016)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
   (behavior for fixed 0)
   (children 1
     (Frame hosting node
+      (parent relative scrollable rect at (37,39) size 500x300)
       (children 1
         (Frame scrolling node
           (scrollable area size 500 300)
           (contents size 500 420)
+          (parent relative scrollable rect at (0,0) size 500x300)
           (scrollable area parameters 
             (horizontal scroll elasticity 1)
             (vertical scroll elasticity 1)
@@ -32,6 +35,7 @@
             (Overflow scrolling node
               (scrollable area size 400 300)
               (contents size 400 1760)
+              (parent relative scrollable rect at (10,10) size 400x300)
               (scrollable area parameters 
                 (horizontal scroll elasticity 1)
                 (vertical scroll elasticity 1)
index 033e738..27782ba 100644 (file)
@@ -3,6 +3,7 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 657)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
   (behavior for fixed 0)
   (children 1
     (Frame hosting node
+      (parent relative scrollable rect at (110,110) size 480x400)
       (children 1
         (Frame scrolling node
           (scrollable area size 480 400)
           (contents size 480 1016)
           (requested scroll position 0 120)
           (requested scroll position represents programmatic scroll 1)
+          (parent relative scrollable rect at (0,0) size 480x400)
           (scrollable area parameters 
             (horizontal scroll elasticity 1)
             (vertical scroll elasticity 1)
index 0f5dc63..5fc7fa0 100644 (file)
@@ -5,6 +5,7 @@ Inner scrolling content
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
@@ -19,6 +20,7 @@ Inner scrolling content
     (Overflow scrolling node
       (scrollable area size 420 320)
       (contents size 443 1041)
+      (parent relative scrollable rect at (9,9) size 420x320)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
@@ -28,6 +30,7 @@ Inner scrolling content
         (Overflow scrolling node
           (scrollable area size 420 320)
           (contents size 420 1020)
+          (parent relative scrollable rect at (23,63) size 420x320)
           (scrollable area parameters 
             (horizontal scroll elasticity 1)
             (vertical scroll elasticity 1)
index 0f5dc63..5fc7fa0 100644 (file)
@@ -5,6 +5,7 @@ Inner scrolling content
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
@@ -19,6 +20,7 @@ Inner scrolling content
     (Overflow scrolling node
       (scrollable area size 420 320)
       (contents size 443 1041)
+      (parent relative scrollable rect at (9,9) size 420x320)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
@@ -28,6 +30,7 @@ Inner scrolling content
         (Overflow scrolling node
           (scrollable area size 420 320)
           (contents size 420 1020)
+          (parent relative scrollable rect at (23,63) size 420x320)
           (scrollable area parameters 
             (horizontal scroll elasticity 1)
             (vertical scroll elasticity 1)
index 730e785..8abfcb9 100644 (file)
@@ -3,6 +3,7 @@ Scrolling content
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
@@ -22,6 +23,7 @@ Scrolling content
         (Overflow scrolling node
           (scrollable area size 400 300)
           (contents size 400 1000)
+          (parent relative scrollable rect at (0,0) size 400x300)
           (scrollable area parameters 
             (horizontal scroll elasticity 1)
             (vertical scroll elasticity 1)
index 693d3ec..7a44392 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 1016)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
index 276780c..bb7951a 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 2513)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
@@ -16,6 +17,7 @@
     (Overflow scrolling node
       (scrollable area size 300 400)
       (contents size 300 2000)
+      (parent relative scrollable rect at (14,14) size 300x400)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
index 2240194..1843ab3 100644 (file)
@@ -5,6 +5,7 @@ Inner scrolling content
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
@@ -19,6 +20,7 @@ Inner scrolling content
     (Overflow scrolling node
       (scrollable area size 440 340)
       (contents size 440 1040)
+      (parent relative scrollable rect at (70,102) size 440x340)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
index a855f98..485f568 100644 (file)
@@ -5,6 +5,7 @@ Inner scrolling content
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 1041)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
@@ -19,6 +20,7 @@ Inner scrolling content
     (Overflow scrolling node
       (scrollable area size 440 340)
       (contents size 440 1040)
+      (parent relative scrollable rect at (70,102) size 440x340)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
index deb8cdd..acd7100 100644 (file)
@@ -3,6 +3,7 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
   (behavior for fixed 0)
   (children 1
     (Frame hosting node
+      (parent relative scrollable rect at (0,0) size 100x200)
       (children 1
         (Frame scrolling node
           (scrollable area size 100 200)
           (contents size 308 416)
+          (parent relative scrollable rect at (0,0) size 100x200)
           (scrollable area parameters 
             (horizontal scroll elasticity 1)
             (vertical scroll elasticity 1)
index f0e1c19..b0e3c0b 100644 (file)
@@ -3,6 +3,7 @@ FirstSecondThird
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
index c451629..731282f 100644 (file)
@@ -5,6 +5,7 @@ Scrolling tree on non-scrollable
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 645)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
@@ -17,10 +18,12 @@ Scrolling tree on non-scrollable
   (behavior for fixed 0)
   (children 1
     (Frame hosting node
+      (parent relative scrollable rect at (30,30) size 600x500)
       (children 1
         (Frame scrolling node
           (scrollable area size 600 500)
           (contents size 600 1024)
+          (parent relative scrollable rect at (0,0) size 600x500)
           (scrollable area parameters 
             (horizontal scroll elasticity 1)
             (vertical scroll elasticity 1)
@@ -33,10 +36,12 @@ Scrolling tree on non-scrollable
           (behavior for fixed 0)
           (children 1
             (Frame hosting node
+              (parent relative scrollable rect at (10,54) size 500x400)
               (children 1
                 (Frame scrolling node
                   (scrollable area size 500 400)
                   (contents size 500 1024)
+                  (parent relative scrollable rect at (0,0) size 500x400)
                   (scrollable area parameters 
                     (horizontal scroll elasticity 1)
                     (vertical scroll elasticity 1)
@@ -62,7 +67,8 @@ Scrolling tree on scrollable
 
 (Frame scrolling node
   (scrollable area size 800 600)
-  (contents size 800 1445)
+  (contents size 800 1515)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 1)
     (vertical scroll elasticity 1)
@@ -71,14 +77,16 @@ Scrolling tree on scrollable
   (visual viewport enabled 1)
   (layout viewport at (0,0) size 800x600)
   (min layout viewport origin (0,0))
-  (max layout viewport origin (0,845))
+  (max layout viewport origin (0,915))
   (behavior for fixed 0)
   (children 1
     (Frame hosting node
+      (parent relative scrollable rect at (30,30) size 600x500)
       (children 1
         (Frame scrolling node
           (scrollable area size 600 500)
           (contents size 600 500)
+          (parent relative scrollable rect at (0,0) size 600x500)
           (scrollable area parameters 
             (horizontal scroll elasticity 1)
             (vertical scroll elasticity 1)
@@ -91,10 +99,12 @@ Scrolling tree on scrollable
           (behavior for fixed 0)
           (children 1
             (Frame hosting node
+              (parent relative scrollable rect at (10,54) size 500x400)
               (children 1
                 (Frame scrolling node
                   (scrollable area size 500 400)
                   (contents size 500 1024)
+                  (parent relative scrollable rect at (0,0) size 500x400)
                   (scrollable area parameters 
                     (horizontal scroll elasticity 1)
                     (vertical scroll elasticity 1)
index 4fa23ed..8ac11a7 100644 (file)
@@ -14,6 +14,7 @@
               (bounds 300.00 300.00)
               (children 1
                 (GraphicsLayer
+                  (anchor 0.00 0.00)
                   (bounds 1000.00 1000.00)
                   (drawsContent 1)
                 )
index 4fa23ed..8ac11a7 100644 (file)
@@ -14,6 +14,7 @@
               (bounds 300.00 300.00)
               (children 1
                 (GraphicsLayer
+                  (anchor 0.00 0.00)
                   (bounds 1000.00 1000.00)
                   (drawsContent 1)
                 )
index 4fa23ed..8ac11a7 100644 (file)
@@ -14,6 +14,7 @@
               (bounds 300.00 300.00)
               (children 1
                 (GraphicsLayer
+                  (anchor 0.00 0.00)
                   (bounds 1000.00 1000.00)
                   (drawsContent 1)
                 )
index 105bc76..bb66841 100644 (file)
@@ -13,6 +13,7 @@
               (bounds 320.00 340.00)
               (children 1
                 (GraphicsLayer
+                  (anchor 0.00 0.00)
                   (bounds 320.00 1224.00)
                   (drawsContent 1)
                 )
index aefd8e7..571efd0 100644 (file)
@@ -20,6 +20,7 @@
                 (GraphicsLayer
                   (offsetFromRenderer width=1 height=1)
                   (scrollOffset (0,25))
+                  (anchor 0.00 0.00)
                   (bounds 200.00 1025.00)
                 )
               )
index a89c992..8770b17 100644 (file)
@@ -21,6 +21,7 @@
                 (GraphicsLayer
                   (offsetFromRenderer width=1 height=1)
                   (scrollOffset (0,50))
+                  (anchor 0.00 0.00)
                   (bounds 204.00 270.00)
                   (drawsContent 1)
                 )
@@ -43,6 +44,7 @@
                 (GraphicsLayer
                   (offsetFromRenderer width=1 height=1)
                   (scrollOffset (0,50))
+                  (anchor 0.00 0.00)
                   (bounds 204.00 270.00)
                   (drawsContent 1)
                 )
index 4bd3040..d9476aa 100644 (file)
@@ -14,6 +14,7 @@
               (bounds 200.00 200.00)
               (children 1
                 (GraphicsLayer
+                  (anchor 0.00 0.00)
                   (bounds 200.00 1200.00)
                   (drawsContent 1)
                 )
index f6d8175..b623498 100644 (file)
@@ -21,6 +21,7 @@
                 (GraphicsLayer
                   (offsetFromRenderer width=2 height=2)
                   (scrollOffset (366,0))
+                  (anchor 0.00 0.00)
                   (bounds 766.00 205.00)
                   (drawsContent 1)
                   (children 1
index e9a1323..ae28cdb 100644 (file)
@@ -18,6 +18,7 @@
               (children 1
                 (GraphicsLayer
                   (offsetFromRenderer width=1 height=1)
+                  (anchor 0.00 0.00)
                   (bounds 300.00 2000.00)
                 )
               )
index 5c20344..f6b3bab 100644 (file)
@@ -20,6 +20,7 @@
                 (GraphicsLayer
                   (offsetFromRenderer width=1 height=1)
                   (scrollOffset (0,30))
+                  (anchor 0.00 0.00)
                   (bounds 300.00 900.00)
                   (drawsContent 1)
                   (children 1
index ff20caf..8243530 100644 (file)
@@ -20,6 +20,7 @@
                 (GraphicsLayer
                   (offsetFromRenderer width=11 height=11)
                   (scrollOffset (0,30))
+                  (anchor 0.00 0.00)
                   (bounds 300.00 900.00)
                   (drawsContent 1)
                   (children 1
index b0c7ae7..1bb2bf8 100644 (file)
@@ -13,6 +13,7 @@
               (bounds 320.00 340.00)
               (children 1
                 (GraphicsLayer
+                  (anchor 0.00 0.00)
                   (bounds 320.00 1224.00)
                   (drawsContent 1)
                 )
index a89c992..8770b17 100644 (file)
@@ -21,6 +21,7 @@
                 (GraphicsLayer
                   (offsetFromRenderer width=1 height=1)
                   (scrollOffset (0,50))
+                  (anchor 0.00 0.00)
                   (bounds 204.00 270.00)
                   (drawsContent 1)
                 )
@@ -43,6 +44,7 @@
                 (GraphicsLayer
                   (offsetFromRenderer width=1 height=1)
                   (scrollOffset (0,50))
+                  (anchor 0.00 0.00)
                   (bounds 204.00 270.00)
                   (drawsContent 1)
                 )
index b6c5d86..8f4dd05 100644 (file)
@@ -15,6 +15,7 @@
               (bounds 300.00 300.00)
               (children 1
                 (GraphicsLayer
+                  (anchor 0.00 0.00)
                   (bounds 300.00 677.00)
                   (drawsContent 1)
                   (children 1
index 35ba543..0e4fe25 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1016)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
   (behavior for fixed 0)
   (children 1
     (Frame hosting node
+      (parent relative scrollable rect at (37,39) size 500x300)
       (children 1
         (Frame scrolling node
           (scrollable area size 485 300)
           (contents size 485 420)
+          (parent relative scrollable rect at (0,0) size 500x300)
           (scrollable area parameters 
             (horizontal scroll elasticity 0)
             (vertical scroll elasticity 0)
index ef8d834..88fde80 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1016)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
       (layer position at last layout (8,10))
       (children 1
         (Frame hosting node
+          (parent relative scrollable rect at (29,29) size 500x300)
           (children 1
             (Frame scrolling node
               (scrollable area size 500 300)
               (contents size 500 420)
+              (parent relative scrollable rect at (0,0) size 500x300)
               (scrollable area parameters 
                 (horizontal scroll elasticity 0)
                 (vertical scroll elasticity 0)
index e0e494e..beaff96 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1016)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
       (layer position at last layout (8,0))
       (children 1
         (Frame hosting node
+          (parent relative scrollable rect at (29,29) size 500x300)
           (children 1
             (Frame scrolling node
               (scrollable area size 485 300)
               (contents size 485 420)
+              (parent relative scrollable rect at (0,0) size 500x300)
               (scrollable area parameters 
                 (horizontal scroll elasticity 0)
                 (vertical scroll elasticity 0)
index 0d27984..143134a 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1016)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
   (behavior for fixed 0)
   (children 1
     (Frame hosting node
+      (parent relative scrollable rect at (37,39) size 500x300)
       (children 1
         (Frame scrolling node
           (scrollable area size 500 300)
           (contents size 500 420)
+          (parent relative scrollable rect at (0,0) size 500x300)
           (scrollable area parameters 
             (horizontal scroll elasticity 0)
             (vertical scroll elasticity 0)
index b8adf93..daa3049 100644 (file)
@@ -3,6 +3,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 657)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
   (behavior for fixed 0)
   (children 1
     (Frame hosting node
+      (parent relative scrollable rect at (110,110) size 480x400)
       (children 1
         (Frame scrolling node
           (scrollable area size 465 400)
           (contents size 465 1016)
           (requested scroll position 0 120)
           (requested scroll position represents programmatic scroll 1)
+          (parent relative scrollable rect at (0,0) size 480x400)
           (scrollable area parameters 
             (horizontal scroll elasticity 0)
             (vertical scroll elasticity 0)
index 1f123a1..18c26fa 100644 (file)
@@ -5,6 +5,7 @@ Inner scrolling content
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -19,6 +20,7 @@ Inner scrolling content
     (Overflow scrolling node
       (scrollable area size 405 305)
       (contents size 443 1039)
+      (parent relative scrollable rect at (9,9) size 405x305)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
@@ -28,6 +30,7 @@ Inner scrolling content
         (Overflow scrolling node
           (scrollable area size 405 305)
           (contents size 405 1020)
+          (parent relative scrollable rect at (23,59) size 405x305)
           (scrollable area parameters 
             (horizontal scroll elasticity 1)
             (vertical scroll elasticity 1)
index 1f123a1..18c26fa 100644 (file)
@@ -5,6 +5,7 @@ Inner scrolling content
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -19,6 +20,7 @@ Inner scrolling content
     (Overflow scrolling node
       (scrollable area size 405 305)
       (contents size 443 1039)
+      (parent relative scrollable rect at (9,9) size 405x305)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
@@ -28,6 +30,7 @@ Inner scrolling content
         (Overflow scrolling node
           (scrollable area size 405 305)
           (contents size 405 1020)
+          (parent relative scrollable rect at (23,59) size 405x305)
           (scrollable area parameters 
             (horizontal scroll elasticity 1)
             (vertical scroll elasticity 1)
index 0d2b4d0..ca3c47f 100644 (file)
@@ -3,6 +3,7 @@ Scrolling content
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -22,6 +23,7 @@ Scrolling content
         (Overflow scrolling node
           (scrollable area size 385 285)
           (contents size 385 1000)
+          (parent relative scrollable rect at (0,0) size 385x285)
           (scrollable area parameters 
             (horizontal scroll elasticity 1)
             (vertical scroll elasticity 1)
index 82e9b4c..9623402 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1016)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 703ce5a..575858c 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 2513)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -17,6 +18,7 @@
     (Overflow scrolling node
       (scrollable area size 285 400)
       (contents size 285 2000)
+      (parent relative scrollable rect at (14,14) size 285x400)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
index 691b834..6c17932 100644 (file)
@@ -5,6 +5,7 @@ Inner scrolling content
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -19,6 +20,7 @@ Inner scrolling content
     (Overflow scrolling node
       (scrollable area size 425 325)
       (contents size 425 1040)
+      (parent relative scrollable rect at (70,98) size 425x325)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
index 7b1e561..d2f664b 100644 (file)
@@ -5,6 +5,7 @@ Inner scrolling content
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1041)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -20,6 +21,7 @@ Inner scrolling content
     (Overflow scrolling node
       (scrollable area size 425 325)
       (contents size 425 1040)
+      (parent relative scrollable rect at (70,98) size 425x325)
       (scrollable area parameters 
         (horizontal scroll elasticity 1)
         (vertical scroll elasticity 1)
index 38d2f71..51a7951 100644 (file)
@@ -3,6 +3,7 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
   (behavior for fixed 0)
   (children 1
     (Frame hosting node
+      (parent relative scrollable rect at (0,0) size 100x200)
       (children 1
         (Frame scrolling node
           (scrollable area size 85 185)
           (contents size 308 416)
+          (parent relative scrollable rect at (0,0) size 100x200)
           (scrollable area parameters 
             (horizontal scroll elasticity 0)
             (vertical scroll elasticity 0)
index 6865a1a..7a30992 100644 (file)
@@ -3,6 +3,7 @@ FirstSecondThird
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 8323c1e..f1a58cd 100644 (file)
@@ -5,6 +5,7 @@ Scrolling tree on non-scrollable
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 640)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -18,10 +19,12 @@ Scrolling tree on non-scrollable
   (behavior for fixed 0)
   (children 1
     (Frame hosting node
+      (parent relative scrollable rect at (30,30) size 600x500)
       (children 1
         (Frame scrolling node
           (scrollable area size 585 500)
           (contents size 585 1024)
+          (parent relative scrollable rect at (0,0) size 600x500)
           (scrollable area parameters 
             (horizontal scroll elasticity 0)
             (vertical scroll elasticity 0)
@@ -35,10 +38,12 @@ Scrolling tree on non-scrollable
           (behavior for fixed 0)
           (children 1
             (Frame hosting node
+              (parent relative scrollable rect at (10,52) size 500x400)
               (children 1
                 (Frame scrolling node
                   (scrollable area size 485 400)
                   (contents size 485 1024)
+                  (parent relative scrollable rect at (0,0) size 500x400)
                   (scrollable area parameters 
                     (horizontal scroll elasticity 0)
                     (vertical scroll elasticity 0)
@@ -65,7 +70,8 @@ Scrolling tree on scrollable
 
 (Frame scrolling node
   (scrollable area size 785 600)
-  (contents size 785 1541)
+  (contents size 785 1616)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -75,14 +81,16 @@ Scrolling tree on scrollable
   (visual viewport enabled 1)
   (layout viewport at (0,0) size 785x600)
   (min layout viewport origin (0,0))
-  (max layout viewport origin (0,941))
+  (max layout viewport origin (0,1016))
   (behavior for fixed 0)
   (children 1
     (Frame hosting node
+      (parent relative scrollable rect at (30,30) size 600x500)
       (children 1
         (Frame scrolling node
           (scrollable area size 600 500)
           (contents size 600 500)
+          (parent relative scrollable rect at (0,0) size 600x500)
           (scrollable area parameters 
             (horizontal scroll elasticity 0)
             (vertical scroll elasticity 0)
@@ -95,10 +103,12 @@ Scrolling tree on scrollable
           (behavior for fixed 0)
           (children 1
             (Frame hosting node
+              (parent relative scrollable rect at (10,52) size 500x400)
               (children 1
                 (Frame scrolling node
                   (scrollable area size 485 400)
                   (contents size 485 1024)
+                  (parent relative scrollable rect at (0,0) size 500x400)
                   (scrollable area parameters 
                     (horizontal scroll elasticity 0)
                     (vertical scroll elasticity 0)
index 21e5968..b351ab2 100644 (file)
@@ -3,6 +3,7 @@ Attempted scroll to -5000, 0
 (Frame scrolling node
   (scrollable area size 785 585)
   (contents size 5008 5021)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -22,6 +23,7 @@ Attempted scroll to 0, -5000
 (Frame scrolling node
   (scrollable area size 785 585)
   (contents size 5008 5021)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -41,6 +43,7 @@ Attempted scroll to -5000, -5000
 (Frame scrolling node
   (scrollable area size 785 585)
   (contents size 5008 5021)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -62,6 +65,7 @@ Attempted scroll to 10000, 0
   (contents size 5008 5021)
   (requested scroll position 4223 0)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -83,6 +87,7 @@ Attempted scroll to 0, 10000
   (contents size 5008 5021)
   (requested scroll position 0 4436)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
@@ -104,6 +109,7 @@ Attempted scroll to 10000, 10000
   (contents size 5008 5021)
   (requested scroll position 4223 4436)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 2fbfe6e..177cb4c 100644 (file)
@@ -4,6 +4,7 @@
   (contents size 785 2710)
   (requested scroll position 0 200)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 368e654..8c21447 100644 (file)
@@ -4,6 +4,7 @@
   (contents size 785 2513)
   (requested scroll position 0 200)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index f8ec0fd..0c3c3c9 100644 (file)
@@ -4,6 +4,7 @@
   (contents size 785 2213)
   (requested scroll position 0 200)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 9032b13..24cdde0 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1021)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 9032b13..24cdde0 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 1021)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index bf00f9c..11fa988 100644 (file)
@@ -4,6 +4,7 @@
   (contents size 785 2221)
   (requested scroll position 0 200)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index a454dbf..168965a 100644 (file)
@@ -4,6 +4,7 @@
   (contents size 785 2421)
   (requested scroll position 0 200)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 685d155..8eba230 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 2221)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 26124bc..c081d04 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 2221)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 34111e8..1e0873d 100644 (file)
@@ -4,6 +4,7 @@
   (contents size 785 2213)
   (requested scroll position 0 200)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 10ddb14..98fdb8c 100644 (file)
@@ -4,6 +4,7 @@
   (contents size 785 2513)
   (requested scroll position 0 200)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index a848985..f2437bc 100644 (file)
@@ -3,6 +3,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 757)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 2c9b4ac..91a966f 100644 (file)
@@ -4,6 +4,7 @@
   (contents size 785 5021)
   (requested scroll position 0 3000)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index a1304d8..73b51b6 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 800 600)
   (contents size 800 600)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 24fbfcb..3c297b5 100644 (file)
@@ -2,6 +2,7 @@
 (Frame scrolling node
   (scrollable area size 785 600)
   (contents size 785 2216)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 27ff523..c0ed0bd 100644 (file)
@@ -5,6 +5,7 @@ Left sticky Right sticky Left % sticky Right % sticky Left and Right Left and Ri
   (contents size 2008 585)
   (requested scroll position 800 0)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 311b821..502e925 100644 (file)
@@ -9,6 +9,7 @@ Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
   (contents size 785 2908)
   (requested scroll position 0 580)
   (requested scroll position represents programmatic scroll 1)
+  (parent relative scrollable rect at (0,0) size 800x600)
   (scrollable area parameters 
     (horizontal scroll elasticity 2)
     (vertical scroll elasticity 2)
index 1a8fcec..fa6bd32 100644 (file)
@@ -1,3 +1,46 @@
+2019-01-30  Simon Fraser  <simon.fraser@apple.com>
+
+        Add some basic geometry information to the scrolling tree
+        https://bugs.webkit.org/show_bug.cgi?id=194002
+        rdar://problem/47656294
+
+        Reviewed by Antti Koivisto.
+
+        To allow hit-testing in the scrolling tree, store a parent-relative scrollable
+        rect in "scrolling" and "frame hosting" nodes. This is a rect whose size is the size
+        of the scrollable area, and whose origin is relative to the parent scrolling tree node.
+        
+        Frame hosting nodes need this rect because they take care of the geometry offset between
+        an iframe and its scrolling tree ancestor in the parent document.
+        
+        Based on a patch by Frédéric Wang in bug 172917.
+
+        * page/scrolling/AsyncScrollingCoordinator.cpp:
+        (WebCore::AsyncScrollingCoordinator::setScrollingNodeGeometry):
+        * page/scrolling/ScrollingStateFrameHostingNode.cpp:
+        (WebCore::ScrollingStateFrameHostingNode::ScrollingStateFrameHostingNode):
+        (WebCore::ScrollingStateFrameHostingNode::setAllPropertiesChanged):
+        (WebCore::ScrollingStateFrameHostingNode::setParentRelativeScrollableRect):
+        (WebCore::ScrollingStateFrameHostingNode::dumpProperties const):
+        * page/scrolling/ScrollingStateFrameHostingNode.h:
+        * page/scrolling/ScrollingTreeFrameHostingNode.cpp:
+        (WebCore::ScrollingTreeFrameHostingNode::commitStateBeforeChildren):
+        (WebCore::ScrollingTreeFrameHostingNode::dumpProperties const):
+        * page/scrolling/ScrollingTreeFrameHostingNode.h:
+        (WebCore::ScrollingTreeFrameHostingNode::parentRelativeScrollableRect const):
+        * rendering/RenderLayer.h:
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateScrollingLayers):
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::computeFrameScrollingGeometry const):
+        (WebCore::RenderLayerCompositor::computeFrameHostingGeometry const):
+        (WebCore::RenderLayerCompositor::computeOverflowScrollingGeometry const):
+        (WebCore::RenderLayerCompositor::updateScrollingNodeForScrollingRole):
+        (WebCore::RenderLayerCompositor::updateScrollingNodeForFrameHostingRole):
+        (WebCore::RenderLayerCompositor::updateScrollSnapPropertiesWithFrameView const):
+        (WebCore::RenderLayerCompositor::updateScrollSnapPropertiesWithFrameView): Deleted.
+        * rendering/RenderLayerCompositor.h:
+
 2019-01-30  Zalan Bujtas  <zalan@apple.com>
 
         [LFC] Use the used margin values in outOfFlowReplacedVerticalGeometry consistently
index 8f12a31..f7d809d 100644 (file)
@@ -40,6 +40,7 @@
 #include "ScrollAnimator.h"
 #include "ScrollingConstraints.h"
 #include "ScrollingStateFixedNode.h"
+#include "ScrollingStateFrameHostingNode.h"
 #include "ScrollingStateFrameScrollingNode.h"
 #include "ScrollingStateOverflowScrollingNode.h"
 #include "ScrollingStateStickyNode.h"
@@ -591,25 +592,33 @@ void AsyncScrollingCoordinator::setNodeLayers(ScrollingNodeID nodeID, GraphicsLa
 
 void AsyncScrollingCoordinator::setScrollingNodeGeometry(ScrollingNodeID nodeID, const ScrollingGeometry& scrollingGeometry)
 {
-    auto* scrollingNode = downcast<ScrollingStateScrollingNode>(m_scrollingStateTree->stateNodeForID(nodeID));
-    ASSERT(scrollingNode);
-    if (!scrollingNode)
+    auto* stateNode = m_scrollingStateTree->stateNodeForID(nodeID);
+    ASSERT(stateNode);
+    if (!stateNode)
+        return;
+
+    if (stateNode->nodeType() == ScrollingNodeType::FrameHosting) {
+        auto& frameHostingStateNode = downcast<ScrollingStateFrameHostingNode>(*stateNode);
+        frameHostingStateNode.setParentRelativeScrollableRect(scrollingGeometry.parentRelativeScrollableRect);
         return;
+    }
+
+    auto& scrollingNode = downcast<ScrollingStateScrollingNode>(*stateNode);
 
-    scrollingNode->setParentRelativeScrollableRect(scrollingGeometry.parentRelativeScrollableRect);
-    scrollingNode->setScrollOrigin(scrollingGeometry.scrollOrigin);
-    scrollingNode->setScrollPosition(scrollingGeometry.scrollPosition);
-    scrollingNode->setTotalContentsSize(scrollingGeometry.contentSize);
-    scrollingNode->setReachableContentsSize(scrollingGeometry.reachableContentSize);
-    scrollingNode->setScrollableAreaSize(scrollingGeometry.scrollableAreaSize);
+    scrollingNode.setParentRelativeScrollableRect(scrollingGeometry.parentRelativeScrollableRect);
+    scrollingNode.setScrollOrigin(scrollingGeometry.scrollOrigin);
+    scrollingNode.setScrollPosition(scrollingGeometry.scrollPosition);
+    scrollingNode.setTotalContentsSize(scrollingGeometry.contentSize);
+    scrollingNode.setReachableContentsSize(scrollingGeometry.reachableContentSize);
+    scrollingNode.setScrollableAreaSize(scrollingGeometry.scrollableAreaSize);
 
 #if ENABLE(CSS_SCROLL_SNAP)
     // updateScrollSnapPropertiesWithFrameView() sets these for frame scrolling nodes. FIXME: Why the difference?
     if (is<ScrollingStateOverflowScrollingNode>(scrollingNode)) {
-        setStateScrollingNodeSnapOffsetsAsFloat(*scrollingNode, ScrollEventAxis::Horizontal, &scrollingGeometry.horizontalSnapOffsets, &scrollingGeometry.horizontalSnapOffsetRanges, m_page->deviceScaleFactor());
-        setStateScrollingNodeSnapOffsetsAsFloat(*scrollingNode, ScrollEventAxis::Vertical, &scrollingGeometry.verticalSnapOffsets, &scrollingGeometry.verticalSnapOffsetRanges, m_page->deviceScaleFactor());
-        scrollingNode->setCurrentHorizontalSnapPointIndex(scrollingGeometry.currentHorizontalSnapPointIndex);
-        scrollingNode->setCurrentVerticalSnapPointIndex(scrollingGeometry.currentVerticalSnapPointIndex);
+        setStateScrollingNodeSnapOffsetsAsFloat(scrollingNode, ScrollEventAxis::Horizontal, &scrollingGeometry.horizontalSnapOffsets, &scrollingGeometry.horizontalSnapOffsetRanges, m_page->deviceScaleFactor());
+        setStateScrollingNodeSnapOffsetsAsFloat(scrollingNode, ScrollEventAxis::Vertical, &scrollingGeometry.verticalSnapOffsets, &scrollingGeometry.verticalSnapOffsetRanges, m_page->deviceScaleFactor());
+        scrollingNode.setCurrentHorizontalSnapPointIndex(scrollingGeometry.currentHorizontalSnapPointIndex);
+        scrollingNode.setCurrentVerticalSnapPointIndex(scrollingGeometry.currentVerticalSnapPointIndex);
     }
 #endif
 }
index 0cebd30..ecb64d5 100644 (file)
@@ -46,6 +46,7 @@ ScrollingStateFrameHostingNode::ScrollingStateFrameHostingNode(ScrollingStateTre
 
 ScrollingStateFrameHostingNode::ScrollingStateFrameHostingNode(const ScrollingStateFrameHostingNode& stateNode, ScrollingStateTree& adoptiveTree)
     : ScrollingStateNode(stateNode, adoptiveTree)
+    , m_parentRelativeScrollableRect(stateNode.parentRelativeScrollableRect())
 {
 }
 
@@ -56,10 +57,29 @@ Ref<ScrollingStateNode> ScrollingStateFrameHostingNode::clone(ScrollingStateTree
     return adoptRef(*new ScrollingStateFrameHostingNode(*this, adoptiveTree));
 }
 
+void ScrollingStateFrameHostingNode::setAllPropertiesChanged()
+{
+    setPropertyChangedBit(ParentRelativeScrollableRect);
+
+    ScrollingStateNode::setAllPropertiesChanged();
+}
+
+void ScrollingStateFrameHostingNode::setParentRelativeScrollableRect(const LayoutRect& parentRelativeScrollableRect)
+{
+    if (m_parentRelativeScrollableRect == parentRelativeScrollableRect)
+        return;
+
+    m_parentRelativeScrollableRect = parentRelativeScrollableRect;
+    setPropertyChanged(ParentRelativeScrollableRect);
+}
+
 void ScrollingStateFrameHostingNode::dumpProperties(TextStream& ts, ScrollingStateTreeAsTextBehavior behavior) const
 {
     ts << "Frame hosting node";
     ScrollingStateNode::dumpProperties(ts, behavior);
+
+    if (!m_parentRelativeScrollableRect.isEmpty())
+        ts.dumpProperty("parent relative scrollable rect", m_parentRelativeScrollableRect);
 }
 
 } // namespace WebCore
index 1afe3e6..e2a2e9b 100644 (file)
@@ -40,11 +40,22 @@ public:
 
     virtual ~ScrollingStateFrameHostingNode();
 
+    enum ChangedProperty {
+        ParentRelativeScrollableRect = NumStateNodeBits
+    };
+
+    const LayoutRect& parentRelativeScrollableRect() const { return m_parentRelativeScrollableRect; }
+    WEBCORE_EXPORT void setParentRelativeScrollableRect(const LayoutRect&);
+
     void dumpProperties(WTF::TextStream&, ScrollingStateTreeAsTextBehavior) const override;
 
 private:
     ScrollingStateFrameHostingNode(ScrollingStateTree&, ScrollingNodeID);
     ScrollingStateFrameHostingNode(const ScrollingStateFrameHostingNode&, ScrollingStateTree&);
+
+    void setAllPropertiesChanged() override;
+
+    LayoutRect m_parentRelativeScrollableRect;
 };
 
 } // namespace WebCore
index 34718e5..24ad08f 100644 (file)
@@ -29,6 +29,7 @@
 #if ENABLE(ASYNC_SCROLLING)
 
 #include "Logging.h"
+#include "ScrollingStateFrameHostingNode.h"
 #include "ScrollingStateTree.h"
 #include "ScrollingTree.h"
 #include <wtf/text/TextStream.h>
@@ -48,9 +49,12 @@ ScrollingTreeFrameHostingNode::ScrollingTreeFrameHostingNode(ScrollingTree& scro
 
 ScrollingTreeFrameHostingNode::~ScrollingTreeFrameHostingNode() = default;
 
-void ScrollingTreeFrameHostingNode::commitStateBeforeChildren(const ScrollingStateNode&)
+void ScrollingTreeFrameHostingNode::commitStateBeforeChildren(const ScrollingStateNode& stateNode)
 {
-    // Nothing to do.
+    const ScrollingStateFrameHostingNode& frameHostingStateNode = downcast<ScrollingStateFrameHostingNode>(stateNode);
+
+    if (frameHostingStateNode.hasChangedProperty(ScrollingStateFrameHostingNode::ParentRelativeScrollableRect))
+        m_parentRelativeScrollableRect = frameHostingStateNode.parentRelativeScrollableRect();
 }
 
 void ScrollingTreeFrameHostingNode::updateLayersAfterAncestorChange(const ScrollingTreeNode& changedNode, const FloatRect& fixedPositionRect, const FloatSize& cumulativeDelta)
@@ -66,6 +70,9 @@ void ScrollingTreeFrameHostingNode::dumpProperties(TextStream& ts, ScrollingStat
 {
     ts << "frame hosting node";
     ScrollingTreeNode::dumpProperties(ts, behavior);
+
+    if (!m_parentRelativeScrollableRect.isEmpty())
+        ts.dumpProperty("parent relative scrollable rect", m_parentRelativeScrollableRect);
 }
 
 } // namespace WebCore
index fac8b5c..5c3b797 100644 (file)
@@ -44,7 +44,11 @@ private:
     void commitStateBeforeChildren(const ScrollingStateNode&) final;
     void updateLayersAfterAncestorChange(const ScrollingTreeNode& changedNode, const FloatRect& fixedPositionRect, const FloatSize& cumulativeDelta) final;
 
+    const LayoutRect& parentRelativeScrollableRect() const { return m_parentRelativeScrollableRect; }
+
     WEBCORE_EXPORT void dumpProperties(WTF::TextStream&, ScrollingStateTreeAsTextBehavior) const override;
+
+    LayoutRect m_parentRelativeScrollableRect;
 };
 
 } // namespace WebCore
index c04c40a..63e1fd2 100644 (file)
@@ -397,6 +397,9 @@ public:
 
     LayoutRect rect() const { return LayoutRect(location(), size()); }
 
+    IntSize visibleSize() const override;
+    IntSize contentsSize() const override;
+
     int scrollWidth() const;
     int scrollHeight() const;
 
@@ -1030,8 +1033,6 @@ private:
     void setScrollOffset(const ScrollOffset&) override;
 
     IntRect visibleContentRectInternal(VisibleContentRectIncludesScrollbars, VisibleContentRectBehavior) const override;
-    IntSize visibleSize() const override;
-    IntSize contentsSize() const override;
     IntSize overhangAmount() const override;
     IntPoint lastKnownMousePosition() const override;
     bool isHandlingWheelEvent() const override;
index f4de5ec..53311f5 100644 (file)
@@ -1747,6 +1747,7 @@ bool RenderLayerBacking::updateScrollingLayers(bool needsScrollingLayers)
         // Inner layer which renders the content that scrolls.
         m_scrollingContentsLayer = createGraphicsLayer("scrolled Contents");
         m_scrollingContentsLayer->setDrawsContent(true);
+        m_scrollingContentsLayer->setAnchorPoint({ });
 
         GraphicsLayerPaintingPhase paintPhase = GraphicsLayerPaintOverflowContents | GraphicsLayerPaintCompositedScroll;
         if (!m_foregroundLayer)
index 27a774b..edbae4c 100644 (file)
@@ -3918,6 +3918,71 @@ ScrollingNodeID RenderLayerCompositor::updateScrollingNodeForViewportConstrained
     return newNodeID;
 }
 
+void RenderLayerCompositor::computeFrameScrollingGeometry(ScrollingCoordinator::ScrollingGeometry& scrollingGeometry) const
+{
+    auto& frameView = m_renderView.frameView();
+
+    if (m_renderView.frame().isMainFrame())
+        scrollingGeometry.parentRelativeScrollableRect = frameView.frameRect();
+    else
+        scrollingGeometry.parentRelativeScrollableRect = LayoutRect({ }, LayoutSize(frameView.size()));
+
+    scrollingGeometry.scrollOrigin = frameView.scrollOrigin();
+    scrollingGeometry.scrollableAreaSize = frameView.visibleContentRect().size();
+    scrollingGeometry.contentSize = frameView.totalContentsSize();
+    scrollingGeometry.reachableContentSize = frameView.totalContentsSize();
+#if ENABLE(CSS_SCROLL_SNAP)
+    frameView.updateSnapOffsets();
+    updateScrollSnapPropertiesWithFrameView(frameView);
+#endif
+}
+
+void RenderLayerCompositor::computeFrameHostingGeometry(const RenderLayer& layer, const RenderLayer* ancestorLayer, ScrollingCoordinator::ScrollingGeometry& scrollingGeometry) const
+{
+    // FIXME: ancestorLayer needs to be always non-null, so should become a reference.
+    if (ancestorLayer) {
+        LayoutRect scrollableRect;
+        if (is<RenderBox>(layer.renderer()))
+            scrollableRect = downcast<RenderBox>(layer.renderer()).paddingBoxRect();
+
+        auto offset = layer.convertToLayerCoords(ancestorLayer, scrollableRect.location()); // FIXME: broken for columns.
+        scrollableRect.setLocation(offset);
+        scrollingGeometry.parentRelativeScrollableRect = scrollableRect;
+    }
+}
+
+void RenderLayerCompositor::computeOverflowScrollingGeometry(const RenderLayer& layer, const RenderLayer* ancestorLayer, ScrollingCoordinator::ScrollingGeometry& scrollingGeometry) const
+{
+    // FIXME: ancestorLayer needs to be always non-null, so should become a reference.
+    if (ancestorLayer) {
+        LayoutRect scrollableRect;
+        if (is<RenderBox>(layer.renderer()))
+            scrollableRect = downcast<RenderBox>(layer.renderer()).paddingBoxRect();
+
+        auto offset = layer.convertToLayerCoords(ancestorLayer, scrollableRect.location()); // FIXME: broken for columns.
+        scrollableRect.setLocation(offset);
+        scrollingGeometry.parentRelativeScrollableRect = scrollableRect;
+    }
+
+    scrollingGeometry.scrollOrigin = layer.scrollOrigin();
+    scrollingGeometry.scrollPosition = layer.scrollPosition();
+    scrollingGeometry.scrollableAreaSize = layer.visibleSize();
+    scrollingGeometry.contentSize = layer.contentsSize();
+    scrollingGeometry.reachableContentSize = layer.scrollableContentsSize();
+#if ENABLE(CSS_SCROLL_SNAP)
+    if (auto* offsets = layer.horizontalSnapOffsets())
+        scrollingGeometry.horizontalSnapOffsets = *offsets;
+    if (auto* offsets = layer.verticalSnapOffsets())
+        scrollingGeometry.verticalSnapOffsets = *offsets;
+    if (auto* ranges = layer.horizontalSnapOffsetRanges())
+        scrollingGeometry.horizontalSnapOffsetRanges = *ranges;
+    if (auto* ranges = layer.verticalSnapOffsetRanges())
+        scrollingGeometry.verticalSnapOffsetRanges = *ranges;
+    scrollingGeometry.currentHorizontalSnapPointIndex = layer.currentHorizontalSnapPointIndex();
+    scrollingGeometry.currentVerticalSnapPointIndex = layer.currentVerticalSnapPointIndex();
+#endif
+}
+
 ScrollingNodeID RenderLayerCompositor::updateScrollingNodeForScrollingRole(RenderLayer& layer, ScrollingTreeState& treeState, OptionSet<ScrollingNodeChangeFlags> changes)
 {
     auto* scrollingCoordinator = this->scrollingCoordinator();
@@ -3926,7 +3991,7 @@ ScrollingNodeID RenderLayerCompositor::updateScrollingNodeForScrollingRole(Rende
 
     if (layer.isRenderViewLayer()) {
         FrameView& frameView = m_renderView.frameView();
-        ASSERT(scrollingCoordinator->coordinatesScrollingForFrameView(frameView));
+        ASSERT_UNUSED(frameView, scrollingCoordinator->coordinatesScrollingForFrameView(frameView));
 
         newNodeID = attachScrollingNode(*m_renderView.layer(), m_renderView.frame().isMainFrame() ? ScrollingNodeType::MainFrame : ScrollingNodeType::Subframe, treeState);
 
@@ -3940,15 +4005,7 @@ ScrollingNodeID RenderLayerCompositor::updateScrollingNodeForScrollingRole(Rende
 
         if (changes & ScrollingNodeChangeFlags::LayerGeometry) {
             ScrollingCoordinator::ScrollingGeometry scrollingGeometry;
-            // FIXME(https://webkit.org/b/172917): Pass parentRelativeScrollableRect?
-            scrollingGeometry.scrollOrigin = frameView.scrollOrigin();
-            scrollingGeometry.scrollableAreaSize = frameView.visibleContentRect().size();
-            scrollingGeometry.contentSize = frameView.totalContentsSize();
-            scrollingGeometry.reachableContentSize = frameView.totalContentsSize();
-#if ENABLE(CSS_SCROLL_SNAP)
-            frameView.updateSnapOffsets();
-            scrollingCoordinator->updateScrollSnapPropertiesWithFrameView(frameView);
-#endif
+            computeFrameScrollingGeometry(scrollingGeometry);
             scrollingCoordinator->setScrollingNodeGeometry(newNodeID, scrollingGeometry);
         }
     } else {
@@ -3961,26 +4018,10 @@ ScrollingNodeID RenderLayerCompositor::updateScrollingNodeForScrollingRole(Rende
         if (changes & ScrollingNodeChangeFlags::Layer)
             scrollingCoordinator->setNodeLayers(newNodeID, layer.backing()->scrollingLayer(), layer.backing()->scrollingContentsLayer());
 
-        if (changes & ScrollingNodeChangeFlags::LayerGeometry) {
+        if (changes & ScrollingNodeChangeFlags::LayerGeometry && treeState.parentNodeID) {
+            RenderLayer* scrollingAncestorLayer = m_scrollingNodeToLayerMap.get(treeState.parentNodeID.value());
             ScrollingCoordinator::ScrollingGeometry scrollingGeometry;
-            // FIXME(https://webkit.org/b/172917): Pass parentRelativeScrollableRect?
-            scrollingGeometry.scrollOrigin = layer.scrollOrigin();
-            scrollingGeometry.scrollPosition = layer.scrollPosition();
-            scrollingGeometry.scrollableAreaSize = layer.visibleSize();
-            scrollingGeometry.contentSize = layer.contentsSize();
-            scrollingGeometry.reachableContentSize = layer.scrollableContentsSize();
-#if ENABLE(CSS_SCROLL_SNAP)
-            if (const Vector<LayoutUnit>* offsets = layer.horizontalSnapOffsets())
-                scrollingGeometry.horizontalSnapOffsets = *offsets;
-            if (const Vector<LayoutUnit>* offsets = layer.verticalSnapOffsets())
-                scrollingGeometry.verticalSnapOffsets = *offsets;
-            if (const Vector<ScrollOffsetRange<LayoutUnit>>* ranges = layer.horizontalSnapOffsetRanges())
-                scrollingGeometry.horizontalSnapOffsetRanges = *ranges;
-            if (const Vector<ScrollOffsetRange<LayoutUnit>>* ranges = layer.verticalSnapOffsetRanges())
-                scrollingGeometry.verticalSnapOffsetRanges = *ranges;
-            scrollingGeometry.currentHorizontalSnapPointIndex = layer.currentHorizontalSnapPointIndex();
-            scrollingGeometry.currentVerticalSnapPointIndex = layer.currentVerticalSnapPointIndex();
-#endif
+            computeOverflowScrollingGeometry(layer, scrollingAncestorLayer, scrollingGeometry);
             scrollingCoordinator->setScrollingNodeGeometry(newNodeID, scrollingGeometry);
         }
     }
@@ -4001,6 +4042,13 @@ ScrollingNodeID RenderLayerCompositor::updateScrollingNodeForFrameHostingRole(Re
     if (changes & ScrollingNodeChangeFlags::Layer)
         scrollingCoordinator->setNodeLayers(newNodeID, layer.backing()->graphicsLayer());
 
+    if (changes & ScrollingNodeChangeFlags::LayerGeometry && treeState.parentNodeID) {
+        RenderLayer* scrollingAncestorLayer = m_scrollingNodeToLayerMap.get(treeState.parentNodeID.value());
+        ScrollingCoordinator::ScrollingGeometry scrollingGeometry;
+        computeFrameHostingGeometry(layer, scrollingAncestorLayer, scrollingGeometry);
+        scrollingCoordinator->setScrollingNodeGeometry(newNodeID, scrollingGeometry);
+    }
+
     return newNodeID;
 }
 
@@ -4123,7 +4171,7 @@ RefPtr<DisplayRefreshMonitor> RenderLayerCompositor::createDisplayRefreshMonitor
 #endif
 
 #if ENABLE(CSS_SCROLL_SNAP)
-void RenderLayerCompositor::updateScrollSnapPropertiesWithFrameView(const FrameView& frameView)
+void RenderLayerCompositor::updateScrollSnapPropertiesWithFrameView(const FrameView& frameView) const
 {
     if (auto* coordinator = scrollingCoordinator())
         coordinator->updateScrollSnapPropertiesWithFrameView(frameView);
index c102577..60c4f45 100644 (file)
@@ -352,7 +352,7 @@ public:
     void updateRootContentLayerClipping();
 
 #if ENABLE(CSS_SCROLL_SNAP)
-    void updateScrollSnapPropertiesWithFrameView(const FrameView&);
+    void updateScrollSnapPropertiesWithFrameView(const FrameView&) const;
 #endif
 
     // For testing.
@@ -497,6 +497,10 @@ private:
     FixedPositionViewportConstraints computeFixedViewportConstraints(RenderLayer&) const;
     StickyPositionViewportConstraints computeStickyViewportConstraints(RenderLayer&) const;
 
+    void computeFrameScrollingGeometry(ScrollingCoordinator::ScrollingGeometry&) const;
+    void computeFrameHostingGeometry(const RenderLayer&, const RenderLayer* ancestorLayer, ScrollingCoordinator::ScrollingGeometry&) const;
+    void computeOverflowScrollingGeometry(const RenderLayer&, const RenderLayer* ancestorLayer, ScrollingCoordinator::ScrollingGeometry&) const;
+
     bool requiresScrollLayer(RootLayerAttachment) const;
     bool requiresHorizontalScrollbarLayer() const;
     bool requiresVerticalScrollbarLayer() const;
index 014a86e..11d679e 100644 (file)
@@ -1,3 +1,15 @@
+2019-01-30  Simon Fraser  <simon.fraser@apple.com>
+
+        Add some basic geometry information to the scrolling tree
+        https://bugs.webkit.org/show_bug.cgi?id=194002
+
+        Reviewed by Antti Koivisto.
+
+        Add a comment explaining why we don't need to encode/decode ParentRelativeScrollableRect.
+
+        * Shared/RemoteLayerTree/RemoteScrollingCoordinatorTransaction.cpp:
+        (ArgumentCoder<ScrollingStateFrameHostingNode>::encode):
+
 2019-01-30  Carlos Garcia Campos  <cgarcia@igalia.com>
 
         [GTK] gdk_cairo_draw_from_gl() in AcceleratedBackingStoreWayland fails in GtkInspector's magnifier
index 059ed28..0d01f33 100644 (file)
@@ -181,6 +181,7 @@ void ArgumentCoder<ScrollingStateFrameScrollingNode>::encode(Encoder& encoder, c
 void ArgumentCoder<ScrollingStateFrameHostingNode>::encode(Encoder& encoder, const ScrollingStateFrameHostingNode& node)
 {
     encoder << static_cast<const ScrollingStateNode&>(node);
+    // ParentRelativeScrollableRect isn't used so we don't encode it.
 }
 
 void ArgumentCoder<ScrollingStateOverflowScrollingNode>::encode(Encoder& encoder, const ScrollingStateOverflowScrollingNode& node)