Explicitly trigger compositing for layers that need to be moved by ScrollingTreePosit...
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 20 Mar 2019 16:32:32 +0000 (16:32 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 20 Mar 2019 16:32:32 +0000 (16:32 +0000)
commit31cd765fc2c57d9dd8f8099d2c6df4db4bfb3425
treea0f16688bc44a7cd4cecdd45a80141bd4ac61a7b
parent4e6c594e45f2a30b772f401e97d42757d8fdd01c
Explicitly trigger compositing for layers that need to be moved by ScrollingTreePositionedNodes
https://bugs.webkit.org/show_bug.cgi?id=195710
Source/WebCore:

<rdar://problem/48867502>

Reviewed by Zalan Bujtas.

A position:absolute layer whose containing block is outside an enclosing overflow:scroll, but
whose compositing ancestor is the overflow or is inside it, needs to be composited so that
we can make a Positioning scrolling tree node for it.

Handle this case as a "OverflowScrollPositioning" indirect compositing reason.

Test: compositing/layer-creation/absolute-in-async-overflow-scroll.html

* inspector/agents/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
* rendering/RenderLayer.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
(WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
(WebCore::RenderLayerCompositor::reasonsForCompositing const):
(WebCore::RenderLayerCompositor::logReasonsForCompositing):
(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason const):
(WebCore::RenderLayerCompositor::layerContainingBlockCrossesCoordinatedScrollingBoundary):
(WebCore::layerContainingBlockCrossesCoordinatedScrollingBoundary): Deleted.
* rendering/RenderLayerCompositor.h: Generalize OverflowScrollingTouch to OverflowScrolling.

LayoutTests:

Reviewed by Zalan Bujtas.

* compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt: Added.
* compositing/layer-creation/absolute-in-async-overflow-scroll.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@243209 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/compositing/layer-creation/absolute-in-async-overflow-scroll-expected.txt [new file with mode: 0644]
LayoutTests/compositing/layer-creation/absolute-in-async-overflow-scroll.html [new file with mode: 0644]
LayoutTests/platform/ios-wk2/scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt
LayoutTests/scrollingcoordinator/scrolling-tree/positioned-nodes-expected.txt
Source/WebCore/ChangeLog
Source/WebCore/inspector/agents/InspectorLayerTreeAgent.cpp
Source/WebCore/rendering/RenderLayer.h
Source/WebCore/rendering/RenderLayerCompositor.cpp
Source/WebCore/rendering/RenderLayerCompositor.h